mirror of
https://github.com/home-assistant/core.git
synced 2025-07-26 06:37:52 +00:00
Add zha typing [core.group] (#68350)
This commit is contained in:
parent
171c58fed2
commit
f9dcf5afa2
@ -4,21 +4,20 @@ from __future__ import annotations
|
|||||||
import asyncio
|
import asyncio
|
||||||
import collections
|
import collections
|
||||||
import logging
|
import logging
|
||||||
from typing import Any
|
from typing import TYPE_CHECKING, Any
|
||||||
|
|
||||||
|
import zigpy.endpoint
|
||||||
import zigpy.exceptions
|
import zigpy.exceptions
|
||||||
|
import zigpy.group
|
||||||
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_registry import async_entries_for_device
|
from homeassistant.helpers.entity_registry import async_entries_for_device
|
||||||
|
|
||||||
from .helpers import LogMixin
|
from .helpers import LogMixin
|
||||||
from .typing import (
|
|
||||||
ZhaDeviceType,
|
if TYPE_CHECKING:
|
||||||
ZhaGatewayType,
|
from .device import ZHADevice
|
||||||
ZhaGroupType,
|
from .gateway import ZHAGateway
|
||||||
ZigpyEndpointType,
|
|
||||||
ZigpyGroupType,
|
|
||||||
)
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -32,15 +31,15 @@ class ZHAGroupMember(LogMixin):
|
|||||||
"""Composite object that represents a device endpoint in a Zigbee group."""
|
"""Composite object that represents a device endpoint in a Zigbee group."""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, zha_group: ZhaGroupType, zha_device: ZhaDeviceType, endpoint_id: int
|
self, zha_group: ZHAGroup, zha_device: ZHADevice, endpoint_id: int
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize the group member."""
|
"""Initialize the group member."""
|
||||||
self._zha_group: ZhaGroupType = zha_group
|
self._zha_group = zha_group
|
||||||
self._zha_device: ZhaDeviceType = zha_device
|
self._zha_device = zha_device
|
||||||
self._endpoint_id: int = endpoint_id
|
self._endpoint_id = endpoint_id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def group(self) -> ZhaGroupType:
|
def group(self) -> ZHAGroup:
|
||||||
"""Return the group this member belongs to."""
|
"""Return the group this member belongs to."""
|
||||||
return self._zha_group
|
return self._zha_group
|
||||||
|
|
||||||
@ -50,12 +49,12 @@ class ZHAGroupMember(LogMixin):
|
|||||||
return self._endpoint_id
|
return self._endpoint_id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def endpoint(self) -> ZigpyEndpointType:
|
def endpoint(self) -> zigpy.endpoint.Endpoint:
|
||||||
"""Return the endpoint for this group member."""
|
"""Return the endpoint for this group member."""
|
||||||
return self._zha_device.device.endpoints.get(self.endpoint_id)
|
return self._zha_device.device.endpoints.get(self.endpoint_id)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device(self) -> ZhaDeviceType:
|
def device(self) -> ZHADevice:
|
||||||
"""Return the zha device for this group member."""
|
"""Return the zha device for this group member."""
|
||||||
return self._zha_device
|
return self._zha_device
|
||||||
|
|
||||||
@ -101,7 +100,7 @@ class ZHAGroupMember(LogMixin):
|
|||||||
str(ex),
|
str(ex),
|
||||||
)
|
)
|
||||||
|
|
||||||
def log(self, level: int, msg: str, *args) -> None:
|
def log(self, level: int, msg: str, *args: Any) -> None:
|
||||||
"""Log a message."""
|
"""Log a message."""
|
||||||
msg = f"[%s](%s): {msg}"
|
msg = f"[%s](%s): {msg}"
|
||||||
args = (f"0x{self._zha_group.group_id:04x}", self.endpoint_id) + args
|
args = (f"0x{self._zha_group.group_id:04x}", self.endpoint_id) + args
|
||||||
@ -114,13 +113,13 @@ class ZHAGroup(LogMixin):
|
|||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
zha_gateway: ZhaGatewayType,
|
zha_gateway: ZHAGateway,
|
||||||
zigpy_group: ZigpyGroupType,
|
zigpy_group: zigpy.group.Group,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize the group."""
|
"""Initialize the group."""
|
||||||
self.hass: HomeAssistant = hass
|
self.hass = hass
|
||||||
self._zigpy_group: ZigpyGroupType = zigpy_group
|
self._zha_gateway = zha_gateway
|
||||||
self._zha_gateway: ZhaGatewayType = zha_gateway
|
self._zigpy_group = zigpy_group
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self) -> str:
|
def name(self) -> str:
|
||||||
@ -133,7 +132,7 @@ class ZHAGroup(LogMixin):
|
|||||||
return self._zigpy_group.group_id
|
return self._zigpy_group.group_id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def endpoint(self) -> ZigpyEndpointType:
|
def endpoint(self) -> zigpy.endpoint.Endpoint:
|
||||||
"""Return the endpoint for this group."""
|
"""Return the endpoint for this group."""
|
||||||
return self._zigpy_group.endpoint
|
return self._zigpy_group.endpoint
|
||||||
|
|
||||||
@ -192,7 +191,7 @@ class ZHAGroup(LogMixin):
|
|||||||
all_entity_ids.append(entity_reference["entity_id"])
|
all_entity_ids.append(entity_reference["entity_id"])
|
||||||
return all_entity_ids
|
return all_entity_ids
|
||||||
|
|
||||||
def get_domain_entity_ids(self, domain) -> list[str]:
|
def get_domain_entity_ids(self, domain: str) -> list[str]:
|
||||||
"""Return entity ids from the entity domain for this group."""
|
"""Return entity ids from the entity domain for this group."""
|
||||||
domain_entity_ids: list[str] = []
|
domain_entity_ids: list[str] = []
|
||||||
for member in self.members:
|
for member in self.members:
|
||||||
@ -217,7 +216,7 @@ class ZHAGroup(LogMixin):
|
|||||||
group_info["members"] = [member.member_info for member in self.members]
|
group_info["members"] = [member.member_info for member in self.members]
|
||||||
return group_info
|
return group_info
|
||||||
|
|
||||||
def log(self, level: int, msg: str, *args):
|
def log(self, level: int, msg: str, *args: Any) -> None:
|
||||||
"""Log a message."""
|
"""Log a message."""
|
||||||
msg = f"[%s](%s): {msg}"
|
msg = f"[%s](%s): {msg}"
|
||||||
args = (self.name, self.group_id) + args
|
args = (self.name, self.group_id) + args
|
||||||
|
Loading…
x
Reference in New Issue
Block a user