From c97d9f1b412ebd3a96152e6b88ae559369c24e9b Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 5 Nov 2022 00:16:28 +0100 Subject: [PATCH] upd: esphome.yaml --- esphome.yaml | 587 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 370 insertions(+), 217 deletions(-) diff --git a/esphome.yaml b/esphome.yaml index 7470765..96de7d3 100644 --- a/esphome.yaml +++ b/esphome.yaml @@ -2,24 +2,51 @@ ##### START - SUBSTITUTIONS ##### ############################################################# substitutions: -##### GENEREL CONFIG ############################################################################################# - node_name: nspanel-buero # $node_name - device_name: NSPanel Buero # $device_name + ##### GENEREL CONFIG MOVED TO ESPHOME SECRETS FILE -> PASTE THIS BLOCK AND MODIFY FOR YOUR NEEDS ######## + ##### This way you don't need to modify this file anymore + # # Blackymas-NSPanel + # nspanel_update_url: 'http://1.2.3.4:8123/local/nspanel/nspanel.tft' + # nspanel_ota_password: "OTA-PASSWORD" + # nspanel_wifi_password: "WIFI-PASSWORD" + # nspanel_web_password: "WEBSERVER-PASSWORD" + # nspanel_wifi_ssid: "SSID" + # nspanel_node_name: "nspanel01" + # nspanel_device_name: "NSPanel01" + # nspanel_ip: '1.2.3.4' + # nspanel_gateway: '1.2.3.4' + # nspanel_subnet: '255.255.255.0' + # nspanel_dns: '1.2.3.4' + # nspanel_domain: ".lan" + # nspanel_hotwater_charge: switch.wwontime + # nspanel_ha_heating_system_flame: binary_sensor.ems_boiler_burngas + # nspanel_ha_climate_thermostat_target_temp: sensor.xxxx + # nspanel_ha_climate_thermostat: climate.xxxxx + ###### END OF SECRETS BLOCK TO PASTE #################################################################### - wifi_ssid: !secret wifi_ssid # add in your esphome secrets file. - wifi_password: !secret wifi_password # add in your esphome secrets file. - ota_password: !secret ota_password # add in your esphome secrets file. -# nextion_update_url: !secret nextion_update_url_buero # add in your esphome secrets file. - nextion_update_url: "http://192.168.4.250:8123/local/nspanel/buero/nspanel_buero.tft" -###### EDIT THE BELOW ENTITIES FOR YOURS... ####################################################################### + + + node_name: !secret nspanel_node_name # $node_name + device_name: !secret nspanel_device_name # $device_name + ip: !secret nspanel_ip # static ip + gw: !secret nspanel_gateway + subnet: !secret nspanel_subnet + dns: !secret nspanel_dns + domain: !secret nspanel_domain + + wifi_ssid: !secret nspanel_wifi_ssid # add in your esphome secrets file. + wifi_password: !secret nspanel_wifi_password # add in your esphome secrets file. + ota_password: !secret nspanel_ota_password # add in your esphome secrets file. + nextion_update_url: !secret nspanel_update_url # add in your esphome secrets file. + webserver_password: !secret nspanel_web_password + ###### EDIT THE BELOW ENTITIES FOR YOURS... ####################################################################### #ha_weekday: sensor.wochentag ##### Sensor Wochentag generiert in HA (custom_configuration -> nspanel) ##### #ha_outdoor_temp: sensor.terrasse_garage_motion_sensor_temperature ##### Temperatur von Bewegungsmelder Outdoor (Zigbee2Mqtt) ##### #ha_hotwater_temp: sensor.hotwater_temp ##### Buderus Heizung Warmwasser Temperatur (Integration) ##### - ha_hotwater_charge: switch.charge - ha_heating_system_flame: binary_sensor.flamestatus ##### Buderus Heizung Flamen-Status (Integration) ##### - ha_climate_thermostat_target_temp: sensor.nspanel_buro_target_temp ##### Climate Thermostat generiert in HA (custom_configuration -> nspanel) ##### - ha_climate_thermostat: climate.nspanel_buro ##### Climate Thermostat generiert in HA (custom_configuration -> nspanel) ##### + ha_hotwater_charge: !secret nspanel_hotwater_charge + ha_heating_system_flame: !secret nspanel_ha_heating_system_flame ##### Buderus Heizung Flamen-Status (Integration) ##### + ha_climate_thermostat_target_temp: !secret nspanel_ha_climate_thermostat_target_temp ##### Climate Thermostat generiert in HA (custom_configuration -> nspanel) ##### + ha_climate_thermostat: !secret nspanel_ha_climate_thermostat ##### Climate Thermostat generiert in HA (custom_configuration -> nspanel) ##### #ha_humidity: sensor.kinderzimmer_lea_temperatur_sensor_humidity ######################################### # @@ -49,8 +76,8 @@ external_components: ##### ESP home CONFIG ##### esphome: - name: $node_name - comment: $device_name + name: ${node_name} + comment: ${device_name} ##### TYPE OF ESP BOARD ##### esp32: @@ -58,15 +85,31 @@ esp32: ##### WIFI SETUP ##### wifi: - ssid: $wifi_ssid - password: $wifi_password + ssid: ${wifi_ssid} + password: ${wifi_password} power_save_mode: none + manual_ip: + static_ip: ${ip} + gateway: ${gw} + subnet: ${subnet} + dns1: ${dns} + domain: ${domain} + # Enable fallback hotspot (captive portal) in case wifi connection fails + ap: + ssid: "${device_name}" + password: !secret esphome_wifi_ap_password captive_portal: +web_server: + port: 80 + auth: + username: admin + password: ${webserver_password} + ##### OTA (Over the air updates) password ##### ota: - password: $ota_password + password: ${ota_password} safe_mode: true reboot_timeout: 3min num_attempts: 3 @@ -116,7 +159,7 @@ uart: ###### A reboot button is always useful ##### button: - platform: restart - name: $device_name Restart + name: ${device_name} Restart id: restart_nspanel @@ -145,19 +188,19 @@ button: api: services: -##### SERVICE TO UPDATE THE HMI FILE ##### + ##### SERVICE TO UPDATE THE HMI FILE ##### - service: upload_tft then: - lambda: 'id(disp1)->upload_tft();' -##### Service to send a command "printf" directly to the display. Useful for testing ##### + ##### Service to send a command "printf" directly to the display. Useful for testing ##### - service: send_command_printf variables: cmd: string then: - lambda: 'id(disp1).send_command_printf("%s", cmd.c_str());' -##### Service to send a command "text_printf" directly to the display. Useful for testing ##### + ##### Service to send a command "text_printf" directly to the display. Useful for testing ##### - service: send_command_text_printf variables: component: string @@ -167,7 +210,7 @@ api: switch.is_on: nextion_init - lambda: 'id(disp1).set_component_text_printf(component.c_str(), "%s", message.c_str());' -##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + ##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### - service: send_command_value variables: component: string @@ -177,7 +220,7 @@ api: switch.is_on: nextion_init - lambda: 'id(disp1).set_component_value(component.c_str(), message);' -##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + ##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### - service: send_command_hide variables: component: string @@ -186,9 +229,7 @@ api: switch.is_on: nextion_init - lambda: 'id(disp1).hide_component(component.c_str());' - - -##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + ##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### - service: send_command_font_color variables: component: string @@ -197,7 +238,7 @@ api: - wait_until: switch.is_on: nextion_init - lambda: 'id(disp1).set_component_font_color(component.c_str(), message);' -##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### + ##### Service to send a command "component_value (Dualstate Button)" directly to the display. Useful for testing ##### - service: send_command_background_color variables: component: string @@ -229,48 +270,72 @@ api: globals: -##### Save Target Temp ##### + ##### Save Target Temp ##### - id: climate_target_temp_val_global type: float restore_value: true initial_value: '12' -##### Save Thermostat PIC Position ##### + ##### Save Thermostat PIC Position ##### - id: climate_slider_val_global type: int restore_value: true initial_value: '0' -##### Save Display Brightness for NSPanel reboot ##### + ##### Save Display Brightness for NSPanel reboot ##### - id: display_brightness_global type: int restore_value: true initial_value: '100' -##### Save Display DIM Brightness for NSPanel reboot + ##### Save Display DIM Brightness for NSPanel reboot - id: display_dim_brightness_global type: int restore_value: true initial_value: '10' -##### Save Display DIM Brightness for NSPanel reboot + ##### Save Display DIM Brightness for NSPanel reboot - id: sleep_modus_global type: int restore_value: true initial_value: '0' -##### Save State Heating Room ##### + ##### Save State Heating Room ##### - id: heating_room_global type: int restore_value: true initial_value: '0' -##### Save State HVAC ##### + ##### Save State HVAC ##### - id: hvac_mode_global type: int restore_value: true initial_value: '0' + ##### lastclick State ##### + - id: lastclick_global + type: std::string + restore_value: no + initial_value: '' + + ##### lastclick State ##### + - id: last_click_lightsettings + type: std::string + restore_value: no + initial_value: '' + + ##### lastclick State ##### + - id: last_click_coversettings + type: std::string + restore_value: no + initial_value: '' + + ##### lastclick State ##### + - id: last_click_weathersettings + type: std::string + restore_value: no + initial_value: '' + ######################################### # # @@ -293,32 +358,27 @@ globals: binary_sensor: -###### LEFT BUTTON BELOW DISPLAY TO TOGGLE RELAY##### + ###### LEFT BUTTON BELOW DISPLAY TO TOGGLE RELAY##### - platform: gpio - name: $device_name Left Button + name: ${device_name} Left Button pin: number: 14 inverted: true -# on_click: -# - switch.toggle: relay_1 + # on_click: + # - switch.toggle: relay_1 -##### RIGHT BUTTON BELOW DISPLAY TO TOGGLE RELAY ##### + ##### RIGHT BUTTON BELOW DISPLAY TO TOGGLE RELAY ##### - platform: gpio - name: $device_name Right Button + name: ${device_name} Right Button pin: number: 27 inverted: true -# on_click: -# - switch.toggle: relay_2 + # on_click: + # - switch.toggle: relay_2 - - - - - -##### THERMOSTAT - BUTTON DECREASES CLIMATE TARGET TEMPERATURE IN HA ##### + ##### THERMOSTAT - BUTTON DECREASES CLIMATE TARGET TEMPERATURE IN HA ##### - platform: nextion - name: $device_name Climate Target DOWN + name: ${device_name} Climate Target DOWN page_id: 6 component_id: 13 internal: true @@ -326,12 +386,12 @@ binary_sensor: - homeassistant.service: service: climate.set_temperature data_template: - entity_id: $ha_climate_thermostat + entity_id: ${ha_climate_thermostat} temperature: !lambda return id(climate_target_temp_val_global) - 0.5; -##### THERMOSTAT - BUTTON INCREASES CLIMATE TARGET TEMPERATURE IN HA ##### + ##### THERMOSTAT - BUTTON INCREASES CLIMATE TARGET TEMPERATURE IN HA ##### - platform: nextion - name: $device_name Climate Target UP + name: ${device_name} Climate Target UP page_id: 6 component_id: 14 internal: true @@ -339,12 +399,12 @@ binary_sensor: - homeassistant.service: service: climate.set_temperature data_template: - entity_id: $ha_climate_thermostat + entity_id: ${ha_climate_thermostat} temperature: !lambda return id(climate_target_temp_val_global) + 0.5; -##### THERMOSTAT - BUTTON ON / OFF Heating ##### + ##### THERMOSTAT - BUTTON ON / OFF Heating ##### - platform: nextion - name: $device_name Heating Room State + name: ${device_name} Heating Room State id: heating_room_state page_id: 6 component_id: 16 @@ -352,86 +412,86 @@ binary_sensor: on_click: - switch.toggle: hvac_mode -##### Display Brightness - BUTTON DECREASES Brightness ##### -# - platform: nextion -# name: $device_name Brightness DOWN -# page_id: 7 -# component_id: 12 -# internal: true -# on_click: -# - number.set: -# id: display_brightness -# value: !lambda return id(display_brightness_global) - 1; -# - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); -# - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); + ##### Display Brightness - BUTTON DECREASES Brightness ##### + # - platform: nextion + # name: $device_name Brightness DOWN + # page_id: 7 + # component_id: 12 + # internal: true + # on_click: + # - number.set: + # id: display_brightness + # value: !lambda return id(display_brightness_global) - 1; + # - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); + # - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); -##### Display Brightness - BUTTON INCREASES Brightness ##### -# - platform: nextion -# name: $device_name Brightness UP -# page_id: 7 -# component_id: 13 -# internal: true -# on_click: -# - number.set: -# id: display_brightness -# value: !lambda return id(display_brightness_global) + 1; -# - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); -# - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); + ##### Display Brightness - BUTTON INCREASES Brightness ##### + # - platform: nextion + # name: $device_name Brightness UP + # page_id: 7 + # component_id: 13 + # internal: true + # on_click: + # - number.set: + # id: display_brightness + # value: !lambda return id(display_brightness_global) + 1; + # - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); + # - lambda: id(disp1).send_command_printf("settings.brightslider.val=%i", id(display_brightness_global)); -##### Display DIM Brightness - BUTTON DECREASES Brightness ##### -# - platform: nextion -# name: $device_name Brightness DIM DOWN -# page_id: 7 -# component_id: 14 -# internal: true -# on_click: -# - number.set: -# id: display_dim_brightness -# value: !lambda return id(display_dim_brightness_global) - 1; -# - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); -# - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); - -##### Display DIM Brightness - BUTTON INCREASES Brightness ##### -# - platform: nextion -# name: $device_name Brightness DIM UP -# page_id: 7 -# component_id: 15 -# internal: true -# on_click: -# - number.set: -# id: display_dim_brightness -# value: !lambda return id(display_dim_brightness_global) + 1; -# - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); -# - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); + ##### Display DIM Brightness - BUTTON DECREASES Brightness ##### + # - platform: nextion + # name: $device_name Brightness DIM DOWN + # page_id: 7 + # component_id: 14 + # internal: true + # on_click: + # - number.set: + # id: display_dim_brightness + # value: !lambda return id(display_dim_brightness_global) - 1; + # - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + # - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); + + ##### Display DIM Brightness - BUTTON INCREASES Brightness ##### + # - platform: nextion + # name: $device_name Brightness DIM UP + # page_id: 7 + # component_id: 15 + # internal: true + # on_click: + # - number.set: + # id: display_dim_brightness + # value: !lambda return id(display_dim_brightness_global) + 1; + # - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + # - lambda: id(disp1).send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global)); -##### Restart NSPanel Button ##### + ##### Restart NSPanel Button ##### - platform: nextion - name: $device_name Restart + name: ${device_name} Restart page_id: 7 component_id: 10 internal: true on_click: - button.press: restart_nspanel -##### Sleep Modus NSPanel Button ##### + ##### Sleep Modus NSPanel Button ##### - platform: nextion - name: $device_name Sleep Modus + name: ${device_name} Sleep Modus page_id: 7 component_id: 5 internal: true on_click: - switch.toggle: sleep_modus -##### Hotwater Charge ##### + ##### Hotwater Charge ##### - platform: nextion - name: $device_name Hotwater Charge + name: ${device_name} Hotwater Charge page_id: 6 component_id: 21 on_click: - homeassistant.service: service: switch.toggle data: - entity_id: $ha_hotwater_charge + entity_id: ${ha_hotwater_charge} ######################################### # @@ -455,23 +515,33 @@ binary_sensor: sensor: -##### INTERNAL TEMPERATUE SENSOR, ADC VALUE ##### + ##### Uptime ##### + - platform: uptime + name: ${device_name} uptime + disabled_by_default: true + + ##### WIFI Signal stregth + - platform: wifi_signal + name: ${device_name} RSSI + update_interval: 60s + + ##### INTERNAL TEMPERATUE SENSOR, ADC VALUE ##### - platform: adc id: ntc_source pin: 38 update_interval: 10s attenuation: 11db -##### INTERNAL TEMPERATUE SENSOR, adc reading converted to resistance (calculation)##### + ##### INTERNAL TEMPERATUE SENSOR, adc reading converted to resistance (calculation)##### - platform: resistance id: resistance_sensor sensor: ntc_source configuration: DOWNSTREAM resistor: 11.2kOhm -##### INTERNAL TEMPERATUE SENSOR, resistance to temperature (calculation) ##### + ##### INTERNAL TEMPERATUE SENSOR, resistance to temperature (calculation) ##### - platform: ntc - name: $device_name Temperature + name: ${device_name} Temperature id: temp_nspanel sensor: resistance_sensor calibration: @@ -485,43 +555,43 @@ sensor: - lambda: id(disp1).set_component_text_printf("home.a03", "%.1f°", id(temp_nspanel).state); # onboard temp (thermostat temp) to home page. - lambda: id(disp1).set_component_text_printf("thermostat.a04", "%.1f", id(temp_nspanel).state); -##### TEMPERATURE Outdoor FROM HA ##### -# - platform: homeassistant -# id: temp_outdoor -# entity_id: $ha_outdoor_temp -# on_value: -# then: -# - wait_until: -# switch.is_on: nextion_init -# - lambda: id(disp1).set_component_text_printf("home.a06", "%.0f°", id(temp_outdoor).state); -# - lambda: id(disp1).set_component_text_printf("thermostat.a07", "%.0f°", id(temp_outdoor).state); + ##### TEMPERATURE Outdoor FROM HA ##### + # - platform: homeassistant + # id: temp_outdoor + # entity_id: $ha_outdoor_temp + # on_value: + # then: + # - wait_until: + # switch.is_on: nextion_init + # - lambda: id(disp1).set_component_text_printf("home.a06", "%.0f°", id(temp_outdoor).state); + # - lambda: id(disp1).set_component_text_printf("thermostat.a07", "%.0f°", id(temp_outdoor).state); -##### HUMIDITY Indoor FROM HA ##### -# - platform: homeassistant -# id: humidity -# entity_id: $ha_humidity -# on_value: -# then: -# - wait_until: -# switch.is_on: nextion_init -# - lambda: id(disp1).set_component_text_printf("home.a04", "%.0f°", id(humidity).state); + ##### HUMIDITY Indoor FROM HA ##### + # - platform: homeassistant + # id: humidity + # entity_id: $ha_humidity + # on_value: + # then: + # - wait_until: + # switch.is_on: nextion_init + # - lambda: id(disp1).set_component_text_printf("home.a04", "%.0f°", id(humidity).state); -##### THERMOSTAT HOT WATER TEMP FROM HA ##### -# - platform: homeassistant -# id: temp_hotwater -# entity_id: $ha_hotwater_temp -# on_value: -# then: -# - wait_until: -# switch.is_on: nextion_init -# - lambda: id(disp1).set_component_text_printf("home.a07", "%.1f°", id(temp_hotwater).state); -# - lambda: id(disp1).set_component_text_printf("thermostat.a08", "%.1f°", id(temp_hotwater).state); + ##### THERMOSTAT HOT WATER TEMP FROM HA ##### + # - platform: homeassistant + # id: temp_hotwater + # entity_id: $ha_hotwater_temp + # on_value: + # then: + # - wait_until: + # switch.is_on: nextion_init + # - lambda: id(disp1).set_component_text_printf("home.a07", "%.1f°", id(temp_hotwater).state); + # - lambda: id(disp1).set_component_text_printf("thermostat.a08", "%.1f°", id(temp_hotwater).state); -##### THERMOSTAT CLIMATE TARGET TEMPERATURE FROM HA ##### + ##### THERMOSTAT CLIMATE TARGET TEMPERATURE FROM HA ##### - platform: homeassistant id: ha_climate_target_temp - entity_id: $ha_climate_thermostat_target_temp + entity_id: ${ha_climate_thermostat_target_temp} on_value: then: - wait_until: @@ -657,10 +727,10 @@ sensor: id(disp1).send_command_printf("thermostat.a02.pic=%i", mid); id(disp1).send_command_printf("thermostat.a03.pic=%i", right); -###### TARGET TEMPERATURE GET VALUE FROM NEXTION CIRCLE SLIDER AND SET GLOBAL VARIBLE ##### + ###### TARGET TEMPERATURE GET VALUE FROM NEXTION CIRCLE SLIDER AND SET GLOBAL VARIBLE ##### - platform: nextion id: climate_circleslider - name: $device_name Climate circleslider + name: ${device_name} Climate circleslider variable_name: climateslider internal: true on_value: @@ -733,13 +803,13 @@ sensor: - homeassistant.service: service: climate.set_temperature data_template: - entity_id: $ha_climate_thermostat + entity_id: ${ha_climate_thermostat} temperature: !lambda return id(climate_target_temp_val_global); -###### Display Brightness GET VALUE FROM NSPanel SLIDER ##### + ###### Display Brightness GET VALUE FROM NSPanel SLIDER ##### - platform: nextion id: brightslider - name: $device_name brightness Slider + name: ${device_name} brightness Slider variable_name: brightslider internal: true on_value: @@ -752,10 +822,10 @@ sensor: # send text field percentage of current_lightslider_val - lambda: id(disp1).set_component_text_printf("settings.a03", "%i", id(display_brightness_global)); -###### Display DIM Brightness GET VALUE FROM NSPanel SLIDER ##### + ###### Display DIM Brightness GET VALUE FROM NSPanel SLIDER ##### - platform: nextion id: dimslider - name: $device_name dim brightness slider + name: ${device_name} dim brightness slider variable_name: dimslider internal: true on_value: @@ -768,6 +838,17 @@ sensor: # send text field percentage of current_lightslider_val - lambda: id(disp1).set_component_text_printf("settings.a04", "%i", id(display_dim_brightness_global)); + ###### Send current page to HA + - platform: nextion + id: current_page + name: "${device_name} Current Page" + variable_name: dp + update_interval: 1s + accuracy_decimals: 0 + filters: + - delta: 1.0 + - lambda: return int(x); + ######################################### # @@ -791,62 +872,126 @@ sensor: text_sensor: -##### ESPhome version used to compile the app ##### + ##### ESPhome version used to compile the app ##### - platform: version - name: $device_name ESPhome Version + name: ${device_name} ESPhome Version + disabled_by_default: true -##### SUN SENSOR FROM HA ##### + - platform: wifi_info + ip_address: + name: ${device_name} IP + disabled_by_default: true + ssid: + name: ${device_name} SSID + disabled_by_default: true + bssid: + name: ${device_name} BSSID + disabled_by_default: true + + ##### SUN SENSOR FROM HA ##### - platform: homeassistant id: sun_sun entity_id: sun.sun -##### last click sensor, the main action variable - push to HA ##### + ##### last click sensor, the main action variable - push to HA ##### - platform: nextion nextion_id: disp1 - name: $device_name last click - id: disp1_last_click_va + name: ${device_name} Last Click + id: disp1_last_click_nextion update_interval: 50ms component_name: lastclick + internal: false + filters: + - lambda: |- + if (strcmp(x.c_str(), id(lastclick_global).c_str()) != 0) { + return x; + } else { + return {}; + } + on_value: + then: + - globals.set: + id: lastclick_global + value: !lambda return x; -##### last click lightsettings page, the main action variable - push to HA ##### + ##### last click lightsettings page, the main action variable - push to HA ##### - platform: nextion nextion_id: disp1 - name: $device_name last click lightsettings + name: ${device_name} last click lightsettings id: disp1_last_click_lightsettings update_interval: 50ms component_name: lightsetting + internal: false + filters: + - lambda: |- + if (strcmp(x.c_str(), id(last_click_lightsettings).c_str()) != 0) { + return x; + } else { + return {}; + } + on_value: + then: + - globals.set: + id: last_click_lightsettings + value: !lambda return x; -##### last click coversettings page, the main action variable - push to HA ##### + ##### last click coversettings page, the main action variable - push to HA ##### - platform: nextion nextion_id: disp1 - name: $device_name last click coversettings + name: ${device_name} last click coversettings id: disp1_last_click_coversettings update_interval: 50ms component_name: coversetting + internal: false + filters: + - lambda: |- + if (strcmp(x.c_str(), id(last_click_coversettings).c_str()) != 0) { + return x; + } else { + return {}; + } + on_value: + then: + - globals.set: + id: last_click_coversettings + value: !lambda return x; -##### last click weather page, the main action variable - push to HA ##### + ##### last click weather page, the main action variable - push to HA ##### - platform: nextion nextion_id: disp1 - name: $device_name last click weathersettings + name: ${device_name} last click weathersettings id: disp1_last_click_weathersettings update_interval: 50ms component_name: weathersetting + internal: false + filters: + - lambda: |- + if (strcmp(x.c_str(), id(last_click_weathersettings).c_str()) != 0) { + return x; + } else { + return {}; + } + on_value: + then: + - globals.set: + id: last_click_weathersettings + value: !lambda return x; -##### Wochentag SENSOR FROM HA ##### -# - platform: homeassistant -# id: weekday -# entity_id: $ha_weekday -# on_value: -# then: -# - wait_until: -# switch.is_on: nextion_init -# - lambda: id(disp1).set_component_text_printf("home.a02", "%s", id(weekday).state.c_str()); + ##### Wochentag SENSOR FROM HA ##### + # - platform: homeassistant + # id: weekday + # entity_id: $ha_weekday + # on_value: + # then: + # - wait_until: + # switch.is_on: nextion_init + # - lambda: id(disp1).set_component_text_printf("home.a02", "%s", id(weekday).state.c_str()); -##### HEATING System ICON ##### + ##### HEATING System ICON ##### - platform: homeassistant - entity_id: $ha_heating_system_flame + entity_id: ${ha_heating_system_flame} name: "Heating System" id: heating_system on_value: @@ -861,9 +1006,9 @@ text_sensor: id(disp1).send_command_printf("home.a50.pic=%i", symbol); id(disp1).send_command_printf("thermostat.a50.pic=%i", symbol); -##### Hotwater Charge ICON ##### + ##### Hotwater Charge ICON ##### - platform: homeassistant - entity_id: $ha_hotwater_charge + entity_id: ${ha_hotwater_charge} name: "Hotwater Charge" id: hotwater_charge on_value: @@ -951,16 +1096,24 @@ text_sensor: switch: -##### global variable to keep track on whether the Nextion display is ready or not. Delays initial info from HA to the display ##### + # ##### Restart switch ###### + # - platform: restart + # name: ${device_name} Restart + + # ##### Restart in safe-mode ##### + # - platform: safe_mode + # name: ${device_name} Restart (Safe Mode) + + ##### global variable to keep track on whether the Nextion display is ready or not. Delays initial info from HA to the display ##### - platform: template - name: $device_name Nextion inited + name: ${device_name} Nextion inited id: nextion_init entity_category: config restore_state: false assumed_state: off optimistic: true -##### UPDATE TFT DISPLAY ##### + ##### UPDATE TFT DISPLAY ##### - platform: template name: Update TFT display id: tft_update @@ -969,44 +1122,44 @@ switch: - lambda: id(disp1).upload_tft(); - switch.turn_off: tft_update -##### PHYSICAL SWITCH 1 ##### + ##### PHYSICAL SWITCH 1 ##### - platform: gpio - name: $device_name Relay 1 + name: ${device_name} Relay 1 id: relay_1 pin: number: 22 -##### PHYSICAL SWITCH 2 ###### + ##### PHYSICAL SWITCH 2 ###### - platform: gpio - name: $device_name Relay 2 + name: ${device_name} Relay 2 id: relay_2 pin: number: 19 - on_turn_off: - - globals.set: - id: heating_room_global - value: '0' - - lambda: |- - if (id(hvac_mode_global) == 0) - { - id(disp1).send_command_printf("thermostat.a06.pic=49"); - } else if (id(hvac_mode_global) == 1) { - id(disp1).send_command_printf("thermostat.a06.pic=50"); - } - - lambda: id(disp1).send_command_printf("home.a52.pic=53"); - - lambda: id(disp1).send_command_printf("thermostat.a52.pic=53"); - on_turn_on: - - globals.set: - id: heating_room_global - value: '1' - - lambda: id(disp1).send_command_printf("thermostat.a06.pic=51"); - - lambda: id(disp1).send_command_printf("home.a52.pic=66"); - - lambda: id(disp1).send_command_printf("thermostat.a52.pic=66"); + # on_turn_off: + # - globals.set: + # id: heating_room_global + # value: '0' + # - lambda: |- + # if (id(hvac_mode_global) == 0) + # { + # id(disp1).send_command_printf("thermostat.a06.pic=49"); + # } else if (id(hvac_mode_global) == 1) { + # id(disp1).send_command_printf("thermostat.a06.pic=50"); + # } + # - lambda: id(disp1).send_command_printf("home.a52.pic=53"); + # - lambda: id(disp1).send_command_printf("thermostat.a52.pic=53"); + # on_turn_on: + # - globals.set: + # id: heating_room_global + # value: '1' + # - lambda: id(disp1).send_command_printf("thermostat.a06.pic=51"); + # - lambda: id(disp1).send_command_printf("home.a52.pic=66"); + # - lambda: id(disp1).send_command_printf("thermostat.a52.pic=66"); -##### Switch Climate HVAC Mode ##### + ##### Switch Climate HVAC Mode ##### - platform: template device_class: switch - name: $device_name hvac Mode + name: ${device_name} hvac Mode id: hvac_mode restore_state: true assumed_state: false @@ -1044,9 +1197,9 @@ switch: - lambda: id(disp1).send_command_printf("home.a51.pic=65"); - lambda: id(disp1).send_command_printf("thermostat.a51.pic=65"); -##### DISPLAY ALWAYS ON ##### + ##### DISPLAY ALWAYS ON ##### - platform: gpio - name: $device_name Screen Power + name: ${device_name} Screen Power id: screen_power entity_category: config pin: @@ -1055,10 +1208,10 @@ switch: restore_mode: ALWAYS_ON internal: true -##### Switch Display Sleep Modus ##### + ##### Switch Display Sleep Modus ##### - platform: template device_class: switch - name: $device_name Sleep Modus + name: ${device_name} Sleep Modus id: sleep_modus restore_state: true assumed_state: false @@ -1098,9 +1251,9 @@ switch: number: -##### SCREEN BRIGHTNESS ##### + ##### SCREEN BRIGHTNESS ##### - platform: template - name: $device_name Display Brightness + name: ${device_name} Display Brightness id: display_brightness entity_category: config unit_of_measurement: '%' @@ -1117,9 +1270,9 @@ number: id: display_brightness_global value: !lambda 'return int(x);' -##### SCREEN BRIGHTNESS DIMMED DOWN ##### + ##### SCREEN BRIGHTNESS DIMMED DOWN ##### - platform: template - name: $device_name Display Brightness Dimdown + name: ${device_name} Display Brightness Dimdown id: display_dim_brightness entity_category: config unit_of_measurement: '%' @@ -1159,7 +1312,7 @@ display: - platform: nextion id: disp1 uart_id: tf_uart - tft_url: $nextion_update_url + tft_url: ${nextion_update_url} on_setup: then: - lambda: id(disp1).send_command_printf("page 9"); ##### CHANGE! - Loading page #####