From e48cb909f47f040342c4507437667a3053e6d39a Mon Sep 17 00:00:00 2001
From: Jan-Philipp Benecke <jan-philipp@bnck.me>
Date: Wed, 1 Nov 2023 16:27:51 +0100
Subject: [PATCH] Use shorthand device info attribute for roomba (#103176)

---
 .../components/roomba/irobot_base.py          | 40 ++++++++-----------
 1 file changed, 17 insertions(+), 23 deletions(-)

diff --git a/homeassistant/components/roomba/irobot_base.py b/homeassistant/components/roomba/irobot_base.py
index 71651fa20b1..62afdf0df6b 100644
--- a/homeassistant/components/roomba/irobot_base.py
+++ b/homeassistant/components/roomba/irobot_base.py
@@ -69,10 +69,23 @@ class IRobotEntity(Entity):
         self.vacuum = roomba
         self._blid = blid
         self.vacuum_state = roomba_reported_state(roomba)
-        self._name = self.vacuum_state.get("name")
-        self._version = self.vacuum_state.get("softwareVer")
-        self._hw_version = self.vacuum_state.get("hardwareRev")
-        self._sku = self.vacuum_state.get("sku")
+
+        self._attr_device_info = DeviceInfo(
+            identifiers={(DOMAIN, self.robot_unique_id)},
+            serial_number=self.vacuum_state.get("hwPartsRev", {}).get("navSerialNo"),
+            manufacturer="iRobot",
+            model=self.vacuum_state.get("sku"),
+            name=str(self.vacuum_state.get("name")),
+            sw_version=self.vacuum_state.get("softwareVer"),
+            hw_version=self.vacuum_state.get("hardwareRev"),
+        )
+
+        if mac_address := self.vacuum_state.get("hwPartsRev", {}).get(
+            "wlan0HwAddr", self.vacuum_state.get("mac")
+        ):
+            self._attr_device_info["connections"] = {
+                (dr.CONNECTION_NETWORK_MAC, mac_address)
+            }
 
     @property
     def robot_unique_id(self):
@@ -84,25 +97,6 @@ class IRobotEntity(Entity):
         """Return the uniqueid of the vacuum cleaner."""
         return self.robot_unique_id
 
-    @property
-    def device_info(self):
-        """Return the device info of the vacuum cleaner."""
-        connections = None
-        if mac_address := self.vacuum_state.get("hwPartsRev", {}).get(
-            "wlan0HwAddr", self.vacuum_state.get("mac")
-        ):
-            connections = {(dr.CONNECTION_NETWORK_MAC, mac_address)}
-        return DeviceInfo(
-            connections=connections,
-            identifiers={(DOMAIN, self.robot_unique_id)},
-            serial_number=self.vacuum_state.get("hwPartsRev", {}).get("navSerialNo"),
-            manufacturer="iRobot",
-            model=self._sku,
-            name=str(self._name),
-            sw_version=self._version,
-            hw_version=self._hw_version,
-        )
-
     @property
     def battery_level(self):
         """Return the battery level of the vacuum cleaner."""