From 15a7d1376883a6c17e3741618b38c1ae13aaded7 Mon Sep 17 00:00:00 2001 From: Simone Chemelli Date: Mon, 26 May 2025 19:24:23 +0300 Subject: [PATCH] Use model details data from library for Amazon Devices (#145601) * Log warning for unknown models for Amazon Devices * use method from library * apply review comment * Fix --------- Co-authored-by: Joostlek --- homeassistant/components/amazon_devices/entity.py | 8 ++------ homeassistant/components/amazon_devices/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- tests/components/amazon_devices/conftest.py | 4 ++++ 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/amazon_devices/entity.py b/homeassistant/components/amazon_devices/entity.py index 2ac90410bec..825a63db476 100644 --- a/homeassistant/components/amazon_devices/entity.py +++ b/homeassistant/components/amazon_devices/entity.py @@ -1,9 +1,7 @@ """Defines a base Amazon Devices entity.""" -from typing import cast - from aioamazondevices.api import AmazonDevice -from aioamazondevices.const import DEVICE_TYPE_TO_MODEL, SPEAKER_GROUP_MODEL +from aioamazondevices.const import SPEAKER_GROUP_MODEL from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity import EntityDescription @@ -27,9 +25,7 @@ class AmazonEntity(CoordinatorEntity[AmazonDevicesCoordinator]): """Initialize the entity.""" super().__init__(coordinator) self._serial_num = serial_num - model_details: dict[str, str] = cast( - "dict", DEVICE_TYPE_TO_MODEL.get(self.device.device_type) - ) + model_details = coordinator.api.get_model_details(self.device) model = model_details["model"] if model_details else None self._attr_device_info = DeviceInfo( identifiers={(DOMAIN, serial_num)}, diff --git a/homeassistant/components/amazon_devices/manifest.json b/homeassistant/components/amazon_devices/manifest.json index f20c226230d..606dec83150 100644 --- a/homeassistant/components/amazon_devices/manifest.json +++ b/homeassistant/components/amazon_devices/manifest.json @@ -29,5 +29,5 @@ "iot_class": "cloud_polling", "loggers": ["aioamazondevices"], "quality_scale": "bronze", - "requirements": ["aioamazondevices==2.0.1"] + "requirements": ["aioamazondevices==2.1.1"] } diff --git a/requirements_all.txt b/requirements_all.txt index 7cb0a029ce8..488b7011a06 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -182,7 +182,7 @@ aioairzone-cloud==0.6.12 aioairzone==1.0.0 # homeassistant.components.amazon_devices -aioamazondevices==2.0.1 +aioamazondevices==2.1.1 # homeassistant.components.ambient_network # homeassistant.components.ambient_station diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 2b156e3ca2a..07d96dd55b2 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -170,7 +170,7 @@ aioairzone-cloud==0.6.12 aioairzone==1.0.0 # homeassistant.components.amazon_devices -aioamazondevices==2.0.1 +aioamazondevices==2.1.1 # homeassistant.components.ambient_network # homeassistant.components.ambient_station diff --git a/tests/components/amazon_devices/conftest.py b/tests/components/amazon_devices/conftest.py index 5978faa0b31..f0ee29d44e5 100644 --- a/tests/components/amazon_devices/conftest.py +++ b/tests/components/amazon_devices/conftest.py @@ -4,6 +4,7 @@ from collections.abc import Generator from unittest.mock import AsyncMock, patch from aioamazondevices.api import AmazonDevice +from aioamazondevices.const import DEVICE_TYPE_TO_MODEL import pytest from homeassistant.components.amazon_devices.const import CONF_LOGIN_DATA, DOMAIN @@ -57,6 +58,9 @@ def mock_amazon_devices_client() -> Generator[AsyncMock]: bluetooth_state=True, ) } + client.get_model_details = lambda device: DEVICE_TYPE_TO_MODEL.get( + device.device_type + ) yield client