[nextion] Add optional device info storage configuration (#9366)

This commit is contained in:
Edward Firmo 2025-07-07 19:04:01 +02:00 committed by GitHub
parent 8147d117a0
commit e88b8d10ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 23 additions and 3 deletions

View File

@ -11,6 +11,7 @@ CONF_AUTO_WAKE_ON_TOUCH = "auto_wake_on_touch"
CONF_BACKGROUND_PRESSED_COLOR = "background_pressed_color" CONF_BACKGROUND_PRESSED_COLOR = "background_pressed_color"
CONF_COMMAND_SPACING = "command_spacing" CONF_COMMAND_SPACING = "command_spacing"
CONF_COMPONENT_NAME = "component_name" CONF_COMPONENT_NAME = "component_name"
CONF_DUMP_DEVICE_INFO = "dump_device_info"
CONF_EXIT_REPARSE_ON_START = "exit_reparse_on_start" CONF_EXIT_REPARSE_ON_START = "exit_reparse_on_start"
CONF_FONT_ID = "font_id" CONF_FONT_ID = "font_id"
CONF_FOREGROUND_PRESSED_COLOR = "foreground_pressed_color" CONF_FOREGROUND_PRESSED_COLOR = "foreground_pressed_color"

View File

@ -15,6 +15,7 @@ from . import Nextion, nextion_ns, nextion_ref
from .base_component import ( from .base_component import (
CONF_AUTO_WAKE_ON_TOUCH, CONF_AUTO_WAKE_ON_TOUCH,
CONF_COMMAND_SPACING, CONF_COMMAND_SPACING,
CONF_DUMP_DEVICE_INFO,
CONF_EXIT_REPARSE_ON_START, CONF_EXIT_REPARSE_ON_START,
CONF_MAX_COMMANDS_PER_LOOP, CONF_MAX_COMMANDS_PER_LOOP,
CONF_MAX_QUEUE_SIZE, CONF_MAX_QUEUE_SIZE,
@ -57,6 +58,7 @@ CONFIG_SCHEMA = (
cv.positive_time_period_milliseconds, cv.positive_time_period_milliseconds,
cv.Range(max=TimePeriod(milliseconds=255)), cv.Range(max=TimePeriod(milliseconds=255)),
), ),
cv.Optional(CONF_DUMP_DEVICE_INFO, default=False): cv.boolean,
cv.Optional(CONF_EXIT_REPARSE_ON_START, default=False): cv.boolean, cv.Optional(CONF_EXIT_REPARSE_ON_START, default=False): cv.boolean,
cv.Optional(CONF_MAX_COMMANDS_PER_LOOP): cv.uint16_t, cv.Optional(CONF_MAX_COMMANDS_PER_LOOP): cv.uint16_t,
cv.Optional(CONF_MAX_QUEUE_SIZE): cv.positive_int, cv.Optional(CONF_MAX_QUEUE_SIZE): cv.positive_int,
@ -174,6 +176,9 @@ async def to_code(config):
cg.add(var.set_auto_wake_on_touch(config[CONF_AUTO_WAKE_ON_TOUCH])) cg.add(var.set_auto_wake_on_touch(config[CONF_AUTO_WAKE_ON_TOUCH]))
if config[CONF_DUMP_DEVICE_INFO]:
cg.add_define("USE_NEXTION_CONFIG_DUMP_DEVICE_INFO")
if config[CONF_EXIT_REPARSE_ON_START]: if config[CONF_EXIT_REPARSE_ON_START]:
cg.add_define("USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START") cg.add_define("USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START")

View File

@ -110,11 +110,19 @@ bool Nextion::check_connect_() {
this->is_detected_ = (connect_info.size() == 7); this->is_detected_ = (connect_info.size() == 7);
if (this->is_detected_) { if (this->is_detected_) {
ESP_LOGN(TAG, "Connect info: %zu", connect_info.size()); ESP_LOGN(TAG, "Connect info: %zu", connect_info.size());
#ifdef USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
this->device_model_ = connect_info[2]; this->device_model_ = connect_info[2];
this->firmware_version_ = connect_info[3]; this->firmware_version_ = connect_info[3];
this->serial_number_ = connect_info[5]; this->serial_number_ = connect_info[5];
this->flash_size_ = connect_info[6]; this->flash_size_ = connect_info[6];
#else // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
ESP_LOGI(TAG,
" Device Model: %s\n"
" FW Version: %s\n"
" Serial Number: %s\n"
" Flash Size: %s\n",
connect_info[2].c_str(), connect_info[3].c_str(), connect_info[5].c_str(), connect_info[6].c_str());
#endif // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
} else { } else {
ESP_LOGE(TAG, "Bad connect value: '%s'", response.c_str()); ESP_LOGE(TAG, "Bad connect value: '%s'", response.c_str());
} }
@ -142,18 +150,22 @@ void Nextion::dump_config() {
ESP_LOGCONFIG(TAG, " Skip handshake: YES"); ESP_LOGCONFIG(TAG, " Skip handshake: YES");
#else // USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE #else // USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE
ESP_LOGCONFIG(TAG, ESP_LOGCONFIG(TAG,
#ifdef USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
" Device Model: %s\n" " Device Model: %s\n"
" FW Version: %s\n" " FW Version: %s\n"
" Serial Number: %s\n" " Serial Number: %s\n"
" Flash Size: %s\n" " Flash Size: %s\n"
#endif // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
#ifdef USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START #ifdef USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START
" Exit reparse: YES\n" " Exit reparse: YES\n"
#endif // USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START #endif // USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START
" Wake On Touch: %s\n" " Wake On Touch: %s\n"
" Touch Timeout: %" PRIu16, " Touch Timeout: %" PRIu16,
#ifdef USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
this->device_model_.c_str(), this->firmware_version_.c_str(), this->serial_number_.c_str(), this->device_model_.c_str(), this->firmware_version_.c_str(), this->serial_number_.c_str(),
this->flash_size_.c_str(), YESNO(this->connection_state_.auto_wake_on_touch_), this->flash_size_.c_str(),
this->touch_sleep_timeout_); #endif // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
YESNO(this->connection_state_.auto_wake_on_touch_), this->touch_sleep_timeout_);
#endif // USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE #endif // USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE
#ifdef USE_NEXTION_MAX_COMMANDS_PER_LOOP #ifdef USE_NEXTION_MAX_COMMANDS_PER_LOOP

View File

@ -1457,10 +1457,12 @@ class Nextion : public NextionBase, public PollingComponent, public uart::UARTDe
optional<nextion_writer_t> writer_; optional<nextion_writer_t> writer_;
optional<float> brightness_; optional<float> brightness_;
#ifdef USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
std::string device_model_; std::string device_model_;
std::string firmware_version_; std::string firmware_version_;
std::string serial_number_; std::string serial_number_;
std::string flash_size_; std::string flash_size_;
#endif // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
void remove_front_no_sensors_(); void remove_front_no_sensors_();