1 """Support for Overkiz water heater devices."""
3 from __future__
import annotations
5 from pyoverkiz.enums.ui
import UIWidget
12 from ..
import HomeAssistantOverkizData
13 from ..const
import DOMAIN
14 from ..entity
import OverkizEntity
15 from .atlantic_domestic_hot_water_production_mlb_component
import (
16 AtlanticDomesticHotWaterProductionMBLComponent,
18 from .atlantic_pass_apc_dhw
import AtlanticPassAPCDHW
19 from .domestic_hot_water_production
import DomesticHotWaterProduction
20 from .hitachi_dhw
import HitachiDHW
26 async_add_entities: AddEntitiesCallback,
28 """Set up the Overkiz DHW from a config entry."""
29 data: HomeAssistantOverkizData = hass.data[DOMAIN][entry.entry_id]
30 entities: list[OverkizEntity] = []
32 for device
in data.platforms[Platform.WATER_HEATER]:
33 if device.controllable_name
in CONTROLLABLE_NAME_TO_WATER_HEATER_ENTITY:
35 CONTROLLABLE_NAME_TO_WATER_HEATER_ENTITY[device.controllable_name](
36 device.device_url, data.coordinator
39 elif device.widget
in WIDGET_TO_WATER_HEATER_ENTITY:
41 WIDGET_TO_WATER_HEATER_ENTITY[device.widget](
42 device.device_url, data.coordinator
49 WIDGET_TO_WATER_HEATER_ENTITY = {
50 UIWidget.ATLANTIC_PASS_APC_DHW: AtlanticPassAPCDHW,
51 UIWidget.DOMESTIC_HOT_WATER_PRODUCTION: DomesticHotWaterProduction,
52 UIWidget.HITACHI_DHW: HitachiDHW,
55 CONTROLLABLE_NAME_TO_WATER_HEATER_ENTITY = {
56 "modbuslink:AtlanticDomesticHotWaterProductionMBLComponent": AtlanticDomesticHotWaterProductionMBLComponent,
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)