From 59b49d34cc963ff97e5c92ed8ed92a2387b2502a Mon Sep 17 00:00:00 2001 From: Bascht74 <66269310+Bascht74@users.noreply.github.com> Date: Mon, 5 Oct 2026 15:47:18 +0200 Subject: [PATCH] [tcp_uart][uart_tcp] Expose the no-arg load_settings() and mark UartTcp final (#20163) --- esphome/components/tcp_uart/tcp_uart.h | 1 + esphome/components/uart_tcp/uart_tcp.h | 2 +- tests/components/tcp_uart/test.esp32-idf.yaml | 8 ++++++++ tests/components/tcp_uart/test.esp8266-ard.yaml | 8 ++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/esphome/components/tcp_uart/tcp_uart.h b/esphome/components/tcp_uart/tcp_uart.h index 29f7af564a..e973c7a189 100644 --- a/esphome/components/tcp_uart/tcp_uart.h +++ b/esphome/components/tcp_uart/tcp_uart.h @@ -44,6 +44,7 @@ class TcpUart : public uart::UARTComponent, public Component { bool is_connected() override { return this->link_.connected(); } #if defined(USE_ESP8266) || defined(USE_ESP32) void load_settings(bool dump_config) override {} + using UARTComponent::load_settings; // also bring in the no-arg overload for convenience #endif protected: diff --git a/esphome/components/uart_tcp/uart_tcp.h b/esphome/components/uart_tcp/uart_tcp.h index 1e19166f87..f557cca33f 100644 --- a/esphome/components/uart_tcp/uart_tcp.h +++ b/esphome/components/uart_tcp/uart_tcp.h @@ -14,7 +14,7 @@ namespace esphome::uart_tcp { /// Copies raw bytes between one hardware UART and one TCP socket. -class UartTcp : public Component, public uart::UARTDevice { +class UartTcp final : public Component, public uart::UARTDevice { public: void set_host(const char *host) { this->link_.set_host(host); } void set_port(uint16_t port) { this->link_.set_port(port); } diff --git a/tests/components/tcp_uart/test.esp32-idf.yaml b/tests/components/tcp_uart/test.esp32-idf.yaml index 2d42c282f7..54bdfbb390 100644 --- a/tests/components/tcp_uart/test.esp32-idf.yaml +++ b/tests/components/tcp_uart/test.esp32-idf.yaml @@ -1,2 +1,10 @@ packages: tcp_uart: !include common.yaml + +# load_settings() exists on ESP8266 and ESP32 only; both overloads must resolve. +interval: + - interval: 60s + then: + - lambda: |- + id(tcp_uart_server).load_settings(); + id(tcp_uart_server).load_settings(false); diff --git a/tests/components/tcp_uart/test.esp8266-ard.yaml b/tests/components/tcp_uart/test.esp8266-ard.yaml index 2d42c282f7..54bdfbb390 100644 --- a/tests/components/tcp_uart/test.esp8266-ard.yaml +++ b/tests/components/tcp_uart/test.esp8266-ard.yaml @@ -1,2 +1,10 @@ packages: tcp_uart: !include common.yaml + +# load_settings() exists on ESP8266 and ESP32 only; both overloads must resolve. +interval: + - interval: 60s + then: + - lambda: |- + id(tcp_uart_server).load_settings(); + id(tcp_uart_server).load_settings(false);