Add support for AtlanticPassAPCZoneControl to Overkiz integration (#72384)

* Add support for AtlanticPassAPCZoneControl (overkiz)

* Remove unneeded comments

* Remove supported features

* Fix new standards
This commit is contained in:
Mick Vleeshouwer 2022-06-14 13:27:58 +02:00 committed by GitHub
parent 1ef0102f12
commit 04c60d2183
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 43 additions and 0 deletions

View file

@ -2,7 +2,9 @@
from pyoverkiz.enums.ui import UIWidget
from .atlantic_electrical_heater import AtlanticElectricalHeater
from .atlantic_pass_apc_zone_control import AtlanticPassAPCZoneControl
WIDGET_TO_CLIMATE_ENTITY = {
UIWidget.ATLANTIC_ELECTRICAL_HEATER: AtlanticElectricalHeater,
UIWidget.ATLANTIC_PASS_APC_ZONE_CONTROL: AtlanticPassAPCZoneControl,
}

View file

@ -0,0 +1,40 @@
"""Support for Atlantic Pass APC Zone Control."""
from typing import cast
from pyoverkiz.enums import OverkizCommand, OverkizCommandParam, OverkizState
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate.const import HVACMode
from homeassistant.components.overkiz.entity import OverkizEntity
from homeassistant.const import TEMP_CELSIUS
OVERKIZ_TO_HVAC_MODE: dict[str, str] = {
OverkizCommandParam.HEATING: HVACMode.HEAT,
OverkizCommandParam.DRYING: HVACMode.DRY,
OverkizCommandParam.COOLING: HVACMode.COOL,
OverkizCommandParam.STOP: HVACMode.OFF,
}
HVAC_MODE_TO_OVERKIZ = {v: k for k, v in OVERKIZ_TO_HVAC_MODE.items()}
class AtlanticPassAPCZoneControl(OverkizEntity, ClimateEntity):
"""Representation of Atlantic Pass APC Zone Control."""
_attr_hvac_modes = [*HVAC_MODE_TO_OVERKIZ]
_attr_temperature_unit = TEMP_CELSIUS
@property
def hvac_mode(self) -> str:
"""Return hvac operation ie. heat, cool mode."""
return OVERKIZ_TO_HVAC_MODE[
cast(
str, self.executor.select_state(OverkizState.IO_PASS_APC_OPERATING_MODE)
)
]
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
"""Set new target hvac mode."""
await self.executor.async_execute_command(
OverkizCommand.SET_PASS_APC_OPERATING_MODE, HVAC_MODE_TO_OVERKIZ[hvac_mode]
)

View file

@ -62,6 +62,7 @@ OVERKIZ_DEVICE_TO_PLATFORM: dict[UIClass | UIWidget, Platform | None] = {
UIClass.WINDOW: Platform.COVER,
UIWidget.ALARM_PANEL_CONTROLLER: Platform.ALARM_CONTROL_PANEL, # widgetName, uiClass is Alarm (not supported)
UIWidget.ATLANTIC_ELECTRICAL_HEATER: Platform.CLIMATE, # widgetName, uiClass is HeatingSystem (not supported)
UIWidget.ATLANTIC_PASS_APC_ZONE_CONTROL: Platform.CLIMATE, # widgetName, uiClass is HeatingSystem (not supported)
UIWidget.DOMESTIC_HOT_WATER_TANK: Platform.SWITCH, # widgetName, uiClass is WaterHeatingSystem (not supported)
UIWidget.MY_FOX_ALARM_CONTROLLER: Platform.ALARM_CONTROL_PANEL, # widgetName, uiClass is Alarm (not supported)
UIWidget.MY_FOX_SECURITY_CAMERA: Platform.SWITCH, # widgetName, uiClass is Camera (not supported)