mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 10:47:10 +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 .base_platform import BaseStructPlatform
|
||||||
from .const import (
|
from .const import (
|
||||||
CALL_TYPE_REGISTER_HOLDING,
|
CALL_TYPE_REGISTER_HOLDING,
|
||||||
|
CALL_TYPE_WRITE_REGISTER,
|
||||||
CALL_TYPE_WRITE_REGISTERS,
|
CALL_TYPE_WRITE_REGISTERS,
|
||||||
CONF_CLIMATES,
|
CONF_CLIMATES,
|
||||||
CONF_MAX_TEMP,
|
CONF_MAX_TEMP,
|
||||||
@ -121,12 +122,23 @@ class ModbusThermostat(BaseStructPlatform, RestoreEntity, ClimateEntity):
|
|||||||
]
|
]
|
||||||
registers = self._swap_registers(raw_regs)
|
registers = self._swap_registers(raw_regs)
|
||||||
|
|
||||||
result = await self._hub.async_pymodbus_call(
|
if self._data_type in (
|
||||||
self._slave,
|
DataType.INT16,
|
||||||
self._target_temperature_register,
|
DataType.UINT16,
|
||||||
[int(float(i)) for i in registers],
|
):
|
||||||
CALL_TYPE_WRITE_REGISTERS,
|
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
|
self._attr_available = result is not None
|
||||||
await self.async_update()
|
await self.async_update()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user