From 2f6826dbe36cab4da93c613006abe2f4f70452e7 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Tue, 11 Jul 2023 19:40:15 +0200 Subject: [PATCH] Use DeviceInfo object s-x (#96281) * Use DeviceInfo object o-x * Use DeviceInfo object --- .../components/sfr_box/binary_sensor.py | 5 ++++- homeassistant/components/sfr_box/button.py | 5 ++++- homeassistant/components/sfr_box/sensor.py | 5 ++++- homeassistant/components/shelly/climate.py | 4 +++- .../components/traccar/device_tracker.py | 8 ++++++-- homeassistant/components/venstar/__init__.py | 17 +++++++++-------- homeassistant/components/vulcan/calendar.py | 18 +++++++++--------- homeassistant/components/xiaomi_miio/sensor.py | 5 ++++- 8 files changed, 43 insertions(+), 24 deletions(-) diff --git a/homeassistant/components/sfr_box/binary_sensor.py b/homeassistant/components/sfr_box/binary_sensor.py index e4d41fb0cb8..9e8201bc1b5 100644 --- a/homeassistant/components/sfr_box/binary_sensor.py +++ b/homeassistant/components/sfr_box/binary_sensor.py @@ -15,6 +15,7 @@ from homeassistant.components.binary_sensor import ( from homeassistant.config_entries import ConfigEntry from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity @@ -112,7 +113,9 @@ class SFRBoxBinarySensor( self._attr_unique_id = ( 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 def is_on(self) -> bool | None: diff --git a/homeassistant/components/sfr_box/button.py b/homeassistant/components/sfr_box/button.py index f6741da1398..ab987944acc 100644 --- a/homeassistant/components/sfr_box/button.py +++ b/homeassistant/components/sfr_box/button.py @@ -19,6 +19,7 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError +from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DOMAIN @@ -100,7 +101,9 @@ class SFRBoxButton(ButtonEntity): self.entity_description = description self._box = box 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 async def async_press(self) -> None: diff --git a/homeassistant/components/sfr_box/sensor.py b/homeassistant/components/sfr_box/sensor.py index 19512f43821..fa754bbe62f 100644 --- a/homeassistant/components/sfr_box/sensor.py +++ b/homeassistant/components/sfr_box/sensor.py @@ -20,6 +20,7 @@ from homeassistant.const import ( UnitOfTemperature, ) from homeassistant.core import HomeAssistant +from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import StateType from homeassistant.helpers.update_coordinator import CoordinatorEntity @@ -252,7 +253,9 @@ class SFRBoxSensor(CoordinatorEntity[SFRDataUpdateCoordinator[_T]], SensorEntity self._attr_unique_id = ( 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 def native_value(self) -> StateType: diff --git a/homeassistant/components/shelly/climate.py b/homeassistant/components/shelly/climate.py index 6cd4c19c638..4cc5cacbde3 100644 --- a/homeassistant/components/shelly/climate.py +++ b/homeassistant/components/shelly/climate.py @@ -254,7 +254,9 @@ class BlockSleepingClimate( @property def device_info(self) -> DeviceInfo: """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: """Return if valve is off or on.""" diff --git a/homeassistant/components/traccar/device_tracker.py b/homeassistant/components/traccar/device_tracker.py index 9ed7922fa19..a22b8a993f1 100644 --- a/homeassistant/components/traccar/device_tracker.py +++ b/homeassistant/components/traccar/device_tracker.py @@ -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.aiohttp_client import async_get_clientsession from homeassistant.helpers.dispatcher import async_dispatcher_connect +from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.restore_state import RestoreEntity @@ -411,9 +412,12 @@ class TraccarEntity(TrackerEntity, RestoreEntity): return self._unique_id @property - def device_info(self): + def device_info(self) -> DeviceInfo: """Return the device info.""" - return {"name": self._name, "identifiers": {(DOMAIN, self._unique_id)}} + return DeviceInfo( + name=self._name, + identifiers={(DOMAIN, self._unique_id)}, + ) @property def source_type(self) -> SourceType: diff --git a/homeassistant/components/venstar/__init__.py b/homeassistant/components/venstar/__init__.py index 48760a8bfc0..4b2d2955832 100644 --- a/homeassistant/components/venstar/__init__.py +++ b/homeassistant/components/venstar/__init__.py @@ -18,6 +18,7 @@ from homeassistant.const import ( ) from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import update_coordinator +from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import _LOGGER, DOMAIN, VENSTAR_SLEEP, VENSTAR_TIMEOUT @@ -143,12 +144,12 @@ class VenstarEntity(CoordinatorEntity[VenstarDataUpdateCoordinator]): self.async_write_ha_state() @property - def device_info(self): + def device_info(self) -> DeviceInfo: """Return the device information for this entity.""" - return { - "identifiers": {(DOMAIN, self._config.entry_id)}, - "name": self._client.name, - "manufacturer": "Venstar", - "model": f"{self._client.model}-{self._client.get_type()}", - "sw_version": self._client.get_api_ver(), - } + return DeviceInfo( + identifiers={(DOMAIN, self._config.entry_id)}, + name=self._client.name, + manufacturer="Venstar", + model=f"{self._client.model}-{self._client.get_type()}", + sw_version=self._client.get_api_ver(), + ) diff --git a/homeassistant/components/vulcan/calendar.py b/homeassistant/components/vulcan/calendar.py index d9182bb9905..debf1f4ea0d 100644 --- a/homeassistant/components/vulcan/calendar.py +++ b/homeassistant/components/vulcan/calendar.py @@ -16,7 +16,7 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed 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 . import DOMAIN @@ -64,19 +64,19 @@ class VulcanCalendarEntity(CalendarEntity): self._unique_id = f"vulcan_calendar_{self.student_info['id']}" self._attr_name = f"Vulcan calendar - {self.student_info['full_name']}" self._attr_unique_id = f"vulcan_calendar_{self.student_info['id']}" - self._attr_device_info = { - "identifiers": {(DOMAIN, f"calendar_{self.student_info['id']}")}, - "entry_type": DeviceEntryType.SERVICE, - "name": f"{self.student_info['full_name']}: Calendar", - "model": ( + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, f"calendar_{self.student_info['id']}")}, + entry_type=DeviceEntryType.SERVICE, + name=f"{self.student_info['full_name']}: Calendar", + model=( f"{self.student_info['full_name']} -" f" {self.student_info['class']} {self.student_info['school']}" ), - "manufacturer": "Uonet +", - "configuration_url": ( + manufacturer="Uonet +", + configuration_url=( f"https://uonetplus.vulcan.net.pl/{self.student_info['symbol']}" ), - } + ) @property def event(self) -> CalendarEvent | None: diff --git a/homeassistant/components/xiaomi_miio/sensor.py b/homeassistant/components/xiaomi_miio/sensor.py index 249774519d0..b28f06eb97d 100644 --- a/homeassistant/components/xiaomi_miio/sensor.py +++ b/homeassistant/components/xiaomi_miio/sensor.py @@ -42,6 +42,7 @@ from homeassistant.const import ( UnitOfVolume, ) from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.util import dt as dt_util @@ -997,7 +998,9 @@ class XiaomiGatewayIlluminanceSensor(SensorEntity): """Initialize the entity.""" self._attr_name = f"{gateway_name} {description.name}" 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.entity_description = description self._available = False