diff --git a/advanced/esphome/nspanel_esphome_addon_upload_tft.yaml b/advanced/esphome/nspanel_esphome_addon_upload_tft.yaml index 74307c9..877d24a 100644 --- a/advanced/esphome/nspanel_esphome_addon_upload_tft.yaml +++ b/advanced/esphome/nspanel_esphome_addon_upload_tft.yaml @@ -383,17 +383,6 @@ script: - lambda: !lambda return (!id(tft_is_valid)); timeout: 1s - ### Attempt twice with upload engine from v4.1.4 (115200bps) when TFT isn't detected - # - if: - # condition: - # - lambda: !lambda return (not id(tft_is_valid)); - # then: - # - script.execute: - # id: upload_tft_sequence_attempt_v414 - # url: !lambda return url.c_str(); - # baud_rate: 115200 - # - script.wait: upload_tft_sequence_attempt_v414 - ### Attempt twice at the target baud rate - script.execute: id: upload_tft_sequence_attempt @@ -401,16 +390,26 @@ script: - script.wait: upload_tft_sequence_attempt ### Attempt twice at the original baud rate - - script.execute: - id: upload_tft_sequence_attempt - baud_rate: !lambda return id(baud_rate_original); - - script.wait: upload_tft_sequence_attempt + - if: + condition: + - lambda: |- + return (id(baud_rate_original) != id(baud_rate_target)); + then: + - script.execute: + id: upload_tft_sequence_attempt + baud_rate: !lambda return id(baud_rate_original); + - script.wait: upload_tft_sequence_attempt ### Attempt twice at the Nextion's default baud rate (115200bps) - - script.execute: - id: upload_tft_sequence_attempt - baud_rate: 115200 - - script.wait: upload_tft_sequence_attempt + - if: + condition: + - lambda: |- + return (id(baud_rate_original) != 115200 and id(baud_rate_target) != 115200); + then: + - script.execute: + id: upload_tft_sequence_attempt + baud_rate: 115200 + - script.wait: upload_tft_sequence_attempt ### Attempt twice with upload engine from v4.1.4 (115200bps) - script.execute: @@ -419,15 +418,6 @@ script: baud_rate: 115200 - script.wait: upload_tft_sequence_attempt_v414 - ### Exit reparse and attempt twice again - - script.execute: - id: report_upload_progress - message: "Exiting reparse mode" - - script.execute: - id: upload_tft_sequence_attempt - baud_rate: 115200 - - script.wait: upload_tft_sequence_attempt - ### Restart Nextion and attempt twice again at default baud rate (115200bps) - script.execute: id: report_upload_progress diff --git a/advanced/esphome/nspanel_esphome_core.yaml b/advanced/esphome/nspanel_esphome_core.yaml index 646bf4c..c227697 100644 --- a/advanced/esphome/nspanel_esphome_core.yaml +++ b/advanced/esphome/nspanel_esphome_core.yaml @@ -762,12 +762,6 @@ globals: restore_value: false initial_value: 'false' - ##### Is blueprint updated ##### - - id: is_blueprint_updated - type: bool - restore_value: false - initial_value: 'false' - ##### Is global settings loaded ##### - id: is_global_settings_loaded type: bool @@ -1082,6 +1076,23 @@ binary_sensor: then: - script.execute: watchdog + - name: Blueprint + id: blueprint_status + platform: template + device_class: connectivity + publish_initial_state: false + entity_category: diagnostic + icon: mdi:link-variant + internal: false + disabled_by_default: false + on_state: + then: + - lambda: |- + static const char *const TAG = "binary_sensor.blueprint_status"; + ESP_LOGD(TAG, "Blueprint synced: %s", x ? "True" : "False"); + // Update api value on Nextion + disp1->send_command_printf("api=%i", x ? 1 : 0); + ##### START - BUTTON CONFIGURATION ##### button: ###### Factory Reset button ##### @@ -1749,7 +1760,7 @@ text_sensor: entity_category: diagnostic icon: mdi:tag-text-outline internal: false - update_interval: never + #update_interval: never lambda: |- return {"${version}"}; on_value: @@ -1932,7 +1943,7 @@ script: page_screensaver->execute(); id(is_global_settings_loaded) = true; - id(is_blueprint_updated) = true; + blueprint_status->publish_state(true); disp1->send_command_printf("api=1"); if (current_page->state != "boot") { @@ -2424,12 +2435,12 @@ script: - lambda: |- if (nextion_init->state) { // Update Wi-Fi icon color - disp1->set_component_font_color("home.wifi_icon", (id(is_blueprint_updated)) ? (wifi_rssi->state > -70 ? 33808 : 64992) : 63488); + disp1->set_component_font_color("home.wifi_icon", (blueprint_status->state) ? (wifi_rssi->state > -70 ? 33808 : 64992) : 63488); // Update Wi-Fi icon disp1->set_component_text_printf("home.wifi_icon", "%s", wifi_component->is_connected() ? (api_server->is_connected() ? - (id(is_blueprint_updated) ? "\uE5A8" : // mdi:wifi - All right! + (blueprint_status->state ? "\uE5A8" : // mdi:wifi - All right! "\uE7CF") : // mdi:home-assistant - Blueprint is out "\uF256") : // mdi:api-off "\uE5A9"); // mdi:wifi-off @@ -3191,13 +3202,13 @@ script: } // report API status - bool previous_blueprint_status = id(is_blueprint_updated); + bool previous_blueprint_status = blueprint_status->state; bool api_connected = api_server->is_connected(); if (api_connected) { ESP_LOGI(TAG, "API: Connected"); } else { ESP_LOGW(TAG, "API: DISCONNECTED"); - id(is_blueprint_updated) = false; + blueprint_status->publish_state(false); if (current_page->state != "blank" and current_page->state != "boot" and current_page->state != "home" and @@ -3210,8 +3221,8 @@ script: } // Report blueprint version - id(is_blueprint_updated) = id(is_blueprint_updated) and wifi_connected and api_connected and (not version_blueprint->state.empty()); - if (id(is_blueprint_updated)) + blueprint_status->publish_state(blueprint_status->state and wifi_connected and api_connected and (not version_blueprint->state.empty())); + if (blueprint_status->state) ESP_LOGI(TAG, "Blueprint: %s", version_blueprint->state.c_str()); else { ESP_LOGW(TAG, "Blueprint: %s", (wifi_connected and api_connected) ? "Pending" : "DISCONNECTED"); @@ -3259,8 +3270,6 @@ script: } if (nextion_init->state) { ESP_LOGI(TAG, " Init: True"); - // Update api value on Nextion - if (id(is_blueprint_updated) != previous_blueprint_status) disp1->send_command_printf("api=%i", id(is_blueprint_updated) ? 1 : 0); } else ESP_LOGW(TAG, " Init: False"); if (version_tft->state.empty())