From 335fdf96ba1cfafb523d7e7a36d34fb0f25aa71b Mon Sep 17 00:00:00 2001
From: epenet <6771947+epenet@users.noreply.github.com>
Date: Fri, 29 Oct 2021 00:37:55 +0200
Subject: [PATCH] Use DeviceInfo in xiaomi-miio (#58642)

---
 .../xiaomi_miio/alarm_control_panel.py        |  9 ++---
 .../components/xiaomi_miio/device.py          | 35 ++++++++++---------
 homeassistant/components/xiaomi_miio/light.py |  9 ++---
 3 files changed, 28 insertions(+), 25 deletions(-)

diff --git a/homeassistant/components/xiaomi_miio/alarm_control_panel.py b/homeassistant/components/xiaomi_miio/alarm_control_panel.py
index 26421770771..1fccbcf8056 100644
--- a/homeassistant/components/xiaomi_miio/alarm_control_panel.py
+++ b/homeassistant/components/xiaomi_miio/alarm_control_panel.py
@@ -14,6 +14,7 @@ from homeassistant.const import (
     STATE_ALARM_ARMING,
     STATE_ALARM_DISARMED,
 )
+from homeassistant.helpers.entity import DeviceInfo
 
 from .const import CONF_GATEWAY, DOMAIN
 
@@ -65,11 +66,11 @@ class XiaomiGatewayAlarm(AlarmControlPanelEntity):
         return self._gateway_device_id
 
     @property
-    def device_info(self):
+    def device_info(self) -> DeviceInfo:
         """Return the device info of the gateway."""
-        return {
-            "identifiers": {(DOMAIN, self._gateway_device_id)},
-        }
+        return DeviceInfo(
+            identifiers={(DOMAIN, self._gateway_device_id)},
+        )
 
     @property
     def name(self):
diff --git a/homeassistant/components/xiaomi_miio/device.py b/homeassistant/components/xiaomi_miio/device.py
index be9c1151aa5..8203b021ef9 100644
--- a/homeassistant/components/xiaomi_miio/device.py
+++ b/homeassistant/components/xiaomi_miio/device.py
@@ -7,8 +7,9 @@ import logging
 from construct.core import ChecksumError
 from miio import Device, DeviceException
 
+from homeassistant.const import ATTR_CONNECTIONS
 from homeassistant.helpers import device_registry as dr
-from homeassistant.helpers.entity import Entity
+from homeassistant.helpers.entity import DeviceInfo, Entity
 from homeassistant.helpers.update_coordinator import CoordinatorEntity
 
 from .const import CONF_MAC, CONF_MODEL, DOMAIN, AuthException, SetupException
@@ -85,17 +86,17 @@ class XiaomiMiioEntity(Entity):
         return self._name
 
     @property
-    def device_info(self):
+    def device_info(self) -> DeviceInfo:
         """Return the device info."""
-        device_info = {
-            "identifiers": {(DOMAIN, self._device_id)},
-            "manufacturer": "Xiaomi",
-            "name": self._name,
-            "model": self._model,
-        }
+        device_info = DeviceInfo(
+            identifiers={(DOMAIN, self._device_id)},
+            manufacturer="Xiaomi",
+            model=self._model,
+            name=self._name,
+        )
 
         if self._mac is not None:
-            device_info["connections"] = {(dr.CONNECTION_NETWORK_MAC, self._mac)}
+            device_info[ATTR_CONNECTIONS] = {(dr.CONNECTION_NETWORK_MAC, self._mac)}
 
         return device_info
 
@@ -125,17 +126,17 @@ class XiaomiCoordinatedMiioEntity(CoordinatorEntity):
         return self._name
 
     @property
-    def device_info(self):
+    def device_info(self) -> DeviceInfo:
         """Return the device info."""
-        device_info = {
-            "identifiers": {(DOMAIN, self._device_id)},
-            "manufacturer": "Xiaomi",
-            "name": self._device_name,
-            "model": self._model,
-        }
+        device_info = DeviceInfo(
+            identifiers={(DOMAIN, self._device_id)},
+            manufacturer="Xiaomi",
+            model=self._model,
+            name=self._device_name,
+        )
 
         if self._mac is not None:
-            device_info["connections"] = {(dr.CONNECTION_NETWORK_MAC, self._mac)}
+            device_info[ATTR_CONNECTIONS] = {(dr.CONNECTION_NETWORK_MAC, self._mac)}
 
         return device_info
 
diff --git a/homeassistant/components/xiaomi_miio/light.py b/homeassistant/components/xiaomi_miio/light.py
index 04597eadf81..03722380a69 100644
--- a/homeassistant/components/xiaomi_miio/light.py
+++ b/homeassistant/components/xiaomi_miio/light.py
@@ -26,6 +26,7 @@ from homeassistant.components.light import (
 )
 from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_TOKEN
 import homeassistant.helpers.config_validation as cv
+from homeassistant.helpers.entity import DeviceInfo
 from homeassistant.util import color, dt
 
 from .const import (
@@ -944,11 +945,11 @@ class XiaomiGatewayLight(LightEntity):
         return self._unique_id
 
     @property
-    def device_info(self):
+    def device_info(self) -> DeviceInfo:
         """Return the device info of the gateway."""
-        return {
-            "identifiers": {(DOMAIN, self._gateway_device_id)},
-        }
+        return DeviceInfo(
+            identifiers={(DOMAIN, self._gateway_device_id)},
+        )
 
     @property
     def name(self):