* Make async_get_device connections Optional, default None * Remove unnecessary async_get_device connections arg usages Some of these were using an incorrect collection type, which didn't cause issues mostly just due to luck.
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
"""Helper functions for Acmeda Pulse."""
|
|
from homeassistant.core import callback
|
|
from homeassistant.helpers.device_registry import async_get_registry as get_dev_reg
|
|
|
|
from .const import DOMAIN, LOGGER
|
|
|
|
|
|
@callback
|
|
def async_add_acmeda_entities(
|
|
hass, entity_class, config_entry, current, async_add_entities
|
|
):
|
|
"""Add any new entities."""
|
|
hub = hass.data[DOMAIN][config_entry.entry_id]
|
|
LOGGER.debug("Looking for new %s on: %s", entity_class.__name__, hub.host)
|
|
|
|
api = hub.api.rollers
|
|
|
|
new_items = []
|
|
for unique_id, roller in api.items():
|
|
if unique_id not in current:
|
|
LOGGER.debug("New %s %s", entity_class.__name__, unique_id)
|
|
new_item = entity_class(roller)
|
|
current.add(unique_id)
|
|
new_items.append(new_item)
|
|
|
|
async_add_entities(new_items)
|
|
|
|
|
|
async def update_devices(hass, config_entry, api):
|
|
"""Tell hass that device info has been updated."""
|
|
dev_registry = await get_dev_reg(hass)
|
|
|
|
for api_item in api.values():
|
|
# Update Device name
|
|
device = dev_registry.async_get_device(identifiers={(DOMAIN, api_item.id)})
|
|
if device is not None:
|
|
dev_registry.async_update_device(
|
|
device.id,
|
|
name=api_item.name,
|
|
)
|