Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 23 additions & 24 deletions homeassistant/components/zha/core/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,20 @@
import asyncio
import collections
import logging
from typing import Any
from typing import TYPE_CHECKING, Any

import zigpy.endpoint
import zigpy.exceptions
import zigpy.group

from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_registry import async_entries_for_device

from .helpers import LogMixin
from .typing import (
ZhaDeviceType,
ZhaGatewayType,
ZhaGroupType,
ZigpyEndpointType,
ZigpyGroupType,
)

if TYPE_CHECKING:
from .device import ZHADevice
from .gateway import ZHAGateway

_LOGGER = logging.getLogger(__name__)

Expand All @@ -32,15 +31,15 @@ class ZHAGroupMember(LogMixin):
"""Composite object that represents a device endpoint in a Zigbee group."""

def __init__(
self, zha_group: ZhaGroupType, zha_device: ZhaDeviceType, endpoint_id: int
self, zha_group: ZHAGroup, zha_device: ZHADevice, endpoint_id: int
) -> None:
"""Initialize the group member."""
self._zha_group: ZhaGroupType = zha_group
self._zha_device: ZhaDeviceType = zha_device
self._endpoint_id: int = endpoint_id
self._zha_group = zha_group
self._zha_device = zha_device
self._endpoint_id = endpoint_id

@property
def group(self) -> ZhaGroupType:
def group(self) -> ZHAGroup:
"""Return the group this member belongs to."""
return self._zha_group

Expand All @@ -50,12 +49,12 @@ def endpoint_id(self) -> int:
return self._endpoint_id

@property
def endpoint(self) -> ZigpyEndpointType:
def endpoint(self) -> zigpy.endpoint.Endpoint:
"""Return the endpoint for this group member."""
return self._zha_device.device.endpoints.get(self.endpoint_id)

@property
def device(self) -> ZhaDeviceType:
def device(self) -> ZHADevice:
"""Return the zha device for this group member."""
return self._zha_device

Expand Down Expand Up @@ -101,7 +100,7 @@ async def async_remove_from_group(self) -> None:
str(ex),
)

def log(self, level: int, msg: str, *args) -> None:
def log(self, level: int, msg: str, *args: Any) -> None:
"""Log a message."""
msg = f"[%s](%s): {msg}"
args = (f"0x{self._zha_group.group_id:04x}", self.endpoint_id) + args
Expand All @@ -114,13 +113,13 @@ class ZHAGroup(LogMixin):
def __init__(
self,
hass: HomeAssistant,
zha_gateway: ZhaGatewayType,
zigpy_group: ZigpyGroupType,
zha_gateway: ZHAGateway,
zigpy_group: zigpy.group.Group,
) -> None:
"""Initialize the group."""
self.hass: HomeAssistant = hass
self._zigpy_group: ZigpyGroupType = zigpy_group
self._zha_gateway: ZhaGatewayType = zha_gateway
self.hass = hass
self._zha_gateway = zha_gateway
self._zigpy_group = zigpy_group

@property
def name(self) -> str:
Expand All @@ -133,7 +132,7 @@ def group_id(self) -> int:
return self._zigpy_group.group_id

@property
def endpoint(self) -> ZigpyEndpointType:
def endpoint(self) -> zigpy.endpoint.Endpoint:
"""Return the endpoint for this group."""
return self._zigpy_group.endpoint

Expand Down Expand Up @@ -192,7 +191,7 @@ def member_entity_ids(self) -> list[str]:
all_entity_ids.append(entity_reference["entity_id"])
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."""
domain_entity_ids: list[str] = []
for member in self.members:
Expand All @@ -217,7 +216,7 @@ def group_info(self) -> dict[str, Any]:
group_info["members"] = [member.member_info for member in self.members]
return group_info

def log(self, level: int, msg: str, *args):
def log(self, level: int, msg: str, *args: Any) -> None:
"""Log a message."""
msg = f"[%s](%s): {msg}"
args = (self.name, self.group_id) + args
Expand Down