ESPHome 2026.8.0b4
Loading...
Searching...
No Matches
esphome::modbus_client::WriteSingleRegisterAction< Ts > Class Template Reference

modbus_client.write_single_register: on_response is the acknowledgement (the ack only echoes the request, so it carries no arguments). More...

#include <modbus_client.h>

Inheritance diagram for esphome::modbus_client::WriteSingleRegisterAction< Ts >:
esphome::modbus_client::TypedClientActionBase< Ts... > esphome::modbus_client::ClientActionBase< Ts... > esphome::Action< Ts... > esphome::modbus::ModbusClientDevice

Public Member Functions

 TEMPLATABLE_VALUE (uint16_t, start_address) TEMPLATABLE_VALUE(uint16_t
 
value Triggerget_response_trigger ()
 
void play (const Ts &...x) override
 
void on_write_single_register (uint16_t address, uint16_t value, modbus::ResponseStatus status) override
 
- Public Member Functions inherited from esphome::modbus_client::TypedClientActionBase< Ts... >
Trigger< std::span< const uint8_t >, std::span< const uint8_t > > * get_custom_response_trigger ()
 
void set_custom_response_handled ()
 Set by codegen when the config declares on_custom_response.
 
void on_custom_response (std::span< const uint8_t > request_pdu, std::span< const uint8_t > response_pdu, modbus::ResponseStatus status) override
 
- Public Member Functions inherited from esphome::modbus_client::ClientActionBase< Ts... >
 TEMPLATABLE_VALUE (uint8_t, target_address) Trigger< std
 
Trigger< std::span< const uint8_t >, modbus::ExceptionCode > * get_error_trigger ()
 
Trigger< std::span< const uint8_t > > * get_no_response_trigger ()
 
Trigger< std::span< const uint8_t > > * get_not_sent_trigger ()
 
void set_retry (retry_func_t f)
 
void on_sent (std::span< const uint8_t > request_pdu) override
 The frame was written to the wire: fires once per transmission, before any reply, and never for a send that ended in on_not_sent.
 
void on_not_sent (std::span< const uint8_t > request_pdu) override
 Never reached the wire, from either of two sources.
 
void on_error (std::span< const uint8_t > request_pdu, modbus::ExceptionCode exception_code) override
 A Modbus exception reply.
 
bool on_no_response (std::span< const uint8_t > request_pdu) override
 No reply within send_wait_time.
 
void play_complex (const Ts &...x) override
 Stamp the templated device address before every play(): subclasses cannot forget it, and the hub routes each reply by device pointer, so a changed address never mis-routes earlier replies.
 
- Public Member Functions inherited from esphome::Action< Ts... >
virtual void stop_complex ()
 
virtual bool is_running ()
 Check if this or any of the following actions are currently running.
 
int num_running_total ()
 The total number of actions that are currently running in this plus any of the following actions in the chain.
 
- Public Member Functions inherited from esphome::modbus::ModbusClientDevice
 ModbusClientDevice ()=default
 
 ModbusClientDevice (ModbusClientHub *parent, uint8_t address)
 
virtual ~ModbusClientDevice ()
 
 ModbusClientDevice (const ModbusClientDevice &)=delete
 
ModbusClientDeviceoperator= (const ModbusClientDevice &)=delete
 
 ModbusClientDevice (ModbusClientDevice &&)=delete
 
ModbusClientDeviceoperator= (ModbusClientDevice &&)=delete
 
void set_parent (ModbusClientHub *parent)
 
void set_address (uint8_t address)
 
virtual void on_response (std::span< const uint8_t > request_pdu, std::span< const uint8_t > response_pdu)
 Low-level response hook: called with the request PDU this device sent and the response PDU received The spans are only valid for the duration of the call - copy the bytes if they must outlive it.
 
 ESPDEPRECATED ("Override on_not_sent() instead. Removed in 2027.2.0", "2026.8.0") virtual void on_modbus_not_sent()
 
 ESPDEPRECATED ("Override on_no_response() instead. Removed in 2027.2.0", "2026.8.0") virtual bool on_modbus_no_response()
 
virtual void on_read_registers (EntityType entity_type, uint16_t start_address, std::span< const uint16_t > registers, ResponseStatus status)
 High-level typed response callbacks, fired by the default on_response()/on_error() with arguments parsed from the request and response PDUs.
 
virtual void on_read_holding_registers (uint16_t start_address, std::span< const uint16_t > registers, ResponseStatus status)
 
virtual void on_read_input_registers (uint16_t start_address, std::span< const uint16_t > registers, ResponseStatus status)
 
virtual void on_read_bits (EntityType entity_type, uint16_t start_address, PackedBits bits, ResponseStatus status)
 Coil/discrete-input reads are delivered as a PackedBits view (bit 0 = the bit at start_address, bits.size() = the count requested).
 
virtual void on_read_coils (uint16_t start_address, PackedBits bits, ResponseStatus status)
 
virtual void on_read_discrete_inputs (uint16_t start_address, PackedBits bits, ResponseStatus status)
 
virtual void on_write_single_coil (uint16_t address, bool value, ResponseStatus status)
 
virtual void on_write_multiple_registers (uint16_t start_address, std::span< const uint16_t > registers, ResponseStatus status)
 
virtual void on_write_multiple_coils (uint16_t start_address, PackedBits bits, ResponseStatus status)
 
 ESPDEPRECATED ("Use the typed read_*/write_* helpers or queue_pdu() instead. Removed in 2027.2.0", "2026.8.0") void send(uint8_t function
 

Protected Attributes

Trigger response_trigger_
 
- Protected Attributes inherited from esphome::modbus_client::TypedClientActionBase< Ts... >
Trigger< std::span< const uint8_t >, std::span< const uint8_t > > custom_response_trigger_
 
bool custom_response_handled_
 
- Protected Attributes inherited from esphome::modbus_client::ClientActionBase< Ts... >
Trigger< std::span< const uint8_t > > sent_trigger_
 
Trigger< std::span< const uint8_t >, modbus::ExceptionCodeerror_trigger_
 
Trigger< std::span< const uint8_t > > no_response_trigger_
 
Trigger< std::span< const uint8_t > > not_sent_trigger_
 
retry_func_t retry_func_
 
- Protected Attributes inherited from esphome::Action< Ts... >
friend ActionList< Ts... >
 
Action< Ts... > * next_
 
int num_running_
 The number of instances of this sequence in the list of actions that is currently being executed.
 

Additional Inherited Members

- Public Types inherited from esphome::modbus_client::ClientActionBase< Ts... >
using retry_func_t
 The retry decision for on_no_response: given the request PDU, return true to have the hub re-queue the frame.
 
- Data Fields inherited from esphome::modbus::ModbusClientDevice
uint16_t start_address
 
uint16_t uint16_t number_of_entities
 
uint16_t uint16_t uint8_t payload_len = 0
 
uint16_t uint16_t uint8_t const uint8_t * payload
 
ModbusClientHubparent_ {nullptr}
 
uint8_t address_ {0}
 
bool custom_response_warned_ {false}
 
- Protected Member Functions inherited from esphome::modbus_client::ClientActionBase< Ts... >
void send_or_resolve_ (std::span< const uint8_t > pdu)
 The hub refuses some sends at the door with no callback (a duplicate write already pending, a full queue, or an empty PDU - which is how the create_*_pdu() builders reject out-of-spec input).
 
- Protected Member Functions inherited from esphome::Action< Ts... >
void play_next_ (const Ts &...x)
 
void play_next_tuple_ (const std::tuple< Ts... > &tuple, std::index_sequence< S... >)
 
void play_next_tuple_ (const std::tuple< Ts... > &tuple)
 
virtual void stop ()
 
void stop_next_ ()
 
bool is_running_next_ ()
 

Detailed Description

template<typename... Ts>
class esphome::modbus_client::WriteSingleRegisterAction< Ts >

modbus_client.write_single_register: on_response is the acknowledgement (the ack only echoes the request, so it carries no arguments).

Definition at line 197 of file modbus_client.h.

Member Function Documentation

◆ get_response_trigger()

template<typename... Ts>
value Trigger * esphome::modbus_client::WriteSingleRegisterAction< Ts >::get_response_trigger ( )
inline

Definition at line 202 of file modbus_client.h.

◆ on_write_single_register()

template<typename... Ts>
void esphome::modbus_client::WriteSingleRegisterAction< Ts >::on_write_single_register ( uint16_t address,
uint16_t value,
modbus::ResponseStatus status )
inlineoverridevirtual

Reimplemented from esphome::modbus::ModbusClientDevice.

Definition at line 208 of file modbus_client.h.

◆ play()

template<typename... Ts>
void esphome::modbus_client::WriteSingleRegisterAction< Ts >::play ( const Ts &... x)
inlineoverridevirtual

Implements esphome::Action< Ts... >.

Definition at line 204 of file modbus_client.h.

◆ TEMPLATABLE_VALUE()

template<typename... Ts>
esphome::modbus_client::WriteSingleRegisterAction< Ts >::TEMPLATABLE_VALUE ( uint16_t ,
start_address  )

Field Documentation

◆ response_trigger_

template<typename... Ts>
Trigger esphome::modbus_client::WriteSingleRegisterAction< Ts >::response_trigger_
protected

Definition at line 214 of file modbus_client.h.


The documentation for this class was generated from the following file: