mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 19:27:45 +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 typing import Any
|
||||
|
||||
from aiocomelit import ComeliteSerialBridgeApi
|
||||
from aiocomelit import ComeliteSerialBridgeApi, ComelitSerialBridgeObject
|
||||
from aiocomelit.const import BRIDGE
|
||||
import aiohttp
|
||||
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.exceptions import ConfigEntryAuthFailed
|
||||
from homeassistant.helpers import device_registry as dr
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||
|
||||
from .const import _LOGGER, DOMAIN
|
||||
@ -16,6 +19,8 @@ from .const import _LOGGER, DOMAIN
|
||||
class ComelitSerialBridge(DataUpdateCoordinator):
|
||||
"""Queries Comelit Serial Bridge."""
|
||||
|
||||
config_entry: ConfigEntry
|
||||
|
||||
def __init__(self, hass: HomeAssistant, host: str, pin: int) -> None:
|
||||
"""Initialize the scanner."""
|
||||
|
||||
@ -30,6 +35,38 @@ class ComelitSerialBridge(DataUpdateCoordinator):
|
||||
name=f"{DOMAIN}-{host}-coordinator",
|
||||
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]:
|
||||
"""Update router data."""
|
||||
|
@ -9,7 +9,6 @@ from aiocomelit.const import LIGHT, LIGHT_OFF, LIGHT_ON
|
||||
from homeassistant.components.light import LightEntity
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.device_registry import DeviceInfo
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||
|
||||
@ -37,27 +36,20 @@ class ComelitLightEntity(CoordinatorEntity[ComelitSerialBridge], LightEntity):
|
||||
"""Light device."""
|
||||
|
||||
_attr_has_entity_name = True
|
||||
_attr_name = None
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: ComelitSerialBridge,
|
||||
device: ComelitSerialBridgeObject,
|
||||
config_entry_unique_id: str | None,
|
||||
config_entry_unique_id: str,
|
||||
) -> None:
|
||||
"""Init light entity."""
|
||||
self._api = coordinator.api
|
||||
self._device = device
|
||||
super().__init__(coordinator)
|
||||
self._attr_name = device.name
|
||||
self._attr_unique_id = f"{config_entry_unique_id}-{device.index}"
|
||||
self._attr_device_info = DeviceInfo(
|
||||
identifiers={
|
||||
(DOMAIN, self._attr_unique_id),
|
||||
},
|
||||
manufacturer="Comelit",
|
||||
model="Serial Bridge",
|
||||
name=device.name,
|
||||
)
|
||||
self._attr_device_info = self.coordinator.platform_device_info(device, LIGHT)
|
||||
|
||||
async def _light_set_state(self, state: int) -> None:
|
||||
"""Set desired light state."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user