ESPHome 2026.10.0-dev
Loading...
Searching...
No Matches
esphome::modbus_controller::PollingDevice Class Referencefinal

A persistent hub device that polls one register range - the read-side mirror of WriterDevice. More...

#include <modbus_controller.h>

Inheritance diagram for esphome::modbus_controller::PollingDevice:
esphome::modbus_controller::ControllerDevice esphome::modbus::ModbusClientDevice

Public Member Functions

 PollingDevice (ModbusController &controller, RegisterRange &&range)
 
bool queue (modbus::CommandOptions options={})
 Queue this range's read (or its sensor's custom PDU) on the hub. False = refused, no callback follows.
 
uint16_t register_address () const
 
uint16_t register_count () const
 
EntityType register_type () const
 
- Public Member Functions inherited from esphome::modbus_controller::ControllerDevice
void set_controller (ModbusController *controller)
 

Protected Member Functions

void on_response (std::span< const uint8_t > request_pdu, std::span< const uint8_t > response_pdu) override
 
- Protected Member Functions inherited from esphome::modbus_controller::ControllerDevice
 ControllerDevice ()=default
 
 ControllerDevice (ModbusController *controller)
 
void on_error (std::span< const uint8_t > request_pdu, modbus::ExceptionCode exception_code) override
 
void on_sent (std::span< const uint8_t > request_pdu) override
 
void on_not_sent (std::span< const uint8_t > request_pdu) override
 
bool on_no_response (std::span< const uint8_t > request_pdu) override
 
void notify_online_ (std::span< const uint8_t > request_pdu)
 
- Protected 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)
 
 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_register (uint16_t address, uint16_t value, ResponseStatus status)
 Write acknowledgements.
 
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)
 
virtual void on_custom_response (std::span< const uint8_t > request_pdu, std::span< const uint8_t > response_pdu, ResponseStatus status)
 Catch-all for custom function codes and anything that is not a standard-conformant transaction (see dispatch_response_()); on failure the response is empty and the exception code is in 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

RegisterRange range_
 
- Protected Attributes inherited from esphome::modbus_controller::ControllerDevice
bool dispatched_ {false}
 Write-path state owned by WriterEntity's forwarders, stored here so both bools land in the base's tail padding instead of adding a word to every writer entity.
 
bool write_buffer_deprecated_warned_ {false}
 
ModbusControllercontroller_ {nullptr}
 
- Protected Attributes 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}
 

Detailed Description

A persistent hub device that polls one register range - the read-side mirror of WriterDevice.

Owned by the controller, one per range; the response is parsed straight to the range's sensors.

Definition at line 373 of file modbus_controller.h.

Constructor & Destructor Documentation

◆ PollingDevice()

esphome::modbus_controller::PollingDevice::PollingDevice ( ModbusController & controller,
RegisterRange && range )

Definition at line 99 of file modbus_controller.cpp.

Member Function Documentation

◆ on_response()

void esphome::modbus_controller::PollingDevice::on_response ( std::span< const uint8_t > request_pdu,
std::span< const uint8_t > response_pdu )
overrideprotectedvirtual

Reimplemented from esphome::modbus_controller::ControllerDevice.

Definition at line 117 of file modbus_controller.cpp.

◆ queue()

bool esphome::modbus_controller::PollingDevice::queue ( modbus::CommandOptions options = {})

Queue this range's read (or its sensor's custom PDU) on the hub. False = refused, no callback follows.

Definition at line 102 of file modbus_controller.cpp.

◆ register_address()

uint16_t esphome::modbus_controller::PollingDevice::register_address ( ) const
inline

Definition at line 380 of file modbus_controller.h.

◆ register_count()

uint16_t esphome::modbus_controller::PollingDevice::register_count ( ) const
inline

Definition at line 381 of file modbus_controller.h.

◆ register_type()

EntityType esphome::modbus_controller::PollingDevice::register_type ( ) const
inline

Definition at line 382 of file modbus_controller.h.

Field Documentation

◆ range_

RegisterRange esphome::modbus_controller::PollingDevice::range_
protected

Definition at line 387 of file modbus_controller.h.


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