Use DeviceInfo object s-x (#96281)

* Use DeviceInfo object o-x

* Use DeviceInfo object
This commit is contained in:
Joost Lekkerkerker 2023-07-11 19:40:15 +02:00 committed by GitHub
parent f25d5a157a
commit 2f6826dbe3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 43 additions and 24 deletions

View file

@ -15,6 +15,7 @@ from homeassistant.components.binary_sensor import (
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity 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
@ -112,7 +113,9 @@ class SFRBoxBinarySensor(
self._attr_unique_id = ( self._attr_unique_id = (
f"{system_info.mac_addr}_{coordinator.name}_{description.key}" f"{system_info.mac_addr}_{coordinator.name}_{description.key}"
) )
self._attr_device_info = {"identifiers": {(DOMAIN, system_info.mac_addr)}} self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, system_info.mac_addr)},
)
@property @property
def is_on(self) -> bool | None: def is_on(self) -> bool | None:

View file

@ -19,6 +19,7 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN from .const import DOMAIN
@ -100,7 +101,9 @@ class SFRBoxButton(ButtonEntity):
self.entity_description = description self.entity_description = description
self._box = box self._box = box
self._attr_unique_id = f"{system_info.mac_addr}_{description.key}" self._attr_unique_id = f"{system_info.mac_addr}_{description.key}"
self._attr_device_info = {"identifiers": {(DOMAIN, system_info.mac_addr)}} self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, system_info.mac_addr)},
)
@with_error_wrapping @with_error_wrapping
async def async_press(self) -> None: async def async_press(self) -> None:

View file

@ -20,6 +20,7 @@ from homeassistant.const import (
UnitOfTemperature, UnitOfTemperature,
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import StateType from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
@ -252,7 +253,9 @@ class SFRBoxSensor(CoordinatorEntity[SFRDataUpdateCoordinator[_T]], SensorEntity
self._attr_unique_id = ( self._attr_unique_id = (
f"{system_info.mac_addr}_{coordinator.name}_{description.key}" f"{system_info.mac_addr}_{coordinator.name}_{description.key}"
) )
self._attr_device_info = {"identifiers": {(DOMAIN, system_info.mac_addr)}} self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, system_info.mac_addr)},
)
@property @property
def native_value(self) -> StateType: def native_value(self) -> StateType:

View file

@ -254,7 +254,9 @@ class BlockSleepingClimate(
@property @property
def device_info(self) -> DeviceInfo: def device_info(self) -> DeviceInfo:
"""Device info.""" """Device info."""
return {"connections": {(CONNECTION_NETWORK_MAC, self.coordinator.mac)}} return DeviceInfo(
connections={(CONNECTION_NETWORK_MAC, self.coordinator.mac)},
)
def _check_is_off(self) -> bool: def _check_is_off(self) -> bool:
"""Return if valve is off or on.""" """Return if valve is off or on."""

View file

@ -39,6 +39,7 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import config_validation as cv, device_registry as dr from homeassistant.helpers import config_validation as cv, device_registry as dr
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.restore_state import RestoreEntity from homeassistant.helpers.restore_state import RestoreEntity
@ -411,9 +412,12 @@ class TraccarEntity(TrackerEntity, RestoreEntity):
return self._unique_id return self._unique_id
@property @property
def device_info(self): def device_info(self) -> DeviceInfo:
"""Return the device info.""" """Return the device info."""
return {"name": self._name, "identifiers": {(DOMAIN, self._unique_id)}} return DeviceInfo(
name=self._name,
identifiers={(DOMAIN, self._unique_id)},
)
@property @property
def source_type(self) -> SourceType: def source_type(self) -> SourceType:

View file

@ -18,6 +18,7 @@ from homeassistant.const import (
) )
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import update_coordinator from homeassistant.helpers import update_coordinator
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import _LOGGER, DOMAIN, VENSTAR_SLEEP, VENSTAR_TIMEOUT from .const import _LOGGER, DOMAIN, VENSTAR_SLEEP, VENSTAR_TIMEOUT
@ -143,12 +144,12 @@ class VenstarEntity(CoordinatorEntity[VenstarDataUpdateCoordinator]):
self.async_write_ha_state() self.async_write_ha_state()
@property @property
def device_info(self): def device_info(self) -> DeviceInfo:
"""Return the device information for this entity.""" """Return the device information for this entity."""
return { return DeviceInfo(
"identifiers": {(DOMAIN, self._config.entry_id)}, identifiers={(DOMAIN, self._config.entry_id)},
"name": self._client.name, name=self._client.name,
"manufacturer": "Venstar", manufacturer="Venstar",
"model": f"{self._client.model}-{self._client.get_type()}", model=f"{self._client.model}-{self._client.get_type()}",
"sw_version": self._client.get_api_ver(), sw_version=self._client.get_api_ver(),
} )

View file

@ -16,7 +16,7 @@ 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.device_registry import DeviceEntryType from homeassistant.helpers.device_registry import DeviceEntryType
from homeassistant.helpers.entity import generate_entity_id from homeassistant.helpers.entity import DeviceInfo, generate_entity_id
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import DOMAIN from . import DOMAIN
@ -64,19 +64,19 @@ class VulcanCalendarEntity(CalendarEntity):
self._unique_id = f"vulcan_calendar_{self.student_info['id']}" self._unique_id = f"vulcan_calendar_{self.student_info['id']}"
self._attr_name = f"Vulcan calendar - {self.student_info['full_name']}" self._attr_name = f"Vulcan calendar - {self.student_info['full_name']}"
self._attr_unique_id = f"vulcan_calendar_{self.student_info['id']}" self._attr_unique_id = f"vulcan_calendar_{self.student_info['id']}"
self._attr_device_info = { self._attr_device_info = DeviceInfo(
"identifiers": {(DOMAIN, f"calendar_{self.student_info['id']}")}, identifiers={(DOMAIN, f"calendar_{self.student_info['id']}")},
"entry_type": DeviceEntryType.SERVICE, entry_type=DeviceEntryType.SERVICE,
"name": f"{self.student_info['full_name']}: Calendar", name=f"{self.student_info['full_name']}: Calendar",
"model": ( model=(
f"{self.student_info['full_name']} -" f"{self.student_info['full_name']} -"
f" {self.student_info['class']} {self.student_info['school']}" f" {self.student_info['class']} {self.student_info['school']}"
), ),
"manufacturer": "Uonet +", manufacturer="Uonet +",
"configuration_url": ( configuration_url=(
f"https://uonetplus.vulcan.net.pl/{self.student_info['symbol']}" f"https://uonetplus.vulcan.net.pl/{self.student_info['symbol']}"
), ),
} )
@property @property
def event(self) -> CalendarEvent | None: def event(self) -> CalendarEvent | None:

View file

@ -42,6 +42,7 @@ from homeassistant.const import (
UnitOfVolume, UnitOfVolume,
) )
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
@ -997,7 +998,9 @@ class XiaomiGatewayIlluminanceSensor(SensorEntity):
"""Initialize the entity.""" """Initialize the entity."""
self._attr_name = f"{gateway_name} {description.name}" self._attr_name = f"{gateway_name} {description.name}"
self._attr_unique_id = f"{gateway_device_id}-{description.key}" self._attr_unique_id = f"{gateway_device_id}-{description.key}"
self._attr_device_info = {"identifiers": {(DOMAIN, gateway_device_id)}} self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, gateway_device_id)},
)
self._gateway = gateway_device self._gateway = gateway_device
self.entity_description = description self.entity_description = description
self._available = False self._available = False