Adjust modbus climate to use address/input_type (#51202)
This commit is contained in:
parent
88dce0ec8f
commit
538a189168
3 changed files with 13 additions and 22 deletions
|
@ -58,8 +58,6 @@ from .const import (
|
||||||
CONF_BYTESIZE,
|
CONF_BYTESIZE,
|
||||||
CONF_CLIMATES,
|
CONF_CLIMATES,
|
||||||
CONF_CLOSE_COMM_ON_ERROR,
|
CONF_CLOSE_COMM_ON_ERROR,
|
||||||
CONF_CURRENT_TEMP,
|
|
||||||
CONF_CURRENT_TEMP_REGISTER_TYPE,
|
|
||||||
CONF_DATA_COUNT,
|
CONF_DATA_COUNT,
|
||||||
CONF_DATA_TYPE,
|
CONF_DATA_TYPE,
|
||||||
CONF_FANS,
|
CONF_FANS,
|
||||||
|
@ -124,12 +122,15 @@ BASE_COMPONENT_SCHEMA = vol.Schema(
|
||||||
|
|
||||||
CLIMATE_SCHEMA = BASE_COMPONENT_SCHEMA.extend(
|
CLIMATE_SCHEMA = BASE_COMPONENT_SCHEMA.extend(
|
||||||
{
|
{
|
||||||
vol.Required(CONF_CURRENT_TEMP): cv.positive_int,
|
vol.Required(CONF_ADDRESS): cv.positive_int,
|
||||||
|
vol.Optional(CONF_INPUT_TYPE, default=CALL_TYPE_REGISTER_HOLDING): vol.In(
|
||||||
|
[
|
||||||
|
CALL_TYPE_REGISTER_HOLDING,
|
||||||
|
CALL_TYPE_REGISTER_INPUT,
|
||||||
|
]
|
||||||
|
),
|
||||||
vol.Required(CONF_TARGET_TEMP): cv.positive_int,
|
vol.Required(CONF_TARGET_TEMP): cv.positive_int,
|
||||||
vol.Optional(CONF_DATA_COUNT, default=2): cv.positive_int,
|
vol.Optional(CONF_DATA_COUNT, default=2): cv.positive_int,
|
||||||
vol.Optional(
|
|
||||||
CONF_CURRENT_TEMP_REGISTER_TYPE, default=CALL_TYPE_REGISTER_HOLDING
|
|
||||||
): vol.In([CALL_TYPE_REGISTER_HOLDING, CALL_TYPE_REGISTER_INPUT]),
|
|
||||||
vol.Optional(CONF_DATA_TYPE, default=DATA_TYPE_FLOAT): vol.In(
|
vol.Optional(CONF_DATA_TYPE, default=DATA_TYPE_FLOAT): vol.In(
|
||||||
[DATA_TYPE_INT, DATA_TYPE_UINT, DATA_TYPE_FLOAT, DATA_TYPE_CUSTOM]
|
[DATA_TYPE_INT, DATA_TYPE_UINT, DATA_TYPE_FLOAT, DATA_TYPE_CUSTOM]
|
||||||
),
|
),
|
||||||
|
|
|
@ -11,7 +11,6 @@ from homeassistant.components.climate.const import (
|
||||||
SUPPORT_TARGET_TEMPERATURE,
|
SUPPORT_TARGET_TEMPERATURE,
|
||||||
)
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_ADDRESS,
|
|
||||||
CONF_NAME,
|
CONF_NAME,
|
||||||
CONF_OFFSET,
|
CONF_OFFSET,
|
||||||
CONF_STRUCTURE,
|
CONF_STRUCTURE,
|
||||||
|
@ -29,11 +28,8 @@ from .const import (
|
||||||
CALL_TYPE_REGISTER_HOLDING,
|
CALL_TYPE_REGISTER_HOLDING,
|
||||||
CALL_TYPE_WRITE_REGISTERS,
|
CALL_TYPE_WRITE_REGISTERS,
|
||||||
CONF_CLIMATES,
|
CONF_CLIMATES,
|
||||||
CONF_CURRENT_TEMP,
|
|
||||||
CONF_CURRENT_TEMP_REGISTER_TYPE,
|
|
||||||
CONF_DATA_COUNT,
|
CONF_DATA_COUNT,
|
||||||
CONF_DATA_TYPE,
|
CONF_DATA_TYPE,
|
||||||
CONF_INPUT_TYPE,
|
|
||||||
CONF_MAX_TEMP,
|
CONF_MAX_TEMP,
|
||||||
CONF_MIN_TEMP,
|
CONF_MIN_TEMP,
|
||||||
CONF_PRECISION,
|
CONF_PRECISION,
|
||||||
|
@ -108,14 +104,8 @@ class ModbusThermostat(BasePlatform, RestoreEntity, ClimateEntity):
|
||||||
config: dict[str, Any],
|
config: dict[str, Any],
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize the modbus thermostat."""
|
"""Initialize the modbus thermostat."""
|
||||||
config[CONF_ADDRESS] = "0"
|
|
||||||
config[CONF_INPUT_TYPE] = ""
|
|
||||||
super().__init__(hub, config)
|
super().__init__(hub, config)
|
||||||
self._target_temperature_register = config[CONF_TARGET_TEMP]
|
self._target_temperature_register = config[CONF_TARGET_TEMP]
|
||||||
self._current_temperature_register = config[CONF_CURRENT_TEMP]
|
|
||||||
self._current_temperature_register_type = config[
|
|
||||||
CONF_CURRENT_TEMP_REGISTER_TYPE
|
|
||||||
]
|
|
||||||
self._target_temperature = None
|
self._target_temperature = None
|
||||||
self._current_temperature = None
|
self._current_temperature = None
|
||||||
self._data_type = config[CONF_DATA_TYPE]
|
self._data_type = config[CONF_DATA_TYPE]
|
||||||
|
@ -212,7 +202,7 @@ class ModbusThermostat(BasePlatform, RestoreEntity, ClimateEntity):
|
||||||
CALL_TYPE_REGISTER_HOLDING, self._target_temperature_register
|
CALL_TYPE_REGISTER_HOLDING, self._target_temperature_register
|
||||||
)
|
)
|
||||||
self._current_temperature = await self._async_read_register(
|
self._current_temperature = await self._async_read_register(
|
||||||
self._current_temperature_register_type, self._current_temperature_register
|
self._input_type, self._address
|
||||||
)
|
)
|
||||||
|
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
|
|
|
@ -5,12 +5,12 @@ from homeassistant.components.climate import DOMAIN as CLIMATE_DOMAIN
|
||||||
from homeassistant.components.climate.const import HVAC_MODE_AUTO
|
from homeassistant.components.climate.const import HVAC_MODE_AUTO
|
||||||
from homeassistant.components.modbus.const import (
|
from homeassistant.components.modbus.const import (
|
||||||
CONF_CLIMATES,
|
CONF_CLIMATES,
|
||||||
CONF_CURRENT_TEMP,
|
|
||||||
CONF_DATA_COUNT,
|
CONF_DATA_COUNT,
|
||||||
CONF_TARGET_TEMP,
|
CONF_TARGET_TEMP,
|
||||||
)
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_TEMPERATURE,
|
ATTR_TEMPERATURE,
|
||||||
|
CONF_ADDRESS,
|
||||||
CONF_NAME,
|
CONF_NAME,
|
||||||
CONF_SCAN_INTERVAL,
|
CONF_SCAN_INTERVAL,
|
||||||
CONF_SLAVE,
|
CONF_SLAVE,
|
||||||
|
@ -38,7 +38,7 @@ async def test_config_climate(hass, do_options):
|
||||||
device_config = {
|
device_config = {
|
||||||
CONF_NAME: device_name,
|
CONF_NAME: device_name,
|
||||||
CONF_TARGET_TEMP: 117,
|
CONF_TARGET_TEMP: 117,
|
||||||
CONF_CURRENT_TEMP: 117,
|
CONF_ADDRESS: 117,
|
||||||
CONF_SLAVE: 10,
|
CONF_SLAVE: 10,
|
||||||
**do_options,
|
**do_options,
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ async def test_temperature_climate(hass, regs, expected):
|
||||||
CONF_NAME: climate_name,
|
CONF_NAME: climate_name,
|
||||||
CONF_SLAVE: 1,
|
CONF_SLAVE: 1,
|
||||||
CONF_TARGET_TEMP: 117,
|
CONF_TARGET_TEMP: 117,
|
||||||
CONF_CURRENT_TEMP: 117,
|
CONF_ADDRESS: 117,
|
||||||
CONF_DATA_COUNT: 2,
|
CONF_DATA_COUNT: 2,
|
||||||
},
|
},
|
||||||
climate_name,
|
climate_name,
|
||||||
|
@ -96,7 +96,7 @@ async def test_service_climate_update(hass, mock_pymodbus):
|
||||||
{
|
{
|
||||||
CONF_NAME: "test",
|
CONF_NAME: "test",
|
||||||
CONF_TARGET_TEMP: 117,
|
CONF_TARGET_TEMP: 117,
|
||||||
CONF_CURRENT_TEMP: 117,
|
CONF_ADDRESS: 117,
|
||||||
CONF_SLAVE: 10,
|
CONF_SLAVE: 10,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -123,7 +123,7 @@ async def test_restore_state_climate(hass):
|
||||||
config_sensor = {
|
config_sensor = {
|
||||||
CONF_NAME: climate_name,
|
CONF_NAME: climate_name,
|
||||||
CONF_TARGET_TEMP: 117,
|
CONF_TARGET_TEMP: 117,
|
||||||
CONF_CURRENT_TEMP: 117,
|
CONF_ADDRESS: 117,
|
||||||
}
|
}
|
||||||
mock_restore_cache(
|
mock_restore_cache(
|
||||||
hass,
|
hass,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue