Prepares for esp-idf
I haven't decided for `esp-idf` framework yet, but wanna play a bit as it looks to be saving some memory, so I want to prepare the system to support both frameworks (together with `arduino`).
This commit is contained in:
@@ -100,6 +100,18 @@ uart:
|
|||||||
rx_pin: 17
|
rx_pin: 17
|
||||||
baud_rate: 115200
|
baud_rate: 115200
|
||||||
|
|
||||||
|
##### HTTP REQUEST #####
|
||||||
|
# Enables http client #
|
||||||
|
# for upload_tft. #
|
||||||
|
# pr#3256 adds esp-idf #
|
||||||
|
########################
|
||||||
|
external_components:
|
||||||
|
- source: github://pr#3256
|
||||||
|
components:
|
||||||
|
- http_request
|
||||||
|
http_request:
|
||||||
|
id: httpclient
|
||||||
|
|
||||||
##### Keeps time display updated #####
|
##### Keeps time display updated #####
|
||||||
time:
|
time:
|
||||||
- id: time_provider
|
- id: time_provider
|
||||||
@@ -476,7 +488,7 @@ api:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((page_icon.c_str() != std::string()) and (page_icon.c_str() != ""))
|
if ((page_icon != std::string()) and (page_icon != ""))
|
||||||
id(disp1).set_component_text_printf("icon_state", "%s", page_icon.c_str());
|
id(disp1).set_component_text_printf("icon_state", "%s", page_icon.c_str());
|
||||||
id(set_component_color).execute("icon_state", page_icon_color, {});
|
id(set_component_color).execute("icon_state", page_icon_color, {});
|
||||||
}
|
}
|
||||||
@@ -1617,7 +1629,7 @@ display:
|
|||||||
- id: disp1
|
- id: disp1
|
||||||
platform: nextion
|
platform: nextion
|
||||||
uart_id: tf_uart
|
uart_id: tf_uart
|
||||||
tft_url: ${nextion_update_url}
|
#tft_url: ${nextion_update_url}
|
||||||
on_page: # I couldn't make this trigger to work, so used text_sensor nspanelevent and localevent instead
|
on_page: # I couldn't make this trigger to work, so used text_sensor nspanelevent and localevent instead
|
||||||
then:
|
then:
|
||||||
- lambda: ESP_LOGW("display.disp1.on_page", "NEXTION PAGE CHANGED");
|
- lambda: ESP_LOGW("display.disp1.on_page", "NEXTION PAGE CHANGED");
|
||||||
@@ -2244,6 +2256,7 @@ script:
|
|||||||
- lambda: |-
|
- lambda: |-
|
||||||
ESP_LOGD("script.upload_tft", "Starting...");
|
ESP_LOGD("script.upload_tft", "Starting...");
|
||||||
|
|
||||||
|
#ifdef ARDUINO
|
||||||
std::vector<uint8_t> buffer_;
|
std::vector<uint8_t> buffer_;
|
||||||
|
|
||||||
bool is_updating_ = false;
|
bool is_updating_ = false;
|
||||||
@@ -2351,12 +2364,13 @@ script:
|
|||||||
int tries = 1;
|
int tries = 1;
|
||||||
int code;
|
int code;
|
||||||
bool begin_status;
|
bool begin_status;
|
||||||
while (tries <= 5) {
|
while (tries <= 10) {
|
||||||
begin_status = http->begin(url.c_str());
|
begin_status = http->begin(url.c_str());
|
||||||
|
|
||||||
++tries;
|
++tries;
|
||||||
if (!begin_status) {
|
if (!begin_status) {
|
||||||
ESP_LOGD("script.upload_tft.upload_by_chunks", "Connection failed");
|
ESP_LOGD("script.upload_tft.upload_by_chunks", "Connection failed");
|
||||||
|
delay(1000);
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2366,13 +2380,13 @@ script:
|
|||||||
if (code == 200 || code == 206) {
|
if (code == 200 || code == 206) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ESP_LOGW("script.upload_tft.upload_by_chunks", "HTTP Request failed; URL: %s; Error: %s, retries(%d/5)", url.c_str(),
|
ESP_LOGW("script.upload_tft.upload_by_chunks", "HTTP Request failed; URL: %s; Error: %s, retries(%d/10)", url.c_str(),
|
||||||
HTTPClient::errorToString(code).c_str(), tries);
|
HTTPClient::errorToString(code).c_str(), tries);
|
||||||
http->end();
|
http->end();
|
||||||
delay(500);
|
delay(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tries > 5) {
|
if (tries > 10) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2463,7 +2477,6 @@ script:
|
|||||||
http.setTimeout(15000); // Yes 15 seconds.... Helps 8266s along
|
http.setTimeout(15000); // Yes 15 seconds.... Helps 8266s along
|
||||||
http.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
|
http.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
|
||||||
bool begin_status = http.begin(url.c_str());
|
bool begin_status = http.begin(url.c_str());
|
||||||
|
|
||||||
if (!begin_status) {
|
if (!begin_status) {
|
||||||
is_updating_ = false;
|
is_updating_ = false;
|
||||||
ESP_LOGD("script.upload_tft.upload_tft", "Connection failed");
|
ESP_LOGD("script.upload_tft.upload_tft", "Connection failed");
|
||||||
@@ -2606,18 +2619,21 @@ script:
|
|||||||
if (id(tf_uart).get_baud_rate() == 115200) new_baud_rate = 921600; else new_baud_rate = 115200;
|
if (id(tf_uart).get_baud_rate() == 115200) new_baud_rate = 921600; else new_baud_rate = 115200;
|
||||||
ESP_LOGD("script.upload_tft", "Trying again at %i bps", new_baud_rate);
|
ESP_LOGD("script.upload_tft", "Trying again at %i bps", new_baud_rate);
|
||||||
if (upload_tft(url, new_baud_rate)) id(restart_nspanel).press();
|
if (upload_tft(url, new_baud_rate)) id(restart_nspanel).press();
|
||||||
|
#elif defined(ESP_PLATFORM) // esp-idf
|
||||||
|
// ESP-IDF-specific code
|
||||||
|
#endif
|
||||||
|
ESP_LOGE("script.upload_tft", "TFT upload failed.");
|
||||||
ESP_LOGD("script.upload_tft", "Turn off Nextion");
|
ESP_LOGD("script.upload_tft", "Turn off Nextion");
|
||||||
id(screen_power).turn_off();
|
id(screen_power).turn_off();
|
||||||
delay(1500);
|
delay(1500);
|
||||||
ESP_LOGD("script.upload_tft", "Turn on Nextion");
|
//ESP_LOGD("script.upload_tft", "Turn on Nextion");
|
||||||
id(screen_power).turn_on();
|
//id(screen_power).turn_on();
|
||||||
delay(1500);
|
//delay(1500);
|
||||||
ESP_LOGE("script.upload_tft", "TFT upload failed.");
|
//ESP_LOGW("script.upload_tft", "Trying Nextion standard upload");
|
||||||
ESP_LOGW("script.upload_tft", "Trying Nextion standard upload");
|
//id(disp1)->set_tft_url(url.c_str());
|
||||||
id(disp1)->set_tft_url(url.c_str());
|
//id(disp1)->upload_tft();
|
||||||
id(disp1)->upload_tft();
|
|
||||||
ESP_LOGD("script.upload_tft", "Restarting esphome");
|
ESP_LOGD("script.upload_tft", "Restarting esphome");
|
||||||
ESP.restart();
|
delay(1500);
|
||||||
id(restart_nspanel).press();
|
id(restart_nspanel).press();
|
||||||
|
|
||||||
ESP_LOGD("script.upload_tft", "Finished!");
|
ESP_LOGD("script.upload_tft", "Finished!");
|
||||||
|
|||||||
Reference in New Issue
Block a user