rename heating program type

This commit is contained in:
Christopher Fenner
2024-02-16 09:11:23 +01:00
parent f734f75687
commit 861d509c7b
3 changed files with 78 additions and 50 deletions

View File

@@ -40,7 +40,7 @@ from homeassistant.helpers import entity_platform
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DEVICE_LIST, DOMAIN, Program from .const import DEVICE_LIST, DOMAIN, HeatingProgram
from .entity import ViCareEntity from .entity import ViCareEntity
from .types import ViCareDevice from .types import ViCareDevice
from .utils import get_burners, get_circuits, get_compressors from .utils import get_burners, get_circuits, get_compressors
@@ -76,17 +76,17 @@ VICARE_TO_HA_HVAC_HEATING: dict[str, HVACMode] = {
} }
VICARE_TO_HA_PRESET_HEATING = { VICARE_TO_HA_PRESET_HEATING = {
Program.COMFORT: PRESET_COMFORT, HeatingProgram.COMFORT: PRESET_COMFORT,
Program.ECO: PRESET_ECO, HeatingProgram.ECO: PRESET_ECO,
Program.NORMAL: PRESET_HOME, HeatingProgram.NORMAL: PRESET_HOME,
Program.REDUCED: PRESET_SLEEP, HeatingProgram.REDUCED: PRESET_SLEEP,
} }
HA_TO_VICARE_PRESET_HEATING = { HA_TO_VICARE_PRESET_HEATING = {
PRESET_COMFORT: Program.COMFORT, PRESET_COMFORT: HeatingProgram.COMFORT,
PRESET_ECO: Program.ECO, PRESET_ECO: HeatingProgram.ECO,
PRESET_HOME: Program.NORMAL, PRESET_HOME: HeatingProgram.NORMAL,
PRESET_SLEEP: Program.REDUCED, PRESET_SLEEP: HeatingProgram.REDUCED,
} }
@@ -310,9 +310,11 @@ class ViCareClimate(ViCareEntity, ClimateEntity):
_LOGGER.debug("Current preset %s", self._current_program) _LOGGER.debug("Current preset %s", self._current_program)
if self._current_program and self._current_program not in [ if self._current_program and self._current_program not in [
Program.NORMAL, HeatingProgram.NORMAL,
Program.REDUCED, HeatingProgram.NORMAL_HEATING,
Program.STANDBY, HeatingProgram.REDUCED,
HeatingProgram.REDUCED_HEATING,
HeatingProgram.STANDBY,
]: ]:
# We can't deactivate "normal", "reduced" or "standby" # We can't deactivate "normal", "reduced" or "standby"
_LOGGER.debug("deactivating %s", self._current_program) _LOGGER.debug("deactivating %s", self._current_program)
@@ -329,9 +331,11 @@ class ViCareClimate(ViCareEntity, ClimateEntity):
_LOGGER.debug("Setting preset to %s / %s", preset_mode, target_program) _LOGGER.debug("Setting preset to %s / %s", preset_mode, target_program)
if target_program not in [ if target_program not in [
Program.NORMAL, HeatingProgram.NORMAL,
Program.REDUCED, HeatingProgram.NORMAL_HEATING,
Program.STANDBY, HeatingProgram.REDUCED,
HeatingProgram.REDUCED_HEATING,
HeatingProgram.STANDBY,
]: ]:
# And we can't explicitly activate "normal", "reduced" or "standby", either # And we can't explicitly activate "normal", "reduced" or "standby", either
_LOGGER.debug("activating %s", target_program) _LOGGER.debug("activating %s", target_program)

View File

@@ -32,7 +32,7 @@ VICARE_UNIT_TO_UNIT_OF_MEASUREMENT = {
} }
class Program(enum.StrEnum): class HeatingProgram(enum.StrEnum):
"""ViCare preset heating programs. """ViCare preset heating programs.
As listed inhttps://github.com/somm15/PyViCare/blob/63f9f7fea505fdf9a26c77c6cd0bff889abcdb05/PyViCare/PyViCareHeatingDevice.py#L606 As listed inhttps://github.com/somm15/PyViCare/blob/63f9f7fea505fdf9a26c77c6cd0bff889abcdb05/PyViCare/PyViCareHeatingDevice.py#L606

View File

@@ -29,7 +29,7 @@ from homeassistant.const import EntityCategory, UnitOfTemperature
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DEVICE_LIST, DOMAIN, Program from .const import DEVICE_LIST, DOMAIN, HeatingProgram
from .entity import ViCareEntity from .entity import ViCareEntity
from .types import ViCareDevice, ViCareRequiredKeysMixin from .types import ViCareDevice, ViCareRequiredKeysMixin
from .utils import get_circuits, is_supported from .utils import get_circuits, is_supported
@@ -89,13 +89,19 @@ CIRCUIT_ENTITY_DESCRIPTIONS: tuple[ViCareNumberEntityDescription, ...] = (
entity_category=EntityCategory.CONFIG, entity_category=EntityCategory.CONFIG,
device_class=NumberDeviceClass.TEMPERATURE, device_class=NumberDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS, native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_getter=lambda api: api.getDesiredTemperatureForProgram(Program.NORMAL), value_getter=lambda api: api.getDesiredTemperatureForProgram(
value_setter=lambda api, value: api.setProgramTemperature( HeatingProgram.NORMAL
Program.NORMAL, value
), ),
min_value_getter=lambda api: api.getProgramMinTemperature(Program.NORMAL), value_setter=lambda api, value: api.setProgramTemperature(
max_value_getter=lambda api: api.getProgramMaxTemperature(Program.NORMAL), HeatingProgram.NORMAL, value
stepping_getter=lambda api: api.getProgramStepping(Program.NORMAL), ),
min_value_getter=lambda api: api.getProgramMinTemperature(
HeatingProgram.NORMAL
),
max_value_getter=lambda api: api.getProgramMaxTemperature(
HeatingProgram.NORMAL
),
stepping_getter=lambda api: api.getProgramStepping(HeatingProgram.NORMAL),
), ),
ViCareNumberEntityDescription( ViCareNumberEntityDescription(
key="reduced_temperature", key="reduced_temperature",
@@ -103,13 +109,19 @@ CIRCUIT_ENTITY_DESCRIPTIONS: tuple[ViCareNumberEntityDescription, ...] = (
entity_category=EntityCategory.CONFIG, entity_category=EntityCategory.CONFIG,
device_class=NumberDeviceClass.TEMPERATURE, device_class=NumberDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS, native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_getter=lambda api: api.getDesiredTemperatureForProgram(Program.REDUCED), value_getter=lambda api: api.getDesiredTemperatureForProgram(
value_setter=lambda api, value: api.setProgramTemperature( HeatingProgram.REDUCED
Program.REDUCED, value
), ),
min_value_getter=lambda api: api.getProgramMinTemperature(Program.REDUCED), value_setter=lambda api, value: api.setProgramTemperature(
max_value_getter=lambda api: api.getProgramMaxTemperature(Program.REDUCED), HeatingProgram.REDUCED, value
stepping_getter=lambda api: api.getProgramStepping(Program.REDUCED), ),
min_value_getter=lambda api: api.getProgramMinTemperature(
HeatingProgram.REDUCED
),
max_value_getter=lambda api: api.getProgramMaxTemperature(
HeatingProgram.REDUCED
),
stepping_getter=lambda api: api.getProgramStepping(HeatingProgram.REDUCED),
), ),
ViCareNumberEntityDescription( ViCareNumberEntityDescription(
key="comfort_temperature", key="comfort_temperature",
@@ -117,13 +129,19 @@ CIRCUIT_ENTITY_DESCRIPTIONS: tuple[ViCareNumberEntityDescription, ...] = (
entity_category=EntityCategory.CONFIG, entity_category=EntityCategory.CONFIG,
device_class=NumberDeviceClass.TEMPERATURE, device_class=NumberDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS, native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_getter=lambda api: api.getDesiredTemperatureForProgram(Program.COMFORT), value_getter=lambda api: api.getDesiredTemperatureForProgram(
value_setter=lambda api, value: api.setProgramTemperature( HeatingProgram.COMFORT
Program.COMFORT, value
), ),
min_value_getter=lambda api: api.getProgramMinTemperature(Program.COMFORT), value_setter=lambda api, value: api.setProgramTemperature(
max_value_getter=lambda api: api.getProgramMaxTemperature(Program.COMFORT), HeatingProgram.COMFORT, value
stepping_getter=lambda api: api.getProgramStepping(Program.COMFORT), ),
min_value_getter=lambda api: api.getProgramMinTemperature(
HeatingProgram.COMFORT
),
max_value_getter=lambda api: api.getProgramMaxTemperature(
HeatingProgram.COMFORT
),
stepping_getter=lambda api: api.getProgramStepping(HeatingProgram.COMFORT),
), ),
ViCareNumberEntityDescription( ViCareNumberEntityDescription(
key="normal_heating_temperature", key="normal_heating_temperature",
@@ -132,18 +150,20 @@ CIRCUIT_ENTITY_DESCRIPTIONS: tuple[ViCareNumberEntityDescription, ...] = (
device_class=NumberDeviceClass.TEMPERATURE, device_class=NumberDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS, native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_getter=lambda api: api.getDesiredTemperatureForProgram( value_getter=lambda api: api.getDesiredTemperatureForProgram(
Program.NORMAL_HEATING HeatingProgram.NORMAL_HEATING
), ),
value_setter=lambda api, value: api.setProgramTemperature( value_setter=lambda api, value: api.setProgramTemperature(
Program.NORMAL_HEATING, value HeatingProgram.NORMAL_HEATING, value
), ),
min_value_getter=lambda api: api.getProgramMinTemperature( min_value_getter=lambda api: api.getProgramMinTemperature(
Program.NORMAL_HEATING HeatingProgram.NORMAL_HEATING
), ),
max_value_getter=lambda api: api.getProgramMaxTemperature( max_value_getter=lambda api: api.getProgramMaxTemperature(
Program.NORMAL_HEATING HeatingProgram.NORMAL_HEATING
),
stepping_getter=lambda api: api.getProgramStepping(
HeatingProgram.NORMAL_HEATING
), ),
stepping_getter=lambda api: api.getProgramStepping(Program.NORMAL_HEATING),
), ),
ViCareNumberEntityDescription( ViCareNumberEntityDescription(
key="reduced_heating_temperature", key="reduced_heating_temperature",
@@ -152,18 +172,20 @@ CIRCUIT_ENTITY_DESCRIPTIONS: tuple[ViCareNumberEntityDescription, ...] = (
device_class=NumberDeviceClass.TEMPERATURE, device_class=NumberDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS, native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_getter=lambda api: api.getDesiredTemperatureForProgram( value_getter=lambda api: api.getDesiredTemperatureForProgram(
Program.REDUCED_HEATING HeatingProgram.REDUCED_HEATING
), ),
value_setter=lambda api, value: api.setProgramTemperature( value_setter=lambda api, value: api.setProgramTemperature(
Program.NORMAL_HEATING, value HeatingProgram.NORMAL_HEATING, value
), ),
min_value_getter=lambda api: api.getProgramMinTemperature( min_value_getter=lambda api: api.getProgramMinTemperature(
Program.REDUCED_HEATING HeatingProgram.REDUCED_HEATING
), ),
max_value_getter=lambda api: api.getProgramMaxTemperature( max_value_getter=lambda api: api.getProgramMaxTemperature(
Program.REDUCED_HEATING HeatingProgram.REDUCED_HEATING
),
stepping_getter=lambda api: api.getProgramStepping(
HeatingProgram.REDUCED_HEATING
), ),
stepping_getter=lambda api: api.getProgramStepping(Program.REDUCED_HEATING),
), ),
ViCareNumberEntityDescription( ViCareNumberEntityDescription(
key="comfort_heating_temperature", key="comfort_heating_temperature",
@@ -172,18 +194,20 @@ CIRCUIT_ENTITY_DESCRIPTIONS: tuple[ViCareNumberEntityDescription, ...] = (
device_class=NumberDeviceClass.TEMPERATURE, device_class=NumberDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS, native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_getter=lambda api: api.getDesiredTemperatureForProgram( value_getter=lambda api: api.getDesiredTemperatureForProgram(
Program.COMFORT_HEATING HeatingProgram.COMFORT_HEATING
), ),
value_setter=lambda api, value: api.setProgramTemperature( value_setter=lambda api, value: api.setProgramTemperature(
Program.COMFORT_HEATING, value HeatingProgram.COMFORT_HEATING, value
), ),
min_value_getter=lambda api: api.getProgramMinTemperature( min_value_getter=lambda api: api.getProgramMinTemperature(
Program.COMFORT_HEATING HeatingProgram.COMFORT_HEATING
), ),
max_value_getter=lambda api: api.getProgramMaxTemperature( max_value_getter=lambda api: api.getProgramMaxTemperature(
Program.COMFORT_HEATING HeatingProgram.COMFORT_HEATING
),
stepping_getter=lambda api: api.getProgramStepping(
HeatingProgram.COMFORT_HEATING
), ),
stepping_getter=lambda api: api.getProgramStepping(Program.COMFORT_HEATING),
), ),
) )