diff --git a/homeassistant/components/automation/__init__.py b/homeassistant/components/automation/__init__.py index 7643219484a97..6345069458b85 100644 --- a/homeassistant/components/automation/__init__.py +++ b/homeassistant/components/automation/__init__.py @@ -363,8 +363,7 @@ async def trigger_service_handler( async def reload_service_handler(service_call: ServiceCall) -> None: """Remove all automations and load new ones from config.""" await async_get_blueprints(hass).async_reset_cache() - if (conf := await component.async_prepare_reload(skip_reset=True)) is None: - return + conf = await component.async_prepare_reload(skip_reset=True) if automation_id := service_call.data.get(CONF_ID): await _async_process_single_config(hass, conf, component, automation_id) else: diff --git a/homeassistant/components/fritz/coordinator.py b/homeassistant/components/fritz/coordinator.py index 7ee5d07247e9a..1383a57b70629 100644 --- a/homeassistant/components/fritz/coordinator.py +++ b/homeassistant/components/fritz/coordinator.py @@ -51,7 +51,7 @@ SCAN_INTERVAL, MeshRoles, ) -from .helpers import _ha_is_stopping +from .helpers import ha_is_stopping from .models import ( ConnectionInfo, Device, @@ -552,7 +552,7 @@ async def async_scan_devices(self, now: datetime | None = None) -> None: """Scan for new network devices.""" if self.hass.is_stopping: - _ha_is_stopping("scan devices") + ha_is_stopping("scan devices") return _LOGGER.debug("Checking devices for FRITZ!Box device %s", self.host) @@ -727,7 +727,7 @@ async def _async_service_call( """Return service details.""" if self.hass.is_stopping: - _ha_is_stopping(f"{service_name}/{action_name}") + ha_is_stopping(f"{service_name}/{action_name}") return {} if f"{service_name}{service_suffix}" not in self.connection.services: diff --git a/homeassistant/components/fritz/helpers.py b/homeassistant/components/fritz/helpers.py index af75b97e59aab..47f2e462cd8be 100644 --- a/homeassistant/components/fritz/helpers.py +++ b/homeassistant/components/fritz/helpers.py @@ -34,6 +34,6 @@ def device_filter_out_from_trackers( return bool(reason) -def _ha_is_stopping(activity: str) -> None: +def ha_is_stopping(activity: str) -> None: """Inform that HA is stopping.""" _LOGGER.warning("Cannot execute %s: HomeAssistant is shutting down", activity) diff --git a/homeassistant/components/group/__init__.py b/homeassistant/components/group/__init__.py index 756e75ca22b4a..5e199e5bcad48 100644 --- a/homeassistant/components/group/__init__.py +++ b/homeassistant/components/group/__init__.py @@ -185,8 +185,7 @@ async def reload_service_handler(service: ServiceCall) -> None: - Remove group.group entities not created by service calls and set them up again - Reload xxx.group platforms """ - if (conf := await component.async_prepare_reload(skip_reset=True)) is None: - return + conf = await component.async_prepare_reload(skip_reset=True) # Simplified + modified version of EntityPlatform.async_reset: # - group.group never retries setup diff --git a/homeassistant/components/input_boolean/__init__.py b/homeassistant/components/input_boolean/__init__.py index a0a7514eaaf01..5fd500848958a 100644 --- a/homeassistant/components/input_boolean/__init__.py +++ b/homeassistant/components/input_boolean/__init__.py @@ -120,8 +120,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Remove all input booleans and load new ones from config.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - return await yaml_collection.async_load( [ {CONF_ID: id_, **(conf or {})} diff --git a/homeassistant/components/input_button/__init__.py b/homeassistant/components/input_button/__init__.py index 12bc98f7674ff..6bf7dc9d6bff1 100644 --- a/homeassistant/components/input_button/__init__.py +++ b/homeassistant/components/input_button/__init__.py @@ -105,8 +105,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Remove all input buttons and load new ones from config.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - return await yaml_collection.async_load( [ {CONF_ID: id_, **(conf or {})} diff --git a/homeassistant/components/input_datetime/__init__.py b/homeassistant/components/input_datetime/__init__.py index 60f882c272686..6deab74078a89 100644 --- a/homeassistant/components/input_datetime/__init__.py +++ b/homeassistant/components/input_datetime/__init__.py @@ -158,8 +158,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Reload yaml entities.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - conf = {DOMAIN: {}} await yaml_collection.async_load( [{CONF_ID: id_, **cfg} for id_, cfg in conf.get(DOMAIN, {}).items()] ) diff --git a/homeassistant/components/input_number/__init__.py b/homeassistant/components/input_number/__init__.py index 3352b55442ac2..9049f273a67d5 100644 --- a/homeassistant/components/input_number/__init__.py +++ b/homeassistant/components/input_number/__init__.py @@ -136,8 +136,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Reload yaml entities.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - conf = {DOMAIN: {}} await yaml_collection.async_load( [{CONF_ID: id_, **conf} for id_, conf in conf.get(DOMAIN, {}).items()] ) diff --git a/homeassistant/components/input_select/__init__.py b/homeassistant/components/input_select/__init__.py index 171998c02bc61..b05509ea09e5d 100644 --- a/homeassistant/components/input_select/__init__.py +++ b/homeassistant/components/input_select/__init__.py @@ -166,8 +166,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Reload yaml entities.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - conf = {DOMAIN: {}} await yaml_collection.async_load( [{CONF_ID: id_, **cfg} for id_, cfg in conf.get(DOMAIN, {}).items()] ) diff --git a/homeassistant/components/input_text/__init__.py b/homeassistant/components/input_text/__init__.py index 4928b4325d1ac..9945f1dcc3afe 100644 --- a/homeassistant/components/input_text/__init__.py +++ b/homeassistant/components/input_text/__init__.py @@ -145,8 +145,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Reload yaml entities.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - conf = {DOMAIN: {}} await yaml_collection.async_load( [{CONF_ID: id_, **(cfg or {})} for id_, cfg in conf.get(DOMAIN, {}).items()] ) diff --git a/homeassistant/components/person/__init__.py b/homeassistant/components/person/__init__.py index 46e9a121649c3..d67f45d1540ba 100644 --- a/homeassistant/components/person/__init__.py +++ b/homeassistant/components/person/__init__.py @@ -403,8 +403,6 @@ async def _handle_user_removed(event: Event) -> None: async def async_reload_yaml(call: ServiceCall) -> None: """Reload YAML.""" conf = await entity_component.async_prepare_reload(skip_reset=True) - if conf is None: - return await yaml_collection.async_load( await filter_yaml_data(hass, conf.get(DOMAIN, [])) ) diff --git a/homeassistant/components/schedule/__init__.py b/homeassistant/components/schedule/__init__.py index 63de3daaf15e1..1e0706621a56d 100644 --- a/homeassistant/components/schedule/__init__.py +++ b/homeassistant/components/schedule/__init__.py @@ -199,8 +199,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Reload yaml entities.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - conf = {DOMAIN: {}} await yaml_collection.async_load( [{CONF_ID: id_, **cfg} for id_, cfg in conf.get(DOMAIN, {}).items()] ) diff --git a/homeassistant/components/script/__init__.py b/homeassistant/components/script/__init__.py index 2231c254c7803..5542b7bf611fb 100644 --- a/homeassistant/components/script/__init__.py +++ b/homeassistant/components/script/__init__.py @@ -238,8 +238,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service(service: ServiceCall) -> None: """Call a service to reload scripts.""" await async_get_blueprints(hass).async_reset_cache() - if (conf := await component.async_prepare_reload(skip_reset=True)) is None: - return + conf = await component.async_prepare_reload(skip_reset=True) await _async_process_config(hass, conf, component) async def turn_on_service(service: ServiceCall) -> None: diff --git a/homeassistant/components/timer/__init__.py b/homeassistant/components/timer/__init__.py index 3cf8307e9b3af..85745aea8e427 100644 --- a/homeassistant/components/timer/__init__.py +++ b/homeassistant/components/timer/__init__.py @@ -140,8 +140,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Reload yaml entities.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - conf = {DOMAIN: {}} await yaml_collection.async_load( [{CONF_ID: id_, **cfg} for id_, cfg in conf.get(DOMAIN, {}).items()] ) diff --git a/homeassistant/components/watts/coordinator.py b/homeassistant/components/watts/coordinator.py index 7c95564cecfb6..c619c8659c1ae 100644 --- a/homeassistant/components/watts/coordinator.py +++ b/homeassistant/components/watts/coordinator.py @@ -63,16 +63,16 @@ def __init__( config_entry=config_entry, ) self.client = client - self._last_discovery: datetime | None = None + self.last_discovery: datetime | None = None self.previous_devices: set[str] = set() async def _async_update_data(self) -> dict[str, Device]: """Fetch data and periodic device discovery.""" now = datetime.now() - is_first_refresh = self._last_discovery is None + is_first_refresh = self.last_discovery is None discovery_interval_elapsed = ( - self._last_discovery is not None - and now - self._last_discovery + self.last_discovery is not None + and now - self.last_discovery >= timedelta(minutes=DISCOVERY_INTERVAL_MINUTES) ) @@ -96,7 +96,7 @@ async def _async_update_data(self) -> dict[str, Device]: "Periodic discovery failed: %s, falling back to update", err ) else: - self._last_discovery = now + self.last_discovery = now devices = {device.device_id: device for device in devices_list} current_devices = set(devices.keys()) @@ -172,7 +172,7 @@ def __init__( self.client = client self.device_id = device_id self.hub_coordinator = hub_coordinator - self._fast_polling_until: datetime | None = None + self.fast_polling_until: datetime | None = None # Listen to hub coordinator updates self.unsubscribe_hub_listener = hub_coordinator.async_add_listener( @@ -187,8 +187,8 @@ def _handle_hub_update(self) -> None: async def _async_update_data(self) -> WattsVisionDeviceData: """Refresh specific device.""" - if self._fast_polling_until and datetime.now() > self._fast_polling_until: - self._fast_polling_until = None + if self.fast_polling_until and datetime.now() > self.fast_polling_until: + self.fast_polling_until = None self.update_interval = None _LOGGER.debug( "Device %s: Fast polling period ended, returning to manual refresh", @@ -217,7 +217,7 @@ async def _async_update_data(self) -> WattsVisionDeviceData: def trigger_fast_polling(self, duration: int = 60) -> None: """Activate fast polling for a specified duration after a command.""" - self._fast_polling_until = datetime.now() + timedelta(seconds=duration) + self.fast_polling_until = datetime.now() + timedelta(seconds=duration) self.update_interval = timedelta(seconds=FAST_POLLING_INTERVAL_SECONDS) _LOGGER.debug( "Device %s: Activated fast polling for %d seconds", self.device_id, duration diff --git a/homeassistant/components/watts/diagnostics.py b/homeassistant/components/watts/diagnostics.py new file mode 100644 index 0000000000000..33912dc71a844 --- /dev/null +++ b/homeassistant/components/watts/diagnostics.py @@ -0,0 +1,69 @@ +"""Diagnostics support for Watts Vision +.""" + +from __future__ import annotations + +import dataclasses +from datetime import datetime +from typing import Any + +from homeassistant.components.diagnostics import async_redact_data +from homeassistant.const import CONF_ACCESS_TOKEN +from homeassistant.core import HomeAssistant + +from . import WattsVisionConfigEntry + +TO_REDACT = ("refresh_token", "id_token", "profile_info", "unique_id") + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, + entry: WattsVisionConfigEntry, +) -> dict[str, Any]: + """Return diagnostics for a config entry.""" + runtime_data = entry.runtime_data + hub_coordinator = runtime_data.hub_coordinator + device_coordinators = runtime_data.device_coordinators + now = datetime.now() + + return async_redact_data( + { + "entry": entry.as_dict(), + "hub_coordinator": { + "last_update_success": hub_coordinator.last_update_success, + "last_exception": ( + str(hub_coordinator.last_exception) + if hub_coordinator.last_exception + else None + ), + "last_discovery": ( + hub_coordinator.last_discovery.isoformat() + if hub_coordinator.last_discovery + else None + ), + "total_devices": len(hub_coordinator.data), + "supported_devices": len(device_coordinators), + }, + "hub_data": { + device_id: dataclasses.asdict(device) + for device_id, device in hub_coordinator.data.items() + }, + "devices": { + device_id: { + "device": dataclasses.asdict(coordinator.data.device), + "last_update_success": coordinator.last_update_success, + "fast_polling_active": ( + coordinator.fast_polling_until is not None + and coordinator.fast_polling_until > now + ), + "fast_polling_until": ( + coordinator.fast_polling_until.isoformat() + if coordinator.fast_polling_until is not None + and coordinator.fast_polling_until > now + else None + ), + } + for device_id, coordinator in device_coordinators.items() + }, + }, + {CONF_ACCESS_TOKEN, *TO_REDACT}, + ) diff --git a/homeassistant/components/watts/quality_scale.yaml b/homeassistant/components/watts/quality_scale.yaml index 812a904bc0769..a0355892b152b 100644 --- a/homeassistant/components/watts/quality_scale.yaml +++ b/homeassistant/components/watts/quality_scale.yaml @@ -35,7 +35,7 @@ rules: # Gold devices: done - diagnostics: todo + diagnostics: done discovery-update-info: status: exempt comment: Integration does not support discovery. diff --git a/homeassistant/components/zone/__init__.py b/homeassistant/components/zone/__init__.py index 6325f830ea061..b0d7a6ba8d181 100644 --- a/homeassistant/components/zone/__init__.py +++ b/homeassistant/components/zone/__init__.py @@ -269,8 +269,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: async def reload_service_handler(service_call: ServiceCall) -> None: """Remove all zones and load new ones from config.""" conf = await component.async_prepare_reload(skip_reset=True) - if conf is None: - return await yaml_collection.async_load(conf[DOMAIN]) service.async_register_admin_service( diff --git a/homeassistant/config.py b/homeassistant/config.py index ce95a94fdfd1e..7bd8c4e3c8a8d 100644 --- a/homeassistant/config.py +++ b/homeassistant/config.py @@ -15,7 +15,7 @@ from pathlib import Path import shutil from types import ModuleType -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, Literal, overload from awesomeversion import AwesomeVersion import voluptuous as vol @@ -851,6 +851,36 @@ def _get_log_message_and_stack_print_pref( return (log_message, show_stack_trace, placeholders) +# The complicated overloads are due to a limitation in mypy, details in +# https://github.com/python/mypy/issues/7333 +@overload +async def async_process_component_and_handle_errors( + hass: HomeAssistant, + config: ConfigType, + integration: Integration, +) -> ConfigType | None: ... + + +@overload +async def async_process_component_and_handle_errors( + hass: HomeAssistant, + config: ConfigType, + integration: Integration, + *, + raise_on_failure: Literal[True], +) -> ConfigType: ... + + +@overload +async def async_process_component_and_handle_errors( + hass: HomeAssistant, + config: ConfigType, + integration: Integration, + *, + raise_on_failure: bool, +) -> ConfigType | None: ... + + async def async_process_component_and_handle_errors( hass: HomeAssistant, config: ConfigType, diff --git a/homeassistant/helpers/entity_component.py b/homeassistant/helpers/entity_component.py index cf13e27c2cff6..ca46be3d93462 100644 --- a/homeassistant/helpers/entity_component.py +++ b/homeassistant/helpers/entity_component.py @@ -24,7 +24,11 @@ SupportsResponse, callback, ) -from homeassistant.exceptions import HomeAssistantError +from homeassistant.exceptions import ( + ConfigValidationError, + HomeAssistantError, + ServiceValidationError, +) from homeassistant.loader import async_get_integration, bind_hass from homeassistant.setup import async_prepare_setup_platform from homeassistant.util.hass_dict import HassKey @@ -301,27 +305,31 @@ async def async_remove_entity(self, entity_id: str) -> None: if found: await found.async_remove_entity(entity_id) - async def async_prepare_reload( - self, *, skip_reset: bool = False - ) -> ConfigType | None: + async def async_prepare_reload(self, *, skip_reset: bool = False) -> ConfigType: """Prepare reloading this entity component. - This method must be run in the event loop. + This method is intended to be called from service handlers implementing reload. + Will raise ServiceValidationError if the config is not valid. """ try: conf = await conf_util.async_hass_config_yaml(self.hass) except HomeAssistantError as err: - self.logger.error(err) - return None + raise ServiceValidationError( + f"Failed to load configuration: {err}" + ) from err integration = await async_get_integration(self.hass, self.domain) - processed_conf = await conf_util.async_process_component_and_handle_errors( - self.hass, conf, integration - ) - - if processed_conf is None: - return None + try: + processed_conf = await conf_util.async_process_component_and_handle_errors( + self.hass, conf, integration, raise_on_failure=True + ) + except ConfigValidationError as err: + raise ServiceValidationError( + translation_domain=err.translation_domain, + translation_key=err.translation_key, + translation_placeholders=err.translation_placeholders, + ) from err if not skip_reset: await self._async_reset() diff --git a/homeassistant/helpers/reload.py b/homeassistant/helpers/reload.py index cdd53731d6eb8..0e33fedb28e2d 100644 --- a/homeassistant/helpers/reload.py +++ b/homeassistant/helpers/reload.py @@ -136,6 +136,8 @@ async def _async_reconfig_platform( await asyncio.gather(*tasks) +# The complicated overloads are due to a limitation in mypy, details in +# https://github.com/python/mypy/issues/7333 @overload async def async_integration_yaml_config( hass: HomeAssistant, integration_name: str diff --git a/homeassistant/helpers/update_coordinator.py b/homeassistant/helpers/update_coordinator.py index 9c2915278ea08..0bbea1ac6f4c9 100644 --- a/homeassistant/helpers/update_coordinator.py +++ b/homeassistant/helpers/update_coordinator.py @@ -420,6 +420,7 @@ async def _async_refresh( # noqa: C901 if self.last_update_success: if log_failures: self.logger.error("Timeout fetching %s data", self.name) + self.logger.debug("Full error:", exc_info=True) self.last_update_success = False except (aiohttp.ClientError, requests.exceptions.RequestException) as err: @@ -427,6 +428,7 @@ async def _async_refresh( # noqa: C901 if self.last_update_success: if log_failures: self.logger.error("Error requesting %s data: %s", self.name, err) + self.logger.debug("Full error:", exc_info=True) self.last_update_success = False except urllib.error.URLError as err: @@ -439,6 +441,7 @@ async def _async_refresh( # noqa: C901 self.logger.error( "Error requesting %s data: %s", self.name, err ) + self.logger.debug("Full error:", exc_info=True) self.last_update_success = False except UpdateFailed as err: @@ -456,6 +459,7 @@ async def _async_refresh( # noqa: C901 if self.last_update_success: if log_failures: self.logger.error("Error fetching %s data: %s", self.name, err) + self.logger.debug("Full error:", exc_info=True) self.last_update_success = False except ConfigEntryError as err: @@ -467,6 +471,7 @@ async def _async_refresh( # noqa: C901 self.name, err, ) + self.logger.debug("Full error:", exc_info=True) self.last_update_success = False if raise_on_entry_error: raise @@ -481,6 +486,7 @@ async def _async_refresh( # noqa: C901 self.name, err, ) + self.logger.debug("Full error:", exc_info=True) self.last_update_success = False if raise_on_auth_failed: raise diff --git a/tests/components/ambient_network/test_sensor.py b/tests/components/ambient_network/test_sensor.py index c1fcdb5d2dc3d..12a7fbc5d7a60 100644 --- a/tests/components/ambient_network/test_sensor.py +++ b/tests/components/ambient_network/test_sensor.py @@ -82,7 +82,7 @@ async def test_sensors_disappearing( sensor = hass.states.get("sensor.station_a_relative_pressure") assert sensor is not None assert sensor.state == "unavailable" - assert caplog.text.count("Cannot connect to Ambient Network") == 1 + assert caplog.text.count("Cannot connect to Ambient Network") == 3 # Network comes back. Sensor should start reporting again. Log message # should only show up once. diff --git a/tests/components/automation/test_init.py b/tests/components/automation/test_init.py index 0eb618ed63354..25042b11d5445 100644 --- a/tests/components/automation/test_init.py +++ b/tests/components/automation/test_init.py @@ -39,7 +39,12 @@ State, callback, ) -from homeassistant.exceptions import HomeAssistantError, Unauthorized +from homeassistant.exceptions import ( + ConfigValidationError, + HomeAssistantError, + ServiceValidationError, + Unauthorized, +) from homeassistant.helpers import device_registry as dr from homeassistant.helpers.event import async_track_state_change_event from homeassistant.helpers.script import ( @@ -700,9 +705,14 @@ async def test_reload_config_handles_load_fails( assert len(calls) == 1 assert calls[0].data.get("event") == "test_event" - with patch( - "homeassistant.config.load_yaml_config_file", - side_effect=HomeAssistantError("bla"), + with ( + patch( + "homeassistant.config.load_yaml_config_file", + side_effect=HomeAssistantError("bla"), + ), + pytest.raises( + ServiceValidationError, match="Failed to load configuration: bla" + ), ): await hass.services.async_call(automation.DOMAIN, SERVICE_RELOAD, blocking=True) @@ -712,6 +722,35 @@ async def test_reload_config_handles_load_fails( await hass.async_block_till_done() assert len(calls) == 2 + with ( + patch( + "homeassistant.config.load_yaml_config_file", + ), + patch( + "homeassistant.config.async_process_component_and_handle_errors", + side_effect=ConfigValidationError( + "config_schema_unknown_err", + [Exception("bla")], + translation_domain="homeassistant", + translation_placeholders={"domain": "bla", "error": "bla"}, + ), + ), + pytest.raises( + ServiceValidationError, + match="Unknown error calling bla CONFIG_SCHEMA - bla", + ) as exc_info, + ): + await hass.services.async_call(automation.DOMAIN, SERVICE_RELOAD, blocking=True) + assert exc_info.value.translation_domain == "homeassistant" + assert exc_info.value.translation_key == "config_schema_unknown_err" + assert exc_info.value.translation_placeholders == {"domain": "bla", "error": "bla"} + + assert hass.states.get("automation.hello") is not None + + hass.bus.async_fire("test_event") + await hass.async_block_till_done() + assert len(calls) == 3 + @pytest.mark.parametrize( "service", ["turn_off_stop", "turn_off_no_stop", "reload", "reload_single"] diff --git a/tests/components/fritz/test_init.py b/tests/components/fritz/test_init.py index 09550c40485cd..5b2dad5dfdc21 100644 --- a/tests/components/fritz/test_init.py +++ b/tests/components/fritz/test_init.py @@ -1,9 +1,12 @@ """Tests for Fritz!Tools.""" +import re from unittest.mock import patch +from freezegun.api import FrozenDateTimeFactory import pytest +from homeassistant import core from homeassistant.components.device_tracker import ( CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME, @@ -12,13 +15,14 @@ DOMAIN, FRITZ_AUTH_EXCEPTIONS, FRITZ_EXCEPTIONS, + SCAN_INTERVAL, ) from homeassistant.config_entries import ConfigEntryState from homeassistant.core import HomeAssistant from .const import MOCK_USER_DATA -from tests.common import MockConfigEntry +from tests.common import MockConfigEntry, async_fire_time_changed async def test_setup(hass: HomeAssistant, fc_class_mock, fh_class_mock) -> None: @@ -127,3 +131,29 @@ async def test_upnp_missing( "Config entry 'Mock Title' for fritz integration could not authenticate: Missing UPnP configuration" in caplog.text ) + + +async def test_execute_action_while_shutdown( + hass: HomeAssistant, + freezer: FrozenDateTimeFactory, + caplog: pytest.LogCaptureFixture, + fc_class_mock, + fh_class_mock, +) -> None: + """Test Fritz!Tools actions executed during shutdown of HomeAssistant.""" + + entry = MockConfigEntry(domain=DOMAIN, data=MOCK_USER_DATA) + entry.add_to_hass(hass) + + await hass.config_entries.async_setup(entry.entry_id) + await hass.async_block_till_done() + assert entry.state is ConfigEntryState.LOADED + + hass.set_state(core.CoreState.stopping) + freezer.tick(SCAN_INTERVAL) + async_fire_time_changed(hass) + await hass.async_block_till_done() + + assert re.search( + r"Cannot execute (.+): HomeAssistant is shutting down", caplog.text + ) diff --git a/tests/components/fritz/test_switch.py b/tests/components/fritz/test_switch.py index f8cf719fb0b97..045369099a527 100644 --- a/tests/components/fritz/test_switch.py +++ b/tests/components/fritz/test_switch.py @@ -351,6 +351,29 @@ async def test_switch_device_no_wan_access( assert state.state == STATE_UNAVAILABLE +async def test_switch_device_no_ip_address( + hass: HomeAssistant, + fc_class_mock, + fh_class_mock, +) -> None: + """Test Fritz!Tools switches when device has no IP address.""" + + entity_id = "switch.printer_internet_access" + + entry = MockConfigEntry(domain=DOMAIN, data=MOCK_USER_DATA) + entry.add_to_hass(hass) + + attributes = deepcopy(MOCK_HOST_ATTRIBUTES_DATA) + attributes[0]["IPAddress"] = "" + + fh_class_mock.get_hosts_attributes = MagicMock(return_value=attributes) + + assert await hass.config_entries.async_setup(entry.entry_id) + await hass.async_block_till_done(wait_background_tasks=True) + + assert hass.states.get(entity_id) is None + + @pytest.mark.parametrize( ("entity_id", "wrapper_method", "state_value"), [ diff --git a/tests/components/matter/fixtures/nodes/color_temperature_light.json b/tests/components/matter/fixtures/nodes/color_temperature_light.json index 370e028e7215f..8c01319993a15 100644 --- a/tests/components/matter/fixtures/nodes/color_temperature_light.json +++ b/tests/components/matter/fixtures/nodes/color_temperature_light.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 5, "date_commissioned": "2023-01-31T03:59:47.454727", "last_interview": "2023-01-31T03:59:47.454728", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/eberle_ute3000.json b/tests/components/matter/fixtures/nodes/eberle_ute3000.json index c8fc4390d3e98..67f986434fd5e 100644 --- a/tests/components/matter/fixtures/nodes/eberle_ute3000.json +++ b/tests/components/matter/fixtures/nodes/eberle_ute3000.json @@ -1,5 +1,5 @@ { - "node_id": 20, + "node_id": 7, "date_commissioned": "2025-02-05T17:31:08.969773", "last_interview": "2025-10-17T07:43:55.215739", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/eve_contact_sensor.json b/tests/components/matter/fixtures/nodes/eve_contact_sensor.json index a009796f9408e..27cc3205cead4 100644 --- a/tests/components/matter/fixtures/nodes/eve_contact_sensor.json +++ b/tests/components/matter/fixtures/nodes/eve_contact_sensor.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 9, "date_commissioned": "2023-07-02T14:06:45.190550", "last_interview": "2023-07-02T14:06:45.190553", "interview_version": 4, diff --git a/tests/components/matter/fixtures/nodes/eve_energy_plug.json b/tests/components/matter/fixtures/nodes/eve_energy_plug.json index 03ff4ce7dba39..0ce56950709f3 100644 --- a/tests/components/matter/fixtures/nodes/eve_energy_plug.json +++ b/tests/components/matter/fixtures/nodes/eve_energy_plug.json @@ -1,5 +1,5 @@ { - "node_id": 83, + "node_id": 61, "date_commissioned": "2023-11-30T14:39:37.020026", "last_interview": "2023-11-30T14:39:37.020029", "interview_version": 5, diff --git a/tests/components/matter/fixtures/nodes/extended_color_light.json b/tests/components/matter/fixtures/nodes/extended_color_light.json index d18b76768ca42..e3ff990b56aaa 100644 --- a/tests/components/matter/fixtures/nodes/extended_color_light.json +++ b/tests/components/matter/fixtures/nodes/extended_color_light.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 10, "date_commissioned": "2023-01-31T03:59:47.454727", "last_interview": "2023-01-31T03:59:47.454728", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/heiman_smoke_detector.json b/tests/components/matter/fixtures/nodes/heiman_smoke_detector.json index 7ba525a7552a1..e25240610a811 100644 --- a/tests/components/matter/fixtures/nodes/heiman_smoke_detector.json +++ b/tests/components/matter/fixtures/nodes/heiman_smoke_detector.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 11, "date_commissioned": "2024-09-13T20:07:21.672257", "last_interview": "2024-09-13T21:10:36.026041", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/mock_cooktop.json b/tests/components/matter/fixtures/nodes/mock_cooktop.json index f32322b6cb7e6..3681572ec08da 100644 --- a/tests/components/matter/fixtures/nodes/mock_cooktop.json +++ b/tests/components/matter/fixtures/nodes/mock_cooktop.json @@ -1,5 +1,5 @@ { - "node_id": 3, + "node_id": 43, "date_commissioned": "2025-04-29T15:54:11.963738", "last_interview": "2025-04-29T15:54:11.963750", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/mock_dimmable_light.json b/tests/components/matter/fixtures/nodes/mock_dimmable_light.json index 867e6963b9dcf..f779b87e35fef 100644 --- a/tests/components/matter/fixtures/nodes/mock_dimmable_light.json +++ b/tests/components/matter/fixtures/nodes/mock_dimmable_light.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 13, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_door_lock.json b/tests/components/matter/fixtures/nodes/mock_door_lock.json index 360435605ae2e..febe8b16dcfdd 100644 --- a/tests/components/matter/fixtures/nodes/mock_door_lock.json +++ b/tests/components/matter/fixtures/nodes/mock_door_lock.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 16, "date_commissioned": "2023-03-07T09:06:06.059454", "last_interview": "2023-03-07T09:06:06.059456", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_door_lock_with_unbolt.json b/tests/components/matter/fixtures/nodes/mock_door_lock_with_unbolt.json index 1c35d855db50f..ecf9c0ea5ee6d 100644 --- a/tests/components/matter/fixtures/nodes/mock_door_lock_with_unbolt.json +++ b/tests/components/matter/fixtures/nodes/mock_door_lock_with_unbolt.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 15, "date_commissioned": "2023-03-07T09:06:06.059454", "last_interview": "2023-03-07T09:06:06.059456", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_fan.json b/tests/components/matter/fixtures/nodes/mock_fan.json index e33c29ce66d37..221c418e7e0a0 100644 --- a/tests/components/matter/fixtures/nodes/mock_fan.json +++ b/tests/components/matter/fixtures/nodes/mock_fan.json @@ -1,5 +1,5 @@ { - "node_id": 29, + "node_id": 55, "date_commissioned": "2024-07-25T08:34:23.014310", "last_interview": "2024-07-25T08:34:23.014315", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/mock_flow_sensor.json b/tests/components/matter/fixtures/nodes/mock_flow_sensor.json index a8dad202fa199..0ef981b80f403 100644 --- a/tests/components/matter/fixtures/nodes/mock_flow_sensor.json +++ b/tests/components/matter/fixtures/nodes/mock_flow_sensor.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 17, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_generic_switch.json b/tests/components/matter/fixtures/nodes/mock_generic_switch.json index 9b334c5fb5450..df4e00306ae34 100644 --- a/tests/components/matter/fixtures/nodes/mock_generic_switch.json +++ b/tests/components/matter/fixtures/nodes/mock_generic_switch.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 19, "date_commissioned": "2023-07-06T11:13:20.917394", "last_interview": "2023-07-06T11:13:20.917401", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_generic_switch_multi.json b/tests/components/matter/fixtures/nodes/mock_generic_switch_multi.json index 4055c9dc33634..39284c6792768 100644 --- a/tests/components/matter/fixtures/nodes/mock_generic_switch_multi.json +++ b/tests/components/matter/fixtures/nodes/mock_generic_switch_multi.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 18, "date_commissioned": "2023-07-06T11:13:20.917394", "last_interview": "2023-07-06T11:13:20.917401", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_humidity_sensor.json b/tests/components/matter/fixtures/nodes/mock_humidity_sensor.json index 8220c9cf8f876..75f26e77fce80 100644 --- a/tests/components/matter/fixtures/nodes/mock_humidity_sensor.json +++ b/tests/components/matter/fixtures/nodes/mock_humidity_sensor.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 21, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_light_sensor.json b/tests/components/matter/fixtures/nodes/mock_light_sensor.json index c4d84bc792366..b05dcd61e085d 100644 --- a/tests/components/matter/fixtures/nodes/mock_light_sensor.json +++ b/tests/components/matter/fixtures/nodes/mock_light_sensor.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 22, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_occupancy_sensor.json b/tests/components/matter/fixtures/nodes/mock_occupancy_sensor.json index f63dd43362b14..e9d2575dcd0e2 100644 --- a/tests/components/matter/fixtures/nodes/mock_occupancy_sensor.json +++ b/tests/components/matter/fixtures/nodes/mock_occupancy_sensor.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 24, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_on_off_plugin_unit.json b/tests/components/matter/fixtures/nodes/mock_on_off_plugin_unit.json index 3b4831a748532..f563bcc748961 100644 --- a/tests/components/matter/fixtures/nodes/mock_on_off_plugin_unit.json +++ b/tests/components/matter/fixtures/nodes/mock_on_off_plugin_unit.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 26, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_onoff_light.json b/tests/components/matter/fixtures/nodes/mock_onoff_light.json index de3e5d4c357f7..5199dcb16a047 100644 --- a/tests/components/matter/fixtures/nodes/mock_onoff_light.json +++ b/tests/components/matter/fixtures/nodes/mock_onoff_light.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 30, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_onoff_light_alt_name.json b/tests/components/matter/fixtures/nodes/mock_onoff_light_alt_name.json index ad3bb82173665..2f3127dc385df 100644 --- a/tests/components/matter/fixtures/nodes/mock_onoff_light_alt_name.json +++ b/tests/components/matter/fixtures/nodes/mock_onoff_light_alt_name.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 27, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_onoff_light_no_name.json b/tests/components/matter/fixtures/nodes/mock_onoff_light_no_name.json index 2f7abd2bc4490..1d84c2ad7b8e9 100644 --- a/tests/components/matter/fixtures/nodes/mock_onoff_light_no_name.json +++ b/tests/components/matter/fixtures/nodes/mock_onoff_light_no_name.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 28, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_oven.json b/tests/components/matter/fixtures/nodes/mock_oven.json index 6e325146f8365..80fbf70613b87 100644 --- a/tests/components/matter/fixtures/nodes/mock_oven.json +++ b/tests/components/matter/fixtures/nodes/mock_oven.json @@ -1,5 +1,5 @@ { - "node_id": 2, + "node_id": 41, "date_commissioned": "2025-04-29T15:37:55.171819", "last_interview": "2025-04-29T15:37:55.171832", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/mock_pressure_sensor.json b/tests/components/matter/fixtures/nodes/mock_pressure_sensor.json index d38ac560ac51a..8cb1adffaf481 100644 --- a/tests/components/matter/fixtures/nodes/mock_pressure_sensor.json +++ b/tests/components/matter/fixtures/nodes/mock_pressure_sensor.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 31, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_pump.json b/tests/components/matter/fixtures/nodes/mock_pump.json index 6d74b3d1b89c1..4a258b0a736c9 100644 --- a/tests/components/matter/fixtures/nodes/mock_pump.json +++ b/tests/components/matter/fixtures/nodes/mock_pump.json @@ -1,5 +1,5 @@ { - "node_id": 3, + "node_id": 44, "date_commissioned": "2025-05-09T15:45:16.457511", "last_interview": "2025-05-09T15:49:41.414681", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/mock_room_airconditioner.json b/tests/components/matter/fixtures/nodes/mock_room_airconditioner.json index 770e217e68c8e..8847a992b2251 100644 --- a/tests/components/matter/fixtures/nodes/mock_room_airconditioner.json +++ b/tests/components/matter/fixtures/nodes/mock_room_airconditioner.json @@ -1,5 +1,5 @@ { - "node_id": 36, + "node_id": 59, "date_commissioned": "2024-03-27T17:31:23.745932", "last_interview": "2024-03-27T17:31:23.745939", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/mock_solar_inverter.json b/tests/components/matter/fixtures/nodes/mock_solar_inverter.json index 5a4e04eacaf4c..1cd4109396186 100644 --- a/tests/components/matter/fixtures/nodes/mock_solar_inverter.json +++ b/tests/components/matter/fixtures/nodes/mock_solar_inverter.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 34, "date_commissioned": "2025-04-26T13:59:01.038380", "last_interview": "2025-04-26T13:59:01.038432", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/mock_switch_unit.json b/tests/components/matter/fixtures/nodes/mock_switch_unit.json index e16f1e406ec9a..a37988f9682ba 100644 --- a/tests/components/matter/fixtures/nodes/mock_switch_unit.json +++ b/tests/components/matter/fixtures/nodes/mock_switch_unit.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 35, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_temperature_sensor.json b/tests/components/matter/fixtures/nodes/mock_temperature_sensor.json index 0abb366f81b08..1dbc2a477ecc1 100644 --- a/tests/components/matter/fixtures/nodes/mock_temperature_sensor.json +++ b/tests/components/matter/fixtures/nodes/mock_temperature_sensor.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 38, "date_commissioned": "2022-11-29T21:23:48.485051", "last_interview": "2022-11-29T21:23:48.485057", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_valve.json b/tests/components/matter/fixtures/nodes/mock_valve.json index 9f0b2078923e9..fa05e8a0d0425 100644 --- a/tests/components/matter/fixtures/nodes/mock_valve.json +++ b/tests/components/matter/fixtures/nodes/mock_valve.json @@ -1,5 +1,5 @@ { - "node_id": 75, + "node_id": 60, "date_commissioned": "2024-09-02T09:32:00.380607", "last_interview": "2024-09-02T09:32:00.380611", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/mock_window_covering_lift.json b/tests/components/matter/fixtures/nodes/mock_window_covering_lift.json index 9c58869e988c2..00b2ba94c6468 100644 --- a/tests/components/matter/fixtures/nodes/mock_window_covering_lift.json +++ b/tests/components/matter/fixtures/nodes/mock_window_covering_lift.json @@ -1,5 +1,5 @@ { - "node_id": 50, + "node_id": 51, "date_commissioned": "2023-04-27T18:47:08.437119", "last_interview": "2023-04-27T18:47:08.437131", "interview_version": 3, diff --git a/tests/components/matter/fixtures/nodes/mock_window_covering_pa_lift.json b/tests/components/matter/fixtures/nodes/mock_window_covering_pa_lift.json index fe970b6ed6bed..369cebc062ba0 100644 --- a/tests/components/matter/fixtures/nodes/mock_window_covering_pa_lift.json +++ b/tests/components/matter/fixtures/nodes/mock_window_covering_pa_lift.json @@ -1,5 +1,5 @@ { - "node_id": 1, + "node_id": 39, "date_commissioned": "2023-03-29T08:23:30.740085", "last_interview": "2023-03-29T08:23:30.740087", "interview_version": 2, diff --git a/tests/components/matter/fixtures/nodes/mock_window_covering_pa_tilt.json b/tests/components/matter/fixtures/nodes/mock_window_covering_pa_tilt.json index 92a1d820d2e39..7e52b262dbf4d 100644 --- a/tests/components/matter/fixtures/nodes/mock_window_covering_pa_tilt.json +++ b/tests/components/matter/fixtures/nodes/mock_window_covering_pa_tilt.json @@ -1,5 +1,5 @@ { - "node_id": 50, + "node_id": 52, "date_commissioned": "2023-04-27T18:47:08.437119", "last_interview": "2023-04-27T18:47:08.437131", "interview_version": 3, diff --git a/tests/components/matter/fixtures/nodes/mock_window_covering_tilt.json b/tests/components/matter/fixtures/nodes/mock_window_covering_tilt.json index 144348b5c7688..7e4772cb5c395 100644 --- a/tests/components/matter/fixtures/nodes/mock_window_covering_tilt.json +++ b/tests/components/matter/fixtures/nodes/mock_window_covering_tilt.json @@ -1,5 +1,5 @@ { - "node_id": 50, + "node_id": 53, "date_commissioned": "2023-04-27T18:47:08.437119", "last_interview": "2023-04-27T18:47:08.437131", "interview_version": 3, diff --git a/tests/components/matter/fixtures/nodes/onoff_light_with_levelcontrol_present.json b/tests/components/matter/fixtures/nodes/onoff_light_with_levelcontrol_present.json index c1264f5b7ea68..1043fcad9591f 100644 --- a/tests/components/matter/fixtures/nodes/onoff_light_with_levelcontrol_present.json +++ b/tests/components/matter/fixtures/nodes/onoff_light_with_levelcontrol_present.json @@ -1,5 +1,5 @@ { - "node_id": 8, + "node_id": 48, "date_commissioned": "2024-03-07T01:39:20.590755", "last_interview": "2024-04-02T14:16:31.045880", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/resideo_x2s_thermostat.json b/tests/components/matter/fixtures/nodes/resideo_x2s_thermostat.json index 32a9f3839bb25..e82f8c2f6a051 100644 --- a/tests/components/matter/fixtures/nodes/resideo_x2s_thermostat.json +++ b/tests/components/matter/fixtures/nodes/resideo_x2s_thermostat.json @@ -1,5 +1,5 @@ { - "node_id": 4, + "node_id": 45, "date_commissioned": "2026-01-04T01:49:35.244151", "last_interview": "2026-01-04T03:11:54.520702", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/secuyou_smart_lock.json b/tests/components/matter/fixtures/nodes/secuyou_smart_lock.json index 77d524eb60593..3c21d4bce7fa1 100644 --- a/tests/components/matter/fixtures/nodes/secuyou_smart_lock.json +++ b/tests/components/matter/fixtures/nodes/secuyou_smart_lock.json @@ -1,5 +1,5 @@ { - "node_id": 2, + "node_id": 42, "date_commissioned": "2025-06-26T06:42:50.114401", "last_interview": "2025-06-26T06:42:50.114421", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/silabs_laundrywasher.json b/tests/components/matter/fixtures/nodes/silabs_laundrywasher.json index 6bcb5d3d96ec7..626205a208bba 100644 --- a/tests/components/matter/fixtures/nodes/silabs_laundrywasher.json +++ b/tests/components/matter/fixtures/nodes/silabs_laundrywasher.json @@ -1,5 +1,5 @@ { - "node_id": 29, + "node_id": 56, "date_commissioned": "2024-10-19T19:49:36.900186", "last_interview": "2024-10-20T09:26:38.517535", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/silabs_water_heater.json b/tests/components/matter/fixtures/nodes/silabs_water_heater.json index 7b764f3b3f161..2fe9b9e09b6ed 100644 --- a/tests/components/matter/fixtures/nodes/silabs_water_heater.json +++ b/tests/components/matter/fixtures/nodes/silabs_water_heater.json @@ -1,5 +1,5 @@ { - "node_id": 25, + "node_id": 57, "date_commissioned": "2024-11-21T20:21:44.371473", "last_interview": "2024-11-21T20:21:44.371503", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/tado_smart_radiator_thermostat_x.json b/tests/components/matter/fixtures/nodes/tado_smart_radiator_thermostat_x.json index 9111ffd03fe66..1b3824b12af65 100644 --- a/tests/components/matter/fixtures/nodes/tado_smart_radiator_thermostat_x.json +++ b/tests/components/matter/fixtures/nodes/tado_smart_radiator_thermostat_x.json @@ -1,5 +1,5 @@ { - "node_id": 12, + "node_id": 49, "date_commissioned": "2024-11-30T14:42:32.255793", "last_interview": "2025-09-02T11:11:02.931246", "interview_version": 6, diff --git a/tests/components/matter/fixtures/nodes/yandex_smart_socket.json b/tests/components/matter/fixtures/nodes/yandex_smart_socket.json index 26cdf38414f7d..8aab7ff6c2eca 100644 --- a/tests/components/matter/fixtures/nodes/yandex_smart_socket.json +++ b/tests/components/matter/fixtures/nodes/yandex_smart_socket.json @@ -1,5 +1,5 @@ { - "node_id": 4, + "node_id": 46, "date_commissioned": "2024-12-05T10:54:31.635203", "last_interview": "2024-12-05T12:16:52.038776", "interview_version": 6, diff --git a/tests/components/matter/snapshots/test_binary_sensor.ambr b/tests/components/matter/snapshots/test_binary_sensor.ambr index 6bc7517097faf..a0e5baef7f5d5 100644 --- a/tests/components/matter/snapshots/test_binary_sensor.ambr +++ b/tests/components/matter/snapshots/test_binary_sensor.ambr @@ -230,7 +230,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-ContactSensor-69-0', + 'unique_id': '00000000000004D2-0000000000000009-MatterNodeDevice-1-ContactSensor-69-0', 'unit_of_measurement': None, }) # --- @@ -777,7 +777,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'battery_alert', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SmokeCoAlarmBatteryAlertSensor-92-3', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-SmokeCoAlarmBatteryAlertSensor-92-3', 'unit_of_measurement': None, }) # --- @@ -827,7 +827,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'end_of_service', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SmokeCoAlarmEndfOfServiceSensor-92-7', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-SmokeCoAlarmEndfOfServiceSensor-92-7', 'unit_of_measurement': None, }) # --- @@ -877,7 +877,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'hardware_fault', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SmokeCoAlarmHardwareFaultAlertSensor-92-6', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-SmokeCoAlarmHardwareFaultAlertSensor-92-6', 'unit_of_measurement': None, }) # --- @@ -927,7 +927,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'muted', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SmokeCoAlarmDeviceMutedSensor-92-4', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-SmokeCoAlarmDeviceMutedSensor-92-4', 'unit_of_measurement': None, }) # --- @@ -976,7 +976,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SmokeCoAlarmSmokeStateSensor-92-1', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-SmokeCoAlarmSmokeStateSensor-92-1', 'unit_of_measurement': None, }) # --- @@ -1026,7 +1026,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'test_in_progress', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SmokeCoAlarmTestInProgressSensor-92-5', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-SmokeCoAlarmTestInProgressSensor-92-5', 'unit_of_measurement': None, }) # --- @@ -1126,7 +1126,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'actuator', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-LockActuatorEnabledSensor-257-2', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-LockActuatorEnabledSensor-257-2', 'unit_of_measurement': None, }) # --- @@ -1175,7 +1175,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-BatteryChargeLevel-47-14', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-BatteryChargeLevel-47-14', 'unit_of_measurement': None, }) # --- @@ -1225,7 +1225,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'actuator', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-LockActuatorEnabledSensor-257-2', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-LockActuatorEnabledSensor-257-2', 'unit_of_measurement': None, }) # --- @@ -1274,7 +1274,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-BatteryChargeLevel-47-14', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-BatteryChargeLevel-47-14', 'unit_of_measurement': None, }) # --- @@ -1324,7 +1324,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-LockDoorStateSensor-257-3', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-LockDoorStateSensor-257-3', 'unit_of_measurement': None, }) # --- @@ -1573,7 +1573,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-OccupancySensor-1030-0', + 'unique_id': '00000000000004D2-0000000000000018-MatterNodeDevice-1-OccupancySensor-1030-0', 'unit_of_measurement': None, }) # --- @@ -1623,7 +1623,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-OccupancySensor-1030-0', + 'unique_id': '00000000000004D2-000000000000001B-MatterNodeDevice-1-OccupancySensor-1030-0', 'unit_of_measurement': None, }) # --- @@ -1673,7 +1673,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-OccupancySensor-1030-0', + 'unique_id': '00000000000004D2-000000000000001C-MatterNodeDevice-1-OccupancySensor-1030-0', 'unit_of_measurement': None, }) # --- @@ -1723,7 +1723,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'pump_fault', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-PumpFault-512-16', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-PumpFault-512-16', 'unit_of_measurement': None, }) # --- @@ -1773,7 +1773,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'pump_running', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-PumpStatusRunning-512-16', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-PumpStatusRunning-512-16', 'unit_of_measurement': None, }) # --- @@ -1970,7 +1970,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'valve_fault_general_fault', - 'unique_id': '00000000000004D2-000000000000004B-MatterNodeDevice-1-ValveConfigurationAndControlValveFault_GeneralFault-129-9', + 'unique_id': '00000000000004D2-000000000000003C-MatterNodeDevice-1-ValveConfigurationAndControlValveFault_GeneralFault-129-9', 'unit_of_measurement': None, }) # --- @@ -2020,7 +2020,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'valve_fault_blocked', - 'unique_id': '00000000000004D2-000000000000004B-MatterNodeDevice-1-ValveConfigurationAndControlValveFault_Blocked-129-9', + 'unique_id': '00000000000004D2-000000000000003C-MatterNodeDevice-1-ValveConfigurationAndControlValveFault_Blocked-129-9', 'unit_of_measurement': None, }) # --- @@ -2070,7 +2070,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'valve_fault_leaking', - 'unique_id': '00000000000004D2-000000000000004B-MatterNodeDevice-1-ValveConfigurationAndControlValveFault_Leaking-129-9', + 'unique_id': '00000000000004D2-000000000000003C-MatterNodeDevice-1-ValveConfigurationAndControlValveFault_Leaking-129-9', 'unit_of_measurement': None, }) # --- @@ -2170,7 +2170,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'config_status_operational', - 'unique_id': '00000000000004D2-0000000000000032-MatterNodeDevice-1-WindowCoveringConfigStatusOperational-258-7', + 'unique_id': '00000000000004D2-0000000000000033-MatterNodeDevice-1-WindowCoveringConfigStatusOperational-258-7', 'unit_of_measurement': None, }) # --- @@ -2220,7 +2220,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'config_status_operational', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-WindowCoveringConfigStatusOperational-258-7', + 'unique_id': '00000000000004D2-0000000000000027-MatterNodeDevice-1-WindowCoveringConfigStatusOperational-258-7', 'unit_of_measurement': None, }) # --- @@ -2270,7 +2270,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'config_status_operational', - 'unique_id': '00000000000004D2-0000000000000032-MatterNodeDevice-1-WindowCoveringConfigStatusOperational-258-7', + 'unique_id': '00000000000004D2-0000000000000034-MatterNodeDevice-1-WindowCoveringConfigStatusOperational-258-7', 'unit_of_measurement': None, }) # --- @@ -2320,7 +2320,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'config_status_operational', - 'unique_id': '00000000000004D2-0000000000000032-MatterNodeDevice-1-WindowCoveringConfigStatusOperational-258-7', + 'unique_id': '00000000000004D2-0000000000000035-MatterNodeDevice-1-WindowCoveringConfigStatusOperational-258-7', 'unit_of_measurement': None, }) # --- @@ -2370,7 +2370,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'actuator', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-1-LockActuatorEnabledSensor-257-2', + 'unique_id': '00000000000004D2-000000000000002A-MatterNodeDevice-1-LockActuatorEnabledSensor-257-2', 'unit_of_measurement': None, }) # --- @@ -2719,7 +2719,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'boost_state', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-WaterHeaterManagementBoostStateSensor-148-5', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-WaterHeaterManagementBoostStateSensor-148-5', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_button.ambr b/tests/components/matter/snapshots/test_button.ambr index 847769a7f1936..d7a9675825385 100644 --- a/tests/components/matter/snapshots/test_button.ambr +++ b/tests/components/matter/snapshots/test_button.ambr @@ -781,7 +781,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000005-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -831,7 +831,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000014-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000007-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -1031,7 +1031,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000009-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -1181,7 +1181,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000053-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-000000000000003D-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -1531,7 +1531,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-000000000000000A-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -1780,7 +1780,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -1830,7 +1830,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'self_test_request', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SmokeCoAlarmSelfTestRequest-92-65529', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-SmokeCoAlarmSelfTestRequest-92-65529', 'unit_of_measurement': None, }) # --- @@ -2575,7 +2575,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000037-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3067,7 +3067,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000018-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3117,7 +3117,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-000000000000001A-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3167,7 +3167,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000023-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3217,7 +3217,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-0-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000026-MatterNodeDevice-0-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3367,7 +3367,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000027-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3417,7 +3417,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000030-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3467,7 +3467,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-000000000000002D-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3517,7 +3517,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-000000000000002A-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3764,7 +3764,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -3814,7 +3814,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'pause', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-OperationalStatePauseButton-96-65529', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-OperationalStatePauseButton-96-65529', 'unit_of_measurement': None, }) # --- @@ -3863,7 +3863,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'resume', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-OperationalStateResumeButton-96-65529', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-OperationalStateResumeButton-96-65529', 'unit_of_measurement': None, }) # --- @@ -3912,7 +3912,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'start', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-OperationalStateStartButton-96-65529', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-OperationalStateStartButton-96-65529', 'unit_of_measurement': None, }) # --- @@ -3961,7 +3961,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'stop', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-OperationalStateStopButton-96-65529', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-OperationalStateStopButton-96-65529', 'unit_of_measurement': None, }) # --- @@ -4110,7 +4110,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'cancel_boost', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-WaterHeaterManagementCancelBoost-148-65529', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-WaterHeaterManagementCancelBoost-148-65529', 'unit_of_measurement': None, }) # --- @@ -4159,7 +4159,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-000000000000000C-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-0000000000000031-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- @@ -4209,7 +4209,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-IdentifyButton-3-1', + 'unique_id': '00000000000004D2-000000000000002E-MatterNodeDevice-1-IdentifyButton-3-1', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_climate.ambr b/tests/components/matter/snapshots/test_climate.ambr index be27ffe9a9e81..43b1d92b61007 100644 --- a/tests/components/matter/snapshots/test_climate.ambr +++ b/tests/components/matter/snapshots/test_climate.ambr @@ -103,7 +103,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'thermostat', - 'unique_id': '00000000000004D2-0000000000000014-MatterNodeDevice-1-MatterThermostat-513-0', + 'unique_id': '00000000000004D2-0000000000000007-MatterNodeDevice-1-MatterThermostat-513-0', 'unit_of_measurement': None, }) # --- @@ -438,7 +438,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'thermostat', - 'unique_id': '00000000000004D2-0000000000000024-MatterNodeDevice-1-MatterThermostat-513-0', + 'unique_id': '00000000000004D2-000000000000003B-MatterNodeDevice-1-MatterThermostat-513-0', 'unit_of_measurement': None, }) # --- @@ -581,7 +581,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'thermostat', - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-MatterThermostat-513-0', + 'unique_id': '00000000000004D2-000000000000002D-MatterNodeDevice-1-MatterThermostat-513-0', 'unit_of_measurement': None, }) # --- @@ -648,7 +648,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'thermostat', - 'unique_id': '00000000000004D2-000000000000000C-MatterNodeDevice-1-MatterThermostat-513-0', + 'unique_id': '00000000000004D2-0000000000000031-MatterNodeDevice-1-MatterThermostat-513-0', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_cover.ambr b/tests/components/matter/snapshots/test_cover.ambr index 0a29942f2c22f..63ae84d352afa 100644 --- a/tests/components/matter/snapshots/test_cover.ambr +++ b/tests/components/matter/snapshots/test_cover.ambr @@ -136,7 +136,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000032-MatterNodeDevice-1-MatterCover-258-10', + 'unique_id': '00000000000004D2-0000000000000033-MatterNodeDevice-1-MatterCover-258-10', 'unit_of_measurement': None, }) # --- @@ -187,7 +187,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterCoverPositionAwareLift-258-10', + 'unique_id': '00000000000004D2-0000000000000027-MatterNodeDevice-1-MatterCoverPositionAwareLift-258-10', 'unit_of_measurement': None, }) # --- @@ -239,7 +239,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000032-MatterNodeDevice-1-MatterCoverPositionAwareTilt-258-10', + 'unique_id': '00000000000004D2-0000000000000034-MatterNodeDevice-1-MatterCoverPositionAwareTilt-258-10', 'unit_of_measurement': None, }) # --- @@ -291,7 +291,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000032-MatterNodeDevice-1-MatterCover-258-10', + 'unique_id': '00000000000004D2-0000000000000035-MatterNodeDevice-1-MatterCover-258-10', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_event.ambr b/tests/components/matter/snapshots/test_event.ambr index 6df961d32feae..8b1cf16967c30 100644 --- a/tests/components/matter/snapshots/test_event.ambr +++ b/tests/components/matter/snapshots/test_event.ambr @@ -1664,7 +1664,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'button', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-GenericSwitch-59-1', + 'unique_id': '00000000000004D2-0000000000000013-MatterNodeDevice-1-GenericSwitch-59-1', 'unit_of_measurement': None, }) # --- @@ -1728,7 +1728,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'button', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-GenericSwitch-59-1', + 'unique_id': '00000000000004D2-0000000000000012-MatterNodeDevice-1-GenericSwitch-59-1', 'unit_of_measurement': None, }) # --- @@ -1794,7 +1794,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'button', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-2-GenericSwitch-59-1', + 'unique_id': '00000000000004D2-0000000000000012-MatterNodeDevice-2-GenericSwitch-59-1', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_fan.ambr b/tests/components/matter/snapshots/test_fan.ambr index 52d5dcc5f82a8..ef2f8cc8cc5af 100644 --- a/tests/components/matter/snapshots/test_fan.ambr +++ b/tests/components/matter/snapshots/test_fan.ambr @@ -238,7 +238,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'fan', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-MatterFan-514-0', + 'unique_id': '00000000000004D2-0000000000000037-MatterNodeDevice-1-MatterFan-514-0', 'unit_of_measurement': None, }) # --- @@ -307,7 +307,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'fan', - 'unique_id': '00000000000004D2-0000000000000024-MatterNodeDevice-1-MatterFan-514-0', + 'unique_id': '00000000000004D2-000000000000003B-MatterNodeDevice-1-MatterFan-514-0', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_light.ambr b/tests/components/matter/snapshots/test_light.ambr index da23798ef345b..f4d5590b4b9f6 100644 --- a/tests/components/matter/snapshots/test_light.ambr +++ b/tests/components/matter/snapshots/test_light.ambr @@ -37,7 +37,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'light', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterLight-6-0', + 'unique_id': '00000000000004D2-0000000000000005-MatterNodeDevice-1-MatterLight-6-0', 'unit_of_measurement': None, }) # --- @@ -116,7 +116,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'light', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterLight-6-0', + 'unique_id': '00000000000004D2-000000000000000A-MatterNodeDevice-1-MatterLight-6-0', 'unit_of_measurement': None, }) # --- @@ -394,7 +394,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'light', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterLight-6-0', + 'unique_id': '00000000000004D2-000000000000000D-MatterNodeDevice-1-MatterLight-6-0', 'unit_of_measurement': None, }) # --- @@ -569,7 +569,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'light', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterLight-6-0', + 'unique_id': '00000000000004D2-000000000000001E-MatterNodeDevice-1-MatterLight-6-0', 'unit_of_measurement': None, }) # --- @@ -631,7 +631,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'light', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterLight-6-0', + 'unique_id': '00000000000004D2-000000000000001B-MatterNodeDevice-1-MatterLight-6-0', 'unit_of_measurement': None, }) # --- @@ -702,7 +702,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'light', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterLight-6-0', + 'unique_id': '00000000000004D2-000000000000001C-MatterNodeDevice-1-MatterLight-6-0', 'unit_of_measurement': None, }) # --- @@ -769,7 +769,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'light', - 'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-MatterLight-6-0', + 'unique_id': '00000000000004D2-0000000000000030-MatterNodeDevice-1-MatterLight-6-0', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_lock.ambr b/tests/components/matter/snapshots/test_lock.ambr index b983bb1e2d685..916a42b72dc93 100644 --- a/tests/components/matter/snapshots/test_lock.ambr +++ b/tests/components/matter/snapshots/test_lock.ambr @@ -82,7 +82,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'lock', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterLock-257-0', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-MatterLock-257-0', 'unit_of_measurement': None, }) # --- @@ -133,7 +133,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'lock', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterLock-257-0', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-MatterLock-257-0', 'unit_of_measurement': None, }) # --- @@ -235,7 +235,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'lock', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-1-MatterLock-257-0', + 'unique_id': '00000000000004D2-000000000000002A-MatterNodeDevice-1-MatterLock-257-0', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_number.ambr b/tests/components/matter/snapshots/test_number.ambr index 41fc8a7a99156..efbe4bcdf7f9a 100644 --- a/tests/components/matter/snapshots/test_number.ambr +++ b/tests/components/matter/snapshots/test_number.ambr @@ -390,7 +390,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_level', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_level-8-17', + 'unique_id': '00000000000004D2-0000000000000005-MatterNodeDevice-1-on_level-8-17', 'unit_of_measurement': None, }) # --- @@ -628,7 +628,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_level', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_level-8-17', + 'unique_id': '00000000000004D2-000000000000000A-MatterNodeDevice-1-on_level-8-17', 'unit_of_measurement': None, }) # --- @@ -1622,7 +1622,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'off_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-off_transition_time-8-19', + 'unique_id': '00000000000004D2-000000000000000D-MatterNodeDevice-1-off_transition_time-8-19', 'unit_of_measurement': , }) # --- @@ -1681,7 +1681,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_level', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_level-8-17', + 'unique_id': '00000000000004D2-000000000000000D-MatterNodeDevice-1-on_level-8-17', 'unit_of_measurement': None, }) # --- @@ -1739,7 +1739,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_off_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_off_transition_time-8-16', + 'unique_id': '00000000000004D2-000000000000000D-MatterNodeDevice-1-on_off_transition_time-8-16', 'unit_of_measurement': , }) # --- @@ -1798,7 +1798,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_transition_time-8-18', + 'unique_id': '00000000000004D2-000000000000000D-MatterNodeDevice-1-on_transition_time-8-18', 'unit_of_measurement': , }) # --- @@ -1974,7 +1974,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'auto_relock_timer', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-AutoRelockTimer-257-35', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-AutoRelockTimer-257-35', 'unit_of_measurement': , }) # --- @@ -2033,7 +2033,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'user_code_temporary_disable_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockUserCodeTemporaryDisableTime-257-49', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-DoorLockUserCodeTemporaryDisableTime-257-49', 'unit_of_measurement': , }) # --- @@ -2092,7 +2092,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'wrong_code_entry_limit', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockWrongCodeEntryLimit-257-48', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-DoorLockWrongCodeEntryLimit-257-48', 'unit_of_measurement': None, }) # --- @@ -2150,7 +2150,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'auto_relock_timer', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-AutoRelockTimer-257-35', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-AutoRelockTimer-257-35', 'unit_of_measurement': , }) # --- @@ -2209,7 +2209,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'user_code_temporary_disable_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockUserCodeTemporaryDisableTime-257-49', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-DoorLockUserCodeTemporaryDisableTime-257-49', 'unit_of_measurement': , }) # --- @@ -2268,7 +2268,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'wrong_code_entry_limit', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockWrongCodeEntryLimit-257-48', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-DoorLockWrongCodeEntryLimit-257-48', 'unit_of_measurement': None, }) # --- @@ -2620,7 +2620,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'off_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-off_transition_time-8-19', + 'unique_id': '00000000000004D2-000000000000001A-MatterNodeDevice-1-off_transition_time-8-19', 'unit_of_measurement': , }) # --- @@ -2679,7 +2679,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_level', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_level-8-17', + 'unique_id': '00000000000004D2-000000000000001A-MatterNodeDevice-1-on_level-8-17', 'unit_of_measurement': None, }) # --- @@ -2737,7 +2737,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_off_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_off_transition_time-8-16', + 'unique_id': '00000000000004D2-000000000000001A-MatterNodeDevice-1-on_off_transition_time-8-16', 'unit_of_measurement': , }) # --- @@ -2796,7 +2796,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_transition_time-8-18', + 'unique_id': '00000000000004D2-000000000000001A-MatterNodeDevice-1-on_transition_time-8-18', 'unit_of_measurement': , }) # --- @@ -2855,7 +2855,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'off_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-off_transition_time-8-19', + 'unique_id': '00000000000004D2-000000000000001B-MatterNodeDevice-1-off_transition_time-8-19', 'unit_of_measurement': , }) # --- @@ -2914,7 +2914,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_level', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_level-8-17', + 'unique_id': '00000000000004D2-000000000000001B-MatterNodeDevice-1-on_level-8-17', 'unit_of_measurement': None, }) # --- @@ -2972,7 +2972,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_off_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_off_transition_time-8-16', + 'unique_id': '00000000000004D2-000000000000001B-MatterNodeDevice-1-on_off_transition_time-8-16', 'unit_of_measurement': , }) # --- @@ -3031,7 +3031,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_transition_time-8-18', + 'unique_id': '00000000000004D2-000000000000001B-MatterNodeDevice-1-on_transition_time-8-18', 'unit_of_measurement': , }) # --- @@ -3090,7 +3090,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'off_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-off_transition_time-8-19', + 'unique_id': '00000000000004D2-000000000000001C-MatterNodeDevice-1-off_transition_time-8-19', 'unit_of_measurement': , }) # --- @@ -3149,7 +3149,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_level', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_level-8-17', + 'unique_id': '00000000000004D2-000000000000001C-MatterNodeDevice-1-on_level-8-17', 'unit_of_measurement': None, }) # --- @@ -3207,7 +3207,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_off_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_off_transition_time-8-16', + 'unique_id': '00000000000004D2-000000000000001C-MatterNodeDevice-1-on_off_transition_time-8-16', 'unit_of_measurement': , }) # --- @@ -3266,7 +3266,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_transition_time', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-on_transition_time-8-18', + 'unique_id': '00000000000004D2-000000000000001C-MatterNodeDevice-1-on_transition_time-8-18', 'unit_of_measurement': , }) # --- @@ -3325,7 +3325,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'temperature_setpoint', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-2-TemperatureControlTemperatureSetpoint-86-0', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-2-TemperatureControlTemperatureSetpoint-86-0', 'unit_of_measurement': , }) # --- @@ -3384,7 +3384,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_level', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-on_level-8-17', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-on_level-8-17', 'unit_of_measurement': None, }) # --- @@ -3442,7 +3442,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'pump_setpoint', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-pump_setpoint-8-0', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-pump_setpoint-8-0', 'unit_of_measurement': '%', }) # --- @@ -3620,7 +3620,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'valve_configuration_and_control_default_open_duration', - 'unique_id': '00000000000004D2-000000000000004B-MatterNodeDevice-1-ValveConfigurationAndControlDefaultOpenDuration-129-1', + 'unique_id': '00000000000004D2-000000000000003C-MatterNodeDevice-1-ValveConfigurationAndControlDefaultOpenDuration-129-1', 'unit_of_measurement': , }) # --- @@ -3679,7 +3679,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_level', - 'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-on_level-8-17', + 'unique_id': '00000000000004D2-0000000000000030-MatterNodeDevice-1-on_level-8-17', 'unit_of_measurement': None, }) # --- @@ -3737,7 +3737,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'on_off_transition_time', - 'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-on_off_transition_time-8-16', + 'unique_id': '00000000000004D2-0000000000000030-MatterNodeDevice-1-on_off_transition_time-8-16', 'unit_of_measurement': , }) # --- @@ -3796,7 +3796,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'auto_relock_timer', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-1-AutoRelockTimer-257-35', + 'unique_id': '00000000000004D2-000000000000002A-MatterNodeDevice-1-AutoRelockTimer-257-35', 'unit_of_measurement': , }) # --- @@ -3855,7 +3855,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'user_code_temporary_disable_time', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-1-DoorLockUserCodeTemporaryDisableTime-257-49', + 'unique_id': '00000000000004D2-000000000000002A-MatterNodeDevice-1-DoorLockUserCodeTemporaryDisableTime-257-49', 'unit_of_measurement': , }) # --- @@ -3914,7 +3914,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'wrong_code_entry_limit', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-1-DoorLockWrongCodeEntryLimit-257-48', + 'unique_id': '00000000000004D2-000000000000002A-MatterNodeDevice-1-DoorLockWrongCodeEntryLimit-257-48', 'unit_of_measurement': None, }) # --- @@ -3972,7 +3972,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'temperature_setpoint', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-TemperatureControlTemperatureSetpoint-86-0', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-TemperatureControlTemperatureSetpoint-86-0', 'unit_of_measurement': , }) # --- diff --git a/tests/components/matter/snapshots/test_select.ambr b/tests/components/matter/snapshots/test_select.ambr index 628968423cb09..01d41bb15d6d1 100644 --- a/tests/components/matter/snapshots/test_select.ambr +++ b/tests/components/matter/snapshots/test_select.ambr @@ -333,7 +333,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'mode', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterModeSelect-80-3', + 'unique_id': '00000000000004D2-0000000000000005-MatterNodeDevice-1-MatterModeSelect-80-3', 'unit_of_measurement': None, }) # --- @@ -394,7 +394,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-0000000000000005-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -710,7 +710,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000053-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000003D-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -949,7 +949,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'mode', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterModeSelect-80-3', + 'unique_id': '00000000000004D2-000000000000000A-MatterNodeDevice-1-MatterModeSelect-80-3', 'unit_of_measurement': None, }) # --- @@ -1010,7 +1010,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000000A-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -2401,7 +2401,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'temperature_level', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-2-TemperatureControlSelectedTemperatureLevel-86-4', + 'unique_id': '00000000000004D2-000000000000002B-MatterNodeDevice-2-TemperatureControlSelectedTemperatureLevel-86-4', 'unit_of_measurement': None, }) # --- @@ -2471,7 +2471,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'mode', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-6-MatterModeSelect-80-3', + 'unique_id': '00000000000004D2-000000000000000D-MatterNodeDevice-6-MatterModeSelect-80-3', 'unit_of_measurement': None, }) # --- @@ -2542,7 +2542,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000000D-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -2664,7 +2664,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'door_lock_operating_mode', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockOperatingMode-257-37', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-DoorLockOperatingMode-257-37', 'unit_of_measurement': None, }) # --- @@ -2724,7 +2724,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -2786,7 +2786,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'door_lock_sound_volume', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockSoundVolume-257-36', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-DoorLockSoundVolume-257-36', 'unit_of_measurement': None, }) # --- @@ -2846,7 +2846,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'door_lock_operating_mode', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockOperatingMode-257-37', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-DoorLockOperatingMode-257-37', 'unit_of_measurement': None, }) # --- @@ -2906,7 +2906,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -2968,7 +2968,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'door_lock_sound_volume', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockSoundVolume-257-36', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-DoorLockSoundVolume-257-36', 'unit_of_measurement': None, }) # --- @@ -3346,7 +3346,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000001A-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -3408,7 +3408,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000001E-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -3470,7 +3470,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000001B-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -3532,7 +3532,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000001C-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -3599,7 +3599,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'mode', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-2-MatterOvenMode-73-1', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-2-MatterOvenMode-73-1', 'unit_of_measurement': None, }) # --- @@ -3665,7 +3665,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'temperature_level', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-4-TemperatureControlSelectedTemperatureLevel-86-4', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-4-TemperatureControlSelectedTemperatureLevel-86-4', 'unit_of_measurement': None, }) # --- @@ -3726,7 +3726,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'pump_operation_mode', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-PumpConfigurationAndControlOperationMode-512-32', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-PumpConfigurationAndControlOperationMode-512-32', 'unit_of_measurement': None, }) # --- @@ -3788,7 +3788,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-0000000000000023-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -3972,7 +3972,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-0000000000000030-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- @@ -4033,7 +4033,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'door_lock_operating_mode', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-1-DoorLockOperatingMode-257-37', + 'unique_id': '00000000000004D2-000000000000002A-MatterNodeDevice-1-DoorLockOperatingMode-257-37', 'unit_of_measurement': None, }) # --- @@ -4218,7 +4218,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'laundry_washer_number_of_rinses', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-MatterLaundryWasherNumberOfRinses-83-2', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-MatterLaundryWasherNumberOfRinses-83-2', 'unit_of_measurement': None, }) # --- @@ -4278,7 +4278,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'laundry_washer_spin_speed', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-LaundryWasherControlsSpinSpeed-83-1', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-LaundryWasherControlsSpinSpeed-83-1', 'unit_of_measurement': None, }) # --- @@ -4339,7 +4339,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'temperature_level', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-TemperatureControlSelectedTemperatureLevel-86-4', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-TemperatureControlSelectedTemperatureLevel-86-4', 'unit_of_measurement': None, }) # --- @@ -4461,7 +4461,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'device_energy_management_mode', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-MatterDeviceEnergyManagementMode-159-1', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-MatterDeviceEnergyManagementMode-159-1', 'unit_of_measurement': None, }) # --- @@ -4588,7 +4588,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'startup_on_off', - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', + 'unique_id': '00000000000004D2-000000000000002E-MatterNodeDevice-1-MatterStartUpOnOff-6-16387', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_sensor.ambr b/tests/components/matter/snapshots/test_sensor.ambr index c1a47bf30a169..33a6ae39b66cd 100644 --- a/tests/components/matter/snapshots/test_sensor.ambr +++ b/tests/components/matter/snapshots/test_sensor.ambr @@ -1956,7 +1956,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'pi_heating_demand', - 'unique_id': '00000000000004D2-0000000000000014-MatterNodeDevice-1-ThermostatPIHeatingDemand-513-8', + 'unique_id': '00000000000004D2-0000000000000007-MatterNodeDevice-1-ThermostatPIHeatingDemand-513-8', 'unit_of_measurement': '%', }) # --- @@ -2011,7 +2011,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000014-MatterNodeDevice-1-ThermostatLocalTemperature-513-0', + 'unique_id': '00000000000004D2-0000000000000007-MatterNodeDevice-1-ThermostatLocalTemperature-513-0', 'unit_of_measurement': , }) # --- @@ -2794,7 +2794,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PowerSource-47-12', + 'unique_id': '00000000000004D2-0000000000000009-MatterNodeDevice-1-PowerSource-47-12', 'unit_of_measurement': '%', }) # --- @@ -2854,7 +2854,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'battery_voltage', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PowerSourceBatVoltage-47-11', + 'unique_id': '00000000000004D2-0000000000000009-MatterNodeDevice-1-PowerSourceBatVoltage-47-11', 'unit_of_measurement': , }) # --- @@ -3139,7 +3139,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000053-MatterNodeDevice-1-EveEnergySensorWattCurrent-319486977-319422473', + 'unique_id': '00000000000004D2-000000000000003D-MatterNodeDevice-1-EveEnergySensorWattCurrent-319486977-319422473', 'unit_of_measurement': , }) # --- @@ -3196,7 +3196,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000053-MatterNodeDevice-1-EveEnergySensorWattAccumulated-319486977-319422475', + 'unique_id': '00000000000004D2-000000000000003D-MatterNodeDevice-1-EveEnergySensorWattAccumulated-319486977-319422475', 'unit_of_measurement': , }) # --- @@ -3253,7 +3253,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000053-MatterNodeDevice-1-EveEnergySensorWatt-319486977-319422474', + 'unique_id': '00000000000004D2-000000000000003D-MatterNodeDevice-1-EveEnergySensorWatt-319486977-319422474', 'unit_of_measurement': , }) # --- @@ -3310,7 +3310,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000053-MatterNodeDevice-1-EveEnergySensorVoltage-319486977-319422472', + 'unique_id': '00000000000004D2-000000000000003D-MatterNodeDevice-1-EveEnergySensorVoltage-319486977-319422472', 'unit_of_measurement': , }) # --- @@ -5361,7 +5361,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PowerSource-47-12', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-PowerSource-47-12', 'unit_of_measurement': '%', }) # --- @@ -5413,7 +5413,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'battery_replacement_description', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PowerSourceBatReplacementDescription-47-19', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-PowerSourceBatReplacementDescription-47-19', 'unit_of_measurement': None, }) # --- @@ -5470,7 +5470,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'battery_voltage', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PowerSourceBatVoltage-47-11', + 'unique_id': '00000000000004D2-000000000000000B-MatterNodeDevice-1-PowerSourceBatVoltage-47-11', 'unit_of_measurement': , }) # --- @@ -8599,7 +8599,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-2-TemperatureSensor-1026-0', + 'unique_id': '00000000000004D2-000000000000002B-MatterNodeDevice-2-TemperatureSensor-1026-0', 'unit_of_measurement': , }) # --- @@ -8759,7 +8759,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'flow', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-FlowSensor-1028-0', + 'unique_id': '00000000000004D2-0000000000000011-MatterNodeDevice-1-FlowSensor-1028-0', 'unit_of_measurement': , }) # --- @@ -8812,7 +8812,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch_current_position', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SwitchCurrentPosition-59-1', + 'unique_id': '00000000000004D2-0000000000000013-MatterNodeDevice-1-SwitchCurrentPosition-59-1', 'unit_of_measurement': None, }) # --- @@ -8864,7 +8864,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch_current_position', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SwitchCurrentPosition-59-1', + 'unique_id': '00000000000004D2-0000000000000012-MatterNodeDevice-1-SwitchCurrentPosition-59-1', 'unit_of_measurement': None, }) # --- @@ -8916,7 +8916,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch_current_position', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-2-SwitchCurrentPosition-59-1', + 'unique_id': '00000000000004D2-0000000000000012-MatterNodeDevice-2-SwitchCurrentPosition-59-1', 'unit_of_measurement': None, }) # --- @@ -8968,7 +8968,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-HumiditySensor-1029-0', + 'unique_id': '00000000000004D2-0000000000000015-MatterNodeDevice-1-HumiditySensor-1029-0', 'unit_of_measurement': '%', }) # --- @@ -9209,7 +9209,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-LightSensor-1024-0', + 'unique_id': '00000000000004D2-0000000000000016-MatterNodeDevice-1-LightSensor-1024-0', 'unit_of_measurement': 'lx', }) # --- @@ -9547,7 +9547,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'current_phase', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-2-OvenCavityOperationalStateCurrentPhase-72-1', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-2-OvenCavityOperationalStateCurrentPhase-72-1', 'unit_of_measurement': None, }) # --- @@ -9608,7 +9608,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'operational_state', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-2-OvenCavityOperationalState-72-4', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-2-OvenCavityOperationalState-72-4', 'unit_of_measurement': None, }) # --- @@ -9668,7 +9668,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-2-TemperatureSensor-1026-0', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-2-TemperatureSensor-1026-0', 'unit_of_measurement': , }) # --- @@ -9725,7 +9725,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-4-TemperatureSensor-1026-0', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-4-TemperatureSensor-1026-0', 'unit_of_measurement': , }) # --- @@ -9782,7 +9782,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-PressureSensor-1027-0', + 'unique_id': '00000000000004D2-000000000000001F-MatterNodeDevice-1-PressureSensor-1027-0', 'unit_of_measurement': , }) # --- @@ -9843,7 +9843,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'pump_control_mode', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-PumpControlMode-512-33', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-PumpControlMode-512-33', 'unit_of_measurement': None, }) # --- @@ -9903,7 +9903,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'flow', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-FlowSensor-1028-0', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-FlowSensor-1028-0', 'unit_of_measurement': , }) # --- @@ -9959,7 +9959,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-PressureSensor-1027-0', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-PressureSensor-1027-0', 'unit_of_measurement': , }) # --- @@ -10013,7 +10013,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'pump_speed', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-PumpSpeed-512-20', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-PumpSpeed-512-20', 'unit_of_measurement': 'rpm', }) # --- @@ -10069,7 +10069,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-TemperatureSensor-1026-0', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-TemperatureSensor-1026-0', 'unit_of_measurement': , }) # --- @@ -10126,7 +10126,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000024-MatterNodeDevice-2-TemperatureSensor-1026-0', + 'unique_id': '00000000000004D2-000000000000003B-MatterNodeDevice-2-TemperatureSensor-1026-0', 'unit_of_measurement': , }) # --- @@ -10186,7 +10186,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'active_current', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-ElectricalPowerMeasurementActiveCurrent-144-5', + 'unique_id': '00000000000004D2-0000000000000022-MatterNodeDevice-1-ElectricalPowerMeasurementActiveCurrent-144-5', 'unit_of_measurement': , }) # --- @@ -10246,7 +10246,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'energy_exported', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-ElectricalEnergyMeasurementCumulativeEnergyExported-145-2', + 'unique_id': '00000000000004D2-0000000000000022-MatterNodeDevice-1-ElectricalEnergyMeasurementCumulativeEnergyExported-145-2', 'unit_of_measurement': , }) # --- @@ -10306,7 +10306,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-ElectricalPowerMeasurementWatt-144-8', + 'unique_id': '00000000000004D2-0000000000000022-MatterNodeDevice-1-ElectricalPowerMeasurementWatt-144-8', 'unit_of_measurement': , }) # --- @@ -10366,7 +10366,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'voltage', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-ElectricalPowerMeasurementVoltage-144-4', + 'unique_id': '00000000000004D2-0000000000000022-MatterNodeDevice-1-ElectricalPowerMeasurementVoltage-144-4', 'unit_of_measurement': , }) # --- @@ -10423,7 +10423,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-TemperatureSensor-1026-0', + 'unique_id': '00000000000004D2-0000000000000026-MatterNodeDevice-1-TemperatureSensor-1026-0', 'unit_of_measurement': , }) # --- @@ -10851,7 +10851,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'auto_close_time', - 'unique_id': '00000000000004D2-000000000000004B-MatterNodeDevice-1-ValveConfigurationAndControlAutoCloseTime-129-2', + 'unique_id': '00000000000004D2-000000000000003C-MatterNodeDevice-1-ValveConfigurationAndControlAutoCloseTime-129-2', 'unit_of_measurement': None, }) # --- @@ -10951,7 +10951,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'window_covering_target_position', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-TargetPositionLiftPercent100ths-258-11', + 'unique_id': '00000000000004D2-0000000000000027-MatterNodeDevice-1-TargetPositionLiftPercent100ths-258-11', 'unit_of_measurement': '%', }) # --- @@ -11006,7 +11006,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-ThermostatLocalTemperature-513-0', + 'unique_id': '00000000000004D2-000000000000002D-MatterNodeDevice-1-ThermostatLocalTemperature-513-0', 'unit_of_measurement': , }) # --- @@ -11941,7 +11941,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'current_phase', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-OperationalStateCurrentPhase-96-1', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-OperationalStateCurrentPhase-96-1', 'unit_of_measurement': None, }) # --- @@ -12004,7 +12004,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'rms_current', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-2-ElectricalPowerMeasurementRMSCurrent-144-12', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-2-ElectricalPowerMeasurementRMSCurrent-144-12', 'unit_of_measurement': , }) # --- @@ -12064,7 +12064,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'rms_voltage', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-2-ElectricalPowerMeasurementRMSVoltage-144-11', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-2-ElectricalPowerMeasurementRMSVoltage-144-11', 'unit_of_measurement': , }) # --- @@ -12124,7 +12124,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-2-ElectricalEnergyMeasurementCumulativeEnergyImported-145-1', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-2-ElectricalEnergyMeasurementCumulativeEnergyImported-145-1', 'unit_of_measurement': , }) # --- @@ -12183,7 +12183,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'operational_error', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-OperationalStateOperationalError-96-5', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-OperationalStateOperationalError-96-5', 'unit_of_measurement': None, }) # --- @@ -12246,7 +12246,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'operational_state', - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-1-OperationalState-96-4', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-1-OperationalState-96-4', 'unit_of_measurement': None, }) # --- @@ -12310,7 +12310,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-000000000000001D-MatterNodeDevice-2-ElectricalPowerMeasurementWatt-144-8', + 'unique_id': '00000000000004D2-0000000000000038-MatterNodeDevice-2-ElectricalPowerMeasurementWatt-144-8', 'unit_of_measurement': , }) # --- @@ -12422,7 +12422,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'active_current', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-ElectricalPowerMeasurementActiveCurrent-144-5', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-ElectricalPowerMeasurementActiveCurrent-144-5', 'unit_of_measurement': , }) # --- @@ -12482,7 +12482,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'esa_state', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-ESAState-152-2', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-ESAState-152-2', 'unit_of_measurement': None, }) # --- @@ -12546,7 +12546,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'esa_opt_out_state', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-ESAOptOutState-152-7', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-ESAOptOutState-152-7', 'unit_of_measurement': None, }) # --- @@ -12604,7 +12604,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'tank_percentage', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-WaterHeaterManagementTankPercentage-148-4', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-WaterHeaterManagementTankPercentage-148-4', 'unit_of_measurement': '%', }) # --- @@ -12663,7 +12663,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-ElectricalPowerMeasurementWatt-144-8', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-ElectricalPowerMeasurementWatt-144-8', 'unit_of_measurement': , }) # --- @@ -12723,7 +12723,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'estimated_heat_required', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-WaterHeaterManagementEstimatedHeatRequired-148-3', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-WaterHeaterManagementEstimatedHeatRequired-148-3', 'unit_of_measurement': , }) # --- @@ -12780,7 +12780,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'tank_volume', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-WaterHeaterManagementTankVolume-148-2', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-WaterHeaterManagementTankVolume-148-2', 'unit_of_measurement': , }) # --- @@ -12840,7 +12840,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'voltage', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-ElectricalPowerMeasurementVoltage-144-4', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-ElectricalPowerMeasurementVoltage-144-4', 'unit_of_measurement': , }) # --- @@ -13056,7 +13056,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-000000000000000C-MatterNodeDevice-1-HumiditySensor-1029-0', + 'unique_id': '00000000000004D2-0000000000000031-MatterNodeDevice-1-HumiditySensor-1029-0', 'unit_of_measurement': '%', }) # --- @@ -13113,7 +13113,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-000000000000000C-MatterNodeDevice-1-ThermostatLocalTemperature-513-0', + 'unique_id': '00000000000004D2-0000000000000031-MatterNodeDevice-1-ThermostatLocalTemperature-513-0', 'unit_of_measurement': , }) # --- @@ -13170,7 +13170,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-ElectricalMeasurementRmsCurrent-2820-1288', + 'unique_id': '00000000000004D2-000000000000002E-MatterNodeDevice-1-ElectricalMeasurementRmsCurrent-2820-1288', 'unit_of_measurement': , }) # --- @@ -13227,7 +13227,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-ElectricalMeasurementActivePower-2820-1291', + 'unique_id': '00000000000004D2-000000000000002E-MatterNodeDevice-1-ElectricalMeasurementActivePower-2820-1291', 'unit_of_measurement': , }) # --- @@ -13284,7 +13284,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-ElectricalMeasurementRmsVoltage-2820-1285', + 'unique_id': '00000000000004D2-000000000000002E-MatterNodeDevice-1-ElectricalMeasurementRmsVoltage-2820-1285', 'unit_of_measurement': , }) # --- diff --git a/tests/components/matter/snapshots/test_switch.ambr b/tests/components/matter/snapshots/test_switch.ambr index 25e04f62cb1fa..7175296a9c050 100644 --- a/tests/components/matter/snapshots/test_switch.ambr +++ b/tests/components/matter/snapshots/test_switch.ambr @@ -131,7 +131,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch', - 'unique_id': '00000000000004D2-0000000000000053-MatterNodeDevice-1-MatterPlug-6-0', + 'unique_id': '00000000000004D2-000000000000003D-MatterNodeDevice-1-MatterPlug-6-0', 'unit_of_measurement': None, }) # --- @@ -479,7 +479,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'power', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-MatterPowerToggle-6-0', + 'unique_id': '00000000000004D2-000000000000002B-MatterNodeDevice-1-MatterPowerToggle-6-0', 'unit_of_measurement': None, }) # --- @@ -529,7 +529,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'power', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-2-MatterPowerToggle-6-0', + 'unique_id': '00000000000004D2-000000000000002B-MatterNodeDevice-2-MatterPowerToggle-6-0', 'unit_of_measurement': None, }) # --- @@ -579,7 +579,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterSwitch-6-0', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-MatterSwitch-6-0', 'unit_of_measurement': None, }) # --- @@ -629,7 +629,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'privacy_mode_button', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockEnablePrivacyModeButton-257-43', + 'unique_id': '00000000000004D2-0000000000000010-MatterNodeDevice-1-DoorLockEnablePrivacyModeButton-257-43', 'unit_of_measurement': None, }) # --- @@ -678,7 +678,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterSwitch-6-0', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-MatterSwitch-6-0', 'unit_of_measurement': None, }) # --- @@ -728,7 +728,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'privacy_mode_button', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-DoorLockEnablePrivacyModeButton-257-43', + 'unique_id': '00000000000004D2-000000000000000F-MatterNodeDevice-1-DoorLockEnablePrivacyModeButton-257-43', 'unit_of_measurement': None, }) # --- @@ -876,7 +876,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterPlug-6-0', + 'unique_id': '00000000000004D2-000000000000001A-MatterNodeDevice-1-MatterPlug-6-0', 'unit_of_measurement': None, }) # --- @@ -926,7 +926,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'power', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-3-MatterPowerToggle-6-0', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-3-MatterPowerToggle-6-0', 'unit_of_measurement': None, }) # --- @@ -976,7 +976,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'power', - 'unique_id': '00000000000004D2-0000000000000002-MatterNodeDevice-4-MatterPowerToggle-6-0', + 'unique_id': '00000000000004D2-0000000000000029-MatterNodeDevice-4-MatterPowerToggle-6-0', 'unit_of_measurement': None, }) # --- @@ -1026,7 +1026,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'power', - 'unique_id': '00000000000004D2-0000000000000003-MatterNodeDevice-1-MatterPowerToggle-6-0', + 'unique_id': '00000000000004D2-000000000000002C-MatterNodeDevice-1-MatterPowerToggle-6-0', 'unit_of_measurement': None, }) # --- @@ -1076,7 +1076,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'power', - 'unique_id': '00000000000004D2-0000000000000024-MatterNodeDevice-1-MatterPowerToggle-6-0', + 'unique_id': '00000000000004D2-000000000000003B-MatterNodeDevice-1-MatterPowerToggle-6-0', 'unit_of_measurement': None, }) # --- @@ -1175,7 +1175,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch', - 'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-MatterSwitch-6-0', + 'unique_id': '00000000000004D2-0000000000000023-MatterNodeDevice-1-MatterSwitch-6-0', 'unit_of_measurement': None, }) # --- @@ -1324,7 +1324,7 @@ 'suggested_object_id': None, 'supported_features': 0, 'translation_key': 'switch', - 'unique_id': '00000000000004D2-0000000000000004-MatterNodeDevice-1-MatterPlug-6-0', + 'unique_id': '00000000000004D2-000000000000002E-MatterNodeDevice-1-MatterPlug-6-0', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_valve.ambr b/tests/components/matter/snapshots/test_valve.ambr index edb5fe95d968e..c0a6b8e6e5c88 100644 --- a/tests/components/matter/snapshots/test_valve.ambr +++ b/tests/components/matter/snapshots/test_valve.ambr @@ -31,7 +31,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'valve', - 'unique_id': '00000000000004D2-000000000000004B-MatterNodeDevice-1-MatterValve-129-4', + 'unique_id': '00000000000004D2-000000000000003C-MatterNodeDevice-1-MatterValve-129-4', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/snapshots/test_water_heater.ambr b/tests/components/matter/snapshots/test_water_heater.ambr index b68870971497e..be80bb1c50919 100644 --- a/tests/components/matter/snapshots/test_water_heater.ambr +++ b/tests/components/matter/snapshots/test_water_heater.ambr @@ -39,7 +39,7 @@ 'suggested_object_id': None, 'supported_features': , 'translation_key': 'water_heater', - 'unique_id': '00000000000004D2-0000000000000019-MatterNodeDevice-2-MatterWaterHeater-513-18', + 'unique_id': '00000000000004D2-0000000000000039-MatterNodeDevice-2-MatterWaterHeater-513-18', 'unit_of_measurement': None, }) # --- diff --git a/tests/components/matter/test_adapter.py b/tests/components/matter/test_adapter.py index 6cc967b056638..65cf28d623156 100644 --- a/tests/components/matter/test_adapter.py +++ b/tests/components/matter/test_adapter.py @@ -19,22 +19,23 @@ @pytest.mark.usefixtures("matter_node") @pytest.mark.parametrize( - ("node_fixture", "name"), + ("node_fixture", "unique_id", "name"), [ - ("mock_onoff_light", "Mock OnOff Light"), - ("mock_onoff_light_alt_name", "Mock OnOff Light"), - ("mock_onoff_light_no_name", "Mock Light"), + ("mock_onoff_light", "000000000000001E", "Mock OnOff Light"), + ("mock_onoff_light_alt_name", "000000000000001B", "Mock OnOff Light"), + ("mock_onoff_light_no_name", "000000000000001C", "Mock Light"), ], ) async def test_device_registry_single_node_device( hass: HomeAssistant, device_registry: dr.DeviceRegistry, + unique_id: str, name: str, ) -> None: """Test bridge devices are set up correctly with via_device.""" entry = device_registry.async_get_device( identifiers={ - (DOMAIN, "deviceid_00000000000004D2-0000000000000001-MatterNodeDevice") + (DOMAIN, f"deviceid_00000000000004D2-{unique_id}-MatterNodeDevice") } ) assert entry is not None @@ -60,7 +61,7 @@ async def test_device_registry_single_node_device_alt( """Test additional device with different attribute values.""" entry = device_registry.async_get_device( identifiers={ - (DOMAIN, "deviceid_00000000000004D2-0000000000000001-MatterNodeDevice") + (DOMAIN, "deviceid_00000000000004D2-000000000000001A-MatterNodeDevice") } ) assert entry is not None diff --git a/tests/components/matter/test_api.py b/tests/components/matter/test_api.py index b68ead9eab357..df1450ecd1ff0 100644 --- a/tests/components/matter/test_api.py +++ b/tests/components/matter/test_api.py @@ -200,7 +200,7 @@ async def test_node_diagnostics( # get the device registry entry for the mocked node entry = device_registry.async_get_device( identifiers={ - (DOMAIN, "deviceid_00000000000004D2-0000000000000001-MatterNodeDevice") + (DOMAIN, "deviceid_00000000000004D2-000000000000001E-MatterNodeDevice") } ) assert entry is not None @@ -269,7 +269,7 @@ async def test_ping_node( # get the device registry entry for the mocked node entry = device_registry.async_get_device( identifiers={ - (DOMAIN, "deviceid_00000000000004D2-0000000000000001-MatterNodeDevice") + (DOMAIN, "deviceid_00000000000004D2-000000000000001E-MatterNodeDevice") } ) assert entry is not None @@ -324,7 +324,7 @@ async def test_open_commissioning_window( # get the device registry entry for the mocked node entry = device_registry.async_get_device( identifiers={ - (DOMAIN, "deviceid_00000000000004D2-0000000000000001-MatterNodeDevice") + (DOMAIN, "deviceid_00000000000004D2-000000000000001E-MatterNodeDevice") } ) assert entry is not None @@ -385,7 +385,7 @@ async def test_remove_matter_fabric( # get the device registry entry for the mocked node entry = device_registry.async_get_device( identifiers={ - (DOMAIN, "deviceid_00000000000004D2-0000000000000001-MatterNodeDevice") + (DOMAIN, "deviceid_00000000000004D2-000000000000001E-MatterNodeDevice") } ) assert entry is not None @@ -402,7 +402,7 @@ async def test_remove_matter_fabric( ) msg = await ws_client.receive_json() assert msg["success"] - matter_client.remove_matter_fabric.assert_called_once_with(1, 3) + matter_client.remove_matter_fabric.assert_called_once_with(30, 3) # repeat test with a device id that does not have a node attached new_entry = device_registry.async_get_or_create( @@ -436,7 +436,7 @@ async def test_interview_node( # get the device registry entry for the mocked node entry = device_registry.async_get_device( identifiers={ - (DOMAIN, "deviceid_00000000000004D2-0000000000000001-MatterNodeDevice") + (DOMAIN, "deviceid_00000000000004D2-000000000000001E-MatterNodeDevice") } ) assert entry is not None @@ -447,7 +447,7 @@ async def test_interview_node( ) msg = await ws_client.receive_json() assert msg["success"] - matter_client.interview_node.assert_called_once_with(1) + matter_client.interview_node.assert_called_once_with(30) # repeat test with a device id that does not have a node attached new_entry = device_registry.async_get_or_create( diff --git a/tests/components/matter/test_init.py b/tests/components/matter/test_init.py index 48704337330b6..35908dfee3fc4 100644 --- a/tests/components/matter/test_init.py +++ b/tests/components/matter/test_init.py @@ -31,6 +31,7 @@ from .common import ( FIXTURES, create_node_from_fixture, + load_and_parse_node_fixture, setup_integration_with_node_fixture, ) @@ -59,6 +60,16 @@ def test_fixture_list() -> None: # Ensure it is sorted - makes it easier to identify duplicate entries or # locate specific fixtures assert sorted(FIXTURES) == FIXTURES, "Fixture list is not sorted" + # Ensure all fixtures have a unique node id + node_ids = set() + for fixture in FIXTURES: + node_data = load_and_parse_node_fixture(fixture) + if (node_id := node_data["node_id"]) in node_ids: + pytest.fail( + f"Duplicate node ID {node_id} found in fixture {fixture}, " + f"please use: {next(i for i in range(1, 1000) if i not in node_ids)}" + ) + node_ids.add(node_id) async def test_entry_setup_unload( diff --git a/tests/components/matter/test_light.py b/tests/components/matter/test_light.py index b87c0fbc81d88..f547fe4d49471 100644 --- a/tests/components/matter/test_light.py +++ b/tests/components/matter/test_light.py @@ -398,7 +398,7 @@ async def test_extended_color_light( matter_client.send_device_command.assert_has_calls( [ call( - node_id=1, + node_id=matter_node.node_id, endpoint_id=1, command=clusters.ColorControl.Commands.MoveToHueAndSaturation( hue=167, @@ -433,7 +433,7 @@ async def test_extended_color_light( matter_client.send_device_command.assert_has_calls( [ call( - node_id=1, + node_id=matter_node.node_id, endpoint_id=1, command=clusters.ColorControl.Commands.MoveToHueAndSaturation( hue=167, diff --git a/tests/components/watts/snapshots/test_diagnostics.ambr b/tests/components/watts/snapshots/test_diagnostics.ambr new file mode 100644 index 0000000000000..cb03f0e26984d --- /dev/null +++ b/tests/components/watts/snapshots/test_diagnostics.ambr @@ -0,0 +1,163 @@ +# serializer version: 1 +# name: test_diagnostics + dict({ + 'devices': dict({ + 'switch_789': dict({ + 'device': dict({ + 'device_id': 'switch_789', + 'device_name': 'Living Room Switch', + 'device_type': 'switch', + 'interface': 'homeassistant.components.SWITCH', + 'is_online': True, + 'is_turned_on': False, + 'room_name': 'Living Room', + }), + 'fast_polling_active': False, + 'fast_polling_until': None, + 'last_update_success': True, + }), + 'thermostat_123': dict({ + 'device': dict({ + 'available_thermostat_modes': list([ + 'Program', + 'Eco', + 'Comfort', + 'Off', + 'Defrost', + 'Timer', + ]), + 'current_temperature': 20.5, + 'device_id': 'thermostat_123', + 'device_name': 'Living Room Thermostat', + 'device_type': 'thermostat', + 'interface': 'homeassistant.components.THERMOSTAT', + 'is_online': True, + 'max_allowed_temperature': 30.0, + 'min_allowed_temperature': 5.0, + 'room_name': 'Living Room', + 'setpoint': 22.0, + 'temperature_unit': 'C', + 'thermostat_mode': 'Comfort', + }), + 'fast_polling_active': False, + 'fast_polling_until': None, + 'last_update_success': True, + }), + 'thermostat_456': dict({ + 'device': dict({ + 'available_thermostat_modes': list([ + 'Program', + 'Eco', + 'Comfort', + 'Off', + ]), + 'current_temperature': 19.0, + 'device_id': 'thermostat_456', + 'device_name': 'Bedroom Thermostat', + 'device_type': 'thermostat', + 'interface': 'homeassistant.components.THERMOSTAT', + 'is_online': True, + 'max_allowed_temperature': 30.0, + 'min_allowed_temperature': 5.0, + 'room_name': 'Bedroom', + 'setpoint': 21.0, + 'temperature_unit': 'C', + 'thermostat_mode': 'Program', + }), + 'fast_polling_active': False, + 'fast_polling_until': None, + 'last_update_success': True, + }), + }), + 'entry': dict({ + 'created_at': '2026-01-01T12:00:00+00:00', + 'data': dict({ + 'auth_implementation': 'watts', + 'token': dict({ + 'access_token': '**REDACTED**', + 'expires_at': 9999999999, + 'id_token': '**REDACTED**', + 'profile_info': '**REDACTED**', + 'refresh_token': '**REDACTED**', + }), + }), + 'disabled_by': None, + 'discovery_keys': dict({ + }), + 'domain': 'watts', + 'entry_id': '01J0BC4QM2YBRP6H5G933CETI8', + 'minor_version': 1, + 'modified_at': '2026-01-01T12:00:00+00:00', + 'options': dict({ + }), + 'pref_disable_new_entities': False, + 'pref_disable_polling': False, + 'source': 'user', + 'subentries': list([ + ]), + 'title': 'Watts Vision', + 'unique_id': '**REDACTED**', + 'version': 1, + }), + 'hub_coordinator': dict({ + 'last_discovery': '2026-01-01T12:00:00', + 'last_exception': None, + 'last_update_success': True, + 'supported_devices': 3, + 'total_devices': 3, + }), + 'hub_data': dict({ + 'switch_789': dict({ + 'device_id': 'switch_789', + 'device_name': 'Living Room Switch', + 'device_type': 'switch', + 'interface': 'homeassistant.components.SWITCH', + 'is_online': True, + 'is_turned_on': False, + 'room_name': 'Living Room', + }), + 'thermostat_123': dict({ + 'available_thermostat_modes': list([ + 'Program', + 'Eco', + 'Comfort', + 'Off', + 'Defrost', + 'Timer', + ]), + 'current_temperature': 20.5, + 'device_id': 'thermostat_123', + 'device_name': 'Living Room Thermostat', + 'device_type': 'thermostat', + 'interface': 'homeassistant.components.THERMOSTAT', + 'is_online': True, + 'max_allowed_temperature': 30.0, + 'min_allowed_temperature': 5.0, + 'room_name': 'Living Room', + 'setpoint': 22.0, + 'temperature_unit': 'C', + 'thermostat_mode': 'Comfort', + }), + 'thermostat_456': dict({ + 'available_thermostat_modes': list([ + 'Program', + 'Eco', + 'Comfort', + 'Off', + ]), + 'current_temperature': 19.0, + 'device_id': 'thermostat_456', + 'device_name': 'Bedroom Thermostat', + 'device_type': 'thermostat', + 'interface': 'homeassistant.components.THERMOSTAT', + 'is_online': True, + 'max_allowed_temperature': 30.0, + 'min_allowed_temperature': 5.0, + 'room_name': 'Bedroom', + 'setpoint': 21.0, + 'temperature_unit': 'C', + 'thermostat_mode': 'Program', + }), + }), + }) +# --- diff --git a/tests/components/watts/test_diagnostics.py b/tests/components/watts/test_diagnostics.py new file mode 100644 index 0000000000000..702ca388d6deb --- /dev/null +++ b/tests/components/watts/test_diagnostics.py @@ -0,0 +1,31 @@ +"""Tests for the diagnostics data provided by the Watts Vision + integration.""" + +from unittest.mock import AsyncMock + +import pytest +from syrupy.assertion import SnapshotAssertion + +from homeassistant.core import HomeAssistant + +from . import setup_integration + +from tests.common import MockConfigEntry +from tests.components.diagnostics import get_diagnostics_for_config_entry +from tests.typing import ClientSessionGenerator + + +@pytest.mark.freeze_time("2026-01-01T12:00:00") +async def test_diagnostics( + hass: HomeAssistant, + hass_client: ClientSessionGenerator, + mock_config_entry: MockConfigEntry, + mock_watts_client: AsyncMock, + snapshot: SnapshotAssertion, +) -> None: + """Test diagnostics.""" + await setup_integration(hass, mock_config_entry) + + assert ( + await get_diagnostics_for_config_entry(hass, hass_client, mock_config_entry) + == snapshot + )