Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- esphome:
- name: chalupa-thermostat
- friendly_name: Chalupa_Thermostat
- esp8266:
- board: esp07
- # Enable logging
- logger:
- level: Verbose
- # Enable Home Assistant API
- api:
- encryption:
- key: "nanya"
- ota:
- password: "busyness"
- wifi:
- networks:
- - ssid: !secret wifi_home_out
- password: !secret wifi_home_pass
- priority: 2
- - ssid: !secret wifi_ssid
- password: !secret wifi_password
- priority: 5
- - ssid: !secret wifi_chalupa_cam
- password: !secret wifi_chalupa_pass
- priority: 4
- - ssid: !secret wifi_chalupa_main
- password: !secret wifi_chalupa_pass
- priority: 3
- - ssid: !secret wifi_home_main
- password: !secret wifi_home_pass
- priority: 1
- i2c:
- sda: GPIO4
- scl: GPIO5
- frequency: 100kHz
- font:
- - file: "fonts/Roboto-Regular.ttf"
- id: my_font20
- size: 20
- - file: "fonts/Roboto-Regular.ttf"
- id: my_font10
- size: 11
- - file: "fonts/Roboto-Regular.ttf"
- id: my_font5
- size: 5
- - file: "fonts/FreeSans-LrmZ.ttf"
- id: sans10
- size: 11
- # gfonts://family[@weight]
- - file: "gfonts://Roboto Mono"
- id: Google10
- size: 11
- - file: "fonts/FreeSansBold-Rdmo.ttf"
- id: sansB10
- size: 10
- - file: "fonts/eight-bit-dragon.ttf"
- id: eightbit10
- size: 10
- globals:
- - id: HATemp
- type: float
- restore_value: no
- initial_value: '10'
- - id: DispTemp
- type: float
- restore_value: yes
- initial_value: '10'
- sensor:
- - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
- name: "WiFi Signal dB"
- id: wifi_signal_db
- update_interval: 10s
- entity_category: "diagnostic"
- - platform: copy # Reports the WiFi signal strength in %
- source_id: wifi_signal_db
- name: "WiFi Signal Percent"
- filters:
- - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
- unit_of_measurement: "Signal %"
- entity_category: "diagnostic"
- - platform: homeassistant
- name: "RequestedTemp"
- id: ReqTemp
- entity_id: input_number.chalupa_temperature
- on_value:
- then:
- - lambda: |-
- id(HATemp) = id(ReqTemp).state;
- id(DispTemp) = id(ReqTemp).state;
- - platform: aht10
- temperature:
- name: "Chalupa Temperature"
- id: TempCurrent
- humidity:
- name: "Chalupa Humidity"
- id: HumCurrent
- update_interval: 10s
- - platform: rotary_encoder
- name: "Rotary Encoder"
- pin_a: GPIO13
- pin_b: GPIO14
- restore_mode: ALWAYS_ZERO
- internal: True
- on_clockwise:
- then:
- - lambda: |-
- float newDispTemp = id(DispTemp) + 0.25;
- if (newDispTemp > 35) {
- newDispTemp = 35;
- }
- id(DispTemp) = newDispTemp;
- on_anticlockwise:
- then:
- - lambda: |-
- float newDispTemp = id(DispTemp) - 0.25;
- if (newDispTemp < 10) {
- newDispTemp = 10;
- }
- id(DispTemp) = newDispTemp;
- - platform: adc
- pin: A0
- name: "Battery Voltage"
- id: VBat
- #internal: True
- accuracy_decimals: 4
- update_interval: 10s
- filters:
- - multiply: 5.75
- - platform: template
- name: "Battery Percentage"
- id: BatPerc
- unit_of_measurement: "%"
- device_class: BATTERY
- update_interval: 5s
- lambda: |-
- float voltage = id(VBat).state;
- float batteryPercentage = 0.0;
- if (voltage >= 4.2) {
- batteryPercentage = 100.0;
- } else if (voltage <= 3.21) {
- batteryPercentage = 0.0;
- } else {
- batteryPercentage = (voltage - 3.21) / (4.2 - 3.21) * 100.0;
- }
- return batteryPercentage;
- text_sensor:
- - platform: wifi_info
- ip_address:
- name: ESP IP Address
- ssid:
- name: ESP Connected SSID
- bssid:
- name: ESP Connected BSSID
- mac_address:
- name: ESP Mac Wifi Address
- scan_results:
- name: ESP Latest Scan Results
- binary_sensor:
- - platform: gpio
- pin:
- number: GPIO12
- mode: INPUT
- inverted: True
- id: buttonenc
- name: "ButtonEncoder"
- internal: True
- on_press:
- then:
- - homeassistant.service:
- service: input_number.set_value
- data:
- entity_id: input_number.chalupa_temperature
- value: id(DispTemp).state
- - lambda: |-
- ESP_LOGI("ButtonEncoder", "Sending to HASS");
- - platform: gpio
- pin:
- number: GPIO2
- mode: INPUT
- inverted: True
- id: buttonhome
- name: "ButtonHome"
- internal: True
- on_press:
- then:
- - lambda: |-
- id(DispTemp) = id(HATemp);
- ESP_LOGI("ButtonHome", "Resetting value");
- - platform: template
- id: ChStat
- name: "Charging Status"
- lambda: |-
- auto voltage = id(VBat).state;
- bool isCharging = (voltage > 4.35);
- return isCharging;
- time:
- - platform: homeassistant
- id: esptime
- display:
- - platform: ssd1306_i2c
- model: "SH1106 128x64"
- address: 0x3C
- lambda: |-
- it.strftime(0, 00, id(eightbit10), "%a %d.%m %H:%M:%S", id(esptime).now());
- if (id(ChStat).state) {
- it.print(108, 0, id(eightbit10), "Chg");
- } else {
- it.printf(108, 0, id(eightbit10), "%.0f%%", id(BatPerc).state);
- }
- it.line(0, 10, 127, 10);
- it.print(0, 12, id(eightbit10), "Aktualni:");
- if (id(TempCurrent).has_state()) {
- it.printf(0, 20, id(my_font20),"%.1f°C %.1f%%", id(TempCurrent).state, id(HumCurrent).state);
- }
- if (id(DispTemp) != id(HATemp)) {
- it.printf(0, 40, id(my_font20), "Set: %.2f°C E", id(DispTemp));
- } else {
- it.printf(0, 40, id(my_font20), "Set: %.2f°C", id(DispTemp));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement