mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Make modbus WRITE_COIL use write_coils in case of an array (#48633)
* WRITE_COIL uses write_coils in case of an array. WRITE_REGISTER uses write_register/write_registers depending on whether value is singular or an array. WRITE_COIL is modified to be similar and uses write_coil/write_coils depending on whether value is singular or an array. * Update SERVICE_WRITE_COIL to allow list.
This commit is contained in:
parent
b7ae06f1bb
commit
23fae255ff
@ -282,7 +282,9 @@ SERVICE_WRITE_COIL_SCHEMA = vol.Schema(
|
||||
vol.Optional(ATTR_HUB, default=DEFAULT_HUB): cv.string,
|
||||
vol.Required(ATTR_UNIT): cv.positive_int,
|
||||
vol.Required(ATTR_ADDRESS): cv.positive_int,
|
||||
vol.Required(ATTR_STATE): cv.boolean,
|
||||
vol.Required(ATTR_STATE): vol.Any(
|
||||
cv.boolean, vol.All(cv.ensure_list, [cv.boolean])
|
||||
),
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -93,7 +93,10 @@ def modbus_setup(
|
||||
address = service.data[ATTR_ADDRESS]
|
||||
state = service.data[ATTR_STATE]
|
||||
client_name = service.data[ATTR_HUB]
|
||||
hub_collect[client_name].write_coil(unit, address, state)
|
||||
if isinstance(state, list):
|
||||
hub_collect[client_name].write_coils(unit, address, state)
|
||||
else:
|
||||
hub_collect[client_name].write_coil(unit, address, state)
|
||||
|
||||
# register function to gracefully stop modbus
|
||||
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, stop_modbus)
|
||||
|
Loading…
x
Reference in New Issue
Block a user