mirror of
https://github.com/home-assistant/core.git
synced 2025-07-10 14:57:09 +00:00
Move homematicip_cloud base entity to separate module (#126094)
* Move homematicip_cloud base entity to separate module * One more
This commit is contained in:
parent
a9c479a78b
commit
f3facac016
@ -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(
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
@ -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__)
|
||||||
|
|
||||||
|
@ -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):
|
||||||
|
@ -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)
|
||||||
|
@ -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):
|
||||||
|
@ -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},
|
||||||
)
|
)
|
||||||
|
@ -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
|
||||||
|
@ -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):
|
||||||
|
@ -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,
|
||||||
)
|
)
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user