mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 01:38:02 +00:00
Auto detect call write register or write registers in set_temperature modbus (#68678)
This commit is contained in:
parent
9aac5d6af1
commit
3cccb948a1
@ -28,6 +28,7 @@ from . import get_hub
|
||||
from .base_platform import BaseStructPlatform
|
||||
from .const import (
|
||||
CALL_TYPE_REGISTER_HOLDING,
|
||||
CALL_TYPE_WRITE_REGISTER,
|
||||
CALL_TYPE_WRITE_REGISTERS,
|
||||
CONF_CLIMATES,
|
||||
CONF_MAX_TEMP,
|
||||
@ -121,12 +122,23 @@ class ModbusThermostat(BaseStructPlatform, RestoreEntity, ClimateEntity):
|
||||
]
|
||||
registers = self._swap_registers(raw_regs)
|
||||
|
||||
result = await self._hub.async_pymodbus_call(
|
||||
self._slave,
|
||||
self._target_temperature_register,
|
||||
[int(float(i)) for i in registers],
|
||||
CALL_TYPE_WRITE_REGISTERS,
|
||||
)
|
||||
if self._data_type in (
|
||||
DataType.INT16,
|
||||
DataType.UINT16,
|
||||
):
|
||||
result = await self._hub.async_pymodbus_call(
|
||||
self._slave,
|
||||
self._target_temperature_register,
|
||||
int(float(registers[0])),
|
||||
CALL_TYPE_WRITE_REGISTER,
|
||||
)
|
||||
else:
|
||||
result = await self._hub.async_pymodbus_call(
|
||||
self._slave,
|
||||
self._target_temperature_register,
|
||||
[int(float(i)) for i in registers],
|
||||
CALL_TYPE_WRITE_REGISTERS,
|
||||
)
|
||||
self._attr_available = result is not None
|
||||
await self.async_update()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user