From 159503b8d37fbc46a353287416a640ad07c2cced Mon Sep 17 00:00:00 2001 From: Brett Adams Date: Mon, 10 Jun 2024 15:48:09 +1000 Subject: [PATCH] Add model to Teslemetry Wall Connectors (#119251) --- homeassistant/components/teslemetry/entity.py | 9 +++++++++ tests/components/teslemetry/fixtures/site_info.json | 6 ++++-- .../teslemetry/snapshots/test_diagnostics.ambr | 6 ++++-- tests/components/teslemetry/snapshots/test_init.ambr | 4 ++-- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/teslemetry/entity.py b/homeassistant/components/teslemetry/entity.py index 82b06918f7d..dd6e6e575c2 100644 --- a/homeassistant/components/teslemetry/entity.py +++ b/homeassistant/components/teslemetry/entity.py @@ -211,6 +211,14 @@ class TeslemetryWallConnectorEntity( """Initialize common aspects of a Teslemetry entity.""" self.din = din self._attr_unique_id = f"{data.id}-{din}-{key}" + + # Find the model from the info coordinator + model: str | None = None + for wc in data.info_coordinator.data.get("components_wall_connectors", []): + if wc["din"] == din: + model = wc.get("part_name") + break + self._attr_device_info = DeviceInfo( identifiers={(DOMAIN, din)}, manufacturer="Tesla", @@ -218,6 +226,7 @@ class TeslemetryWallConnectorEntity( name="Wall Connector", via_device=(DOMAIN, str(data.id)), serial_number=din.split("-")[-1], + model=model, ) super().__init__(data.live_coordinator, data.api, key) diff --git a/tests/components/teslemetry/fixtures/site_info.json b/tests/components/teslemetry/fixtures/site_info.json index f581707ff14..60958bbabbb 100644 --- a/tests/components/teslemetry/fixtures/site_info.json +++ b/tests/components/teslemetry/fixtures/site_info.json @@ -82,12 +82,14 @@ "wall_connectors": [ { "device_id": "123abc", - "din": "abc123", + "din": "abd-123", + "part_name": "Gen 3 Wall Connector", "is_active": true }, { "device_id": "234bcd", - "din": "bcd234", + "din": "bcd-234", + "part_name": "Gen 3 Wall Connector", "is_active": true } ], diff --git a/tests/components/teslemetry/snapshots/test_diagnostics.ambr b/tests/components/teslemetry/snapshots/test_diagnostics.ambr index d13c4f48068..4a942daa508 100644 --- a/tests/components/teslemetry/snapshots/test_diagnostics.ambr +++ b/tests/components/teslemetry/snapshots/test_diagnostics.ambr @@ -76,13 +76,15 @@ 'components_wall_connectors': list([ dict({ 'device_id': '123abc', - 'din': 'abc123', + 'din': 'abd-123', 'is_active': True, + 'part_name': 'Gen 3 Wall Connector', }), dict({ 'device_id': '234bcd', - 'din': 'bcd234', + 'din': 'bcd-234', 'is_active': True, + 'part_name': 'Gen 3 Wall Connector', }), ]), 'components_wifi_commissioning_enabled': True, diff --git a/tests/components/teslemetry/snapshots/test_init.ambr b/tests/components/teslemetry/snapshots/test_init.ambr index 74c3ac011a5..434e9025ac7 100644 --- a/tests/components/teslemetry/snapshots/test_init.ambr +++ b/tests/components/teslemetry/snapshots/test_init.ambr @@ -80,7 +80,7 @@ 'labels': set({ }), 'manufacturer': 'Tesla', - 'model': None, + 'model': 'Gen 3 Wall Connector', 'name': 'Wall Connector', 'name_by_user': None, 'serial_number': '123', @@ -110,7 +110,7 @@ 'labels': set({ }), 'manufacturer': 'Tesla', - 'model': None, + 'model': 'Gen 3 Wall Connector', 'name': 'Wall Connector', 'name_by_user': None, 'serial_number': '234',