mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Fix Comelit device info (#100587)
This commit is contained in:
parent
0ae285c404
commit
49b8937bb3
@ -3,11 +3,14 @@ import asyncio
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from aiocomelit import ComeliteSerialBridgeApi
|
from aiocomelit import ComeliteSerialBridgeApi, ComelitSerialBridgeObject
|
||||||
|
from aiocomelit.const import BRIDGE
|
||||||
import aiohttp
|
import aiohttp
|
||||||
|
|
||||||
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.exceptions import ConfigEntryAuthFailed
|
from homeassistant.exceptions import ConfigEntryAuthFailed
|
||||||
|
from homeassistant.helpers import device_registry as dr
|
||||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||||
|
|
||||||
from .const import _LOGGER, DOMAIN
|
from .const import _LOGGER, DOMAIN
|
||||||
@ -16,6 +19,8 @@ from .const import _LOGGER, DOMAIN
|
|||||||
class ComelitSerialBridge(DataUpdateCoordinator):
|
class ComelitSerialBridge(DataUpdateCoordinator):
|
||||||
"""Queries Comelit Serial Bridge."""
|
"""Queries Comelit Serial Bridge."""
|
||||||
|
|
||||||
|
config_entry: ConfigEntry
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant, host: str, pin: int) -> None:
|
def __init__(self, hass: HomeAssistant, host: str, pin: int) -> None:
|
||||||
"""Initialize the scanner."""
|
"""Initialize the scanner."""
|
||||||
|
|
||||||
@ -30,6 +35,38 @@ class ComelitSerialBridge(DataUpdateCoordinator):
|
|||||||
name=f"{DOMAIN}-{host}-coordinator",
|
name=f"{DOMAIN}-{host}-coordinator",
|
||||||
update_interval=timedelta(seconds=5),
|
update_interval=timedelta(seconds=5),
|
||||||
)
|
)
|
||||||
|
device_registry = dr.async_get(self.hass)
|
||||||
|
device_registry.async_get_or_create(
|
||||||
|
config_entry_id=self.config_entry.entry_id,
|
||||||
|
identifiers={(DOMAIN, self.config_entry.entry_id)},
|
||||||
|
model=BRIDGE,
|
||||||
|
name=f"{BRIDGE} ({self.api.host})",
|
||||||
|
**self.basic_device_info,
|
||||||
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def basic_device_info(self) -> dict:
|
||||||
|
"""Set basic device info."""
|
||||||
|
|
||||||
|
return {
|
||||||
|
"manufacturer": "Comelit",
|
||||||
|
"hw_version": "20003101",
|
||||||
|
}
|
||||||
|
|
||||||
|
def platform_device_info(
|
||||||
|
self, device: ComelitSerialBridgeObject, platform: str
|
||||||
|
) -> dr.DeviceInfo:
|
||||||
|
"""Set platform device info."""
|
||||||
|
|
||||||
|
return dr.DeviceInfo(
|
||||||
|
identifiers={
|
||||||
|
(DOMAIN, f"{self.config_entry.entry_id}-{platform}-{device.index}")
|
||||||
|
},
|
||||||
|
via_device=(DOMAIN, self.config_entry.entry_id),
|
||||||
|
name=device.name,
|
||||||
|
model=f"{BRIDGE} {platform}",
|
||||||
|
**self.basic_device_info,
|
||||||
|
)
|
||||||
|
|
||||||
async def _async_update_data(self) -> dict[str, Any]:
|
async def _async_update_data(self) -> dict[str, Any]:
|
||||||
"""Update router data."""
|
"""Update router data."""
|
||||||
|
@ -9,7 +9,6 @@ from aiocomelit.const import LIGHT, LIGHT_OFF, LIGHT_ON
|
|||||||
from homeassistant.components.light import LightEntity
|
from homeassistant.components.light import LightEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.device_registry import DeviceInfo
|
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
@ -37,27 +36,20 @@ class ComelitLightEntity(CoordinatorEntity[ComelitSerialBridge], LightEntity):
|
|||||||
"""Light device."""
|
"""Light device."""
|
||||||
|
|
||||||
_attr_has_entity_name = True
|
_attr_has_entity_name = True
|
||||||
_attr_name = None
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
coordinator: ComelitSerialBridge,
|
coordinator: ComelitSerialBridge,
|
||||||
device: ComelitSerialBridgeObject,
|
device: ComelitSerialBridgeObject,
|
||||||
config_entry_unique_id: str | None,
|
config_entry_unique_id: str,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Init light entity."""
|
"""Init light entity."""
|
||||||
self._api = coordinator.api
|
self._api = coordinator.api
|
||||||
self._device = device
|
self._device = device
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator)
|
||||||
|
self._attr_name = device.name
|
||||||
self._attr_unique_id = f"{config_entry_unique_id}-{device.index}"
|
self._attr_unique_id = f"{config_entry_unique_id}-{device.index}"
|
||||||
self._attr_device_info = DeviceInfo(
|
self._attr_device_info = self.coordinator.platform_device_info(device, LIGHT)
|
||||||
identifiers={
|
|
||||||
(DOMAIN, self._attr_unique_id),
|
|
||||||
},
|
|
||||||
manufacturer="Comelit",
|
|
||||||
model="Serial Bridge",
|
|
||||||
name=device.name,
|
|
||||||
)
|
|
||||||
|
|
||||||
async def _light_set_state(self, state: int) -> None:
|
async def _light_set_state(self, state: int) -> None:
|
||||||
"""Set desired light state."""
|
"""Set desired light state."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user