Move homematicip_cloud base entity to separate module (#126094)

* Move homematicip_cloud base entity to separate module

* One more
This commit is contained in:
epenet 2024-09-17 15:46:04 +02:00 committed by GitHub
parent a9c479a78b
commit f3facac016
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 68 additions and 61 deletions

View File

@ -21,8 +21,7 @@ from .const import (
HMIPC_HAPID, HMIPC_HAPID,
HMIPC_NAME, HMIPC_NAME,
) )
from .generic_entity import HomematicipGenericEntity # noqa: F401 from .hap import HomematicipHAP
from .hap import HomematicipAuth, HomematicipHAP # noqa: F401
from .services import async_setup_services, async_unload_services from .services import async_setup_services, async_unload_services
CONFIG_SCHEMA = vol.Schema( CONFIG_SCHEMA = vol.Schema(

View File

@ -21,7 +21,7 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import DOMAIN as HMIPC_DOMAIN from .const import DOMAIN
from .hap import AsyncHome, HomematicipHAP from .hap import AsyncHome, HomematicipHAP
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -35,7 +35,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP alrm control panel from a config entry.""" """Set up the HomematicIP alrm control panel from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
async_add_entities([HomematicipAlarmControlPanelEntity(hap)]) async_add_entities([HomematicipAlarmControlPanelEntity(hap)])
@ -57,11 +57,11 @@ class HomematicipAlarmControlPanelEntity(AlarmControlPanelEntity):
def device_info(self) -> DeviceInfo: def device_info(self) -> DeviceInfo:
"""Return device specific attributes.""" """Return device specific attributes."""
return DeviceInfo( return DeviceInfo(
identifiers={(HMIPC_DOMAIN, f"ACP {self._home.id}")}, identifiers={(DOMAIN, f"ACP {self._home.id}")},
manufacturer="eQ-3", manufacturer="eQ-3",
model=CONST_ALARM_CONTROL_PANEL_NAME, model=CONST_ALARM_CONTROL_PANEL_NAME,
name=self.name, name=self.name,
via_device=(HMIPC_DOMAIN, self._home.id), via_device=(DOMAIN, self._home.id),
) )
@property @property

View File

@ -39,7 +39,8 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .entity import HomematicipGenericEntity
from .hap import HomematicipHAP from .hap import HomematicipHAP
ATTR_ACCELERATION_SENSOR_MODE = "acceleration_sensor_mode" ATTR_ACCELERATION_SENSOR_MODE = "acceleration_sensor_mode"
@ -78,7 +79,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP Cloud binary sensor from a config entry.""" """Set up the HomematicIP Cloud binary sensor from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
entities: list[HomematicipGenericEntity] = [HomematicipCloudConnectionSensor(hap)] entities: list[HomematicipGenericEntity] = [HomematicipCloudConnectionSensor(hap)]
for device in hap.home.devices: for device in hap.home.devices:
if isinstance(device, AsyncAccelerationSensor): if isinstance(device, AsyncAccelerationSensor):
@ -168,7 +169,7 @@ class HomematicipCloudConnectionSensor(HomematicipGenericEntity, BinarySensorEnt
return DeviceInfo( return DeviceInfo(
identifiers={ identifiers={
# Serial numbers of Homematic IP device # Serial numbers of Homematic IP device
(HMIPC_DOMAIN, self._home.id) (DOMAIN, self._home.id)
} }
) )

View File

@ -9,7 +9,8 @@ from homeassistant.config_entries import ConfigEntry
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 . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .entity import HomematicipGenericEntity
from .hap import HomematicipHAP from .hap import HomematicipHAP
@ -19,7 +20,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP button from a config entry.""" """Set up the HomematicIP button from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
async_add_entities( async_add_entities(
HomematicipGarageDoorControllerButton(hap, device) HomematicipGarageDoorControllerButton(hap, device)

View File

@ -31,7 +31,8 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .entity import HomematicipGenericEntity
from .hap import HomematicipHAP from .hap import HomematicipHAP
HEATING_PROFILES = {"PROFILE_1": 0, "PROFILE_2": 1, "PROFILE_3": 2} HEATING_PROFILES = {"PROFILE_1": 0, "PROFILE_2": 1, "PROFILE_3": 2}
@ -59,7 +60,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP climate from a config entry.""" """Set up the HomematicIP climate from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
async_add_entities( async_add_entities(
HomematicipHeatingGroup(hap, device) HomematicipHeatingGroup(hap, device)
@ -94,11 +95,11 @@ class HomematicipHeatingGroup(HomematicipGenericEntity, ClimateEntity):
def device_info(self) -> DeviceInfo: def device_info(self) -> DeviceInfo:
"""Return device specific attributes.""" """Return device specific attributes."""
return DeviceInfo( return DeviceInfo(
identifiers={(HMIPC_DOMAIN, self._device.id)}, identifiers={(DOMAIN, self._device.id)},
manufacturer="eQ-3", manufacturer="eQ-3",
model=self._device.modelType, model=self._device.modelType,
name=self._device.label, name=self._device.label,
via_device=(HMIPC_DOMAIN, self._device.homeId), via_device=(DOMAIN, self._device.homeId),
) )
@property @property

View File

@ -25,7 +25,8 @@ from homeassistant.config_entries import ConfigEntry
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 . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .entity import HomematicipGenericEntity
from .hap import HomematicipHAP from .hap import HomematicipHAP
HMIP_COVER_OPEN = 0 HMIP_COVER_OPEN = 0
@ -40,7 +41,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP cover from a config entry.""" """Set up the HomematicIP cover from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
entities: list[HomematicipGenericEntity] = [ entities: list[HomematicipGenericEntity] = [
HomematicipCoverShutterGroup(hap, group) HomematicipCoverShutterGroup(hap, group)
for group in hap.home.groups for group in hap.home.groups

View File

@ -15,7 +15,7 @@ from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from .const import DOMAIN as HMIPC_DOMAIN from .const import DOMAIN
from .hap import AsyncHome, HomematicipHAP from .hap import AsyncHome, HomematicipHAP
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -104,14 +104,14 @@ class HomematicipGenericEntity(Entity):
return DeviceInfo( return DeviceInfo(
identifiers={ identifiers={
# Serial numbers of Homematic IP device # Serial numbers of Homematic IP device
(HMIPC_DOMAIN, self._device.id) (DOMAIN, self._device.id)
}, },
manufacturer=self._device.oem, manufacturer=self._device.oem,
model=self._device.modelType, model=self._device.modelType,
name=self._device.label, name=self._device.label,
sw_version=self._device.firmwareVersion, sw_version=self._device.firmwareVersion,
# Link to the homematic ip access point. # Link to the homematic ip access point.
via_device=(HMIPC_DOMAIN, self._device.homeId), via_device=(DOMAIN, self._device.homeId),
) )
return None return None

View File

@ -13,7 +13,7 @@ from homematicip.device import Device
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from . import HomematicipGenericEntity from .entity import HomematicipGenericEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -30,7 +30,8 @@ from homeassistant.config_entries import ConfigEntry
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 . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .entity import HomematicipGenericEntity
from .hap import HomematicipHAP from .hap import HomematicipHAP
@ -40,7 +41,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP Cloud lights from a config entry.""" """Set up the HomematicIP Cloud lights from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
entities: list[HomematicipGenericEntity] = [] entities: list[HomematicipGenericEntity] = []
for device in hap.home.devices: for device in hap.home.devices:
if isinstance(device, AsyncBrandSwitchMeasuring): if isinstance(device, AsyncBrandSwitchMeasuring):

View File

@ -13,7 +13,8 @@ from homeassistant.config_entries import ConfigEntry
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 . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .entity import HomematicipGenericEntity
from .helpers import handle_errors from .helpers import handle_errors
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -39,7 +40,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP locks from a config entry.""" """Set up the HomematicIP locks from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
async_add_entities( async_add_entities(
HomematicipDoorLockDrive(hap, device) HomematicipDoorLockDrive(hap, device)

View File

@ -53,7 +53,8 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .entity import HomematicipGenericEntity
from .hap import HomematicipHAP from .hap import HomematicipHAP
from .helpers import get_channels_from_device from .helpers import get_channels_from_device
@ -91,7 +92,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP Cloud sensors from a config entry.""" """Set up the HomematicIP Cloud sensors from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
entities: list[HomematicipGenericEntity] = [] entities: list[HomematicipGenericEntity] = []
for device in hap.home.devices: for device in hap.home.devices:
if isinstance(device, AsyncHomeControlAccessPoint): if isinstance(device, AsyncHomeControlAccessPoint):

View File

@ -21,7 +21,7 @@ from homeassistant.helpers.service import (
verify_domain_control, verify_domain_control,
) )
from .const import DOMAIN as HMIPC_DOMAIN from .const import DOMAIN
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -122,10 +122,10 @@ SCHEMA_SET_HOME_COOLING_MODE = vol.Schema(
async def async_setup_services(hass: HomeAssistant) -> None: async def async_setup_services(hass: HomeAssistant) -> None:
"""Set up the HomematicIP Cloud services.""" """Set up the HomematicIP Cloud services."""
if hass.services.async_services_for_domain(HMIPC_DOMAIN): if hass.services.async_services_for_domain(DOMAIN):
return return
@verify_domain_control(hass, HMIPC_DOMAIN) @verify_domain_control(hass, DOMAIN)
async def async_call_hmipc_service(service: ServiceCall) -> None: async def async_call_hmipc_service(service: ServiceCall) -> None:
"""Call correct HomematicIP Cloud service.""" """Call correct HomematicIP Cloud service."""
service_name = service.service service_name = service.service
@ -150,42 +150,42 @@ async def async_setup_services(hass: HomeAssistant) -> None:
await _async_set_home_cooling_mode(hass, service) await _async_set_home_cooling_mode(hass, service)
hass.services.async_register( hass.services.async_register(
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_ACTIVATE_ECO_MODE_WITH_DURATION, service=SERVICE_ACTIVATE_ECO_MODE_WITH_DURATION,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_ACTIVATE_ECO_MODE_WITH_DURATION, schema=SCHEMA_ACTIVATE_ECO_MODE_WITH_DURATION,
) )
hass.services.async_register( hass.services.async_register(
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_ACTIVATE_ECO_MODE_WITH_PERIOD, service=SERVICE_ACTIVATE_ECO_MODE_WITH_PERIOD,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_ACTIVATE_ECO_MODE_WITH_PERIOD, schema=SCHEMA_ACTIVATE_ECO_MODE_WITH_PERIOD,
) )
hass.services.async_register( hass.services.async_register(
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_ACTIVATE_VACATION, service=SERVICE_ACTIVATE_VACATION,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_ACTIVATE_VACATION, schema=SCHEMA_ACTIVATE_VACATION,
) )
hass.services.async_register( hass.services.async_register(
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_DEACTIVATE_ECO_MODE, service=SERVICE_DEACTIVATE_ECO_MODE,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_DEACTIVATE_ECO_MODE, schema=SCHEMA_DEACTIVATE_ECO_MODE,
) )
hass.services.async_register( hass.services.async_register(
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_DEACTIVATE_VACATION, service=SERVICE_DEACTIVATE_VACATION,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_DEACTIVATE_VACATION, schema=SCHEMA_DEACTIVATE_VACATION,
) )
hass.services.async_register( hass.services.async_register(
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_SET_ACTIVE_CLIMATE_PROFILE, service=SERVICE_SET_ACTIVE_CLIMATE_PROFILE,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_SET_ACTIVE_CLIMATE_PROFILE, schema=SCHEMA_SET_ACTIVE_CLIMATE_PROFILE,
@ -193,7 +193,7 @@ async def async_setup_services(hass: HomeAssistant) -> None:
async_register_admin_service( async_register_admin_service(
hass=hass, hass=hass,
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_DUMP_HAP_CONFIG, service=SERVICE_DUMP_HAP_CONFIG,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_DUMP_HAP_CONFIG, schema=SCHEMA_DUMP_HAP_CONFIG,
@ -201,7 +201,7 @@ async def async_setup_services(hass: HomeAssistant) -> None:
async_register_admin_service( async_register_admin_service(
hass=hass, hass=hass,
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_RESET_ENERGY_COUNTER, service=SERVICE_RESET_ENERGY_COUNTER,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_RESET_ENERGY_COUNTER, schema=SCHEMA_RESET_ENERGY_COUNTER,
@ -209,7 +209,7 @@ async def async_setup_services(hass: HomeAssistant) -> None:
async_register_admin_service( async_register_admin_service(
hass=hass, hass=hass,
domain=HMIPC_DOMAIN, domain=DOMAIN,
service=SERVICE_SET_HOME_COOLING_MODE, service=SERVICE_SET_HOME_COOLING_MODE,
service_func=async_call_hmipc_service, service_func=async_call_hmipc_service,
schema=SCHEMA_SET_HOME_COOLING_MODE, schema=SCHEMA_SET_HOME_COOLING_MODE,
@ -218,11 +218,11 @@ async def async_setup_services(hass: HomeAssistant) -> None:
async def async_unload_services(hass: HomeAssistant): async def async_unload_services(hass: HomeAssistant):
"""Unload HomematicIP Cloud services.""" """Unload HomematicIP Cloud services."""
if hass.data[HMIPC_DOMAIN]: if hass.data[DOMAIN]:
return return
for hmipc_service in HMIPC_SERVICES: for hmipc_service in HMIPC_SERVICES:
hass.services.async_remove(domain=HMIPC_DOMAIN, service=hmipc_service) hass.services.async_remove(domain=DOMAIN, service=hmipc_service)
async def _async_activate_eco_mode_with_duration( async def _async_activate_eco_mode_with_duration(
@ -235,7 +235,7 @@ async def _async_activate_eco_mode_with_duration(
if home := _get_home(hass, hapid): if home := _get_home(hass, hapid):
await home.activate_absence_with_duration(duration) await home.activate_absence_with_duration(duration)
else: else:
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
await hap.home.activate_absence_with_duration(duration) await hap.home.activate_absence_with_duration(duration)
@ -249,7 +249,7 @@ async def _async_activate_eco_mode_with_period(
if home := _get_home(hass, hapid): if home := _get_home(hass, hapid):
await home.activate_absence_with_period(endtime) await home.activate_absence_with_period(endtime)
else: else:
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
await hap.home.activate_absence_with_period(endtime) await hap.home.activate_absence_with_period(endtime)
@ -262,7 +262,7 @@ async def _async_activate_vacation(hass: HomeAssistant, service: ServiceCall) ->
if home := _get_home(hass, hapid): if home := _get_home(hass, hapid):
await home.activate_vacation(endtime, temperature) await home.activate_vacation(endtime, temperature)
else: else:
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
await hap.home.activate_vacation(endtime, temperature) await hap.home.activate_vacation(endtime, temperature)
@ -272,7 +272,7 @@ async def _async_deactivate_eco_mode(hass: HomeAssistant, service: ServiceCall)
if home := _get_home(hass, hapid): if home := _get_home(hass, hapid):
await home.deactivate_absence() await home.deactivate_absence()
else: else:
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
await hap.home.deactivate_absence() await hap.home.deactivate_absence()
@ -282,7 +282,7 @@ async def _async_deactivate_vacation(hass: HomeAssistant, service: ServiceCall)
if home := _get_home(hass, hapid): if home := _get_home(hass, hapid):
await home.deactivate_vacation() await home.deactivate_vacation()
else: else:
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
await hap.home.deactivate_vacation() await hap.home.deactivate_vacation()
@ -293,7 +293,7 @@ async def _set_active_climate_profile(
entity_id_list = service.data[ATTR_ENTITY_ID] entity_id_list = service.data[ATTR_ENTITY_ID]
climate_profile_index = service.data[ATTR_CLIMATE_PROFILE_INDEX] - 1 climate_profile_index = service.data[ATTR_CLIMATE_PROFILE_INDEX] - 1
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
if entity_id_list != "all": if entity_id_list != "all":
for entity_id in entity_id_list: for entity_id in entity_id_list:
group = hap.hmip_device_by_entity_id.get(entity_id) group = hap.hmip_device_by_entity_id.get(entity_id)
@ -313,7 +313,7 @@ async def _async_dump_hap_config(hass: HomeAssistant, service: ServiceCall) -> N
config_file_prefix = service.data[ATTR_CONFIG_OUTPUT_FILE_PREFIX] config_file_prefix = service.data[ATTR_CONFIG_OUTPUT_FILE_PREFIX]
anonymize = service.data[ATTR_ANONYMIZE] anonymize = service.data[ATTR_ANONYMIZE]
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
hap_sgtin = hap.config_entry.unique_id hap_sgtin = hap.config_entry.unique_id
if anonymize: if anonymize:
@ -333,7 +333,7 @@ async def _async_reset_energy_counter(hass: HomeAssistant, service: ServiceCall)
"""Service to reset the energy counter.""" """Service to reset the energy counter."""
entity_id_list = service.data[ATTR_ENTITY_ID] entity_id_list = service.data[ATTR_ENTITY_ID]
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
if entity_id_list != "all": if entity_id_list != "all":
for entity_id in entity_id_list: for entity_id in entity_id_list:
device = hap.hmip_device_by_entity_id.get(entity_id) device = hap.hmip_device_by_entity_id.get(entity_id)
@ -353,17 +353,17 @@ async def _async_set_home_cooling_mode(hass: HomeAssistant, service: ServiceCall
if home := _get_home(hass, hapid): if home := _get_home(hass, hapid):
await home.set_cooling(cooling) await home.set_cooling(cooling)
else: else:
for hap in hass.data[HMIPC_DOMAIN].values(): for hap in hass.data[DOMAIN].values():
await hap.home.set_cooling(cooling) await hap.home.set_cooling(cooling)
def _get_home(hass: HomeAssistant, hapid: str) -> AsyncHome | None: def _get_home(hass: HomeAssistant, hapid: str) -> AsyncHome | None:
"""Return a HmIP home.""" """Return a HmIP home."""
if hap := hass.data[HMIPC_DOMAIN].get(hapid): if hap := hass.data[DOMAIN].get(hapid):
return hap.home return hap.home
raise ServiceValidationError( raise ServiceValidationError(
translation_domain=HMIPC_DOMAIN, translation_domain=DOMAIN,
translation_key="access_point_not_found", translation_key="access_point_not_found",
translation_placeholders={"id": hapid}, translation_placeholders={"id": hapid},
) )

View File

@ -27,8 +27,8 @@ from homeassistant.config_entries import ConfigEntry
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 . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .generic_entity import ATTR_GROUP_MEMBER_UNREACHABLE from .entity import ATTR_GROUP_MEMBER_UNREACHABLE, HomematicipGenericEntity
from .hap import HomematicipHAP from .hap import HomematicipHAP
@ -38,7 +38,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP switch from a config entry.""" """Set up the HomematicIP switch from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
entities: list[HomematicipGenericEntity] = [ entities: list[HomematicipGenericEntity] = [
HomematicipGroupSwitch(hap, group) HomematicipGroupSwitch(hap, group)
for group in hap.home.groups for group in hap.home.groups

View File

@ -27,7 +27,8 @@ from homeassistant.const import UnitOfSpeed, 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 . import DOMAIN as HMIPC_DOMAIN, HomematicipGenericEntity from .const import DOMAIN
from .entity import HomematicipGenericEntity
from .hap import HomematicipHAP from .hap import HomematicipHAP
HOME_WEATHER_CONDITION = { HOME_WEATHER_CONDITION = {
@ -55,7 +56,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the HomematicIP weather sensor from a config entry.""" """Set up the HomematicIP weather sensor from a config entry."""
hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] hap = hass.data[DOMAIN][config_entry.unique_id]
entities: list[HomematicipGenericEntity] = [] entities: list[HomematicipGenericEntity] = []
for device in hap.home.devices: for device in hap.home.devices:
if isinstance(device, AsyncWeatherSensorPro): if isinstance(device, AsyncWeatherSensorPro):

View File

@ -16,7 +16,7 @@ from homematicip.base.homematicip_object import HomeMaticIPObject
from homematicip.home import Home from homematicip.home import Home
from homeassistant.components.homematicip_cloud import DOMAIN as HMIPC_DOMAIN from homeassistant.components.homematicip_cloud import DOMAIN as HMIPC_DOMAIN
from homeassistant.components.homematicip_cloud.generic_entity import ( from homeassistant.components.homematicip_cloud.entity import (
ATTR_IS_GROUP, ATTR_IS_GROUP,
ATTR_MODEL_TYPE, ATTR_MODEL_TYPE,
) )

View File

@ -16,7 +16,7 @@ from homeassistant.components.homematicip_cloud.binary_sensor import (
ATTR_WATER_LEVEL_DETECTED, ATTR_WATER_LEVEL_DETECTED,
ATTR_WINDOW_STATE, ATTR_WINDOW_STATE,
) )
from homeassistant.components.homematicip_cloud.generic_entity import ( from homeassistant.components.homematicip_cloud.entity import (
ATTR_EVENT_DELAY, ATTR_EVENT_DELAY,
ATTR_GROUP_MEMBER_UNREACHABLE, ATTR_GROUP_MEMBER_UNREACHABLE,
ATTR_LOW_BATTERY, ATTR_LOW_BATTERY,

View File

@ -3,7 +3,7 @@
from homematicip.base.enums import ValveState from homematicip.base.enums import ValveState
from homeassistant.components.homematicip_cloud import DOMAIN as HMIPC_DOMAIN from homeassistant.components.homematicip_cloud import DOMAIN as HMIPC_DOMAIN
from homeassistant.components.homematicip_cloud.generic_entity import ( from homeassistant.components.homematicip_cloud.entity import (
ATTR_CONFIG_PENDING, ATTR_CONFIG_PENDING,
ATTR_DEVICE_OVERHEATED, ATTR_DEVICE_OVERHEATED,
ATTR_DEVICE_OVERLOADED, ATTR_DEVICE_OVERLOADED,

View File

@ -1,7 +1,7 @@
"""Tests for HomematicIP Cloud switch.""" """Tests for HomematicIP Cloud switch."""
from homeassistant.components.homematicip_cloud import DOMAIN as HMIPC_DOMAIN from homeassistant.components.homematicip_cloud import DOMAIN as HMIPC_DOMAIN
from homeassistant.components.homematicip_cloud.generic_entity import ( from homeassistant.components.homematicip_cloud.entity import (
ATTR_GROUP_MEMBER_UNREACHABLE, ATTR_GROUP_MEMBER_UNREACHABLE,
) )
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN