From eb897c6f482b46d3ee1d7e56374666953ce2870b Mon Sep 17 00:00:00 2001 From: Jonathan Keslin Date: Tue, 21 Dec 2021 03:06:08 -0800 Subject: [PATCH] Add device registry information to Blink entities (#62449) --- .../components/blink/alarm_control_panel.py | 6 +++++- homeassistant/components/blink/binary_sensor.py | 16 +++++++++++++++- homeassistant/components/blink/camera.py | 7 +++++++ homeassistant/components/blink/sensor.py | 11 ++++++++++- 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/blink/alarm_control_panel.py b/homeassistant/components/blink/alarm_control_panel.py index ea215ebb689..b81c0668530 100644 --- a/homeassistant/components/blink/alarm_control_panel.py +++ b/homeassistant/components/blink/alarm_control_panel.py @@ -8,8 +8,9 @@ from homeassistant.const import ( STATE_ALARM_ARMED_AWAY, STATE_ALARM_DISARMED, ) +from homeassistant.helpers.entity import DeviceInfo -from .const import DEFAULT_ATTRIBUTION, DOMAIN +from .const import DEFAULT_ATTRIBUTION, DEFAULT_BRAND, DOMAIN _LOGGER = logging.getLogger(__name__) @@ -39,6 +40,9 @@ class BlinkSyncModule(AlarmControlPanelEntity): self._name = name self._attr_unique_id = sync.serial self._attr_name = f"{DOMAIN} {name}" + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, sync.serial)}, name=name, manufacturer=DEFAULT_BRAND + ) def update(self): """Update the state of the device.""" diff --git a/homeassistant/components/blink/binary_sensor.py b/homeassistant/components/blink/binary_sensor.py index 6e5dd58c368..737d5372a15 100644 --- a/homeassistant/components/blink/binary_sensor.py +++ b/homeassistant/components/blink/binary_sensor.py @@ -6,14 +6,22 @@ from homeassistant.components.binary_sensor import ( BinarySensorEntity, BinarySensorEntityDescription, ) +from homeassistant.helpers.entity import DeviceInfo, EntityCategory -from .const import DOMAIN, TYPE_BATTERY, TYPE_CAMERA_ARMED, TYPE_MOTION_DETECTED +from .const import ( + DEFAULT_BRAND, + DOMAIN, + TYPE_BATTERY, + TYPE_CAMERA_ARMED, + TYPE_MOTION_DETECTED, +) BINARY_SENSORS_TYPES: tuple[BinarySensorEntityDescription, ...] = ( BinarySensorEntityDescription( key=TYPE_BATTERY, name="Battery", device_class=BinarySensorDeviceClass.BATTERY, + entity_category=EntityCategory.DIAGNOSTIC, ), BinarySensorEntityDescription( key=TYPE_CAMERA_ARMED, @@ -49,6 +57,12 @@ class BlinkBinarySensor(BinarySensorEntity): self._attr_name = f"{DOMAIN} {camera} {description.name}" self._camera = data.cameras[camera] self._attr_unique_id = f"{self._camera.serial}-{description.key}" + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, self._camera.serial)}, + name=camera, + manufacturer=DEFAULT_BRAND, + model=self._camera.camera_type, + ) def update(self): """Update sensor state.""" diff --git a/homeassistant/components/blink/camera.py b/homeassistant/components/blink/camera.py index 9a617bbc781..6a264afee35 100644 --- a/homeassistant/components/blink/camera.py +++ b/homeassistant/components/blink/camera.py @@ -5,6 +5,7 @@ import logging from homeassistant.components.camera import Camera from homeassistant.helpers import entity_platform +from homeassistant.helpers.entity import DeviceInfo from .const import DEFAULT_BRAND, DOMAIN, SERVICE_TRIGGER @@ -37,6 +38,12 @@ class BlinkCamera(Camera): self._attr_name = f"{DOMAIN} {name}" self._camera = camera self._attr_unique_id = f"{camera.serial}-camera" + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, camera.serial)}, + name=name, + manufacturer=DEFAULT_BRAND, + model=camera.camera_type, + ) _LOGGER.debug("Initialized blink camera %s", self.name) @property diff --git a/homeassistant/components/blink/sensor.py b/homeassistant/components/blink/sensor.py index 8a5947ec8bf..bb58a01e534 100644 --- a/homeassistant/components/blink/sensor.py +++ b/homeassistant/components/blink/sensor.py @@ -9,8 +9,9 @@ from homeassistant.components.sensor import ( SensorEntityDescription, ) from homeassistant.const import SIGNAL_STRENGTH_DECIBELS_MILLIWATT, TEMP_FAHRENHEIT +from homeassistant.helpers.entity import DeviceInfo, EntityCategory -from .const import DOMAIN, TYPE_TEMPERATURE, TYPE_WIFI_STRENGTH +from .const import DEFAULT_BRAND, DOMAIN, TYPE_TEMPERATURE, TYPE_WIFI_STRENGTH _LOGGER = logging.getLogger(__name__) @@ -20,12 +21,14 @@ SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( name="Temperature", native_unit_of_measurement=TEMP_FAHRENHEIT, device_class=SensorDeviceClass.TEMPERATURE, + entity_category=EntityCategory.DIAGNOSTIC, ), SensorEntityDescription( key=TYPE_WIFI_STRENGTH, name="Wifi Signal", native_unit_of_measurement=SIGNAL_STRENGTH_DECIBELS_MILLIWATT, device_class=SensorDeviceClass.SIGNAL_STRENGTH, + entity_category=EntityCategory.DIAGNOSTIC, ), ) @@ -57,6 +60,12 @@ class BlinkSensor(SensorEntity): if description.key == "temperature" else description.key ) + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, self._camera.serial)}, + name=camera, + manufacturer=DEFAULT_BRAND, + model=self._camera.camera_type, + ) def update(self): """Retrieve sensor data from the camera."""