|
ESPHome 2026.3.0
|
#include <serial_proxy.h>
Public Member Functions | |
| void | setup () override |
| void | loop () override |
| void | dump_config () override |
| float | get_setup_priority () const override |
| uint32_t | get_instance_index () const |
| Get the instance index (position in Application's serial_proxies_ vector) | |
| void | set_instance_index (uint32_t index) |
| Set the instance index (called by Application::register_serial_proxy) | |
| void | set_name (const char *name) |
| Set the human-readable port name (from YAML configuration) | |
| const char * | get_name () const |
| Get the human-readable port name. | |
| void | set_port_type (api::enums::SerialProxyPortType port_type) |
| Set the port type (from YAML configuration) | |
| api::enums::SerialProxyPortType | get_port_type () const |
| Get the port type. | |
| void | configure (uint32_t baudrate, bool flow_control, uint8_t parity, uint8_t stop_bits, uint8_t data_size) |
| Configure UART parameters and apply them. | |
| api::APIConnection * | get_api_connection () |
| Get the currently subscribed API connection (nullptr if none) | |
| void | serial_proxy_request (api::APIConnection *api_connection, api::enums::SerialProxyRequestType type) |
| Handle a subscribe/unsubscribe request from an API client. | |
| void | write_from_client (const uint8_t *data, size_t len) |
| Write data received from an API client to the serial device. | |
| void | set_modem_pins (uint32_t line_states) |
| Set modem pin states from a bitmask of SerialProxyLineStateFlag values. | |
| uint32_t | get_modem_pins () const |
| Get current modem pin states as a bitmask of SerialProxyLineStateFlag values. | |
| uart::FlushResult | flush_port () |
| Flush the serial port (block until all TX data is sent) | |
| void | set_rts_pin (GPIOPin *pin) |
| Set the RTS GPIO pin (from YAML configuration) | |
| void | set_dtr_pin (GPIOPin *pin) |
| Set the DTR GPIO pin (from YAML configuration) | |
Public Member Functions inherited from esphome::uart::UARTDevice | |
| UARTDevice ()=default | |
| UARTDevice (UARTComponent *parent) | |
| void | set_uart_parent (UARTComponent *parent) |
| void | write_byte (uint8_t data) |
| void | set_rx_full_threshold (size_t rx_full_threshold) |
| void | set_rx_full_threshold_ms (size_t time) |
| size_t | get_rx_full_threshold () |
| void | set_rx_timeout (size_t rx_timeout) |
| size_t | get_rx_timeout () |
| void | write_array (const uint8_t *data, size_t len) |
| void | write_array (const std::vector< uint8_t > &data) |
| template<size_t N> | |
| void | write_array (const std::array< uint8_t, N > &data) |
| void | write_str (const char *str) |
| bool | read_byte (uint8_t *data) |
| bool | peek_byte (uint8_t *data) |
| bool | read_array (uint8_t *data, size_t len) |
| template<size_t N> | |
| optional< std::array< uint8_t, N > > | read_array () |
| size_t | available () |
| FlushResult | flush () |
| int | read () |
| size_t | write (uint8_t data) |
| int | peek () |
| void | check_uart_settings (uint32_t baud_rate, uint8_t stop_bits=1, UARTParityOptions parity=UART_CONFIG_PARITY_NONE, uint8_t data_bits=8) |
| Check that the configuration of the UART bus matches the provided values and otherwise print a warning. | |
Public Member Functions inherited from esphome::Component | |
| float | get_actual_setup_priority () const |
| void | set_setup_priority (float priority) |
| virtual float | get_loop_priority () const |
| priority of loop(). | |
| void | call () |
| virtual void | on_shutdown () |
| virtual void | on_safe_shutdown () |
| virtual bool | teardown () |
| Called during teardown to allow component to gracefully finish operations. | |
| virtual void | on_powerdown () |
| Called after teardown is complete to power down hardware. | |
| uint8_t | get_component_state () const |
| void | reset_to_construction_state () |
| Reset this component back to the construction state to allow setup to run again. | |
| bool | is_in_loop_state () const |
| Check if this component has completed setup and is in the loop state. | |
| bool | is_idle () const |
| Check if this component is idle. | |
| void | mark_failed () |
| Mark this component as failed. | |
| ESPDEPRECATED ("Use mark_failed(LOG_STR(\"static string literal\")) instead. Do NOT use .c_str() from temporary " "strings. Will stop working in 2026.6.0", "2025.12.0") void mark_failed(const char *message) | |
| void | mark_failed (const LogString *message) |
| void | disable_loop () |
| Disable this component's loop. | |
| void | enable_loop () |
| Enable this component's loop. | |
| void | enable_loop_soon_any_context () |
| Thread and ISR-safe version of enable_loop() that can be called from any context. | |
| bool | is_failed () const |
| bool | is_ready () const |
| virtual bool | can_proceed () |
| bool | status_has_warning () const |
| bool | status_has_error () const |
| void | status_set_warning (const char *message=nullptr) |
| void | status_set_warning (const LogString *message) |
| void | status_set_error () |
| ESPDEPRECATED ("Use status_set_error(LOG_STR(\"static string literal\")) instead. Do NOT use .c_str() from temporary " "strings. Will stop working in 2026.6.0", "2025.12.0") void status_set_error(const char *message) | |
| void | status_set_error (const LogString *message) |
| void | status_clear_warning () |
| void | status_clear_error () |
| void | status_momentary_warning (const char *name, uint32_t length=5000) |
| Set warning status flag and automatically clear it after a timeout. | |
| void | status_momentary_error (const char *name, uint32_t length=5000) |
| Set error status flag and automatically clear it after a timeout. | |
| bool | has_overridden_loop () const |
| void | set_component_source (const LogString *source) |
| Set where this component was loaded from for some debug messages. | |
| const LogString * | get_component_log_str () const |
| Get the integration where this component was declared as a LogString for logging. | |
| bool | should_warn_of_blocking (uint32_t blocking_time) |
Protected Member Functions | |
| void | read_and_send_ (size_t available) |
| Read from UART and send to API client (slow path with 256-byte stack buffer) | |
Protected Member Functions inherited from esphome::Component | |
| void | call_loop_ () |
| virtual void | call_setup () |
| void | call_dump_config_ () |
| void | set_component_state_ (uint8_t state) |
| Helper to set component state (clears state bits and sets new state) | |
| bool | set_status_flag_ (uint8_t flag) |
| Helper to set a status LED flag on both this component and the app. | |
| void | set_interval (uint32_t id, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a numeric ID (zero heap allocation). | |
| void | set_interval (InternalSchedulerID id, uint32_t interval, std::function< void()> &&f) |
| void | set_interval (uint32_t interval, std::function< void()> &&f) |
| bool | cancel_interval (uint32_t id) |
| bool | cancel_interval (InternalSchedulerID id) |
| ESPDEPRECATED("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(const std | ESPDEPRECATED ("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(const char *name |
| ESPDEPRECATED ("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(uint32_t id | |
| ESPDEPRECATED ("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(uint32_t initial_wait_time | |
| ESPDEPRECATED("cancel_retry is deprecated and will be removed in 2026.8.0.", "2026.2.0") bool cancel_retry(const std | ESPDEPRECATED ("cancel_retry is deprecated and will be removed in 2026.8.0.", "2026.2.0") bool cancel_retry(const char *name) |
| ESPDEPRECATED ("cancel_retry is deprecated and will be removed in 2026.8.0.", "2026.2.0") bool cancel_retry(uint32_t id) | |
| void | set_timeout (uint32_t id, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a numeric ID (zero heap allocation). | |
| void | set_timeout (InternalSchedulerID id, uint32_t timeout, std::function< void()> &&f) |
| void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
| bool | cancel_timeout (uint32_t id) |
| bool | cancel_timeout (InternalSchedulerID id) |
| void | defer (std::function< void()> &&f) |
| Defer a callback to the next loop() call. | |
| void | defer (uint32_t id, std::function< void()> &&f) |
| Defer a callback with a numeric ID (zero heap allocation) | |
| bool | cancel_defer (uint32_t id) |
| void | status_clear_warning_slow_path_ () |
| void | status_clear_error_slow_path_ () |
Protected Attributes | |
| uint32_t | instance_index_ {0} |
| Instance index for identifying this proxy in API messages. | |
| api::APIConnection * | api_connection_ {nullptr} |
| Subscribed API client (only one allowed at a time) | |
| api::SerialProxyDataReceived | outgoing_msg_ |
| Pre-allocated outgoing message; instance field is set once in setup() | |
| const char * | name_ {nullptr} |
| Human-readable port name (points to a string literal in flash) | |
| api::enums::SerialProxyPortType | port_type_ {} |
| Port type. | |
| GPIOPin * | rts_pin_ {nullptr} |
| Optional GPIO pins for modem control. | |
| GPIOPin * | dtr_pin_ {nullptr} |
| bool | rts_state_ {false} |
| Current modem pin states. | |
| bool | dtr_state_ {false} |
Protected Attributes inherited from esphome::uart::UARTDevice | |
| UARTComponent * | parent_ {nullptr} |
Protected Attributes inherited from esphome::Component | |
| ESPDEPRECATED("Use const char* or uint32_t overload instead. Removed in 2026.7.0", "2026.1.0") void set_interval(const std voi | set_interval )(const char *name, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a unique name. | |
| ESPDEPRECATED("Use const char* or uint32_t overload instead. Removed in 2026.7.0", "2026.1.0") bool cancel_interval(const std boo | cancel_interval )(const char *name) |
| Cancel an interval function. | |
| ESPDEPRECATED("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(const std uint32_t | initial_wait_time |
| ESPDEPRECATED("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(const std uint32_t uint8_t | max_attempts |
| ESPDEPRECATED("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(const std uint32_t uint8_t std::function< RetryResult(uint8_t)> && | f |
| ESPDEPRECATED("set_retry is deprecated and will be removed in 2026.8.0. Use set_timeout or set_interval instead.", "2026.2.0") void set_retry(const std uint32_t uint8_t std::function< RetryResult(uint8_t)> float | backoff_increase_factor = 1.0f) |
| uint32_t | initial_wait_time |
| uint32_t uint8_t | max_attempts |
| uint32_t uint8_t std::function< RetryResult(uint8_t)> && | f |
| uint32_t uint8_t std::function< RetryResult(uint8_t)> float | backoff_increase_factor = 1.0f) |
| uint8_t | max_attempts |
| uint8_t std::function< RetryResult(uint8_t)> && | f |
| uint8_t std::function< RetryResult(uint8_t)> float | backoff_increase_factor = 1.0f) |
| ESPDEPRECATED("Use const char* or uint32_t overload instead. Removed in 2026.7.0", "2026.1.0") void set_timeout(const std voi | set_timeout )(const char *name, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a unique name. | |
| ESPDEPRECATED("Use const char* or uint32_t overload instead. Removed in 2026.7.0", "2026.1.0") bool cancel_timeout(const std boo | cancel_timeout )(const char *name) |
| Cancel a timeout function. | |
| ESPDEPRECATED("Use const char* overload instead. Removed in 2026.7.0", "2026.1.0") void defer(const std voi | defer )(const char *name, std::function< void()> &&f) |
| Defer a callback to the next loop() call. | |
| ESPDEPRECATED("Use const char* overload instead. Removed in 2026.7.0", "2026.1.0") bool cancel_defer(const std boo | cancel_defer )(const char *name) |
| Cancel a defer callback using the specified name, name must not be empty. | |
| const LogString * | component_source_ {nullptr} |
| uint16_t | warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS} |
| Warn if blocked for this many ms (max 65.5s) | |
| uint8_t | component_state_ {0x00} |
| State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bit 5: Has overridden loop() (set at registration time) Bits 6-7: Unused - reserved for future expansion. | |
| volatile bool | pending_enable_loop_ {false} |
| ISR-safe flag for enable_loop_soon_any_context. | |
Definition at line 44 of file serial_proxy.h.
| void esphome::serial_proxy::SerialProxy::configure | ( | uint32_t | baudrate, |
| bool | flow_control, | ||
| uint8_t | parity, | ||
| uint8_t | stop_bits, | ||
| uint8_t | data_size ) |
Configure UART parameters and apply them.
| baudrate | Baud rate in bits per second |
| flow_control | True to enable hardware flow control |
| parity | Parity setting (0=none, 1=even, 2=odd) |
| stop_bits | Number of stop bits (1 or 2) |
| data_size | Number of data bits (5-8) |
Definition at line 90 of file serial_proxy.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 75 of file serial_proxy.cpp.
| uart::FlushResult esphome::serial_proxy::SerialProxy::flush_port | ( | ) |
Flush the serial port (block until all TX data is sent)
Definition at line 168 of file serial_proxy.cpp.
|
inline |
Get the currently subscribed API connection (nullptr if none)
Definition at line 78 of file serial_proxy.h.
|
inline |
Get the instance index (position in Application's serial_proxies_ vector)
Definition at line 52 of file serial_proxy.h.
| uint32_t esphome::serial_proxy::SerialProxy::get_modem_pins | ( | ) | const |
Get current modem pin states as a bitmask of SerialProxyLineStateFlag values.
Definition at line 163 of file serial_proxy.cpp.
|
inline |
Get the human-readable port name.
Definition at line 61 of file serial_proxy.h.
|
inline |
Get the port type.
Definition at line 67 of file serial_proxy.h.
|
inlineoverridevirtual |
Reimplemented from esphome::Component.
Definition at line 49 of file serial_proxy.h.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 35 of file serial_proxy.cpp.
|
protected |
Read from UART and send to API client (slow path with 256-byte stack buffer)
| void esphome::serial_proxy::SerialProxy::serial_proxy_request | ( | api::APIConnection * | api_connection, |
| api::enums::SerialProxyRequestType | type ) |
Handle a subscribe/unsubscribe request from an API client.
Definition at line 174 of file serial_proxy.cpp.
|
inline |
Set the DTR GPIO pin (from YAML configuration)
Definition at line 101 of file serial_proxy.h.
|
inline |
Set the instance index (called by Application::register_serial_proxy)
Definition at line 55 of file serial_proxy.h.
| void esphome::serial_proxy::SerialProxy::set_modem_pins | ( | uint32_t | line_states | ) |
Set modem pin states from a bitmask of SerialProxyLineStateFlag values.
Definition at line 148 of file serial_proxy.cpp.
|
inline |
Set the human-readable port name (from YAML configuration)
Definition at line 58 of file serial_proxy.h.
|
inline |
Set the port type (from YAML configuration)
Definition at line 64 of file serial_proxy.h.
|
inline |
Set the RTS GPIO pin (from YAML configuration)
Definition at line 98 of file serial_proxy.h.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 17 of file serial_proxy.cpp.
| void esphome::serial_proxy::SerialProxy::write_from_client | ( | const uint8_t * | data, |
| size_t | len ) |
Write data received from an API client to the serial device.
| data | Pointer to data buffer |
| len | Number of bytes to write |
Definition at line 142 of file serial_proxy.cpp.
|
protected |
Subscribed API client (only one allowed at a time)
Definition at line 113 of file serial_proxy.h.
|
protected |
Definition at line 128 of file serial_proxy.h.
|
protected |
Definition at line 132 of file serial_proxy.h.
|
protected |
Instance index for identifying this proxy in API messages.
Definition at line 110 of file serial_proxy.h.
|
protected |
Human-readable port name (points to a string literal in flash)
Definition at line 121 of file serial_proxy.h.
|
protected |
Pre-allocated outgoing message; instance field is set once in setup()
Definition at line 117 of file serial_proxy.h.
|
protected |
Port type.
Definition at line 124 of file serial_proxy.h.
|
protected |
Optional GPIO pins for modem control.
Definition at line 127 of file serial_proxy.h.
|
protected |
Current modem pin states.
Definition at line 131 of file serial_proxy.h.