Fix: button not updating with external changes (#721)

* Fix: button not updating with external changes

* Removed debug code

* Revert trigger_id change
This commit is contained in:
Edward Firmo
2023-04-24 20:52:05 +02:00
committed by GitHub
parent 8ca88755c1
commit a252ddf74e

View File

@@ -4646,7 +4646,8 @@ trigger:
##### CLOSE - Trigger ##### ##### CLOSE - Trigger #####
############################################################# #############################################################
condition: '{{ is_state(nextion_inited, "on") | default(false) if nextion_inited is string else false }}' condition:
- '{{ is_state(nextion_inited, "on") | default(false) if nextion_inited is string else false }}'
############################################################# #############################################################
##### START - Action ##### ##### START - Action #####
@@ -5743,7 +5744,7 @@ action:
## PAGE LIGHTSETTINGS ## ## PAGE LIGHTSETTINGS ##
- alias: Light settings page - alias: Light settings page
conditions: '{{ nspanel_event.page == nextion.pages.light }}' conditions: '{{ nspanel_event.page == nextion.pages.light }}'
sequence: sequence: &refresh_page_lightsettings
- *variables-settings_entity - *variables-settings_entity
- if: '{{ settings_entity_domain == "light" }}' - if: '{{ settings_entity_domain == "light" }}'
then: then:
@@ -5844,7 +5845,7 @@ action:
## PAGE COVERSETTINGS ## ## PAGE COVERSETTINGS ##
- alias: Cover settings page - alias: Cover settings page
conditions: '{{ nspanel_event.page == nextion.pages.cover }}' conditions: '{{ nspanel_event.page == nextion.pages.cover }}'
sequence: sequence: &refresh_page_coversettings
##### COVER - OPEN / CLOSE ##### ##### COVER - OPEN / CLOSE #####
- *variables-settings_entity - *variables-settings_entity
- if: '{{ settings_entity_domain == "cover" }}' - if: '{{ settings_entity_domain == "cover" }}'
@@ -5950,7 +5951,7 @@ action:
## PAGE CLIMATE ## ## PAGE CLIMATE ##
- alias: Climate page - alias: Climate page
conditions: '{{ nspanel_event.page == nextion.pages.climate }}' conditions: '{{ nspanel_event.page == nextion.pages.climate }}'
sequence: sequence: &refresh_page_climate
- *variables-settings_entity - *variables-settings_entity
- variables: - variables:
settings_entity_dict: > settings_entity_dict: >
@@ -6953,8 +6954,8 @@ action:
- conditions: '{{ nspanel_event.page in nextion.pages.entitypages }}' - conditions: '{{ nspanel_event.page in nextion.pages.entitypages }}'
sequence: *refresh-entity_pages sequence: *refresh-entity_pages
##### UPDATE BUTTONS AND PAGES - button page / lightsettings page / coversettings page ##### ##### UPDATE BUTTONS PAGES - button page / lightsettings page / coversettings page #####
- alias: 'Update buttons & pages' - alias: 'Buttons entity updated'
conditions: conditions:
- condition: trigger - condition: trigger
id: id:
@@ -6991,12 +6992,17 @@ action:
- current_state_entity31 - current_state_entity31
- current_state_entity32 - current_state_entity32
- '{{ trigger.to_state.state not in ["unavailable", "unknown", "", None] }}' - '{{ trigger.to_state.state not in ["unavailable", "unknown", "", None] }}'
- condition: or
conditions:
- '{{ nspanel_event.page in nextion.pages.buttonpages }}'
- '{{ nspanel_event.page in [nextion.pages.light, nextion.pages.cover, nextion.pages.climate] }}'
sequence: sequence:
- alias: choose current page - choose:
choose: - alias: "Button pages"
- alias: buttonpage conditions:
conditions: '{{ nspanel_event.page in nextion.pages.buttonpages }}' - '{{ nspanel_event.page in nextion.pages.buttonpages }}'
sequence: sequence: #*refresh_page_buttonpage
- *variables-page_buttons - *variables-page_buttons
- repeat: - repeat:
for_each: > for_each: >
@@ -7004,34 +7010,26 @@ action:
button_pages_buttons button_pages_buttons
| selectattr("page", "defined") | selectattr("page", "defined")
| selectattr("page", "eq", nspanel_event.page) | selectattr("page", "eq", nspanel_event.page)
| selectattr("component", "defined")
| selectattr("component", "eq", nspanel_event.component)
| selectattr("entity", "defined") | selectattr("entity", "defined")
| selectattr("entity", "eq", trigger.entity_id) | selectattr("entity", "eq", trigger.entity_id)
| list | list
}} }}
sequence: *display-button_page_button sequence: *display-button_page_button
- alias: page climate - alias: 'Light settings page'
conditions: '{{ nspanel_event.page == nextion.pages.climate and trigger.entity_id is match "climate." }}' conditions:
sequence: - '{{ nspanel_event.page == nextion.pages.light }}'
- *variables-settings_entity - '{{ trigger.entity_id is match "light." }}'
- if: '{{ trigger.entity_id == settings_entity_dict.entity }}' sequence: *refresh_page_lightsettings
then: - alias: 'Cover settings page'
- variables: conditions:
hvac_mode: '{{ states(settings_entity_dict.entity) | default("unavailable") if settings_entity_dict.entity is string else "unavailable" }}' - '{{ nspanel_event.page == nextion.pages.cover }}'
heating_state: '{{ mui[language].climate.states.off if hvac_mode == "off" else mui[language].climate.states.on }}' - '{{ trigger.entity_id is match "cover." }}'
heating_bt_pic: '{{ nextion.pics.heating.button.off if hvac_mode == "off" else nextion.pics.heating.button.on }}' sequence: *refresh_page_coversettings
- service: '{{ nextion.commands.text_printf }}' - alias: 'Climate page'
data: conditions:
component: heating_state - '{{ nspanel_event.page == nextion.pages.climate }}'
message: '{{ heating_state }}' - '{{ trigger.entity_id is match "climate." }}'
continue_on_error: true sequence: *refresh_page_climate
- *delay-default
- service: '{{ nextion.commands.printf }}'
data:
cmd: heating_bt_pic.pic={{ heating_bt_pic }}
continue_on_error: true
########## TRIGGER - HOME PAGE ########### ########## TRIGGER - HOME PAGE ###########