ESPHome Watchdog
This implements a watchdog script with complementing the scripts `on_setup` and `refresh_wifi_icon` to be checking the components every minute and taking proper actions (when possible). Solves #1464
This commit is contained in:
@@ -71,6 +71,8 @@ script:
|
|||||||
- lambda: |-
|
- lambda: |-
|
||||||
static const char *const TAG = "script.upload_tft_new";
|
static const char *const TAG = "script.upload_tft_new";
|
||||||
ESP_LOGVV(TAG, "Starting...");
|
ESP_LOGVV(TAG, "Starting...");
|
||||||
|
id(is_uploading_tft) = true;
|
||||||
|
|
||||||
nextion_status->execute();
|
nextion_status->execute();
|
||||||
|
|
||||||
auto delay_seconds_ = [](int seconds) {
|
auto delay_seconds_ = [](int seconds) {
|
||||||
@@ -187,6 +189,7 @@ script:
|
|||||||
delay_seconds_(2);
|
delay_seconds_(2);
|
||||||
App.safe_reboot();
|
App.safe_reboot();
|
||||||
|
|
||||||
|
id(is_uploading_tft) = false;
|
||||||
ESP_LOGD(TAG, "Finished!");
|
ESP_LOGD(TAG, "Finished!");
|
||||||
|
|
||||||
- id: upload_tft
|
- id: upload_tft
|
||||||
@@ -197,6 +200,8 @@ script:
|
|||||||
- lambda: |-
|
- lambda: |-
|
||||||
static const char *const TAG = "script.upload_tft";
|
static const char *const TAG = "script.upload_tft";
|
||||||
ESP_LOGD(TAG, "Starting...");
|
ESP_LOGD(TAG, "Starting...");
|
||||||
|
id(is_uploading_tft) = true;
|
||||||
|
|
||||||
char update_msg[128];
|
char update_msg[128];
|
||||||
|
|
||||||
auto delay_seconds_ = [](int seconds) {
|
auto delay_seconds_ = [](int seconds) {
|
||||||
@@ -226,9 +231,9 @@ script:
|
|||||||
auto send_nextion_command = [](const std::string &command) -> bool {
|
auto send_nextion_command = [](const std::string &command) -> bool {
|
||||||
static const char *const TAG = "script.upload_tft.send_nextion_command";
|
static const char *const TAG = "script.upload_tft.send_nextion_command";
|
||||||
ESP_LOGD(TAG, "Sending: %s", command.c_str());
|
ESP_LOGD(TAG, "Sending: %s", command.c_str());
|
||||||
id(tf_uart).write_str(command.c_str());
|
tf_uart->write_str(command.c_str());
|
||||||
const uint8_t to_send[3] = {0xFF, 0xFF, 0xFF};
|
const uint8_t to_send[3] = {0xFF, 0xFF, 0xFF};
|
||||||
id(tf_uart).write_array(to_send, sizeof(to_send));
|
tf_uart->write_array(to_send, sizeof(to_send));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -285,15 +290,15 @@ script:
|
|||||||
|
|
||||||
start = millis();
|
start = millis();
|
||||||
|
|
||||||
while ((timeout == 0 && id(tf_uart).available()) || millis() - start <= timeout)
|
while ((timeout == 0 && tf_uart->available()) || millis() - start <= timeout)
|
||||||
{
|
{
|
||||||
if (!id(tf_uart).available())
|
if (!tf_uart->available())
|
||||||
{
|
{
|
||||||
App.feed_wdt();
|
App.feed_wdt();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
id(tf_uart).read_byte(&c);
|
tf_uart->read_byte(&c);
|
||||||
if (c == 0xFF)
|
if (c == 0xFF)
|
||||||
{
|
{
|
||||||
nr_of_ff_bytes++;
|
nr_of_ff_bytes++;
|
||||||
@@ -424,7 +429,7 @@ script:
|
|||||||
for (int i = 0; i < range; i += 4096) {
|
for (int i = 0; i < range; i += 4096) {
|
||||||
App.feed_wdt();
|
App.feed_wdt();
|
||||||
write_len = content_length_ < 4096 ? content_length_ : 4096;
|
write_len = content_length_ < 4096 ? content_length_ : 4096;
|
||||||
id(tf_uart).write_array(&transfer_buffer_[i], write_len);
|
tf_uart->write_array(&transfer_buffer_[i], write_len);
|
||||||
content_length_ -= write_len;
|
content_length_ -= write_len;
|
||||||
ESP_LOGD(TAG, "Uploaded %0.1f %%, remaining %d bytes, heap: %d",
|
ESP_LOGD(TAG, "Uploaded %0.1f %%, remaining %d bytes, heap: %d",
|
||||||
100.0 * (tft_size_ - content_length_) / tft_size_,
|
100.0 * (tft_size_ - content_length_) / tft_size_,
|
||||||
@@ -543,19 +548,19 @@ script:
|
|||||||
// If it fails for any reason a power cycle of the display will be needed
|
// If it fails for any reason a power cycle of the display will be needed
|
||||||
sprintf(command, "whmi-wris %d,%d,1", content_length_, update_baud_rate_);
|
sprintf(command, "whmi-wris %d,%d,1", content_length_, update_baud_rate_);
|
||||||
|
|
||||||
ESP_LOGD(TAG, "Clear serial receive buffer: %d", id(tf_uart).available());
|
ESP_LOGD(TAG, "Clear serial receive buffer: %d", tf_uart->available());
|
||||||
// Clear serial receive buffer
|
// Clear serial receive buffer
|
||||||
uint8_t d;
|
uint8_t d;
|
||||||
while (id(tf_uart).available()) {
|
while (tf_uart->available()) {
|
||||||
id(tf_uart).read_byte(&d);
|
tf_uart->read_byte(&d);
|
||||||
};
|
};
|
||||||
|
|
||||||
send_nextion_command(command);
|
send_nextion_command(command);
|
||||||
|
|
||||||
if (update_baud_rate_ != id(tf_uart).get_baud_rate()) {
|
if (update_baud_rate_ != tf_uart->get_baud_rate()) {
|
||||||
set_baud_rate_(update_baud_rate_);
|
set_baud_rate_(update_baud_rate_);
|
||||||
//id(tf_uart).set_baud_rate(update_baud_rate_);
|
//tf_uart->set_baud_rate(update_baud_rate_);
|
||||||
//id(tf_uart).setup();
|
//tf_uart->setup();
|
||||||
//delay_seconds_(2);
|
//delay_seconds_(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -809,16 +814,16 @@ script:
|
|||||||
|
|
||||||
// Clear serial receive buffer
|
// Clear serial receive buffer
|
||||||
uint8_t d;
|
uint8_t d;
|
||||||
while (id(tf_uart).available()) {
|
while (tf_uart->available()) {
|
||||||
id(tf_uart).read_byte(&d);
|
tf_uart->read_byte(&d);
|
||||||
};
|
};
|
||||||
|
|
||||||
send_nextion_command(command);
|
send_nextion_command(command);
|
||||||
|
|
||||||
if (update_baud_rate_ != id(tf_uart).get_baud_rate()) {
|
if (update_baud_rate_ != tf_uart->get_baud_rate()) {
|
||||||
set_baud_rate_(update_baud_rate_);
|
set_baud_rate_(update_baud_rate_);
|
||||||
//id(tf_uart).set_baud_rate(update_baud_rate_);
|
//tf_uart->set_baud_rate(update_baud_rate_);
|
||||||
//id(tf_uart).setup();
|
//tf_uart->setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string response;
|
std::string response;
|
||||||
@@ -1019,6 +1024,7 @@ script:
|
|||||||
delay_seconds_(2);
|
delay_seconds_(2);
|
||||||
App.safe_reboot();
|
App.safe_reboot();
|
||||||
|
|
||||||
|
id(is_uploading_tft) = false;
|
||||||
ESP_LOGD(TAG, "Finished!");
|
ESP_LOGD(TAG, "Finished!");
|
||||||
|
|
||||||
select:
|
select:
|
||||||
|
|||||||
@@ -59,14 +59,6 @@ sensor:
|
|||||||
accuracy_decimals: 0
|
accuracy_decimals: 0
|
||||||
update_interval: never
|
update_interval: never
|
||||||
|
|
||||||
##### WIFI Signal stregth
|
|
||||||
- name: ${device_name} RSSI
|
|
||||||
platform: wifi_signal
|
|
||||||
update_interval: 60s
|
|
||||||
on_value:
|
|
||||||
- script.execute:
|
|
||||||
id: refresh_wifi_icon
|
|
||||||
|
|
||||||
text_sensor:
|
text_sensor:
|
||||||
##### ESPhome version used to compile the app #####
|
##### ESPhome version used to compile the app #####
|
||||||
- name: ${device_name} ESPhome Version
|
- name: ${device_name} ESPhome Version
|
||||||
|
|||||||
@@ -104,6 +104,12 @@ wifi:
|
|||||||
ap:
|
ap:
|
||||||
ssid: "${device_name}"
|
ssid: "${device_name}"
|
||||||
password: ${wifi_password}
|
password: ${wifi_password}
|
||||||
|
on_connect:
|
||||||
|
then:
|
||||||
|
- script.execute: watchdog
|
||||||
|
on_disconnect:
|
||||||
|
then:
|
||||||
|
- script.execute: watchdog
|
||||||
|
|
||||||
##### OTA PASSWORD #####
|
##### OTA PASSWORD #####
|
||||||
ota:
|
ota:
|
||||||
@@ -148,8 +154,9 @@ time:
|
|||||||
on_time:
|
on_time:
|
||||||
- seconds: 0
|
- seconds: 0
|
||||||
then:
|
then:
|
||||||
- script.execute:
|
- script.execute: refresh_datetime
|
||||||
id: refresh_datetime
|
- script.execute: watchdog
|
||||||
|
|
||||||
on_time_sync:
|
on_time_sync:
|
||||||
then:
|
then:
|
||||||
- logger.log: "System clock synchronized"
|
- logger.log: "System clock synchronized"
|
||||||
@@ -160,6 +167,10 @@ time:
|
|||||||
api:
|
api:
|
||||||
id: api_server
|
id: api_server
|
||||||
reboot_timeout: 0s
|
reboot_timeout: 0s
|
||||||
|
on_client_connected:
|
||||||
|
- script.execute: watchdog
|
||||||
|
on_client_disconnected:
|
||||||
|
- script.execute: watchdog
|
||||||
|
|
||||||
services:
|
services:
|
||||||
##### Service to send a command "printf" directly to the display #####
|
##### Service to send a command "printf" directly to the display #####
|
||||||
@@ -364,7 +375,6 @@ api:
|
|||||||
- lambda: |-
|
- lambda: |-
|
||||||
ESP_LOGV("service.notification_show", "Starting");
|
ESP_LOGV("service.notification_show", "Starting");
|
||||||
|
|
||||||
disp1->send_command_printf("is_notification=1");
|
|
||||||
disp1->goto_page("notification");
|
disp1->goto_page("notification");
|
||||||
disp1->set_component_text_printf("notification.notifi_label", "%s", label.c_str());
|
disp1->set_component_text_printf("notification.notifi_label", "%s", label.c_str());
|
||||||
|
|
||||||
@@ -373,13 +383,13 @@ api:
|
|||||||
notification_label->publish_state(label.c_str());
|
notification_label->publish_state(label.c_str());
|
||||||
notification_text->publish_state(message.c_str());
|
notification_text->publish_state(message.c_str());
|
||||||
timer_reset_all->execute(current_page->state.c_str());
|
timer_reset_all->execute(current_page->state.c_str());
|
||||||
|
refresh_notification->execute();
|
||||||
notification_unread->turn_on();
|
notification_unread->turn_on();
|
||||||
if (notification_sound->state) buzzer->play("two short:d=4,o=5,b=100:16e6,16e6");
|
if (notification_sound->state) buzzer->play("two short:d=4,o=5,b=100:16e6,16e6");
|
||||||
|
|
||||||
##### Service to clear the notification #####
|
##### Service to clear the notification #####
|
||||||
- service: notification_clear
|
- service: notification_clear
|
||||||
then:
|
then:
|
||||||
- logger.log: "Service: notification_clear"
|
|
||||||
- script.execute: notification_clear
|
- script.execute: notification_clear
|
||||||
|
|
||||||
##### Service to open information for settings-page(s)
|
##### Service to open information for settings-page(s)
|
||||||
@@ -427,7 +437,6 @@ api:
|
|||||||
then:
|
then:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
if (current_page->state == "climate") detailed_entity->publish_state(entity);
|
if (current_page->state == "climate") detailed_entity->publish_state(entity);
|
||||||
|
|
||||||
- script.execute:
|
- script.execute:
|
||||||
id: set_climate
|
id: set_climate
|
||||||
current_temp: !lambda "return current_temp;"
|
current_temp: !lambda "return current_temp;"
|
||||||
@@ -731,6 +740,18 @@ display:
|
|||||||
##### START - GLOBALS CONFIGURATION #####
|
##### START - GLOBALS CONFIGURATION #####
|
||||||
globals:
|
globals:
|
||||||
|
|
||||||
|
##### Is uploading TFT #####
|
||||||
|
- id: is_uploading_tft
|
||||||
|
type: bool
|
||||||
|
restore_value: false
|
||||||
|
initial_value: 'false'
|
||||||
|
|
||||||
|
##### Is blueprint updated #####
|
||||||
|
- id: is_blueprint_updated
|
||||||
|
type: bool
|
||||||
|
restore_value: false
|
||||||
|
initial_value: 'false'
|
||||||
|
|
||||||
##### Is boot sequence completed? #####
|
##### Is boot sequence completed? #####
|
||||||
- id: setup_sequence_completed
|
- id: setup_sequence_completed
|
||||||
type: bool
|
type: bool
|
||||||
@@ -1027,8 +1048,7 @@ binary_sensor:
|
|||||||
id: api_status
|
id: api_status
|
||||||
on_state:
|
on_state:
|
||||||
then:
|
then:
|
||||||
- script.execute:
|
- script.execute: watchdog
|
||||||
id: refresh_wifi_icon
|
|
||||||
|
|
||||||
##### START - BUTTON CONFIGURATION #####
|
##### START - BUTTON CONFIGURATION #####
|
||||||
button:
|
button:
|
||||||
@@ -1268,8 +1288,8 @@ sensor:
|
|||||||
- lambda: |-
|
- lambda: |-
|
||||||
timer_reset_all->execute("settings");
|
timer_reset_all->execute("settings");
|
||||||
|
|
||||||
- id: page_id
|
- name: ${device_name} Page Id
|
||||||
name: ${device_name} Page Id
|
id: page_id
|
||||||
platform: nextion
|
platform: nextion
|
||||||
variable_name: dp
|
variable_name: dp
|
||||||
precision: 0
|
precision: 0
|
||||||
@@ -1284,8 +1304,8 @@ sensor:
|
|||||||
}
|
}
|
||||||
|
|
||||||
##### Display mode (1 = EU, 2 = US, 3 = US Landscape)
|
##### Display mode (1 = EU, 2 = US, 3 = US Landscape)
|
||||||
- id: display_mode
|
- name: ${device_name} Display mode
|
||||||
name: ${device_name} Display mode
|
id: display_mode
|
||||||
platform: nextion
|
platform: nextion
|
||||||
variable_name: display_mode
|
variable_name: display_mode
|
||||||
precision: 0
|
precision: 0
|
||||||
@@ -1293,14 +1313,22 @@ sensor:
|
|||||||
entity_category: diagnostic
|
entity_category: diagnostic
|
||||||
|
|
||||||
##### Charset (1 = International (original), 2 = CJK languages)
|
##### Charset (1 = International (original), 2 = CJK languages)
|
||||||
- id: display_charset
|
- name: ${device_name} Display charset
|
||||||
name: ${device_name} Display charset
|
id: display_charset
|
||||||
platform: nextion
|
platform: nextion
|
||||||
variable_name: charset
|
variable_name: charset
|
||||||
precision: 0
|
precision: 0
|
||||||
internal: true
|
internal: true
|
||||||
entity_category: diagnostic
|
entity_category: diagnostic
|
||||||
|
|
||||||
|
##### WIFI Signal stregth
|
||||||
|
- name: ${device_name} RSSI
|
||||||
|
id: wifi_rssi
|
||||||
|
platform: wifi_signal
|
||||||
|
internal: false
|
||||||
|
disabled_by_default: true
|
||||||
|
entity_category: diagnostic
|
||||||
|
|
||||||
##### START - SWITCH CONFIGURATION #####
|
##### START - SWITCH CONFIGURATION #####
|
||||||
switch:
|
switch:
|
||||||
|
|
||||||
@@ -1373,7 +1401,7 @@ switch:
|
|||||||
timeout: 20s
|
timeout: 20s
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
if (id(setup_sequence_completed)) {
|
if (id(setup_sequence_completed)) {
|
||||||
nextion_init->publish_state(true);
|
nextion_init->publish_state(disp1->is_setup());
|
||||||
disp1->goto_page(wakeup_page_name->state.c_str());
|
disp1->goto_page(wakeup_page_name->state.c_str());
|
||||||
}
|
}
|
||||||
on_turn_off:
|
on_turn_off:
|
||||||
@@ -1497,7 +1525,6 @@ text_sensor:
|
|||||||
std::string service = "";
|
std::string service = "";
|
||||||
|
|
||||||
// Send event to Home Assistant
|
// Send event to Home Assistant
|
||||||
auto ha_event = new esphome::api::CustomAPIDevice();
|
|
||||||
if (event == "short_click" or event == "long_click") {
|
if (event == "short_click" or event == "long_click") {
|
||||||
ha_button->execute(page.c_str(), component.c_str(), event.c_str());
|
ha_button->execute(page.c_str(), component.c_str(), event.c_str());
|
||||||
} else if (event == "click" and page == "home" and component == "climate") {
|
} else if (event == "click" and page == "home" and component == "climate") {
|
||||||
@@ -1505,6 +1532,7 @@ text_sensor:
|
|||||||
disp1->set_component_value("climate.embedded", id(is_embedded_thermostat) ? 1 : 0);
|
disp1->set_component_value("climate.embedded", id(is_embedded_thermostat) ? 1 : 0);
|
||||||
disp1->goto_page("climate");
|
disp1->goto_page("climate");
|
||||||
} else if (page == "light" or page == "climate" or page == "notification") { // Generic event
|
} else if (page == "light" or page == "climate" or page == "notification") { // Generic event
|
||||||
|
auto ha_event = new esphome::api::CustomAPIDevice();
|
||||||
ha_event->fire_homeassistant_event("esphome.nspanel_ha_blueprint", {
|
ha_event->fire_homeassistant_event("esphome.nspanel_ha_blueprint", {
|
||||||
{"type", "generic"},
|
{"type", "generic"},
|
||||||
{"page", page},
|
{"page", page},
|
||||||
@@ -1532,29 +1560,6 @@ text_sensor:
|
|||||||
}
|
}
|
||||||
else service_call_alarm_control_panel->execute(entity.c_str(), key.c_str(), code_format.c_str(), "");
|
else service_call_alarm_control_panel->execute(entity.c_str(), key.c_str(), code_format.c_str(), "");
|
||||||
}
|
}
|
||||||
else if (page == "blank") page_blank->execute();
|
|
||||||
else if (page == "boot")
|
|
||||||
{
|
|
||||||
// Contruct page boot
|
|
||||||
page_boot->execute();
|
|
||||||
|
|
||||||
// Detect TFT version
|
|
||||||
version_tft->update();
|
|
||||||
check_versions->execute();
|
|
||||||
|
|
||||||
// Detect timeout
|
|
||||||
if (event == "timeout")
|
|
||||||
{
|
|
||||||
ha_event->fire_homeassistant_event("esphome.nspanel_ha_blueprint",
|
|
||||||
{
|
|
||||||
{"type", "boot"},
|
|
||||||
{"step", "timeout"},
|
|
||||||
{"value", value}
|
|
||||||
});
|
|
||||||
if (stof(value) >= 5)
|
|
||||||
disp1->goto_page(wakeup_page_name->state.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (page == "climate") {
|
else if (page == "climate") {
|
||||||
if (embedded==1)
|
if (embedded==1)
|
||||||
addon_climate_service_call->execute(key.c_str(), value.c_str());
|
addon_climate_service_call->execute(key.c_str(), value.c_str());
|
||||||
@@ -1596,7 +1601,7 @@ text_sensor:
|
|||||||
- id: version_tft
|
- id: version_tft
|
||||||
name: ${device_name} TFT version
|
name: ${device_name} TFT version
|
||||||
platform: nextion
|
platform: nextion
|
||||||
component_name: boot.tft_version
|
component_name: tft_version
|
||||||
entity_category: diagnostic
|
entity_category: diagnostic
|
||||||
internal: true
|
internal: true
|
||||||
on_value:
|
on_value:
|
||||||
@@ -1605,7 +1610,6 @@ text_sensor:
|
|||||||
ESP_LOGD(TAG, "TFT version: %s", version_tft->state.c_str());
|
ESP_LOGD(TAG, "TFT version: %s", version_tft->state.c_str());
|
||||||
if (current_page->state == "boot") {
|
if (current_page->state == "boot") {
|
||||||
disp1->send_command_printf("tm_esphome.en=0");
|
disp1->send_command_printf("tm_esphome.en=0");
|
||||||
disp1->send_command_printf("tm_pageid.en=0");
|
|
||||||
page_boot->execute();
|
page_boot->execute();
|
||||||
timer_reset_all->execute("boot");
|
timer_reset_all->execute("boot");
|
||||||
}
|
}
|
||||||
@@ -1731,30 +1735,17 @@ script:
|
|||||||
mode: restart
|
mode: restart
|
||||||
then:
|
then:
|
||||||
- logger.log: "Exit reparse"
|
- logger.log: "Exit reparse"
|
||||||
- uart.write:
|
- uart.write: "DRAKJHSUYDGBNCJHGJKSHBDN"
|
||||||
id: tf_uart
|
- uart.write: [0xFF, 0xFF, 0xFF]
|
||||||
data: "DRAKJHSUYDGBNCJHGJKSHBDN"
|
- uart.write: "connect"
|
||||||
- uart.write:
|
- uart.write: [0xFF, 0xFF, 0xFF]
|
||||||
id: tf_uart
|
- uart.write: [0xFF, 0xFF]
|
||||||
data: [0xFF, 0xFF, 0xFF]
|
- uart.write: "connect"
|
||||||
- uart.write:
|
- uart.write: [0xFF, 0xFF, 0xFF]
|
||||||
id: tf_uart
|
- uart.write: "recmod=0"
|
||||||
data: "recmod=0"
|
- uart.write: [0xFF, 0xFF, 0xFF]
|
||||||
- uart.write:
|
- uart.write: "recmod=0"
|
||||||
id: tf_uart
|
- uart.write: [0xFF, 0xFF, 0xFF]
|
||||||
data: [0xFF, 0xFF, 0xFF]
|
|
||||||
- uart.write:
|
|
||||||
id: tf_uart
|
|
||||||
data: "recmod=0"
|
|
||||||
- uart.write:
|
|
||||||
id: tf_uart
|
|
||||||
data: [0xFF, 0xFF, 0xFF]
|
|
||||||
- uart.write:
|
|
||||||
id: tf_uart
|
|
||||||
data: "connect"
|
|
||||||
- uart.write:
|
|
||||||
id: tf_uart
|
|
||||||
data: [0xFF, 0xFF, 0xFF]
|
|
||||||
|
|
||||||
- id: global_settings
|
- id: global_settings
|
||||||
mode: restart
|
mode: restart
|
||||||
@@ -1836,6 +1827,7 @@ script:
|
|||||||
timer_reset_all->execute(wakeup_page_name->state.c_str());
|
timer_reset_all->execute(wakeup_page_name->state.c_str());
|
||||||
|
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
|
id(is_blueprint_updated) = true;
|
||||||
ESP_LOGV("script.global_settings", "Finished");
|
ESP_LOGV("script.global_settings", "Finished");
|
||||||
|
|
||||||
- id: ha_button
|
- id: ha_button
|
||||||
@@ -1933,12 +1925,11 @@ script:
|
|||||||
mode: restart
|
mode: restart
|
||||||
then:
|
then:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
disp1->send_command_printf("is_notification=0");
|
|
||||||
if (current_page->state == "notification") disp1->goto_page("home");
|
if (current_page->state == "notification") disp1->goto_page("home");
|
||||||
notification_label->publish_state("");
|
notification_label->publish_state("");
|
||||||
notification_text->publish_state("");
|
notification_text->publish_state("");
|
||||||
notification_unread->turn_off();
|
notification_unread->turn_off();
|
||||||
if (current_page->state == "home") disp1->hide_component("bt_notific");
|
refresh_notification->execute();
|
||||||
|
|
||||||
- id: open_entity_settings_page
|
- id: open_entity_settings_page
|
||||||
mode: restart
|
mode: restart
|
||||||
@@ -1987,7 +1978,6 @@ script:
|
|||||||
disp1->set_component_text_printf("esp_version", "ESP: ${version}"); // ESPHome version
|
disp1->set_component_text_printf("esp_version", "ESP: ${version}"); // ESPHome version
|
||||||
disp1->set_component_text_printf("framework", framework.c_str()); // ESPHome framework
|
disp1->set_component_text_printf("framework", framework.c_str()); // ESPHome framework
|
||||||
disp1->send_command_printf("tm_esphome.en=0");
|
disp1->send_command_printf("tm_esphome.en=0");
|
||||||
disp1->send_command_printf("tm_pageid.en=0");
|
|
||||||
|
|
||||||
- id: page_boot
|
- id: page_boot
|
||||||
mode: restart
|
mode: restart
|
||||||
@@ -2161,16 +2151,8 @@ script:
|
|||||||
- id: page_home
|
- id: page_home
|
||||||
mode: restart
|
mode: restart
|
||||||
then:
|
then:
|
||||||
- lambda: |-
|
- script.execute: refresh_relays
|
||||||
static const char *const TAG = "script.page_home";
|
- script.execute: refresh_datetime
|
||||||
if (current_page->state == "home") { // Is home page visible?
|
|
||||||
ESP_LOGV(TAG, "Update home page");
|
|
||||||
refresh_relays->execute();
|
|
||||||
refresh_wifi_icon->execute();
|
|
||||||
disp1->send_command_printf("is_notification=%i", (notification_text->state.empty() and notification_label->state.empty()) ? 0 : 1);
|
|
||||||
set_component_color->execute("home.bt_notific", notification_unread->state ? id(home_notify_icon_color_unread) : id(home_notify_icon_color_normal));
|
|
||||||
refresh_datetime->execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
- id: page_keyb_num
|
- id: page_keyb_num
|
||||||
mode: restart
|
mode: restart
|
||||||
@@ -2280,6 +2262,21 @@ script:
|
|||||||
} else disp1->set_component_text_printf("home.meridiem", " ");
|
} else disp1->set_component_text_printf("home.meridiem", " ");
|
||||||
disp1->set_component_text_printf("home.time", "%s", id(time_provider).now().strftime(time_format_str).c_str());
|
disp1->set_component_text_printf("home.time", "%s", id(time_provider).now().strftime(time_format_str).c_str());
|
||||||
|
|
||||||
|
- id: refresh_notification
|
||||||
|
mode: restart
|
||||||
|
then:
|
||||||
|
- lambda: |-
|
||||||
|
bool is_notification = (notification_text->state.empty() and notification_label->state.empty());
|
||||||
|
disp1->send_command_printf("is_notification=%i", is_notification ? 0 : 1);
|
||||||
|
set_component_color->execute("home.bt_notific", notification_unread->state ? id(home_notify_icon_color_unread) : id(home_notify_icon_color_normal));
|
||||||
|
if (current_page->state == "home") {
|
||||||
|
if (is_notification) {
|
||||||
|
disp1->show_component("bt_notific");
|
||||||
|
} else {
|
||||||
|
disp1->hide_component("bt_notific");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- id: refresh_relays
|
- id: refresh_relays
|
||||||
mode: restart
|
mode: restart
|
||||||
then:
|
then:
|
||||||
@@ -2297,30 +2294,17 @@ script:
|
|||||||
mode: restart
|
mode: restart
|
||||||
then:
|
then:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
static const char *const TAG = "script.refresh_wifi_icon";
|
|
||||||
bool wifi_connected = wifi_component->is_connected();
|
|
||||||
bool api_connected = api_server->is_connected();
|
|
||||||
bool blueprint_connected = (not id(version_blueprint).empty());
|
|
||||||
uint8_t api_val = (wifi_connected and api_connected and blueprint_connected) ? 1 : 0;
|
|
||||||
ESP_LOGV(TAG, "Wifi: %s", wifi_connected ? "Connected" : "DISCONNECTED");
|
|
||||||
ESP_LOGV(TAG, "API: %s", api_connected ? "Connected" : "DISCONNECTED");
|
|
||||||
ESP_LOGV(TAG, "Blueprint: %s", blueprint_connected ? id(version_blueprint).c_str() : "DISCONNECTED");
|
|
||||||
ESP_LOGV(TAG, "Init: %s", nextion_init->state ? "True" : "False");
|
|
||||||
ESP_LOGV(TAG, "Nextion api: %i", api_val);
|
|
||||||
|
|
||||||
if (nextion_init->state) {
|
if (nextion_init->state) {
|
||||||
// Update api value on Nextion
|
|
||||||
disp1->send_command_printf("api=%i", api_val);
|
|
||||||
// Update Wi-Fi icon color
|
// Update Wi-Fi icon color
|
||||||
disp1->set_component_font_color("home.wifi_icon", (api_val > 0) ? 33808 : 63488);
|
disp1->set_component_font_color("home.wifi_icon", (id(is_blueprint_updated)) ? 33808 : 63488);
|
||||||
// Update Wi-Fi icon
|
// Update Wi-Fi icon
|
||||||
disp1->set_component_text_printf("home.wifi_icon", "%s",
|
disp1->set_component_text_printf("home.wifi_icon", "%s",
|
||||||
wifi_connected ?
|
wifi_component->is_connected() ?
|
||||||
(api_connected ?
|
(api_server->is_connected() ?
|
||||||
(blueprint_connected ? "\uE5A8" : // mdi:wifi - All right!
|
(id(is_blueprint_updated) ? "\uE5A8" : // mdi:wifi - All right!
|
||||||
"\uE7CF") : // mdi:home-assistant - Blueprint is out
|
"\uE7CF") : // mdi:home-assistant - Blueprint is out
|
||||||
"\uF256") : // mdi:api-off
|
"\uF256") : // mdi:api-off
|
||||||
"\uE5A9"); // mdi:wifi-off
|
"\uE5A9"); // mdi:wifi-off
|
||||||
}
|
}
|
||||||
|
|
||||||
- id: relay_settings
|
- id: relay_settings
|
||||||
@@ -2597,8 +2581,8 @@ script:
|
|||||||
disp1->send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global));
|
disp1->send_command_printf("settings.dimslider.val=%i", id(display_dim_brightness_global));
|
||||||
disp1->send_command_printf("brightness_sleep=%i", int(display_sleep_brightness->state));
|
disp1->send_command_printf("brightness_sleep=%i", int(display_sleep_brightness->state));
|
||||||
ESP_LOGD(TAG, "Report to Home Assistant");
|
ESP_LOGD(TAG, "Report to Home Assistant");
|
||||||
nextion_init->publish_state(true);
|
nextion_init->publish_state(disp1->is_setup());
|
||||||
if (api_server->is_connected()) {
|
if (api_server->is_connected() and disp1->is_setup()) {
|
||||||
auto ha_event = new esphome::api::CustomAPIDevice();
|
auto ha_event = new esphome::api::CustomAPIDevice();
|
||||||
ha_event->fire_homeassistant_event("esphome.nspanel_ha_blueprint",
|
ha_event->fire_homeassistant_event("esphome.nspanel_ha_blueprint",
|
||||||
{
|
{
|
||||||
@@ -2702,6 +2686,7 @@ script:
|
|||||||
timer_sleep->stop();
|
timer_sleep->stop();
|
||||||
update_alarm_icon->stop();
|
update_alarm_icon->stop();
|
||||||
update_climate_icon->stop();
|
update_climate_icon->stop();
|
||||||
|
watchdog->stop();
|
||||||
ESP_LOGD(TAG, "Finished");
|
ESP_LOGD(TAG, "Finished");
|
||||||
|
|
||||||
###### Timers ######
|
###### Timers ######
|
||||||
@@ -2917,3 +2902,95 @@ script:
|
|||||||
disp1->set_component_font_color(component.c_str(), 1530); // cyan
|
disp1->set_component_font_color(component.c_str(), 1530); // cyan
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- id: watchdog
|
||||||
|
mode: restart
|
||||||
|
then:
|
||||||
|
- lambda: |-
|
||||||
|
static const char *const TAG = "script.watchdog";
|
||||||
|
ESP_LOGV(TAG, "Starting");
|
||||||
|
if (id(is_uploading_tft)) {
|
||||||
|
ESP_LOGW(TAG, "TFT upload in progress");
|
||||||
|
} else {
|
||||||
|
// report Wi-Fi status
|
||||||
|
bool wifi_connected = wifi_component->is_connected();
|
||||||
|
if (wifi_connected)
|
||||||
|
ESP_LOGD(TAG, "Wi-Fi: %.0fdB", wifi_rssi->state);
|
||||||
|
else
|
||||||
|
ESP_LOGW(TAG, "Wi-Fi: DISCONNECTED");
|
||||||
|
|
||||||
|
// report API status
|
||||||
|
bool api_connected = api_server->is_connected();
|
||||||
|
if (api_connected)
|
||||||
|
ESP_LOGD(TAG, "API: Connected");
|
||||||
|
else
|
||||||
|
ESP_LOGW(TAG, "API: DISCONNECTED");
|
||||||
|
|
||||||
|
// Report blueprint version
|
||||||
|
id(is_blueprint_updated) = id(is_blueprint_updated) and wifi_connected and api_connected and (not id(version_blueprint).empty());
|
||||||
|
if (id(is_blueprint_updated))
|
||||||
|
ESP_LOGD(TAG, "Blueprint: %s", id(version_blueprint).c_str());
|
||||||
|
else
|
||||||
|
ESP_LOGW(TAG, "Blueprint: %s", (wifi_connected and api_connected) ? "Pending" : "DISCONNECTED");
|
||||||
|
|
||||||
|
refresh_wifi_icon->execute();
|
||||||
|
|
||||||
|
// Report ESPHome
|
||||||
|
ESP_LOGD(TAG, "ESPHome:");
|
||||||
|
ESP_LOGD(TAG, " Version: ${version}");
|
||||||
|
// Report framework
|
||||||
|
#ifdef ARDUINO
|
||||||
|
ESP_LOGD(TAG, " Framework: arduino");
|
||||||
|
#elif defined(USE_ESP_IDF)
|
||||||
|
ESP_LOGD(TAG, " Framework: esp-idf");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Report UART
|
||||||
|
ESP_LOGD(TAG, "UART queue: %d", tf_uart->available());
|
||||||
|
|
||||||
|
// Report Nextion status
|
||||||
|
nextion_init->publish_state(nextion_init->state and disp1->is_setup());
|
||||||
|
ESP_LOGD(TAG, "Nextion:");
|
||||||
|
if (disp1->is_setup())
|
||||||
|
ESP_LOGD(TAG, " Is setup: True");
|
||||||
|
else if (disp1->is_detected())
|
||||||
|
ESP_LOGW(TAG, " Is detected: %s", disp1->is_detected() ? "True" : "False");
|
||||||
|
if (nextion_init->state)
|
||||||
|
ESP_LOGD(TAG, " Init: True");
|
||||||
|
else
|
||||||
|
ESP_LOGW(TAG, " Init: False");
|
||||||
|
if (version_tft->state.empty())
|
||||||
|
ESP_LOGW(TAG, " TFT: UNKNOWN");
|
||||||
|
else
|
||||||
|
ESP_LOGD(TAG, " TFT: %s", version_tft->state.c_str());
|
||||||
|
// Update api value on Nextion
|
||||||
|
disp1->send_command_printf("api=%i", id(is_blueprint_updated) ? 1 : 0);
|
||||||
|
|
||||||
|
if (!wifi_connected) {
|
||||||
|
ESP_LOGD(TAG, "Retry Wi-Fi connection");
|
||||||
|
wifi_component->retry_connect();
|
||||||
|
}
|
||||||
|
if (api_connected) {
|
||||||
|
if (not id(is_blueprint_updated)) {
|
||||||
|
ESP_LOGD(TAG, "Requesting blueprint settings");
|
||||||
|
auto ha_event = new esphome::api::CustomAPIDevice();
|
||||||
|
ha_event->fire_homeassistant_event("esphome.nspanel_ha_blueprint",
|
||||||
|
{
|
||||||
|
{"type", "boot"},
|
||||||
|
{"step", "timeout"}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
id(is_blueprint_updated) = false;
|
||||||
|
if (current_page->state != "blank" and
|
||||||
|
current_page->state != "boot" and
|
||||||
|
current_page->state != "home" and
|
||||||
|
current_page->state != "screensaver" and
|
||||||
|
current_page->state != "settings" and
|
||||||
|
current_page->state != "qrcode") {
|
||||||
|
ESP_LOGD(TAG, "Fallback to page Home");
|
||||||
|
disp1->goto_page("home");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ESP_LOGV(TAG, "Finished");
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,7 @@
|
|||||||
Program.s
|
Program.s
|
||||||
//The following code is only run once when power on, and is generally used for global variable definition and power on initialization data
|
//The following code is only run once when power on, and is generally used for global variable definition and power on initialization data
|
||||||
|
int sys0=0
|
||||||
|
int display_mode=4 // 1 = EU, 2 = US, 3 = US landscape, 4 = blank
|
||||||
dim=100//Configure backlight
|
dim=100//Configure backlight
|
||||||
recmod=0//Serial data parsing mode:0-Passive mode;1-Active mode
|
recmod=0//Serial data parsing mode:0-Passive mode;1-Active mode
|
||||||
printh 00 00 00 ff ff ff 88 ff ff ff//Output power on information to serial port
|
printh 00 00 00 ff ff ff 88 ff ff ff//Output power on information to serial port
|
||||||
|
|||||||
@@ -13,19 +13,7 @@ Page blank
|
|||||||
Events
|
Events
|
||||||
Preinitialize Event
|
Preinitialize Event
|
||||||
sendme
|
sendme
|
||||||
printh 92
|
|
||||||
prints "currentpage",0
|
|
||||||
printh 00
|
|
||||||
prints "blank",0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
dim=100
|
dim=100
|
||||||
printh 92
|
|
||||||
prints "nspanelevent",0
|
|
||||||
printh 00
|
|
||||||
prints "{\"page\": \"blank\", \"component\": \"currentpage\", \"value\": \"pagechange\", \"version\": \"2023.11.1\"}",0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
covx baud,baud_rate.txt,0,0
|
covx baud,baud_rate.txt,0,0
|
||||||
baud_rate.txt+=" bps"
|
baud_rate.txt+=" bps"
|
||||||
|
|
||||||
@@ -37,12 +25,18 @@ Page blank
|
|||||||
dim=100
|
dim=100
|
||||||
tm0.en=1
|
tm0.en=1
|
||||||
|
|
||||||
Variable (string) nspanelevent
|
Variable (int32) counter
|
||||||
|
Attributes
|
||||||
|
ID : 9
|
||||||
|
Scope: local
|
||||||
|
Value: 0
|
||||||
|
|
||||||
|
Variable (string) aux1
|
||||||
Attributes
|
Attributes
|
||||||
ID : 10
|
ID : 10
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 150
|
Max. Text Size: 10
|
||||||
|
|
||||||
Text file_name
|
Text file_name
|
||||||
Attributes
|
Attributes
|
||||||
@@ -89,7 +83,7 @@ Text tft_version
|
|||||||
Dragging : 0
|
Dragging : 0
|
||||||
Send Component ID : on press and release
|
Send Component ID : on press and release
|
||||||
Associated Keyboard: none
|
Associated Keyboard: none
|
||||||
Text : TFT: v2023.12.1
|
Text : TFT: v2023.12.2
|
||||||
Max. Text Size : 20
|
Max. Text Size : 20
|
||||||
|
|
||||||
Events
|
Events
|
||||||
@@ -190,30 +184,30 @@ Timer tm_esphome
|
|||||||
|
|
||||||
Events
|
Events
|
||||||
Timer Event
|
Timer Event
|
||||||
if(baud==115200)
|
counter.val++
|
||||||
|
if(counter.val>60)
|
||||||
{
|
{
|
||||||
bauds=921600
|
rest
|
||||||
}else
|
}
|
||||||
|
sendme
|
||||||
|
printh 91
|
||||||
|
prints "display_mode",0
|
||||||
|
printh 00
|
||||||
|
prints display_mode,0
|
||||||
|
printh FF FF FF
|
||||||
|
printh 92
|
||||||
|
prints "tft_version",0
|
||||||
|
printh 00
|
||||||
|
prints tft_version.txt,0
|
||||||
|
printh 00
|
||||||
|
printh FF FF FF
|
||||||
|
covx counter.val,aux1.txt,0,0
|
||||||
|
esp_version.txt="ESP: Retry #"+aux1.txt
|
||||||
|
sys0=counter.val%10
|
||||||
|
if(sys0==0)
|
||||||
{
|
{
|
||||||
bauds=115200
|
baud=115200
|
||||||
}
|
}
|
||||||
covx baud,baud_rate.txt,0,0
|
covx baud,baud_rate.txt,0,0
|
||||||
baud_rate.txt+=" bps"
|
baud_rate.txt+=" bps"
|
||||||
|
|
||||||
Timer tm_pageid
|
|
||||||
Attributes
|
|
||||||
ID : 9
|
|
||||||
Scope : local
|
|
||||||
Period (ms): 2500
|
|
||||||
Enabled : yes
|
|
||||||
|
|
||||||
Events
|
|
||||||
Timer Event
|
|
||||||
nspanelevent.txt="{\"page\": \"blank\", \"event\": \"pagechanged\", \"version\": \""+tft_version.txt+"\"}"
|
|
||||||
printh 92
|
|
||||||
prints "localevent",0
|
|
||||||
printh 00
|
|
||||||
prints nspanelevent.txt,0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -9,7 +9,7 @@ Program.s
|
|||||||
int api=0 // 0 = disconnected from HA, 1 = connected to HA
|
int api=0 // 0 = disconnected from HA, 1 = connected to HA
|
||||||
int is_entities=0,is_qrcode=0,is_notification=0
|
int is_entities=0,is_qrcode=0,is_notification=0
|
||||||
int brightness=100,brightness_dim=40,brightness_sleep=0
|
int brightness=100,brightness_dim=40,brightness_sleep=0
|
||||||
int display_mode=1 // 1 = EU, 2 = US, 3 = US landscape
|
int display_mode=1 // 1 = EU, 2 = US, 3 = US landscape, 4 = blank
|
||||||
int charset=2 // 1 = International (original), 2 = CJK
|
int charset=2 // 1 = International (original), 2 = CJK
|
||||||
//bauds=115200//Configure baudrate
|
//bauds=115200//Configure baudrate
|
||||||
recmod=0//Serial data parsing mode:0-Passive mode;1-Active mode
|
recmod=0//Serial data parsing mode:0-Passive mode;1-Active mode
|
||||||
|
|||||||
@@ -13,53 +13,26 @@ Page boot
|
|||||||
Events
|
Events
|
||||||
Preinitialize Event
|
Preinitialize Event
|
||||||
sendme
|
sendme
|
||||||
dim=0
|
dim=100
|
||||||
|
vis bt_reboot,0
|
||||||
|
sendme
|
||||||
|
dim=100
|
||||||
vis bt_reboot,0
|
vis bt_reboot,0
|
||||||
covx baud,baud_rate.txt,0,0
|
covx baud,baud_rate.txt,0,0
|
||||||
baud_rate.txt+=" bps"
|
baud_rate.txt+=" bps"
|
||||||
covx display_mode,aux2.txt,0,0
|
|
||||||
covx charset,aux3.txt,0,0
|
|
||||||
nspanelevent.txt="{\"page\": \"boot\", \"event\": \"pagechanged\", \"version\": \""+tft_version.txt+"\", \"display_mode\": \""+aux2.txt+"\", \"charset\": \""+aux3.txt+"\"}"
|
|
||||||
printh 92
|
|
||||||
prints "localevent",0
|
|
||||||
printh 00
|
|
||||||
prints nspanelevent.txt,0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
|
|
||||||
Page Exit Event
|
Page Exit Event
|
||||||
dim=0
|
dim=0
|
||||||
|
|
||||||
Variable (int32) counter
|
Variable (int32) counter
|
||||||
Attributes
|
Attributes
|
||||||
ID : 12
|
ID : 11
|
||||||
Scope: local
|
Scope: local
|
||||||
Value: 0
|
Value: 0
|
||||||
|
|
||||||
Variable (string) aux1
|
Variable (string) aux1
|
||||||
Attributes
|
Attributes
|
||||||
ID : 13
|
ID : 12
|
||||||
Scope : local
|
|
||||||
Text :
|
|
||||||
Max. Text Size: 10
|
|
||||||
|
|
||||||
Variable (string) nspanelevent
|
|
||||||
Attributes
|
|
||||||
ID : 14
|
|
||||||
Scope : local
|
|
||||||
Text :
|
|
||||||
Max. Text Size: 150
|
|
||||||
|
|
||||||
Variable (string) aux2
|
|
||||||
Attributes
|
|
||||||
ID : 15
|
|
||||||
Scope : local
|
|
||||||
Text :
|
|
||||||
Max. Text Size: 10
|
|
||||||
|
|
||||||
Variable (string) aux3
|
|
||||||
Attributes
|
|
||||||
ID : 21
|
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 10
|
Max. Text Size: 10
|
||||||
@@ -131,7 +104,7 @@ Text tft_version
|
|||||||
Dragging : 0
|
Dragging : 0
|
||||||
Send Component ID : on press and release
|
Send Component ID : on press and release
|
||||||
Associated Keyboard: none
|
Associated Keyboard: none
|
||||||
Text : 4.2dev.2
|
Text : 4.2dev.3
|
||||||
Max. Text Size : 9
|
Max. Text Size : 9
|
||||||
|
|
||||||
Text esph_version
|
Text esph_version
|
||||||
@@ -156,7 +129,7 @@ Text bluep_version
|
|||||||
|
|
||||||
Text baud_rate
|
Text baud_rate
|
||||||
Attributes
|
Attributes
|
||||||
ID : 18
|
ID : 14
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Send Component ID : on press and release
|
Send Component ID : on press and release
|
||||||
@@ -166,7 +139,7 @@ Text baud_rate
|
|||||||
|
|
||||||
Text framework
|
Text framework
|
||||||
Attributes
|
Attributes
|
||||||
ID : 20
|
ID : 15
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Send Component ID : on press and release
|
Send Component ID : on press and release
|
||||||
@@ -184,85 +157,44 @@ Dual-state Button bt_reboot
|
|||||||
Text : Reboot
|
Text : Reboot
|
||||||
Max. Text Size : 6
|
Max. Text Size : 6
|
||||||
|
|
||||||
Timer timer
|
|
||||||
Attributes
|
|
||||||
ID : 11
|
|
||||||
Scope : local
|
|
||||||
Period (ms): 65534
|
|
||||||
Enabled : yes
|
|
||||||
|
|
||||||
Events
|
|
||||||
Timer Event
|
|
||||||
counter.val++
|
|
||||||
covx counter.val,aux1.txt,0,0
|
|
||||||
covx display_mode,aux2.txt,0,0
|
|
||||||
nspanelevent.txt="{\"page\": \"boot\", \"event\": \"timeout\", \"value\": "+aux1.txt+", \"version\": \""+tft_version.txt+"\", \"display_mode\": \""+aux2.txt+"\"}"
|
|
||||||
bluep_version.txt="Retry: "+aux1.txt
|
|
||||||
printh 92
|
|
||||||
prints "nspanelevent",0
|
|
||||||
printh 00
|
|
||||||
prints nspanelevent.txt,0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
|
|
||||||
Timer wakeup_timer
|
|
||||||
Attributes
|
|
||||||
ID : 16
|
|
||||||
Scope : local
|
|
||||||
Period (ms): 50
|
|
||||||
Enabled : yes
|
|
||||||
|
|
||||||
Events
|
|
||||||
Timer Event
|
|
||||||
if(dim<100)
|
|
||||||
{
|
|
||||||
dimdelta=100-dim
|
|
||||||
dimdelta/=25
|
|
||||||
if(dimdelta<1)
|
|
||||||
{
|
|
||||||
dimdelta=1
|
|
||||||
}
|
|
||||||
dim+=dimdelta
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
wakeup_timer.en=0
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer tm_esphome
|
Timer tm_esphome
|
||||||
Attributes
|
Attributes
|
||||||
ID : 17
|
ID : 13
|
||||||
Scope : local
|
Scope : local
|
||||||
Period (ms): 30000
|
Period (ms): 30000
|
||||||
Enabled : yes
|
Enabled : yes
|
||||||
|
|
||||||
Events
|
Events
|
||||||
Timer Event
|
Timer Event
|
||||||
if(baud==115200)
|
counter.val++
|
||||||
|
if(counter.val>60)
|
||||||
{
|
{
|
||||||
bauds=921600
|
rest
|
||||||
}else
|
}
|
||||||
|
sendme
|
||||||
|
printh 91
|
||||||
|
prints "display_mode",0
|
||||||
|
printh 00
|
||||||
|
prints display_mode,0
|
||||||
|
printh FF FF FF
|
||||||
|
printh 91
|
||||||
|
prints "charset",0
|
||||||
|
printh 00
|
||||||
|
prints charset,0
|
||||||
|
printh FF FF FF
|
||||||
|
printh 92
|
||||||
|
prints "tft_version",0
|
||||||
|
printh 00
|
||||||
|
prints tft_version.txt,0
|
||||||
|
printh 00
|
||||||
|
printh FF FF FF
|
||||||
|
covx counter.val,aux1.txt,0,0
|
||||||
|
esph_version.txt="Retry #"+aux1.txt
|
||||||
|
sys0=counter.val%10
|
||||||
|
if(sys0==0)
|
||||||
{
|
{
|
||||||
bauds=115200
|
baud=115200
|
||||||
}
|
}
|
||||||
covx baud,baud_rate.txt,0,0
|
covx baud,baud_rate.txt,0,0
|
||||||
baud_rate.txt+=" bps"
|
baud_rate.txt+=" bps"
|
||||||
|
|
||||||
Timer tm_pageid
|
|
||||||
Attributes
|
|
||||||
ID : 19
|
|
||||||
Scope : local
|
|
||||||
Period (ms): 2500
|
|
||||||
Enabled : yes
|
|
||||||
|
|
||||||
Events
|
|
||||||
Timer Event
|
|
||||||
covx display_mode,aux2.txt,0,0
|
|
||||||
covx charset,aux3.txt,0,0
|
|
||||||
nspanelevent.txt="{\"page\": \"boot\", \"event\": \"pagechanged\", \"version\": \""+tft_version.txt+"\", \"display_mode\": \""+aux2.txt+"\", \"charset\": \""+aux3.txt+"\"}"
|
|
||||||
printh 92
|
|
||||||
prints "localevent",0
|
|
||||||
printh 00
|
|
||||||
prints nspanelevent.txt,0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -9,7 +9,7 @@ Program.s
|
|||||||
int api=0 // 0 = disconnected from HA, 1 = connected to HA
|
int api=0 // 0 = disconnected from HA, 1 = connected to HA
|
||||||
int is_entities=0,is_qrcode=0,is_notification=0
|
int is_entities=0,is_qrcode=0,is_notification=0
|
||||||
int brightness=100,brightness_dim=40,brightness_sleep=0
|
int brightness=100,brightness_dim=40,brightness_sleep=0
|
||||||
int display_mode=2 // 1 = EU, 2 = US, 3 = US landscape
|
int display_mode=2 // 1 = EU, 2 = US, 3 = US landscape, 4 = blank
|
||||||
int charset=1 // 1 = International (original), 2 = CJK
|
int charset=1 // 1 = International (original), 2 = CJK
|
||||||
//bauds=115200//Configure baudrate
|
//bauds=115200//Configure baudrate
|
||||||
recmod=0//Serial data parsing mode:0-Passive mode;1-Active mode
|
recmod=0//Serial data parsing mode:0-Passive mode;1-Active mode
|
||||||
|
|||||||
@@ -13,53 +13,23 @@ Page boot
|
|||||||
Events
|
Events
|
||||||
Preinitialize Event
|
Preinitialize Event
|
||||||
sendme
|
sendme
|
||||||
dim=0
|
dim=100
|
||||||
vis bt_reboot,0
|
vis bt_reboot,0
|
||||||
covx baud,baud_rate.txt,0,0
|
covx baud,baud_rate.txt,0,0
|
||||||
baud_rate.txt+=" bps"
|
baud_rate.txt+=" bps"
|
||||||
covx display_mode,aux2.txt,0,0
|
|
||||||
covx charset,aux3.txt,0,0
|
|
||||||
nspanelevent.txt="{\"page\": \"boot\", \"event\": \"pagechanged\", \"version\": \""+tft_version.txt+"\", \"display_mode\": \""+aux2.txt+"\", \"charset\": \""+aux3.txt+"\"}"
|
|
||||||
printh 92
|
|
||||||
prints "localevent",0
|
|
||||||
printh 00
|
|
||||||
prints nspanelevent.txt,0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
|
|
||||||
Page Exit Event
|
Page Exit Event
|
||||||
dim=0
|
dim=0
|
||||||
|
|
||||||
Variable (int32) counter
|
Variable (int32) counter
|
||||||
Attributes
|
Attributes
|
||||||
ID : 12
|
ID : 11
|
||||||
Scope: local
|
Scope: local
|
||||||
Value: 0
|
Value: 0
|
||||||
|
|
||||||
Variable (string) aux1
|
Variable (string) aux1
|
||||||
Attributes
|
Attributes
|
||||||
ID : 13
|
ID : 12
|
||||||
Scope : local
|
|
||||||
Text :
|
|
||||||
Max. Text Size: 10
|
|
||||||
|
|
||||||
Variable (string) nspanelevent
|
|
||||||
Attributes
|
|
||||||
ID : 14
|
|
||||||
Scope : local
|
|
||||||
Text :
|
|
||||||
Max. Text Size: 150
|
|
||||||
|
|
||||||
Variable (string) aux2
|
|
||||||
Attributes
|
|
||||||
ID : 15
|
|
||||||
Scope : local
|
|
||||||
Text :
|
|
||||||
Max. Text Size: 10
|
|
||||||
|
|
||||||
Variable (string) aux3
|
|
||||||
Attributes
|
|
||||||
ID : 21
|
|
||||||
Scope : local
|
Scope : local
|
||||||
Text :
|
Text :
|
||||||
Max. Text Size: 10
|
Max. Text Size: 10
|
||||||
@@ -131,7 +101,7 @@ Text tft_version
|
|||||||
Dragging : 0
|
Dragging : 0
|
||||||
Send Component ID : on press and release
|
Send Component ID : on press and release
|
||||||
Associated Keyboard: none
|
Associated Keyboard: none
|
||||||
Text : 4.2dev.2
|
Text : 4.2dev.3
|
||||||
Max. Text Size : 9
|
Max. Text Size : 9
|
||||||
|
|
||||||
Text esph_version
|
Text esph_version
|
||||||
@@ -156,7 +126,7 @@ Text bluep_version
|
|||||||
|
|
||||||
Text baud_rate
|
Text baud_rate
|
||||||
Attributes
|
Attributes
|
||||||
ID : 18
|
ID : 14
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Send Component ID : on press and release
|
Send Component ID : on press and release
|
||||||
@@ -166,7 +136,7 @@ Text baud_rate
|
|||||||
|
|
||||||
Text framework
|
Text framework
|
||||||
Attributes
|
Attributes
|
||||||
ID : 20
|
ID : 15
|
||||||
Scope : local
|
Scope : local
|
||||||
Dragging : 0
|
Dragging : 0
|
||||||
Send Component ID : on press and release
|
Send Component ID : on press and release
|
||||||
@@ -184,85 +154,44 @@ Dual-state Button bt_reboot
|
|||||||
Text : Reboot
|
Text : Reboot
|
||||||
Max. Text Size : 6
|
Max. Text Size : 6
|
||||||
|
|
||||||
Timer timer
|
|
||||||
Attributes
|
|
||||||
ID : 11
|
|
||||||
Scope : local
|
|
||||||
Period (ms): 65534
|
|
||||||
Enabled : yes
|
|
||||||
|
|
||||||
Events
|
|
||||||
Timer Event
|
|
||||||
counter.val++
|
|
||||||
covx counter.val,aux1.txt,0,0
|
|
||||||
covx display_mode,aux2.txt,0,0
|
|
||||||
nspanelevent.txt="{\"page\": \"boot\", \"event\": \"timeout\", \"value\": "+aux1.txt+", \"version\": \""+tft_version.txt+"\", \"display_mode\": \""+aux2.txt+"\"}"
|
|
||||||
bluep_version.txt="Retry: "+aux1.txt
|
|
||||||
printh 92
|
|
||||||
prints "nspanelevent",0
|
|
||||||
printh 00
|
|
||||||
prints nspanelevent.txt,0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
|
|
||||||
Timer wakeup_timer
|
|
||||||
Attributes
|
|
||||||
ID : 16
|
|
||||||
Scope : local
|
|
||||||
Period (ms): 50
|
|
||||||
Enabled : yes
|
|
||||||
|
|
||||||
Events
|
|
||||||
Timer Event
|
|
||||||
if(dim<100)
|
|
||||||
{
|
|
||||||
dimdelta=100-dim
|
|
||||||
dimdelta/=25
|
|
||||||
if(dimdelta<1)
|
|
||||||
{
|
|
||||||
dimdelta=1
|
|
||||||
}
|
|
||||||
dim+=dimdelta
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
wakeup_timer.en=0
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer tm_esphome
|
Timer tm_esphome
|
||||||
Attributes
|
Attributes
|
||||||
ID : 17
|
ID : 13
|
||||||
Scope : local
|
Scope : local
|
||||||
Period (ms): 30000
|
Period (ms): 30000
|
||||||
Enabled : yes
|
Enabled : yes
|
||||||
|
|
||||||
Events
|
Events
|
||||||
Timer Event
|
Timer Event
|
||||||
if(baud==115200)
|
counter.val++
|
||||||
|
if(counter.val>60)
|
||||||
{
|
{
|
||||||
bauds=921600
|
rest
|
||||||
}else
|
}
|
||||||
|
sendme
|
||||||
|
printh 91
|
||||||
|
prints "display_mode",0
|
||||||
|
printh 00
|
||||||
|
prints display_mode,0
|
||||||
|
printh FF FF FF
|
||||||
|
printh 91
|
||||||
|
prints "charset",0
|
||||||
|
printh 00
|
||||||
|
prints charset,0
|
||||||
|
printh FF FF FF
|
||||||
|
printh 92
|
||||||
|
prints "tft_version",0
|
||||||
|
printh 00
|
||||||
|
prints tft_version.txt,0
|
||||||
|
printh 00
|
||||||
|
printh FF FF FF
|
||||||
|
covx counter.val,aux1.txt,0,0
|
||||||
|
esph_version.txt="Retry #"+aux1.txt
|
||||||
|
sys0=counter.val%10
|
||||||
|
if(sys0==0)
|
||||||
{
|
{
|
||||||
bauds=115200
|
baud=115200
|
||||||
}
|
}
|
||||||
covx baud,baud_rate.txt,0,0
|
covx baud,baud_rate.txt,0,0
|
||||||
baud_rate.txt+=" bps"
|
baud_rate.txt+=" bps"
|
||||||
|
|
||||||
Timer tm_pageid
|
|
||||||
Attributes
|
|
||||||
ID : 19
|
|
||||||
Scope : local
|
|
||||||
Period (ms): 2500
|
|
||||||
Enabled : yes
|
|
||||||
|
|
||||||
Events
|
|
||||||
Timer Event
|
|
||||||
covx display_mode,aux2.txt,0,0
|
|
||||||
covx charset,aux3.txt,0,0
|
|
||||||
nspanelevent.txt="{\"page\": \"boot\", \"event\": \"pagechanged\", \"version\": \""+tft_version.txt+"\", \"display_mode\": \""+aux2.txt+"\", \"charset\": \""+aux3.txt+"\"}"
|
|
||||||
printh 92
|
|
||||||
prints "localevent",0
|
|
||||||
printh 00
|
|
||||||
prints nspanelevent.txt,0
|
|
||||||
printh 00
|
|
||||||
printh FF FF FF
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user