Retry when Upload TFT fails

This commit is contained in:
Edward Firmo
2023-11-03 18:05:43 +01:00
parent a80a2b7985
commit 5a782bbe45

View File

@@ -90,15 +90,52 @@ script:
- lambda: |-
static const char *const TAG = "script.upload_tft";
ESP_LOGVV(TAG, "Starting...");
ESP_LOGV(TAG, "Setting Nextion protocol reparse mode to passive");
id(disp1).set_protocol_reparse_mode(false);
ESP_LOGV(TAG, "Setting TFT url: %s", url.c_str());
id(disp1)->set_tft_url(url.c_str());
ESP_LOGV(TAG, "Calling upload from Nextion component");
id(disp1)->upload_tft();
ESP_LOGVV(TAG, "Finished");
unsigned int upload_tries = 0;
while (upload_tries < 5) {
upload_tries++;
ESP_LOGD(TAG, "Try #%i", upload_tries);
ESP_LOGD(TAG, "Setting Nextion protocol reparse mode to passive");
id(disp1).set_protocol_reparse_mode(false);
ESP_LOGV(TAG, "Calling upload from Nextion component");
if (id(disp1)->upload_tft()) id(restart_nspanel).press();
ESP_LOGD(TAG, "Turn off Nextion");
id(screen_power).turn_off();
#ifdef ARDUINO
delay(1500);
#elif defined(ESP_PLATFORM)
vTaskDelay(pdMS_TO_TICKS(1500));
#endif
ESP_LOGD(TAG, "Turn on Nextion");
id(screen_power).turn_on();
#ifdef ARDUINO
delay(1500);
#elif defined(ESP_PLATFORM)
vTaskDelay(pdMS_TO_TICKS(1500));
#endif
}
ESP_LOGE(TAG, "TFT upload failed.");
ESP_LOGD(TAG, "Turn off Nextion");
id(screen_power).turn_off();
#ifdef ARDUINO
delay(1500);
#elif defined(ESP_PLATFORM)
vTaskDelay(pdMS_TO_TICKS(1500));
#endif
ESP_LOGD(TAG, "Turn on Nextion");
id(screen_power).turn_on();
ESP_LOGD(TAG, "Restarting esphome");
#ifdef ARDUINO
delay(1500);
#elif defined(ESP_PLATFORM)
vTaskDelay(pdMS_TO_TICKS(1500));
#endif
id(restart_nspanel).press();
ESP_LOGV(TAG, "Finished!");
- id: upload_tft_working
- id: upload_tft_legacy # Not in use - To be removed when Nextion component is updated
mode: single
parameters:
url: string