[modbus] Update client components to use ModbusClientDevice (#11987)

This commit is contained in:
Bonne Eggleston
2026-06-30 13:26:51 -05:00
committed by GitHub
parent 3035355c0a
commit afb5922f37
17 changed files with 94 additions and 25 deletions
@@ -11,6 +11,7 @@ from esphome.components.modbus.helpers import (
import esphome.config_validation as cv
from esphome.const import CONF_ADDRESS, CONF_ID, CONF_LAMBDA, CONF_NAME, CONF_OFFSET
from esphome.cpp_helpers import logging
from esphome.types import ConfigType
from .const import (
CONF_ALLOW_DUPLICATE_COMMANDS,
@@ -42,7 +43,7 @@ MULTI_CONF = True
modbus_controller_ns = cg.esphome_ns.namespace("modbus_controller")
ModbusController = modbus_controller_ns.class_(
"ModbusController", cg.PollingComponent, modbus.ModbusDevice
"ModbusController", cg.PollingComponent, modbus.ModbusClientDevice
)
SensorItem = modbus_controller_ns.struct("SensorItem")
@@ -117,7 +118,7 @@ def validate_modbus_register(config):
return config
def _final_validate(config):
def _final_validate(config: ConfigType) -> ConfigType:
return modbus.final_validate_modbus_device("modbus_controller", role="client")(
config
)
@@ -211,7 +212,7 @@ async def to_code(config):
async def register_modbus_device(var, config):
cg.add(var.set_address(config[CONF_ADDRESS]))
await cg.register_component(var, config)
return await modbus.register_modbus_device(var, config)
return await modbus.register_modbus_client_device(var, config)
def function_code_to_register(function_code):