1 """Support for Atlantic Pass APC Zone Control."""
3 from typing
import cast
5 from pyoverkiz.enums
import OverkizCommand, OverkizCommandParam, OverkizState
14 from ..coordinator
import OverkizDataUpdateCoordinator
15 from ..entity
import OverkizEntity
17 OVERKIZ_TO_HVAC_MODE: dict[str, HVACMode] = {
18 OverkizCommandParam.HEATING: HVACMode.HEAT,
19 OverkizCommandParam.DRYING: HVACMode.DRY,
20 OverkizCommandParam.COOLING: HVACMode.COOL,
21 OverkizCommandParam.STOP: HVACMode.OFF,
24 HVAC_MODE_TO_OVERKIZ = {v: k
for k, v
in OVERKIZ_TO_HVAC_MODE.items()}
28 """Representation of Atlantic Pass APC Zone Control."""
30 _attr_temperature_unit = UnitOfTemperature.CELSIUS
31 _attr_supported_features = (
32 ClimateEntityFeature.TURN_OFF | ClimateEntityFeature.TURN_ON
34 _enable_turn_on_off_backwards_compatibility =
False
37 self, device_url: str, coordinator: OverkizDataUpdateCoordinator
40 super().
__init__(device_url, coordinator)
50 """Check if auto mode is available on the ZoneControl."""
52 return self.
executorexecutor.has_command(
53 OverkizCommand.SET_HEATING_COOLING_AUTO_SWITCH
54 )
and self.
executorexecutor.has_state(OverkizState.CORE_HEATING_COOLING_AUTO_SWITCH)
58 """Return hvac operation ie. heat, cool mode."""
65 OverkizState.CORE_HEATING_COOLING_AUTO_SWITCH
68 == OverkizCommandParam.ON
72 return OVERKIZ_TO_HVAC_MODE[
74 str, self.
executorexecutor.select_state(OverkizState.IO_PASS_APC_OPERATING_MODE)
79 """Set new target hvac mode."""
82 await self.
executorexecutor.async_execute_command(
83 OverkizCommand.SET_HEATING_COOLING_AUTO_SWITCH,
84 OverkizCommandParam.ON
85 if hvac_mode == HVACMode.AUTO
86 else OverkizCommandParam.OFF,
89 if hvac_mode == HVACMode.AUTO:
92 await self.
executorexecutor.async_execute_command(
93 OverkizCommand.SET_PASS_APC_OPERATING_MODE, HVAC_MODE_TO_OVERKIZ[hvac_mode]
bool is_auto_hvac_mode_available(self)
None async_set_hvac_mode(self, HVACMode hvac_mode)
None __init__(self, str device_url, OverkizDataUpdateCoordinator coordinator)