diff --git a/homeassistant/components/alexa_devices/diagnostics.py b/homeassistant/components/alexa_devices/diagnostics.py index 59e84384f7a7..09a061737a2a 100644 --- a/homeassistant/components/alexa_devices/diagnostics.py +++ b/homeassistant/components/alexa_devices/diagnostics.py @@ -1,14 +1,14 @@ """Diagnostics support for Alexa Devices integration.""" from dataclasses import asdict -from typing import Any +from typing import TYPE_CHECKING, Any from aioamazondevices.structures import AmazonDevice from homeassistant.components.diagnostics import async_redact_data from homeassistant.const import CONF_NAME, CONF_PASSWORD, CONF_USERNAME from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry, DeviceEntry from .coordinator import AmazonConfigEntry @@ -48,13 +48,16 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: AmazonConfigEntry, device_entry: DeviceEntry + hass: HomeAssistant, entry: AmazonConfigEntry, device_entry: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" coordinator = entry.runtime_data - assert device_entry.serial_number + if TYPE_CHECKING: + # alexa_devices does not create child devices, and devices have a serial number + assert isinstance(device_entry, DeviceEntry) + assert device_entry.serial_number return build_device_data(coordinator.data[device_entry.serial_number]) diff --git a/homeassistant/components/diagnostics/util.py b/homeassistant/components/diagnostics/util.py index 9326961c5d8c..bc4af4f28df3 100644 --- a/homeassistant/components/diagnostics/util.py +++ b/homeassistant/components/diagnostics/util.py @@ -6,7 +6,7 @@ from typing import Any, cast, overload import attr from homeassistant.core import callback -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from homeassistant.helpers.entity_registry import RegistryEntry from .const import REDACTED @@ -65,7 +65,7 @@ def _device_entry_filter(a: attr.Attribute, _: Any) -> bool: @callback -def device_entry_as_dict(entry: DeviceEntry) -> dict[str, Any]: +def device_entry_as_dict(entry: AnyDeviceEntry) -> dict[str, Any]: """Convert a device registry entry to a dict for diagnostics. This excludes internal fields that should not be exposed in diagnostics. diff --git a/homeassistant/components/ecowitt/diagnostics.py b/homeassistant/components/ecowitt/diagnostics.py index e936eb92a981..1b7c35ce96e1 100644 --- a/homeassistant/components/ecowitt/diagnostics.py +++ b/homeassistant/components/ecowitt/diagnostics.py @@ -3,14 +3,14 @@ from typing import Any from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from . import EcowittConfigEntry from .const import DOMAIN async def async_get_device_diagnostics( - hass: HomeAssistant, entry: EcowittConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: EcowittConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" ecowitt = entry.runtime_data diff --git a/homeassistant/components/fibaro/diagnostics.py b/homeassistant/components/fibaro/diagnostics.py index b2c41e8ef8f1..4d94d3cd71f1 100644 --- a/homeassistant/components/fibaro/diagnostics.py +++ b/homeassistant/components/fibaro/diagnostics.py @@ -7,7 +7,7 @@ from pyfibaro.fibaro_device import DeviceModel from homeassistant.components.diagnostics import async_redact_data from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from . import CONF_IMPORT_PLUGINS, FibaroConfigEntry @@ -34,7 +34,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: FibaroConfigEntry, device: DeviceEntry + hass: HomeAssistant, config_entry: FibaroConfigEntry, device: AnyDeviceEntry ) -> Mapping[str, Any]: """Return diagnostics for a device.""" controller = config_entry.runtime_data diff --git a/homeassistant/components/fully_kiosk/diagnostics.py b/homeassistant/components/fully_kiosk/diagnostics.py index a83ffcc36dc4..9576fc38e8cb 100644 --- a/homeassistant/components/fully_kiosk/diagnostics.py +++ b/homeassistant/components/fully_kiosk/diagnostics.py @@ -54,7 +54,7 @@ SETTINGS_TO_REDACT = { async def async_get_device_diagnostics( - hass: HomeAssistant, entry: FullyKioskConfigEntry, device: dr.DeviceEntry + hass: HomeAssistant, entry: FullyKioskConfigEntry, device: dr.AnyDeviceEntry ) -> dict[str, Any]: """Return device diagnostics.""" coordinator = entry.runtime_data diff --git a/homeassistant/components/heos/diagnostics.py b/homeassistant/components/heos/diagnostics.py index bf33fc9bc150..2233dc3219b4 100644 --- a/homeassistant/components/heos/diagnostics.py +++ b/homeassistant/components/heos/diagnostics.py @@ -9,7 +9,7 @@ from pyheos import HeosError from homeassistant.components.diagnostics import async_redact_data from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .const import ATTR_PASSWORD, ATTR_USERNAME, DOMAIN from .coordinator import HeosConfigEntry @@ -66,7 +66,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: HeosConfigEntry, device: DeviceEntry + hass: HomeAssistant, config_entry: HeosConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" entity_registry = er.async_get(hass) diff --git a/homeassistant/components/home_connect/diagnostics.py b/homeassistant/components/home_connect/diagnostics.py index 364a109cf19d..e0f29b9b32a5 100644 --- a/homeassistant/components/home_connect/diagnostics.py +++ b/homeassistant/components/home_connect/diagnostics.py @@ -5,7 +5,7 @@ from typing import Any from aiohomeconnect.model import GetSetting, Status from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .const import DOMAIN from .coordinator import HomeConnectApplianceData, HomeConnectConfigEntry @@ -53,7 +53,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: HomeConnectConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: HomeConnectConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" ha_id = next( diff --git a/homeassistant/components/homee/diagnostics.py b/homeassistant/components/homee/diagnostics.py index 44f92c1a31d3..097819857484 100644 --- a/homeassistant/components/homee/diagnostics.py +++ b/homeassistant/components/homee/diagnostics.py @@ -11,7 +11,7 @@ from homeassistant.const import ( CONF_USERNAME, ) from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from . import DOMAIN, HomeeConfigEntry @@ -42,7 +42,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: HomeeConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: HomeeConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" diff --git a/homeassistant/components/homekit_controller/diagnostics.py b/homeassistant/components/homekit_controller/diagnostics.py index a90eb9ea25f4..228d88e8dd6a 100644 --- a/homeassistant/components/homekit_controller/diagnostics.py +++ b/homeassistant/components/homekit_controller/diagnostics.py @@ -1,6 +1,6 @@ """Diagnostics support for HomeKit Controller.""" -from typing import Any +from typing import TYPE_CHECKING, Any from aiohomekit.model.characteristics.characteristic_types import CharacteristicsTypes @@ -8,7 +8,7 @@ from homeassistant.components.diagnostics import REDACTED, async_redact_data from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import device_registry as dr, entity_registry as er -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry, DeviceEntry from .connection import HKDevice from .const import KNOWN_DEVICES @@ -33,9 +33,13 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: ConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: ConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" + if TYPE_CHECKING: + # homekit_controller does not create child devices + assert isinstance(device, DeviceEntry) + return _async_get_diagnostics(hass, entry, device) diff --git a/homeassistant/components/hunterdouglas_powerview/diagnostics.py b/homeassistant/components/hunterdouglas_powerview/diagnostics.py index 89a04a4b143d..114353da5037 100644 --- a/homeassistant/components/hunterdouglas_powerview/diagnostics.py +++ b/homeassistant/components/hunterdouglas_powerview/diagnostics.py @@ -11,7 +11,7 @@ from homeassistant.components.diagnostics import ( from homeassistant.const import ATTR_CONFIGURATION_URL, CONF_HOST from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import device_registry as dr, entity_registry as er -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .const import REDACT_HUB_ADDRESS, REDACT_MAC_ADDRESS, REDACT_SERIAL_NUMBER from .model import PowerviewConfigEntry @@ -43,7 +43,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: PowerviewConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: PowerviewConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" data = _async_get_diagnostics(hass, entry) @@ -71,7 +71,9 @@ def _async_get_diagnostics( @callback -def _async_device_as_dict(hass: HomeAssistant, device: DeviceEntry) -> dict[str, Any]: +def _async_device_as_dict( + hass: HomeAssistant, device: AnyDeviceEntry +) -> dict[str, Any]: """Represent a Powerview device as a dictionary.""" # Gather information how this device is represented in Home Assistant diff --git a/homeassistant/components/husqvarna_automower/diagnostics.py b/homeassistant/components/husqvarna_automower/diagnostics.py index bb0d7bb41432..9553c2a6c4d7 100644 --- a/homeassistant/components/husqvarna_automower/diagnostics.py +++ b/homeassistant/components/husqvarna_automower/diagnostics.py @@ -1,12 +1,12 @@ """Diagnostics support for Husqvarna Automower.""" import logging -from typing import Any +from typing import TYPE_CHECKING, Any from homeassistant.components.diagnostics import async_redact_data from homeassistant.const import CONF_ACCESS_TOKEN from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry, DeviceEntry from . import AutomowerConfigEntry from .const import DOMAIN @@ -30,9 +30,13 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: AutomowerConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: AutomowerConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" + if TYPE_CHECKING: + # husqvarna_automower does not create child devices + assert isinstance(device, DeviceEntry) + coordinator = entry.runtime_data for identifier in device.identifiers: if identifier[0] == DOMAIN: diff --git a/homeassistant/components/matter/diagnostics.py b/homeassistant/components/matter/diagnostics.py index 71e06282e1fc..070242237254 100644 --- a/homeassistant/components/matter/diagnostics.py +++ b/homeassistant/components/matter/diagnostics.py @@ -53,7 +53,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: MatterConfigEntry, device: dr.DeviceEntry + hass: HomeAssistant, config_entry: MatterConfigEntry, device: dr.AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" matter = get_matter(hass) diff --git a/homeassistant/components/matter/helpers.py b/homeassistant/components/matter/helpers.py index 4867b894a6c1..61af4d20091d 100644 --- a/homeassistant/components/matter/helpers.py +++ b/homeassistant/components/matter/helpers.py @@ -107,7 +107,7 @@ def node_from_ha_device_id(hass: HomeAssistant, ha_device_id: str) -> MatterNode @callback def get_node_from_device_entry( - hass: HomeAssistant, device: dr.DeviceEntry + hass: HomeAssistant, device: dr.AnyDeviceEntry ) -> MatterNode | None: """Return MatterNode from device entry.""" matter = get_matter(hass) diff --git a/homeassistant/components/miele/diagnostics.py b/homeassistant/components/miele/diagnostics.py index 4c4f71cb168a..c71f676c9799 100644 --- a/homeassistant/components/miele/diagnostics.py +++ b/homeassistant/components/miele/diagnostics.py @@ -1,13 +1,13 @@ """Diagnostics support for Miele.""" import hashlib -from typing import Any, cast +from typing import TYPE_CHECKING, Any, cast from pymiele import completed_warnings from homeassistant.components.diagnostics import async_redact_data from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry, DeviceEntry from .coordinator import MieleConfigEntry @@ -69,9 +69,13 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: MieleConfigEntry, device: DeviceEntry + hass: HomeAssistant, config_entry: MieleConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" + if TYPE_CHECKING: + # miele does not create child devices + assert isinstance(device, DeviceEntry) + info = { "manufacturer": device.manufacturer, "model": device.model, diff --git a/homeassistant/components/mqtt/diagnostics.py b/homeassistant/components/mqtt/diagnostics.py index 5ab4861201f4..8b1a643f716c 100644 --- a/homeassistant/components/mqtt/diagnostics.py +++ b/homeassistant/components/mqtt/diagnostics.py @@ -8,7 +8,7 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, EntityStateAttribute from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import device_registry as dr, entity_registry as er -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from . import debug_info, is_connected @@ -27,7 +27,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: ConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: ConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" return _async_get_diagnostics(hass, entry, device) @@ -37,7 +37,7 @@ async def async_get_device_diagnostics( def _async_get_diagnostics( hass: HomeAssistant, entry: ConfigEntry, - device: DeviceEntry | None = None, + device: AnyDeviceEntry | None = None, ) -> dict[str, Any]: """Return diagnostics for a config entry.""" redacted_config = { @@ -69,7 +69,9 @@ def _async_get_diagnostics( @callback -def _async_device_as_dict(hass: HomeAssistant, device: DeviceEntry) -> dict[str, Any]: +def _async_device_as_dict( + hass: HomeAssistant, device: AnyDeviceEntry +) -> dict[str, Any]: """Represent an MQTT device as a dictionary.""" # Gather information how this MQTT device is represented in Home Assistant diff --git a/homeassistant/components/nederlandse_spoorwegen/diagnostics.py b/homeassistant/components/nederlandse_spoorwegen/diagnostics.py index ee21cd3aae06..89a7a8fdeb2a 100644 --- a/homeassistant/components/nederlandse_spoorwegen/diagnostics.py +++ b/homeassistant/components/nederlandse_spoorwegen/diagnostics.py @@ -1,11 +1,11 @@ """Diagnostics support for Nederlandse Spoorwegen.""" -from typing import Any +from typing import TYPE_CHECKING, Any from homeassistant.components.diagnostics import async_redact_data from homeassistant.const import CONF_API_KEY from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry, DeviceEntry from .const import DOMAIN from .coordinator import NSConfigEntry @@ -51,9 +51,13 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: NSConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: NSConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a route.""" + if TYPE_CHECKING: + # nederlandse_spoorwegen does not create child devices + assert isinstance(device, DeviceEntry) + # Find the coordinator for this device coordinator = None subentry_id = None diff --git a/homeassistant/components/nest/diagnostics.py b/homeassistant/components/nest/diagnostics.py index b3b5f7689c6f..a8c04c0b74dc 100644 --- a/homeassistant/components/nest/diagnostics.py +++ b/homeassistant/components/nest/diagnostics.py @@ -7,7 +7,7 @@ from google_nest_sdm.device_traits import InfoTrait from homeassistant.components.camera import diagnostics as camera_diagnostics from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .types import NestConfigEntry @@ -41,7 +41,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( hass: HomeAssistant, config_entry: NestConfigEntry, - device: DeviceEntry, + device: AnyDeviceEntry, ) -> dict[str, Any]: """Return diagnostics for a device.""" nest_devices = config_entry.runtime_data.device_manager.devices diff --git a/homeassistant/components/onewire/diagnostics.py b/homeassistant/components/onewire/diagnostics.py index 01ec9a4de71e..ec5ca6dae210 100644 --- a/homeassistant/components/onewire/diagnostics.py +++ b/homeassistant/components/onewire/diagnostics.py @@ -1,7 +1,7 @@ """Diagnostics support for 1-Wire.""" from dataclasses import asdict -from typing import Any +from typing import TYPE_CHECKING, Any from homeassistant.components.diagnostics import async_redact_data from homeassistant.const import CONF_HOST @@ -30,9 +30,12 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: OneWireConfigEntry, device_entry: dr.DeviceEntry + hass: HomeAssistant, entry: OneWireConfigEntry, device_entry: dr.AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" + if TYPE_CHECKING: + # onewire does not create child devices + assert isinstance(device_entry, dr.DeviceEntry) onewire_hub = entry.runtime_data diff --git a/homeassistant/components/overkiz/diagnostics.py b/homeassistant/components/overkiz/diagnostics.py index 28ea140a1e35..48673c67fa97 100644 --- a/homeassistant/components/overkiz/diagnostics.py +++ b/homeassistant/components/overkiz/diagnostics.py @@ -1,12 +1,12 @@ """Provides diagnostics for Overkiz.""" -from typing import Any +from typing import TYPE_CHECKING, Any from pyoverkiz.enums import APIType from pyoverkiz.obfuscate import obfuscate_id from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry, DeviceEntry from . import OverkizDataConfigEntry from .const import CONF_API_TYPE, CONF_HUB @@ -35,9 +35,13 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: OverkizDataConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: OverkizDataConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" + if TYPE_CHECKING: + # overkiz does not create child devices + assert isinstance(device, DeviceEntry) + client = entry.runtime_data.coordinator.client device_url = min(device.identifiers)[1] diff --git a/homeassistant/components/renault/diagnostics.py b/homeassistant/components/renault/diagnostics.py index 20f179bbd3b8..56c33b2b257a 100644 --- a/homeassistant/components/renault/diagnostics.py +++ b/homeassistant/components/renault/diagnostics.py @@ -4,7 +4,7 @@ from typing import Any from homeassistant.components.diagnostics import async_redact_data from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from . import RenaultConfigEntry from .const import RenaultConfigurationKeys @@ -40,7 +40,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: RenaultConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: RenaultConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" vin = next(iter(device.identifiers))[1] diff --git a/homeassistant/components/smartthings/diagnostics.py b/homeassistant/components/smartthings/diagnostics.py index f329f41c0fac..e2e4b53b7486 100644 --- a/homeassistant/components/smartthings/diagnostics.py +++ b/homeassistant/components/smartthings/diagnostics.py @@ -7,7 +7,7 @@ from typing import Any from pysmartthings import DeviceEvent from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from . import SmartThingsConfigEntry from .const import DOMAIN @@ -25,7 +25,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: SmartThingsConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: SmartThingsConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" client = entry.runtime_data.client diff --git a/homeassistant/components/sonos/diagnostics.py b/homeassistant/components/sonos/diagnostics.py index c51369082ea0..2b0ee88a00d5 100644 --- a/homeassistant/components/sonos/diagnostics.py +++ b/homeassistant/components/sonos/diagnostics.py @@ -5,7 +5,7 @@ from typing import Any from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .const import DOMAIN from .helpers import SonosConfigEntry @@ -66,7 +66,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: SonosConfigEntry, device: DeviceEntry + hass: HomeAssistant, config_entry: SonosConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" uid = next( diff --git a/homeassistant/components/subaru/diagnostics.py b/homeassistant/components/subaru/diagnostics.py index 1db998302d0c..465f4c30e560 100644 --- a/homeassistant/components/subaru/diagnostics.py +++ b/homeassistant/components/subaru/diagnostics.py @@ -14,7 +14,7 @@ from homeassistant.components.diagnostics import async_redact_data from homeassistant.const import CONF_DEVICE_ID, CONF_PASSWORD, CONF_PIN, CONF_USERNAME from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .const import VEHICLE_VIN from .coordinator import SubaruConfigEntry @@ -40,7 +40,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: SubaruConfigEntry, device: DeviceEntry + hass: HomeAssistant, config_entry: SubaruConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" coordinator = config_entry.runtime_data.coordinator diff --git a/homeassistant/components/traccar_server/diagnostics.py b/homeassistant/components/traccar_server/diagnostics.py index 7ccab0883e78..a7ed55421e84 100644 --- a/homeassistant/components/traccar_server/diagnostics.py +++ b/homeassistant/components/traccar_server/diagnostics.py @@ -68,7 +68,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( hass: HomeAssistant, entry: TraccarServerConfigEntry, - device: dr.DeviceEntry, + device: dr.AnyDeviceEntry, ) -> dict[str, Any]: """Return device diagnostics.""" coordinator = entry.runtime_data diff --git a/homeassistant/components/tuya/diagnostics.py b/homeassistant/components/tuya/diagnostics.py index 7de6e05d5164..f9e50c991ca9 100644 --- a/homeassistant/components/tuya/diagnostics.py +++ b/homeassistant/components/tuya/diagnostics.py @@ -8,7 +8,7 @@ from tuya_sharing import CustomerDevice from homeassistant.components.diagnostics import REDACTED from homeassistant.core import HomeAssistant, callback from homeassistant.helpers import device_registry as dr, entity_registry as er -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .const import DOMAIN, DPCode from .coordinator import TuyaConfigEntry @@ -29,7 +29,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: TuyaConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: TuyaConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" return _async_get_diagnostics(hass, entry, device) @@ -39,7 +39,7 @@ async def async_get_device_diagnostics( def _async_get_diagnostics( hass: HomeAssistant, entry: TuyaConfigEntry, - device: DeviceEntry | None = None, + device: AnyDeviceEntry | None = None, ) -> dict[str, Any]: """Return diagnostics for a config entry.""" manager = entry.runtime_data.manager diff --git a/homeassistant/components/vesync/diagnostics.py b/homeassistant/components/vesync/diagnostics.py index c5dc0d069b3f..115bb075c005 100644 --- a/homeassistant/components/vesync/diagnostics.py +++ b/homeassistant/components/vesync/diagnostics.py @@ -7,7 +7,7 @@ from pyvesync import VeSync from homeassistant.components.diagnostics import REDACTED from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .const import DOMAIN from .coordinator import VesyncConfigEntry @@ -37,7 +37,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: VesyncConfigEntry, device: DeviceEntry + hass: HomeAssistant, config_entry: VesyncConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" manager: VeSync = config_entry.runtime_data.manager diff --git a/homeassistant/components/zeversolar/diagnostics.py b/homeassistant/components/zeversolar/diagnostics.py index dc8730866a62..cec95c45a865 100644 --- a/homeassistant/components/zeversolar/diagnostics.py +++ b/homeassistant/components/zeversolar/diagnostics.py @@ -5,7 +5,7 @@ from typing import Any from zeversolar import ZeverSolarData from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceEntry +from homeassistant.helpers.device_registry import AnyDeviceEntry from .coordinator import ZeversolarConfigEntry @@ -34,7 +34,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, entry: ZeversolarConfigEntry, device: DeviceEntry + hass: HomeAssistant, entry: ZeversolarConfigEntry, device: AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device entry.""" coordinator = entry.runtime_data diff --git a/homeassistant/components/zha/diagnostics.py b/homeassistant/components/zha/diagnostics.py index 7c4b547f6fa0..4c304c9fbfd8 100644 --- a/homeassistant/components/zha/diagnostics.py +++ b/homeassistant/components/zha/diagnostics.py @@ -119,7 +119,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: ConfigEntry, device: dr.DeviceEntry + hass: HomeAssistant, config_entry: ConfigEntry, device: dr.AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" zha_device_proxy: ZHADeviceProxy = async_get_zha_device_proxy(hass, device.id) diff --git a/homeassistant/components/zwave_js/diagnostics.py b/homeassistant/components/zwave_js/diagnostics.py index 349ecfd43509..85f51e2597da 100644 --- a/homeassistant/components/zwave_js/diagnostics.py +++ b/homeassistant/components/zwave_js/diagnostics.py @@ -74,7 +74,7 @@ def get_device_entities( hass: HomeAssistant, node: Node, config_entry: ZwaveJSConfigEntry, - device: dr.DeviceEntry, + device: dr.AnyDeviceEntry, ) -> list[dict[str, Any]]: """Get entities for a device.""" entity_entries = er.async_entries_for_device( @@ -145,7 +145,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: ZwaveJSConfigEntry, device: dr.DeviceEntry + hass: HomeAssistant, config_entry: ZwaveJSConfigEntry, device: dr.AnyDeviceEntry ) -> dict[str, Any]: """Return diagnostics for a device.""" client: Client = config_entry.runtime_data.client diff --git a/homeassistant/components/zwave_js/helpers.py b/homeassistant/components/zwave_js/helpers.py index ba9ea66cf7d6..931e8775bb7f 100644 --- a/homeassistant/components/zwave_js/helpers.py +++ b/homeassistant/components/zwave_js/helpers.py @@ -256,7 +256,7 @@ def get_device_id_ext(driver: Driver, node: ZwaveNode) -> tuple[str, str] | None def get_home_and_node_id_from_device_entry( - device_entry: dr.DeviceEntry, + device_entry: dr.AnyDeviceEntry, ) -> tuple[str, int] | None: """Get home ID and node ID for Z-Wave device registry entry. diff --git a/pylint/plugins/pylint_home_assistant/checkers/type_hints/const.py b/pylint/plugins/pylint_home_assistant/checkers/type_hints/const.py index 9a83ff33379c..2285ef9f2e8b 100644 --- a/pylint/plugins/pylint_home_assistant/checkers/type_hints/const.py +++ b/pylint/plugins/pylint_home_assistant/checkers/type_hints/const.py @@ -430,7 +430,7 @@ _FUNCTION_MATCH: dict[str, list[TypeHintMatch]] = { arg_types={ 0: "HomeAssistant", 1: "ConfigEntry", - 2: "DeviceEntry", + 2: "AnyDeviceEntry", }, return_type="Mapping[str, Any]", mandatory=True,