Files
core/homeassistant/components/homee/helpers.py
2025-09-12 00:19:37 +02:00

48 lines
1.4 KiB
Python

"""Helper functions for the homee custom component."""
from collections.abc import Callable, Coroutine
from enum import IntEnum
import logging
from typing import Any
from pyHomee.model import HomeeNode
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import HomeeConfigEntry
_LOGGER = logging.getLogger(__name__)
async def setup_homee_platform(
add_platform_entities: Callable[
[HomeeConfigEntry, AddConfigEntryEntitiesCallback, list[HomeeNode]],
Coroutine[Any, Any, None],
],
async_add_entities: AddConfigEntryEntitiesCallback,
config_entry: HomeeConfigEntry,
) -> None:
"""Set up a homee platform."""
await add_platform_entities(
config_entry, async_add_entities, config_entry.runtime_data.nodes
)
async def add_device(node: HomeeNode, add: bool) -> None:
"""Dynamically add entities."""
if add:
await add_platform_entities(config_entry, async_add_entities, [node])
config_entry.async_on_unload(
config_entry.runtime_data.add_nodes_listener(add_device)
)
def get_name_for_enum(att_class: type[IntEnum], att_id: int) -> str | None:
"""Return the enum item name for a given integer."""
try:
item = att_class(att_id)
except ValueError:
_LOGGER.warning("Value %s does not exist in %s", att_id, att_class.__name__)
return None
return item.name.lower()