From 433c022687d4aa84dfe370bf15ef3dff472601bd Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Mon, 16 Oct 2023 21:26:19 -1000 Subject: [PATCH] Save previous unique id in entity registry when it changes (#102093) --- homeassistant/helpers/entity_registry.py | 11 +- .../snapshots/test_binary_sensor.ambr | 3 + .../snapshots/test_climate.ambr | 1 + .../snapshots/test_cover.ambr | 1 + .../snapshots/test_light.ambr | 2 + .../snapshots/test_sensor.ambr | 4 + .../snapshots/test_siren.ambr | 3 + .../snapshots/test_switch.ambr | 1 + .../snapshots/test_binary_sensor.ambr | 1 + .../snapshots/test_button.ambr | 4 + .../snapshots/test_image.ambr | 1 + .../snapshots/test_sensor.ambr | 3 + .../snapshots/test_switch.ambr | 2 + .../snapshots/test_update.ambr | 1 + .../elgato/snapshots/test_button.ambr | 2 + .../elgato/snapshots/test_light.ambr | 3 + .../elgato/snapshots/test_sensor.ambr | 5 + .../elgato/snapshots/test_switch.ambr | 2 + .../energyzero/snapshots/test_sensor.ambr | 6 + .../gree/snapshots/test_climate.ambr | 1 + .../gree/snapshots/test_switch.ambr | 5 + .../snapshots/test_init.ambr | 265 ++++++++++++++++++ .../onewire/snapshots/test_binary_sensor.ambr | 16 ++ .../onewire/snapshots/test_sensor.ambr | 41 +++ .../onewire/snapshots/test_switch.ambr | 36 +++ .../renault/snapshots/test_binary_sensor.ambr | 52 ++++ .../renault/snapshots/test_button.ambr | 20 ++ .../snapshots/test_device_tracker.ambr | 6 + .../renault/snapshots/test_select.ambr | 6 + .../renault/snapshots/test_sensor.ambr | 104 +++++++ .../samsungtv/snapshots/test_init.ambr | 1 + .../sfr_box/snapshots/test_binary_sensor.ambr | 4 + .../sfr_box/snapshots/test_button.ambr | 1 + .../sfr_box/snapshots/test_sensor.ambr | 15 + .../tplink_omada/snapshots/test_switch.ambr | 8 + .../twentemilieu/snapshots/test_calendar.ambr | 1 + .../twentemilieu/snapshots/test_sensor.ambr | 5 + .../uptime/snapshots/test_sensor.ambr | 1 + .../components/vesync/snapshots/test_fan.ambr | 4 + .../vesync/snapshots/test_light.ambr | 3 + .../vesync/snapshots/test_sensor.ambr | 15 + .../vesync/snapshots/test_switch.ambr | 2 + .../whois/snapshots/test_sensor.ambr | 10 + .../wled/snapshots/test_binary_sensor.ambr | 1 + .../wled/snapshots/test_button.ambr | 1 + .../wled/snapshots/test_number.ambr | 2 + .../wled/snapshots/test_select.ambr | 4 + .../wled/snapshots/test_switch.ambr | 4 + tests/helpers/test_entity_registry.py | 1 + 49 files changed, 690 insertions(+), 1 deletion(-) diff --git a/homeassistant/helpers/entity_registry.py b/homeassistant/helpers/entity_registry.py index a5e27280a5b..a97e283af07 100644 --- a/homeassistant/helpers/entity_registry.py +++ b/homeassistant/helpers/entity_registry.py @@ -65,7 +65,7 @@ SAVE_DELAY = 10 _LOGGER = logging.getLogger(__name__) STORAGE_VERSION_MAJOR = 1 -STORAGE_VERSION_MINOR = 11 +STORAGE_VERSION_MINOR = 12 STORAGE_KEY = "core.entity_registry" CLEANUP_INTERVAL = 3600 * 24 @@ -156,6 +156,7 @@ class RegistryEntry: entity_id: str = attr.ib() unique_id: str = attr.ib() platform: str = attr.ib() + previous_unique_id: str | None = attr.ib(default=None) aliases: set[str] = attr.ib(factory=set) area_id: str | None = attr.ib(default=None) capabilities: Mapping[str, Any] | None = attr.ib(default=None) @@ -422,6 +423,11 @@ class EntityRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]): # Version 1.11 adds deleted_entities data["deleted_entities"] = data.get("deleted_entities", []) + if old_major_version == 1 and old_minor_version < 12: + # Version 1.12 adds previous_unique_id + for entity in data["entities"]: + entity["previous_unique_id"] = None + if old_major_version > 1: raise NotImplementedError return data @@ -905,6 +911,7 @@ class EntityRegistry: ) new_values["unique_id"] = new_unique_id old_values["unique_id"] = old.unique_id + new_values["previous_unique_id"] = old.unique_id if not new_values: return old @@ -1072,6 +1079,7 @@ class EntityRegistry: supported_features=entity["supported_features"], translation_key=entity["translation_key"], unique_id=entity["unique_id"], + previous_unique_id=entity["previous_unique_id"], unit_of_measurement=entity["unit_of_measurement"], ) for entity in data["deleted_entities"]: @@ -1127,6 +1135,7 @@ class EntityRegistry: "supported_features": entry.supported_features, "translation_key": entry.translation_key, "unique_id": entry.unique_id, + "previous_unique_id": entry.previous_unique_id, "unit_of_measurement": entry.unit_of_measurement, } for entry in self.entities.values() diff --git a/tests/components/devolo_home_control/snapshots/test_binary_sensor.ambr b/tests/components/devolo_home_control/snapshots/test_binary_sensor.ambr index 0c86cc94321..58cfc407a77 100644 --- a/tests/components/devolo_home_control/snapshots/test_binary_sensor.ambr +++ b/tests/components/devolo_home_control/snapshots/test_binary_sensor.ambr @@ -36,6 +36,7 @@ 'original_icon': None, 'original_name': 'Door', 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'Test', @@ -79,6 +80,7 @@ 'original_icon': None, 'original_name': 'Overload', 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'Overload', @@ -121,6 +123,7 @@ 'original_icon': None, 'original_name': 'Button 1', 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'Test_1', diff --git a/tests/components/devolo_home_control/snapshots/test_climate.ambr b/tests/components/devolo_home_control/snapshots/test_climate.ambr index e0066a10656..0e7c5ba547e 100644 --- a/tests/components/devolo_home_control/snapshots/test_climate.ambr +++ b/tests/components/devolo_home_control/snapshots/test_climate.ambr @@ -51,6 +51,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'Test', diff --git a/tests/components/devolo_home_control/snapshots/test_cover.ambr b/tests/components/devolo_home_control/snapshots/test_cover.ambr index b2872d0c912..69d1eea4275 100644 --- a/tests/components/devolo_home_control/snapshots/test_cover.ambr +++ b/tests/components/devolo_home_control/snapshots/test_cover.ambr @@ -38,6 +38,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'devolo.Blinds', diff --git a/tests/components/devolo_home_control/snapshots/test_light.ambr b/tests/components/devolo_home_control/snapshots/test_light.ambr index 81c1e9b4293..cc02e0a680b 100644 --- a/tests/components/devolo_home_control/snapshots/test_light.ambr +++ b/tests/components/devolo_home_control/snapshots/test_light.ambr @@ -45,6 +45,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'devolo.Dimmer:Test', @@ -97,6 +98,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'devolo.Dimmer:Test', diff --git a/tests/components/devolo_home_control/snapshots/test_sensor.ambr b/tests/components/devolo_home_control/snapshots/test_sensor.ambr index cb97ce77af0..0b7edcbd3ea 100644 --- a/tests/components/devolo_home_control/snapshots/test_sensor.ambr +++ b/tests/components/devolo_home_control/snapshots/test_sensor.ambr @@ -40,6 +40,7 @@ 'original_icon': None, 'original_name': 'Battery level', 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'devolo.BatterySensor:Test', @@ -87,6 +88,7 @@ 'original_icon': None, 'original_name': 'Current consumption', 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'devolo.Meter:Test_current', @@ -134,6 +136,7 @@ 'original_icon': None, 'original_name': 'Total consumption', 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'devolo.Meter:Test_total', @@ -181,6 +184,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'devolo.MultiLevelSensor:Test', diff --git a/tests/components/devolo_home_control/snapshots/test_siren.ambr b/tests/components/devolo_home_control/snapshots/test_siren.ambr index df1d514a11d..f699090c8cf 100644 --- a/tests/components/devolo_home_control/snapshots/test_siren.ambr +++ b/tests/components/devolo_home_control/snapshots/test_siren.ambr @@ -43,6 +43,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'devolo.SirenMultiLevelSwitch:Test', @@ -93,6 +94,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'devolo.SirenMultiLevelSwitch:Test', @@ -143,6 +145,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'devolo.SirenMultiLevelSwitch:Test', diff --git a/tests/components/devolo_home_control/snapshots/test_switch.ambr b/tests/components/devolo_home_control/snapshots/test_switch.ambr index 4aa95944be0..fffe89337e7 100644 --- a/tests/components/devolo_home_control/snapshots/test_switch.ambr +++ b/tests/components/devolo_home_control/snapshots/test_switch.ambr @@ -35,6 +35,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'devolo_home_control', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'devolo.BinarySwitch:Test', diff --git a/tests/components/devolo_home_network/snapshots/test_binary_sensor.ambr b/tests/components/devolo_home_network/snapshots/test_binary_sensor.ambr index f247f2dc1f0..985fc64146f 100644 --- a/tests/components/devolo_home_network/snapshots/test_binary_sensor.ambr +++ b/tests/components/devolo_home_network/snapshots/test_binary_sensor.ambr @@ -37,6 +37,7 @@ 'original_icon': 'mdi:router-network', 'original_name': 'Connected to router', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'connected_to_router', 'unique_id': '1234567890_connected_to_router', diff --git a/tests/components/devolo_home_network/snapshots/test_button.ambr b/tests/components/devolo_home_network/snapshots/test_button.ambr index a124ef57693..f00bb345aeb 100644 --- a/tests/components/devolo_home_network/snapshots/test_button.ambr +++ b/tests/components/devolo_home_network/snapshots/test_button.ambr @@ -79,6 +79,7 @@ 'original_icon': 'mdi:led-on', 'original_name': 'Identify device with a blinking LED', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'identify', 'unique_id': '1234567890_identify', @@ -165,6 +166,7 @@ 'original_icon': None, 'original_name': 'Restart device', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'restart', 'unique_id': '1234567890_restart', @@ -251,6 +253,7 @@ 'original_icon': 'mdi:plus-network-outline', 'original_name': 'Start PLC pairing', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pairing', 'unique_id': '1234567890_pairing', @@ -337,6 +340,7 @@ 'original_icon': 'mdi:wifi-plus', 'original_name': 'Start WPS', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_wps', 'unique_id': '1234567890_start_wps', diff --git a/tests/components/devolo_home_network/snapshots/test_image.ambr b/tests/components/devolo_home_network/snapshots/test_image.ambr index b00f73ca116..e6ca9e4fad5 100644 --- a/tests/components/devolo_home_network/snapshots/test_image.ambr +++ b/tests/components/devolo_home_network/snapshots/test_image.ambr @@ -23,6 +23,7 @@ 'original_icon': None, 'original_name': 'Guest Wifi credentials as QR code', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'image_guest_wifi', 'unique_id': '1234567890_image_guest_wifi', diff --git a/tests/components/devolo_home_network/snapshots/test_sensor.ambr b/tests/components/devolo_home_network/snapshots/test_sensor.ambr index 241313965c4..88eb46d57e8 100644 --- a/tests/components/devolo_home_network/snapshots/test_sensor.ambr +++ b/tests/components/devolo_home_network/snapshots/test_sensor.ambr @@ -36,6 +36,7 @@ 'original_icon': 'mdi:lan', 'original_name': 'Connected PLC devices', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'connected_plc_devices', 'unique_id': '1234567890_connected_plc_devices', @@ -82,6 +83,7 @@ 'original_icon': 'mdi:wifi', 'original_name': 'Connected Wifi clients', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'connected_wifi_clients', 'unique_id': '1234567890_connected_wifi_clients', @@ -125,6 +127,7 @@ 'original_icon': 'mdi:wifi-marker', 'original_name': 'Neighboring Wifi networks', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'neighboring_wifi_networks', 'unique_id': '1234567890_neighboring_wifi_networks', diff --git a/tests/components/devolo_home_network/snapshots/test_switch.ambr b/tests/components/devolo_home_network/snapshots/test_switch.ambr index 600c9478035..4d268b21317 100644 --- a/tests/components/devolo_home_network/snapshots/test_switch.ambr +++ b/tests/components/devolo_home_network/snapshots/test_switch.ambr @@ -122,6 +122,7 @@ 'original_icon': 'mdi:wifi', 'original_name': 'Enable guest Wifi', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'switch_guest_wifi', 'unique_id': '1234567890_switch_guest_wifi', @@ -165,6 +166,7 @@ 'original_icon': 'mdi:led-off', 'original_name': 'Enable LEDs', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'switch_leds', 'unique_id': '1234567890_switch_leds', diff --git a/tests/components/devolo_home_network/snapshots/test_update.ambr b/tests/components/devolo_home_network/snapshots/test_update.ambr index e9872f5e1b5..6dfba2de9c1 100644 --- a/tests/components/devolo_home_network/snapshots/test_update.ambr +++ b/tests/components/devolo_home_network/snapshots/test_update.ambr @@ -46,6 +46,7 @@ 'original_icon': None, 'original_name': 'Firmware', 'platform': 'devolo_home_network', + 'previous_unique_id': None, 'supported_features': , 'translation_key': 'regular_firmware', 'unique_id': '1234567890_regular_firmware', diff --git a/tests/components/elgato/snapshots/test_button.ambr b/tests/components/elgato/snapshots/test_button.ambr index 920aa40bfe7..ed29c443243 100644 --- a/tests/components/elgato/snapshots/test_button.ambr +++ b/tests/components/elgato/snapshots/test_button.ambr @@ -36,6 +36,7 @@ 'original_icon': None, 'original_name': 'Identify', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'GW24L1A02987_identify', @@ -110,6 +111,7 @@ 'original_icon': None, 'original_name': 'Restart', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'GW24L1A02987_restart', diff --git a/tests/components/elgato/snapshots/test_light.ambr b/tests/components/elgato/snapshots/test_light.ambr index 31f5dfba217..72ae1d7e9b8 100644 --- a/tests/components/elgato/snapshots/test_light.ambr +++ b/tests/components/elgato/snapshots/test_light.ambr @@ -68,6 +68,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'CN11A1A00001', @@ -176,6 +177,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'CN11A1A00001', @@ -282,6 +284,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'CN11A1A00001', diff --git a/tests/components/elgato/snapshots/test_sensor.ambr b/tests/components/elgato/snapshots/test_sensor.ambr index 5fa7a6e827a..86a4c2e5cc5 100644 --- a/tests/components/elgato/snapshots/test_sensor.ambr +++ b/tests/components/elgato/snapshots/test_sensor.ambr @@ -43,6 +43,7 @@ 'original_icon': None, 'original_name': 'Battery', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'GW24L1A02987_battery', @@ -127,6 +128,7 @@ 'original_icon': None, 'original_name': 'Battery voltage', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'voltage', 'unique_id': 'GW24L1A02987_voltage', @@ -211,6 +213,7 @@ 'original_icon': None, 'original_name': 'Charging current', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'input_charge_current', 'unique_id': 'GW24L1A02987_input_charge_current', @@ -292,6 +295,7 @@ 'original_icon': None, 'original_name': 'Charging power', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_power', 'unique_id': 'GW24L1A02987_charge_power', @@ -376,6 +380,7 @@ 'original_icon': None, 'original_name': 'Charging voltage', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'input_charge_voltage', 'unique_id': 'GW24L1A02987_input_charge_voltage', diff --git a/tests/components/elgato/snapshots/test_switch.ambr b/tests/components/elgato/snapshots/test_switch.ambr index dcba00c0a9e..cc841b338c7 100644 --- a/tests/components/elgato/snapshots/test_switch.ambr +++ b/tests/components/elgato/snapshots/test_switch.ambr @@ -36,6 +36,7 @@ 'original_icon': 'mdi:leaf', 'original_name': 'Energy saving', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'energy_saving', 'unique_id': 'GW24L1A02987_energy_saving', @@ -110,6 +111,7 @@ 'original_icon': 'mdi:battery-off-outline', 'original_name': 'Studio mode', 'platform': 'elgato', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'bypass', 'unique_id': 'GW24L1A02987_bypass', diff --git a/tests/components/energyzero/snapshots/test_sensor.ambr b/tests/components/energyzero/snapshots/test_sensor.ambr index e51aef980d1..f3b5e66ed6c 100644 --- a/tests/components/energyzero/snapshots/test_sensor.ambr +++ b/tests/components/energyzero/snapshots/test_sensor.ambr @@ -494,6 +494,7 @@ 'original_icon': None, 'original_name': 'Average - today', 'platform': 'energyzero', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'average_price', 'unit_of_measurement': '€/kWh', @@ -561,6 +562,7 @@ 'original_icon': None, 'original_name': 'Current hour', 'platform': 'energyzero', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'current_hour_price', 'unit_of_measurement': '€/kWh', @@ -625,6 +627,7 @@ 'original_icon': None, 'original_name': 'Time of highest price - today', 'platform': 'energyzero', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'highest_price_time', 'unit_of_measurement': None, @@ -690,6 +693,7 @@ 'original_icon': 'mdi:clock', 'original_name': 'Hours priced equal or lower than current - today', 'platform': 'energyzero', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hours_priced_equal_or_lower', 'unit_of_measurement': , @@ -754,6 +758,7 @@ 'original_icon': None, 'original_name': 'Highest price - today', 'platform': 'energyzero', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'max_price', 'unit_of_measurement': '€/kWh', @@ -821,6 +826,7 @@ 'original_icon': None, 'original_name': 'Current hour', 'platform': 'energyzero', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'current_hour_price', 'unit_of_measurement': '€/m³', diff --git a/tests/components/gree/snapshots/test_climate.ambr b/tests/components/gree/snapshots/test_climate.ambr index f1479cad3d3..568b98daec1 100644 --- a/tests/components/gree/snapshots/test_climate.ambr +++ b/tests/components/gree/snapshots/test_climate.ambr @@ -109,6 +109,7 @@ 'original_icon': None, 'original_name': 'fake-device-1', 'platform': 'gree', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'aabbcc112233', diff --git a/tests/components/gree/snapshots/test_switch.ambr b/tests/components/gree/snapshots/test_switch.ambr index 73056fcc465..d2b0a5fbf4e 100644 --- a/tests/components/gree/snapshots/test_switch.ambr +++ b/tests/components/gree/snapshots/test_switch.ambr @@ -85,6 +85,7 @@ 'original_icon': 'mdi:lightbulb', 'original_name': 'fake-device-1 Panel Light', 'platform': 'gree', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbcc112233_Panel Light', @@ -113,6 +114,7 @@ 'original_icon': None, 'original_name': 'fake-device-1 Quiet', 'platform': 'gree', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbcc112233_Quiet', @@ -141,6 +143,7 @@ 'original_icon': None, 'original_name': 'fake-device-1 Fresh Air', 'platform': 'gree', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbcc112233_Fresh Air', @@ -169,6 +172,7 @@ 'original_icon': None, 'original_name': 'fake-device-1 XFan', 'platform': 'gree', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbcc112233_XFan', @@ -197,6 +201,7 @@ 'original_icon': 'mdi:pine-tree', 'original_name': 'fake-device-1 Health mode', 'platform': 'gree', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbcc112233_Health mode', diff --git a/tests/components/homekit_controller/snapshots/test_init.ambr b/tests/components/homekit_controller/snapshots/test_init.ambr index 4c408f2887e..aa9294472f0 100644 --- a/tests/components/homekit_controller/snapshots/test_init.ambr +++ b/tests/components/homekit_controller/snapshots/test_init.ambr @@ -50,6 +50,7 @@ 'original_icon': None, 'original_name': 'Airversa AP2 1808 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -85,6 +86,7 @@ 'original_icon': None, 'original_name': 'Airversa AP2 1808 Provision Preferred Thread Credentials', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_112_119', @@ -122,6 +124,7 @@ 'original_icon': None, 'original_name': 'Airversa AP2 1808 Air Quality', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_2576_2579', @@ -161,6 +164,7 @@ 'original_icon': None, 'original_name': 'Airversa AP2 1808 Filter lifetime', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_32896_32900', @@ -200,6 +204,7 @@ 'original_icon': None, 'original_name': 'Airversa AP2 1808 PM2.5 Density', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_2576_2580', @@ -247,6 +252,7 @@ 'original_icon': None, 'original_name': 'Airversa AP2 1808 Thread Capabilities', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'thread_node_capabilities', 'unique_id': '00:00:00:00:00:00_1_112_115', @@ -301,6 +307,7 @@ 'original_icon': None, 'original_name': 'Airversa AP2 1808 Thread Status', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'thread_status', 'unique_id': '00:00:00:00:00:00_1_112_117', @@ -346,6 +353,7 @@ 'original_icon': 'mdi:lock-open', 'original_name': 'Airversa AP2 1808 Lock Physical Controls', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_32832_32839', @@ -382,6 +390,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'Airversa AP2 1808 Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_32832_32843', @@ -418,6 +427,7 @@ 'original_icon': 'mdi:power-sleep', 'original_name': 'Airversa AP2 1808 Sleep Mode', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_32832_32842', @@ -487,6 +497,7 @@ 'original_icon': None, 'original_name': 'eufy HomeBase2-0AAA Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -551,6 +562,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-0000 Motion Sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_160', @@ -587,6 +599,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-0000 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_1_2', @@ -622,6 +635,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-0000', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4', @@ -660,6 +674,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'eufyCam2-0000 Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_101', @@ -699,6 +714,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'eufyCam2-0000 Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_80_83', @@ -764,6 +780,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-000A Motion Sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_160', @@ -800,6 +817,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-000A Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_1_2', @@ -835,6 +853,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-000A', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2', @@ -873,6 +892,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'eufyCam2-000A Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_101', @@ -912,6 +932,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'eufyCam2-000A Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_80_83', @@ -977,6 +998,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-000A Motion Sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_160', @@ -1013,6 +1035,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-000A Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_1_2', @@ -1048,6 +1071,7 @@ 'original_icon': None, 'original_name': 'eufyCam2-000A', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3', @@ -1086,6 +1110,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'eufyCam2-000A Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_101', @@ -1125,6 +1150,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'eufyCam2-000A Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_80_83', @@ -1194,6 +1220,7 @@ 'original_icon': 'mdi:security', 'original_name': 'Aqara-Hub-E1-00A0 Security System', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16', @@ -1234,6 +1261,7 @@ 'original_icon': None, 'original_name': 'Aqara-Hub-E1-00A0 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_65537', @@ -1274,6 +1302,7 @@ 'original_icon': 'mdi:volume-high', 'original_name': 'Aqara-Hub-E1-00A0 Volume', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_17_1114116', @@ -1314,6 +1343,7 @@ 'original_icon': 'mdi:lock-open', 'original_name': 'Aqara-Hub-E1-00A0 Pairing Mode', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_17_1114117', @@ -1379,6 +1409,7 @@ 'original_icon': None, 'original_name': 'Contact Sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_33_4', @@ -1415,6 +1446,7 @@ 'original_icon': None, 'original_name': 'Contact Sensor Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_33_1_65537', @@ -1452,6 +1484,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'Contact Sensor Battery Sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_33_5', @@ -1524,6 +1557,7 @@ 'original_icon': 'mdi:security', 'original_name': 'Aqara Hub-1563 Security System', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_66304', @@ -1564,6 +1598,7 @@ 'original_icon': None, 'original_name': 'Aqara Hub-1563 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_7', @@ -1603,6 +1638,7 @@ 'original_icon': None, 'original_name': 'Aqara Hub-1563 Lightbulb-1563', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_65792', @@ -1647,6 +1683,7 @@ 'original_icon': 'mdi:volume-high', 'original_name': 'Aqara Hub-1563 Volume', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_65536_65541', @@ -1687,6 +1724,7 @@ 'original_icon': 'mdi:lock-open', 'original_name': 'Aqara Hub-1563 Pairing Mode', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_65536_65538', @@ -1756,6 +1794,7 @@ 'original_icon': None, 'original_name': 'Programmable Switch Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_65537', @@ -1793,6 +1832,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'Programmable Switch Battery Sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_5', @@ -1865,6 +1905,7 @@ 'original_icon': None, 'original_name': 'ArloBabyA0 Motion', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_500', @@ -1901,6 +1942,7 @@ 'original_icon': None, 'original_name': 'ArloBabyA0 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -1936,6 +1978,7 @@ 'original_icon': None, 'original_name': 'ArloBabyA0', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1', @@ -1976,6 +2019,7 @@ 'original_icon': None, 'original_name': 'ArloBabyA0 Nightlight', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1100', @@ -2017,6 +2061,7 @@ 'original_icon': None, 'original_name': 'ArloBabyA0 Air Quality', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_800_802', @@ -2056,6 +2101,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'ArloBabyA0 Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_700', @@ -2097,6 +2143,7 @@ 'original_icon': None, 'original_name': 'ArloBabyA0 Humidity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_900', @@ -2137,6 +2184,7 @@ 'original_icon': None, 'original_name': 'ArloBabyA0 Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1000', @@ -2175,6 +2223,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'ArloBabyA0 Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_300_302', @@ -2211,6 +2260,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'ArloBabyA0 Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_400_402', @@ -2280,6 +2330,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -2317,6 +2368,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Current', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_13_18', @@ -2357,6 +2409,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Current', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_25_30', @@ -2397,6 +2450,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Energy kWh', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_13_20', @@ -2437,6 +2491,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Energy kWh', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_25_32', @@ -2477,6 +2532,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Power', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_13_19', @@ -2517,6 +2573,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Power', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_25_31', @@ -2555,6 +2612,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Outlet A', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_13', @@ -2591,6 +2649,7 @@ 'original_icon': None, 'original_name': 'InWall Outlet-0394DE Outlet B', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_25', @@ -2660,6 +2719,7 @@ 'original_icon': None, 'original_name': 'Basement', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_56', @@ -2696,6 +2756,7 @@ 'original_icon': None, 'original_name': 'Basement Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_1_4101', @@ -2733,6 +2794,7 @@ 'original_icon': None, 'original_name': 'Basement Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_55', @@ -2800,6 +2862,7 @@ 'original_icon': None, 'original_name': 'HomeW', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_56', @@ -2836,6 +2899,7 @@ 'original_icon': None, 'original_name': 'HomeW', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_57', @@ -2872,6 +2936,7 @@ 'original_icon': None, 'original_name': 'HomeW Clear Hold', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_48', @@ -2907,6 +2972,7 @@ 'original_icon': None, 'original_name': 'HomeW Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -2953,6 +3019,7 @@ 'original_icon': None, 'original_name': 'HomeW', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16', @@ -3012,6 +3079,7 @@ 'original_icon': None, 'original_name': 'HomeW Current Mode', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'ecobee_mode', 'unique_id': '00:00:00:00:00:00_1_16_33', @@ -3057,6 +3125,7 @@ 'original_icon': 'mdi:thermometer', 'original_name': 'HomeW Temperature Display Units', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'temperature_display_units', 'unique_id': '00:00:00:00:00:00_1_16_21', @@ -3099,6 +3168,7 @@ 'original_icon': None, 'original_name': 'HomeW Current Humidity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_24', @@ -3139,6 +3209,7 @@ 'original_icon': None, 'original_name': 'HomeW Current Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_19', @@ -3206,6 +3277,7 @@ 'original_icon': None, 'original_name': 'Kitchen', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_56', @@ -3242,6 +3314,7 @@ 'original_icon': None, 'original_name': 'Kitchen Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_1_2053', @@ -3279,6 +3352,7 @@ 'original_icon': None, 'original_name': 'Kitchen Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_55', @@ -3346,6 +3420,7 @@ 'original_icon': None, 'original_name': 'Porch', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_56', @@ -3382,6 +3457,7 @@ 'original_icon': None, 'original_name': 'Porch Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_1_3077', @@ -3419,6 +3495,7 @@ 'original_icon': None, 'original_name': 'Porch Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_55', @@ -3490,6 +3567,7 @@ 'original_icon': None, 'original_name': 'HomeW', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_56', @@ -3526,6 +3604,7 @@ 'original_icon': None, 'original_name': 'HomeW', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_57', @@ -3562,6 +3641,7 @@ 'original_icon': None, 'original_name': 'HomeW Clear Hold', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_48', @@ -3597,6 +3677,7 @@ 'original_icon': None, 'original_name': 'HomeW Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -3643,6 +3724,7 @@ 'original_icon': None, 'original_name': 'HomeW', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16', @@ -3702,6 +3784,7 @@ 'original_icon': None, 'original_name': 'HomeW Current Mode', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'ecobee_mode', 'unique_id': '00:00:00:00:00:00_1_16_33', @@ -3747,6 +3830,7 @@ 'original_icon': 'mdi:thermometer', 'original_name': 'HomeW Temperature Display Units', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'temperature_display_units', 'unique_id': '00:00:00:00:00:00_1_16_21', @@ -3789,6 +3873,7 @@ 'original_icon': None, 'original_name': 'HomeW Current Humidity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_24', @@ -3829,6 +3914,7 @@ 'original_icon': None, 'original_name': 'HomeW Current Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_19', @@ -3900,6 +3986,7 @@ 'original_icon': None, 'original_name': 'My ecobee Motion', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_56', @@ -3936,6 +4023,7 @@ 'original_icon': None, 'original_name': 'My ecobee Occupancy', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_57', @@ -3972,6 +4060,7 @@ 'original_icon': None, 'original_name': 'My ecobee Clear Hold', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_48', @@ -4007,6 +4096,7 @@ 'original_icon': None, 'original_name': 'My ecobee Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -4057,6 +4147,7 @@ 'original_icon': None, 'original_name': 'My ecobee', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16', @@ -4121,6 +4212,7 @@ 'original_icon': None, 'original_name': 'My ecobee Current Mode', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'ecobee_mode', 'unique_id': '00:00:00:00:00:00_1_16_33', @@ -4166,6 +4258,7 @@ 'original_icon': 'mdi:thermometer', 'original_name': 'My ecobee Temperature Display Units', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'temperature_display_units', 'unique_id': '00:00:00:00:00:00_1_16_21', @@ -4208,6 +4301,7 @@ 'original_icon': None, 'original_name': 'My ecobee Current Humidity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_24', @@ -4248,6 +4342,7 @@ 'original_icon': None, 'original_name': 'My ecobee Current Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16_19', @@ -4319,6 +4414,7 @@ 'original_icon': None, 'original_name': 'Master Fan', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_56', @@ -4355,6 +4451,7 @@ 'original_icon': None, 'original_name': 'Master Fan', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_57', @@ -4391,6 +4488,7 @@ 'original_icon': None, 'original_name': 'Master Fan Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -4428,6 +4526,7 @@ 'original_icon': None, 'original_name': 'Master Fan Light Level', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_27', @@ -4468,6 +4567,7 @@ 'original_icon': None, 'original_name': 'Master Fan Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_55', @@ -4506,6 +4606,7 @@ 'original_icon': None, 'original_name': 'Master Fan', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_16', @@ -4574,6 +4675,7 @@ 'original_icon': None, 'original_name': 'Eve Degree AA11 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_3', @@ -4614,6 +4716,7 @@ 'original_icon': 'mdi:elevation-rise', 'original_name': 'Eve Degree AA11 Elevation', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_30_33', @@ -4659,6 +4762,7 @@ 'original_icon': 'mdi:thermometer', 'original_name': 'Eve Degree AA11 Temperature Display Units', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'temperature_display_units', 'unique_id': '00:00:00:00:00:00_1_22_25', @@ -4701,6 +4805,7 @@ 'original_icon': None, 'original_name': 'Eve Degree AA11 Air Pressure', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_30_32', @@ -4741,6 +4846,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'Eve Degree AA11 Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_17', @@ -4782,6 +4888,7 @@ 'original_icon': None, 'original_name': 'Eve Degree AA11 Humidity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_27', @@ -4822,6 +4929,7 @@ 'original_icon': None, 'original_name': 'Eve Degree AA11 Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_22', @@ -4893,6 +5001,7 @@ 'original_icon': None, 'original_name': 'Eve Energy 50FF Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_3', @@ -4930,6 +5039,7 @@ 'original_icon': None, 'original_name': 'Eve Energy 50FF Amps', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_28_33', @@ -4970,6 +5080,7 @@ 'original_icon': None, 'original_name': 'Eve Energy 50FF Energy kWh', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_28_35', @@ -5010,6 +5121,7 @@ 'original_icon': None, 'original_name': 'Eve Energy 50FF Power', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_28_34', @@ -5050,6 +5162,7 @@ 'original_icon': None, 'original_name': 'Eve Energy 50FF Volts', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_28_32', @@ -5088,6 +5201,7 @@ 'original_icon': None, 'original_name': 'Eve Energy 50FF', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_28', @@ -5124,6 +5238,7 @@ 'original_icon': 'mdi:lock-open', 'original_name': 'Eve Energy 50FF Lock Physical Controls', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_28_36', @@ -5193,6 +5308,7 @@ 'original_icon': None, 'original_name': 'HAA-C718B3 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_7', @@ -5228,6 +5344,7 @@ 'original_icon': 'mdi:cog', 'original_name': 'HAA-C718B3 Setup', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1010_1012', @@ -5264,6 +5381,7 @@ 'original_icon': None, 'original_name': 'HAA-C718B3 Update', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1010_1011', @@ -5302,6 +5420,7 @@ 'original_icon': None, 'original_name': 'HAA-C718B3', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_8', @@ -5371,6 +5490,7 @@ 'original_icon': None, 'original_name': 'HAA-C718B3 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_1_7', @@ -5406,6 +5526,7 @@ 'original_icon': None, 'original_name': 'HAA-C718B3', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_8', @@ -5474,6 +5595,7 @@ 'original_icon': None, 'original_name': 'Ceiling Fan Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_766313939_1_2', @@ -5511,6 +5633,7 @@ 'original_icon': None, 'original_name': 'Ceiling Fan', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_766313939_8', @@ -5580,6 +5703,7 @@ 'original_icon': None, 'original_name': 'Home Assistant Bridge Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -5644,6 +5768,7 @@ 'original_icon': None, 'original_name': 'Living Room Fan Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1256851357_1_2', @@ -5681,6 +5806,7 @@ 'original_icon': None, 'original_name': 'Living Room Fan', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1256851357_8', @@ -5756,6 +5882,7 @@ 'original_icon': None, 'original_name': 'Air Conditioner Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -5807,6 +5934,7 @@ 'original_icon': None, 'original_name': 'Air Conditioner SlaveID 1', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_9', @@ -5864,6 +5992,7 @@ 'original_icon': None, 'original_name': 'Air Conditioner Current Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_9_11', @@ -5935,6 +6064,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance candle Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462395276914_1_6', @@ -5978,6 +6108,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance candle', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462395276914_2816', @@ -6050,6 +6181,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance candle Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462395276939_1_6', @@ -6093,6 +6225,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance candle', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462395276939_2816', @@ -6165,6 +6298,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance candle Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462403113447_1_6', @@ -6208,6 +6342,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance candle', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462403113447_2816', @@ -6280,6 +6415,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance candle Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462403233419_1_6', @@ -6323,6 +6459,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance candle', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462403233419_2816', @@ -6395,6 +6532,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance spot Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462412411853_1_6', @@ -6438,6 +6576,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance spot', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462412411853_2816', @@ -6527,6 +6666,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance spot Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462412413293_1_6', @@ -6570,6 +6710,7 @@ 'original_icon': None, 'original_name': 'Hue ambiance spot', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462412413293_2816', @@ -6659,6 +6800,7 @@ 'original_icon': None, 'original_name': 'Hue dimmer switch Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462389072572_1_22', @@ -6698,6 +6840,7 @@ 'original_icon': None, 'original_name': 'Hue dimmer switch button 1', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'button', 'unique_id': '00:00:00:00:00:00_6623462389072572_588410585088', @@ -6742,6 +6885,7 @@ 'original_icon': None, 'original_name': 'Hue dimmer switch button 2', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'button', 'unique_id': '00:00:00:00:00:00_6623462389072572_588410650624', @@ -6786,6 +6930,7 @@ 'original_icon': None, 'original_name': 'Hue dimmer switch button 3', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'button', 'unique_id': '00:00:00:00:00:00_6623462389072572_588410716160', @@ -6830,6 +6975,7 @@ 'original_icon': None, 'original_name': 'Hue dimmer switch button 4', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'button', 'unique_id': '00:00:00:00:00:00_6623462389072572_588410781696', @@ -6872,6 +7018,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'Hue dimmer switch battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462389072572_644245094400', @@ -6940,6 +7087,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462378982941_1_6', @@ -6979,6 +7127,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462378982941_2816', @@ -7047,6 +7196,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462378983942_1_6', @@ -7086,6 +7236,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462378983942_2816', @@ -7154,6 +7305,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462379122122_1_6', @@ -7193,6 +7345,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462379122122_2816', @@ -7261,6 +7414,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462379123707_1_6', @@ -7300,6 +7454,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462379123707_2816', @@ -7368,6 +7523,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462383114163_1_6', @@ -7407,6 +7563,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462383114163_2816', @@ -7475,6 +7632,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462383114193_1_6', @@ -7514,6 +7672,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462383114193_2816', @@ -7582,6 +7741,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462385996792_1_6', @@ -7621,6 +7781,7 @@ 'original_icon': None, 'original_name': 'Hue white lamp', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_6623462385996792_2816', @@ -7689,6 +7850,7 @@ 'original_icon': None, 'original_name': 'Philips hue - 482544 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_7', @@ -7757,6 +7919,7 @@ 'original_icon': None, 'original_name': 'Koogeek-LS1-20833F Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -7796,6 +7959,7 @@ 'original_icon': None, 'original_name': 'Koogeek-LS1-20833F Light Strip', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_7', @@ -7868,6 +8032,7 @@ 'original_icon': None, 'original_name': 'Koogeek-P1-A00AA0 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -7905,6 +8070,7 @@ 'original_icon': None, 'original_name': 'Koogeek-P1-A00AA0 Power', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_21_22', @@ -7943,6 +8109,7 @@ 'original_icon': None, 'original_name': 'Koogeek-P1-A00AA0 outlet', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_7', @@ -8012,6 +8179,7 @@ 'original_icon': None, 'original_name': 'Koogeek-SW2-187A91 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -8049,6 +8217,7 @@ 'original_icon': None, 'original_name': 'Koogeek-SW2-187A91 Power', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_14_18', @@ -8087,6 +8256,7 @@ 'original_icon': None, 'original_name': 'Koogeek-SW2-187A91 Switch 1', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_8', @@ -8122,6 +8292,7 @@ 'original_icon': None, 'original_name': 'Koogeek-SW2-187A91 Switch 2', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_11', @@ -8190,6 +8361,7 @@ 'original_icon': None, 'original_name': 'Lennox Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -8234,6 +8406,7 @@ 'original_icon': None, 'original_name': 'Lennox', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_100', @@ -8289,6 +8462,7 @@ 'original_icon': 'mdi:thermometer', 'original_name': 'Lennox Temperature Display Units', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'temperature_display_units', 'unique_id': '00:00:00:00:00:00_1_100_105', @@ -8331,6 +8505,7 @@ 'original_icon': None, 'original_name': 'Lennox Current Humidity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_100_107', @@ -8371,6 +8546,7 @@ 'original_icon': None, 'original_name': 'Lennox Current Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_100_103', @@ -8442,6 +8618,7 @@ 'original_icon': None, 'original_name': 'LG webOS TV AF80 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -8487,6 +8664,7 @@ 'original_icon': None, 'original_name': 'LG webOS TV AF80', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_48', @@ -8534,6 +8712,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'LG webOS TV AF80 Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_80_82', @@ -8603,6 +8782,7 @@ 'original_icon': None, 'original_name': 'Caséta® Wireless Fan Speed Control Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_21474836482_1_85899345921', @@ -8640,6 +8820,7 @@ 'original_icon': None, 'original_name': 'Caséta® Wireless Fan Speed Control', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_21474836482_2', @@ -8709,6 +8890,7 @@ 'original_icon': None, 'original_name': 'Smart Bridge 2 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_85899345921', @@ -8777,6 +8959,7 @@ 'original_icon': None, 'original_name': 'MSS425F-15cc Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -8812,6 +8995,7 @@ 'original_icon': None, 'original_name': 'MSS425F-15cc Outlet-1', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_12', @@ -8847,6 +9031,7 @@ 'original_icon': None, 'original_name': 'MSS425F-15cc Outlet-2', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_15', @@ -8882,6 +9067,7 @@ 'original_icon': None, 'original_name': 'MSS425F-15cc Outlet-3', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_18', @@ -8917,6 +9103,7 @@ 'original_icon': None, 'original_name': 'MSS425F-15cc Outlet-4', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_21', @@ -8952,6 +9139,7 @@ 'original_icon': None, 'original_name': 'MSS425F-15cc USB', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_24', @@ -9020,6 +9208,7 @@ 'original_icon': None, 'original_name': 'MSS565-28da Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -9059,6 +9248,7 @@ 'original_icon': None, 'original_name': 'MSS565-28da Dimmer Switch', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_12', @@ -9133,6 +9323,7 @@ 'original_icon': None, 'original_name': 'Mysa-85dda9 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -9177,6 +9368,7 @@ 'original_icon': None, 'original_name': 'Mysa-85dda9 Thermostat', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_20', @@ -9229,6 +9421,7 @@ 'original_icon': None, 'original_name': 'Mysa-85dda9 Display', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_40', @@ -9273,6 +9466,7 @@ 'original_icon': 'mdi:thermometer', 'original_name': 'Mysa-85dda9 Temperature Display Units', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'temperature_display_units', 'unique_id': '00:00:00:00:00:00_1_20_26', @@ -9315,6 +9509,7 @@ 'original_icon': None, 'original_name': 'Mysa-85dda9 Current Humidity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_20_27', @@ -9355,6 +9550,7 @@ 'original_icon': None, 'original_name': 'Mysa-85dda9 Current Temperature', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_20_25', @@ -9426,6 +9622,7 @@ 'original_icon': None, 'original_name': 'Nanoleaf Strip 3B32 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -9461,6 +9658,7 @@ 'original_icon': None, 'original_name': 'Nanoleaf Strip 3B32 Provision Preferred Thread Credentials', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_31_119', @@ -9505,6 +9703,7 @@ 'original_icon': None, 'original_name': 'Nanoleaf Strip 3B32 Nanoleaf Light Strip', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_19', @@ -9573,6 +9772,7 @@ 'original_icon': None, 'original_name': 'Nanoleaf Strip 3B32 Thread Capabilities', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'thread_node_capabilities', 'unique_id': '00:00:00:00:00:00_1_31_115', @@ -9627,6 +9827,7 @@ 'original_icon': None, 'original_name': 'Nanoleaf Strip 3B32 Thread Status', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'thread_status', 'unique_id': '00:00:00:00:00:00_1_31_117', @@ -9705,6 +9906,7 @@ 'original_icon': None, 'original_name': 'Netatmo-Doorbell-g738658 Motion Sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_10', @@ -9741,6 +9943,7 @@ 'original_icon': None, 'original_name': 'Netatmo-Doorbell-g738658 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_7', @@ -9776,6 +9979,7 @@ 'original_icon': None, 'original_name': 'Netatmo-Doorbell-g738658', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1', @@ -9818,6 +10022,7 @@ 'original_icon': None, 'original_name': 'Netatmo-Doorbell-g738658', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'doorbell', 'unique_id': '00:00:00:00:00:00_1_49', @@ -9860,6 +10065,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'Netatmo-Doorbell-g738658 Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_51_52', @@ -9896,6 +10102,7 @@ 'original_icon': 'mdi:volume-mute', 'original_name': 'Netatmo-Doorbell-g738658 Mute', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_8_9', @@ -9965,6 +10172,7 @@ 'original_icon': None, 'original_name': 'Smart CO Alarm Carbon Monoxide Sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_22', @@ -10001,6 +10209,7 @@ 'original_icon': None, 'original_name': 'Smart CO Alarm Low Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_36', @@ -10037,6 +10246,7 @@ 'original_icon': None, 'original_name': 'Smart CO Alarm Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_7_3', @@ -10105,6 +10315,7 @@ 'original_icon': None, 'original_name': 'Healthy Home Coach Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_7', @@ -10142,6 +10353,7 @@ 'original_icon': None, 'original_name': 'Healthy Home Coach Air Quality', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_24_8', @@ -10181,6 +10393,7 @@ 'original_icon': None, 'original_name': 'Healthy Home Coach Carbon Dioxide sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_10', @@ -10221,6 +10434,7 @@ 'original_icon': None, 'original_name': 'Healthy Home Coach Humidity sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_14', @@ -10261,6 +10475,7 @@ 'original_icon': None, 'original_name': 'Healthy Home Coach Noise', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_20_21', @@ -10301,6 +10516,7 @@ 'original_icon': None, 'original_name': 'Healthy Home Coach Temperature sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_17', @@ -10372,6 +10588,7 @@ 'original_icon': None, 'original_name': 'RainMachine-00ce4a Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -10407,6 +10624,7 @@ 'original_icon': 'mdi:water', 'original_name': 'RainMachine-00ce4a', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_512', @@ -10446,6 +10664,7 @@ 'original_icon': 'mdi:water', 'original_name': 'RainMachine-00ce4a', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_768', @@ -10485,6 +10704,7 @@ 'original_icon': 'mdi:water', 'original_name': 'RainMachine-00ce4a', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1024', @@ -10524,6 +10744,7 @@ 'original_icon': 'mdi:water', 'original_name': 'RainMachine-00ce4a', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1280', @@ -10563,6 +10784,7 @@ 'original_icon': 'mdi:water', 'original_name': 'RainMachine-00ce4a', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1536', @@ -10602,6 +10824,7 @@ 'original_icon': 'mdi:water', 'original_name': 'RainMachine-00ce4a', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1792', @@ -10641,6 +10864,7 @@ 'original_icon': 'mdi:water', 'original_name': 'RainMachine-00ce4a', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_2048', @@ -10680,6 +10904,7 @@ 'original_icon': 'mdi:water', 'original_name': 'RainMachine-00ce4a', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_2304', @@ -10752,6 +10977,7 @@ 'original_icon': None, 'original_name': 'Master Bath South Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_1_2', @@ -10787,6 +11013,7 @@ 'original_icon': None, 'original_name': 'Master Bath South RYSE Shade', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_48', @@ -10826,6 +11053,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'Master Bath South RYSE Shade Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_64', @@ -10894,6 +11122,7 @@ 'original_icon': None, 'original_name': 'RYSE SmartBridge Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -10958,6 +11187,7 @@ 'original_icon': None, 'original_name': 'RYSE SmartShade Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_1_2', @@ -10993,6 +11223,7 @@ 'original_icon': None, 'original_name': 'RYSE SmartShade RYSE Shade', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_48', @@ -11032,6 +11263,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'RYSE SmartShade RYSE Shade Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_64', @@ -11104,6 +11336,7 @@ 'original_icon': None, 'original_name': 'BR Left Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_1_2', @@ -11139,6 +11372,7 @@ 'original_icon': None, 'original_name': 'BR Left RYSE Shade', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_48', @@ -11178,6 +11412,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'BR Left RYSE Shade Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_4_64', @@ -11246,6 +11481,7 @@ 'original_icon': None, 'original_name': 'LR Left Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_1_2', @@ -11281,6 +11517,7 @@ 'original_icon': None, 'original_name': 'LR Left RYSE Shade', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_48', @@ -11320,6 +11557,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'LR Left RYSE Shade Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_64', @@ -11388,6 +11626,7 @@ 'original_icon': None, 'original_name': 'LR Right Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_1_2', @@ -11423,6 +11662,7 @@ 'original_icon': None, 'original_name': 'LR Right RYSE Shade', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_48', @@ -11462,6 +11702,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'LR Right RYSE Shade Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_64', @@ -11530,6 +11771,7 @@ 'original_icon': None, 'original_name': 'RYSE SmartBridge Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -11594,6 +11836,7 @@ 'original_icon': None, 'original_name': 'RZSS Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_5_1_2', @@ -11629,6 +11872,7 @@ 'original_icon': None, 'original_name': 'RZSS RYSE Shade', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_5_48', @@ -11668,6 +11912,7 @@ 'original_icon': 'mdi:battery-unknown', 'original_name': 'RZSS RYSE Shade Battery', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_5_64', @@ -11740,6 +11985,7 @@ 'original_icon': None, 'original_name': 'SENSE Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_3', @@ -11775,6 +12021,7 @@ 'original_icon': None, 'original_name': 'SENSE Lock Mechanism', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_30', @@ -11844,6 +12091,7 @@ 'original_icon': None, 'original_name': 'SIMPLEconnect Fan-06F674 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -11881,6 +12129,7 @@ 'original_icon': None, 'original_name': 'SIMPLEconnect Fan-06F674 Hunter Fan', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_8', @@ -11926,6 +12175,7 @@ 'original_icon': None, 'original_name': 'SIMPLEconnect Fan-06F674 Hunter Light', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_29', @@ -12000,6 +12250,7 @@ 'original_icon': None, 'original_name': 'VELUX Gateway Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_6', @@ -12064,6 +12315,7 @@ 'original_icon': None, 'original_name': 'VELUX Sensor Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_1_7', @@ -12101,6 +12353,7 @@ 'original_icon': None, 'original_name': 'VELUX Sensor Carbon Dioxide sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_14', @@ -12141,6 +12394,7 @@ 'original_icon': None, 'original_name': 'VELUX Sensor Humidity sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_11', @@ -12181,6 +12435,7 @@ 'original_icon': None, 'original_name': 'VELUX Sensor Temperature sensor', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_2_8', @@ -12248,6 +12503,7 @@ 'original_icon': None, 'original_name': 'VELUX Window Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_1_7', @@ -12283,6 +12539,7 @@ 'original_icon': None, 'original_name': 'VELUX Window Roof Window', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_3_8', @@ -12354,6 +12611,7 @@ 'original_icon': None, 'original_name': 'VOCOlinc-Flowerbud-0d324b Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -12396,6 +12654,7 @@ 'original_icon': None, 'original_name': 'VOCOlinc-Flowerbud-0d324b', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_30', @@ -12446,6 +12705,7 @@ 'original_icon': None, 'original_name': 'VOCOlinc-Flowerbud-0d324b Mood Light', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_9', @@ -12505,6 +12765,7 @@ 'original_icon': 'mdi:water', 'original_name': 'VOCOlinc-Flowerbud-0d324b Spray Quantity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_30_38', @@ -12547,6 +12808,7 @@ 'original_icon': None, 'original_name': 'VOCOlinc-Flowerbud-0d324b Current Humidity', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_30_33', @@ -12618,6 +12880,7 @@ 'original_icon': None, 'original_name': 'VOCOlinc-VP3-123456 Identify', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_1_2', @@ -12655,6 +12918,7 @@ 'original_icon': None, 'original_name': 'VOCOlinc-VP3-123456 Power', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_48_97', @@ -12693,6 +12957,7 @@ 'original_icon': None, 'original_name': 'VOCOlinc-VP3-123456 Outlet', 'platform': 'homekit_controller', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '00:00:00:00:00:00_1_48', diff --git a/tests/components/onewire/snapshots/test_binary_sensor.ambr b/tests/components/onewire/snapshots/test_binary_sensor.ambr index 702196d4574..f6799d7a691 100644 --- a/tests/components/onewire/snapshots/test_binary_sensor.ambr +++ b/tests/components/onewire/snapshots/test_binary_sensor.ambr @@ -139,6 +139,7 @@ 'original_icon': None, 'original_name': 'Sensed A', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_a', 'unique_id': '/12.111111111111/sensed.A', @@ -167,6 +168,7 @@ 'original_icon': None, 'original_name': 'Sensed B', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_b', 'unique_id': '/12.111111111111/sensed.B', @@ -540,6 +542,7 @@ 'original_icon': None, 'original_name': 'Sensed 0', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_0', 'unique_id': '/29.111111111111/sensed.0', @@ -568,6 +571,7 @@ 'original_icon': None, 'original_name': 'Sensed 1', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_1', 'unique_id': '/29.111111111111/sensed.1', @@ -596,6 +600,7 @@ 'original_icon': None, 'original_name': 'Sensed 2', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_2', 'unique_id': '/29.111111111111/sensed.2', @@ -624,6 +629,7 @@ 'original_icon': None, 'original_name': 'Sensed 3', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_3', 'unique_id': '/29.111111111111/sensed.3', @@ -652,6 +658,7 @@ 'original_icon': None, 'original_name': 'Sensed 4', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_4', 'unique_id': '/29.111111111111/sensed.4', @@ -680,6 +687,7 @@ 'original_icon': None, 'original_name': 'Sensed 5', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_5', 'unique_id': '/29.111111111111/sensed.5', @@ -708,6 +716,7 @@ 'original_icon': None, 'original_name': 'Sensed 6', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_6', 'unique_id': '/29.111111111111/sensed.6', @@ -736,6 +745,7 @@ 'original_icon': None, 'original_name': 'Sensed 7', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_7', 'unique_id': '/29.111111111111/sensed.7', @@ -934,6 +944,7 @@ 'original_icon': None, 'original_name': 'Sensed A', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_a', 'unique_id': '/3A.111111111111/sensed.A', @@ -962,6 +973,7 @@ 'original_icon': None, 'original_name': 'Sensed B', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sensed_b', 'unique_id': '/3A.111111111111/sensed.B', @@ -1273,6 +1285,7 @@ 'original_icon': None, 'original_name': 'Hub short on branch 0', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hub_short_0', 'unique_id': '/EF.111111111113/hub/short.0', @@ -1301,6 +1314,7 @@ 'original_icon': None, 'original_name': 'Hub short on branch 1', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hub_short_1', 'unique_id': '/EF.111111111113/hub/short.1', @@ -1329,6 +1343,7 @@ 'original_icon': None, 'original_name': 'Hub short on branch 2', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hub_short_2', 'unique_id': '/EF.111111111113/hub/short.2', @@ -1357,6 +1372,7 @@ 'original_icon': None, 'original_name': 'Hub short on branch 3', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hub_short_3', 'unique_id': '/EF.111111111113/hub/short.3', diff --git a/tests/components/onewire/snapshots/test_sensor.ambr b/tests/components/onewire/snapshots/test_sensor.ambr index 0664d7e5402..46875b2ab1a 100644 --- a/tests/components/onewire/snapshots/test_sensor.ambr +++ b/tests/components/onewire/snapshots/test_sensor.ambr @@ -104,6 +104,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/10.111111111111/temperature', @@ -186,6 +187,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/12.111111111111/TAI8570/temperature', @@ -216,6 +218,7 @@ 'original_icon': None, 'original_name': 'Pressure', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/12.111111111111/TAI8570/pressure', @@ -313,6 +316,7 @@ 'original_icon': None, 'original_name': 'Counter A', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'counter_a', 'unique_id': '/1D.111111111111/counter.A', @@ -343,6 +347,7 @@ 'original_icon': None, 'original_name': 'Counter B', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'counter_b', 'unique_id': '/1D.111111111111/counter.B', @@ -463,6 +468,7 @@ 'original_icon': None, 'original_name': 'Counter A', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'counter_a', 'unique_id': '/1D.111111111111/counter.A', @@ -493,6 +499,7 @@ 'original_icon': None, 'original_name': 'Counter B', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'counter_b', 'unique_id': '/1D.111111111111/counter.B', @@ -588,6 +595,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/22.111111111111/temperature', @@ -670,6 +678,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/26.111111111111/temperature', @@ -700,6 +709,7 @@ 'original_icon': None, 'original_name': 'Humidity', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/26.111111111111/humidity', @@ -730,6 +740,7 @@ 'original_icon': None, 'original_name': 'HIH3600 humidity', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'humidity_hih3600', 'unique_id': '/26.111111111111/HIH3600/humidity', @@ -760,6 +771,7 @@ 'original_icon': None, 'original_name': 'HIH4000 humidity', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'humidity_hih4000', 'unique_id': '/26.111111111111/HIH4000/humidity', @@ -790,6 +802,7 @@ 'original_icon': None, 'original_name': 'HIH5030 humidity', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'humidity_hih5030', 'unique_id': '/26.111111111111/HIH5030/humidity', @@ -820,6 +833,7 @@ 'original_icon': None, 'original_name': 'HTM1735 humidity', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'humidity_htm1735', 'unique_id': '/26.111111111111/HTM1735/humidity', @@ -850,6 +864,7 @@ 'original_icon': None, 'original_name': 'Pressure', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/26.111111111111/B1-R1-A/pressure', @@ -880,6 +895,7 @@ 'original_icon': None, 'original_name': 'Illuminance', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/26.111111111111/S3-R1-A/illuminance', @@ -910,6 +926,7 @@ 'original_icon': None, 'original_name': 'VAD voltage', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'voltage_vad', 'unique_id': '/26.111111111111/VAD', @@ -940,6 +957,7 @@ 'original_icon': None, 'original_name': 'VDD voltage', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'voltage_vdd', 'unique_id': '/26.111111111111/VDD', @@ -970,6 +988,7 @@ 'original_icon': None, 'original_name': 'VIS voltage difference', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'voltage_vis', 'unique_id': '/26.111111111111/vis', @@ -1202,6 +1221,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/28.111111111111/temperature', @@ -1284,6 +1304,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/28.222222222222/temperature', @@ -1366,6 +1387,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/28.222222222223/temperature', @@ -1485,6 +1507,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/30.111111111111/temperature', @@ -1515,6 +1538,7 @@ 'original_icon': None, 'original_name': 'Thermocouple K temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'thermocouple_temperature_k', 'unique_id': '/30.111111111111/typeX/temperature', @@ -1545,6 +1569,7 @@ 'original_icon': None, 'original_name': 'Voltage', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/30.111111111111/volt', @@ -1575,6 +1600,7 @@ 'original_icon': None, 'original_name': 'VIS voltage gradient', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'voltage_vis_gradient', 'unique_id': '/30.111111111111/vis', @@ -1739,6 +1765,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/3B.111111111111/temperature', @@ -1821,6 +1848,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/42.111111111111/temperature', @@ -1903,6 +1931,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/7E.111111111111/EDS0068/temperature', @@ -1933,6 +1962,7 @@ 'original_icon': None, 'original_name': 'Pressure', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/7E.111111111111/EDS0068/pressure', @@ -1963,6 +1993,7 @@ 'original_icon': None, 'original_name': 'Illuminance', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/7E.111111111111/EDS0068/light', @@ -1993,6 +2024,7 @@ 'original_icon': None, 'original_name': 'Humidity', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/7E.111111111111/EDS0068/humidity', @@ -2120,6 +2152,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/7E.222222222222/EDS0066/temperature', @@ -2150,6 +2183,7 @@ 'original_icon': None, 'original_name': 'Pressure', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/7E.222222222222/EDS0066/pressure', @@ -2247,6 +2281,7 @@ 'original_icon': None, 'original_name': 'Humidity', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/EF.111111111111/humidity/humidity_corrected', @@ -2277,6 +2312,7 @@ 'original_icon': None, 'original_name': 'Raw humidity', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'humidity_raw', 'unique_id': '/EF.111111111111/humidity/humidity_raw', @@ -2307,6 +2343,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '/EF.111111111111/humidity/temperature', @@ -2419,6 +2456,7 @@ 'original_icon': None, 'original_name': 'Wetness 0', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'wetness_0', 'unique_id': '/EF.111111111112/moisture/sensor.0', @@ -2449,6 +2487,7 @@ 'original_icon': None, 'original_name': 'Wetness 1', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'wetness_1', 'unique_id': '/EF.111111111112/moisture/sensor.1', @@ -2479,6 +2518,7 @@ 'original_icon': None, 'original_name': 'Moisture 2', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'moisture_2', 'unique_id': '/EF.111111111112/moisture/sensor.2', @@ -2509,6 +2549,7 @@ 'original_icon': None, 'original_name': 'Moisture 3', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'moisture_3', 'unique_id': '/EF.111111111112/moisture/sensor.3', diff --git a/tests/components/onewire/snapshots/test_switch.ambr b/tests/components/onewire/snapshots/test_switch.ambr index 55ea7be1fa6..67d38a09b85 100644 --- a/tests/components/onewire/snapshots/test_switch.ambr +++ b/tests/components/onewire/snapshots/test_switch.ambr @@ -65,6 +65,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio', 'unique_id': '/05.111111111111/PIO', @@ -179,6 +180,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output A', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_a', 'unique_id': '/12.111111111111/PIO.A', @@ -207,6 +209,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output B', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_b', 'unique_id': '/12.111111111111/PIO.B', @@ -235,6 +238,7 @@ 'original_icon': None, 'original_name': 'Latch A', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_a', 'unique_id': '/12.111111111111/latch.A', @@ -263,6 +267,7 @@ 'original_icon': None, 'original_name': 'Latch B', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_b', 'unique_id': '/12.111111111111/latch.B', @@ -512,6 +517,7 @@ 'original_icon': None, 'original_name': 'Current A/D control', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'iad', 'unique_id': '/26.111111111111/IAD', @@ -700,6 +706,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output 0', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_0', 'unique_id': '/29.111111111111/PIO.0', @@ -728,6 +735,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output 1', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_1', 'unique_id': '/29.111111111111/PIO.1', @@ -756,6 +764,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output 2', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_2', 'unique_id': '/29.111111111111/PIO.2', @@ -784,6 +793,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output 3', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_3', 'unique_id': '/29.111111111111/PIO.3', @@ -812,6 +822,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output 4', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_4', 'unique_id': '/29.111111111111/PIO.4', @@ -840,6 +851,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output 5', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_5', 'unique_id': '/29.111111111111/PIO.5', @@ -868,6 +880,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output 6', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_6', 'unique_id': '/29.111111111111/PIO.6', @@ -896,6 +909,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output 7', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_7', 'unique_id': '/29.111111111111/PIO.7', @@ -924,6 +938,7 @@ 'original_icon': None, 'original_name': 'Latch 0', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_0', 'unique_id': '/29.111111111111/latch.0', @@ -952,6 +967,7 @@ 'original_icon': None, 'original_name': 'Latch 1', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_1', 'unique_id': '/29.111111111111/latch.1', @@ -980,6 +996,7 @@ 'original_icon': None, 'original_name': 'Latch 2', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_2', 'unique_id': '/29.111111111111/latch.2', @@ -1008,6 +1025,7 @@ 'original_icon': None, 'original_name': 'Latch 3', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_3', 'unique_id': '/29.111111111111/latch.3', @@ -1036,6 +1054,7 @@ 'original_icon': None, 'original_name': 'Latch 4', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_4', 'unique_id': '/29.111111111111/latch.4', @@ -1064,6 +1083,7 @@ 'original_icon': None, 'original_name': 'Latch 5', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_5', 'unique_id': '/29.111111111111/latch.5', @@ -1092,6 +1112,7 @@ 'original_icon': None, 'original_name': 'Latch 6', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_6', 'unique_id': '/29.111111111111/latch.6', @@ -1120,6 +1141,7 @@ 'original_icon': None, 'original_name': 'Latch 7', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'latch_7', 'unique_id': '/29.111111111111/latch.7', @@ -1414,6 +1436,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output A', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_a', 'unique_id': '/3A.111111111111/PIO.A', @@ -1442,6 +1465,7 @@ 'original_icon': None, 'original_name': 'Programmed input-output B', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'pio_b', 'unique_id': '/3A.111111111111/PIO.B', @@ -1716,6 +1740,7 @@ 'original_icon': None, 'original_name': 'Leaf sensor 0', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'leaf_sensor_0', 'unique_id': '/EF.111111111112/moisture/is_leaf.0', @@ -1744,6 +1769,7 @@ 'original_icon': None, 'original_name': 'Leaf sensor 1', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'leaf_sensor_1', 'unique_id': '/EF.111111111112/moisture/is_leaf.1', @@ -1772,6 +1798,7 @@ 'original_icon': None, 'original_name': 'Leaf sensor 2', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'leaf_sensor_2', 'unique_id': '/EF.111111111112/moisture/is_leaf.2', @@ -1800,6 +1827,7 @@ 'original_icon': None, 'original_name': 'Leaf sensor 3', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'leaf_sensor_3', 'unique_id': '/EF.111111111112/moisture/is_leaf.3', @@ -1828,6 +1856,7 @@ 'original_icon': None, 'original_name': 'Moisture sensor 0', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'moisture_sensor_0', 'unique_id': '/EF.111111111112/moisture/is_moisture.0', @@ -1856,6 +1885,7 @@ 'original_icon': None, 'original_name': 'Moisture sensor 1', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'moisture_sensor_1', 'unique_id': '/EF.111111111112/moisture/is_moisture.1', @@ -1884,6 +1914,7 @@ 'original_icon': None, 'original_name': 'Moisture sensor 2', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'moisture_sensor_2', 'unique_id': '/EF.111111111112/moisture/is_moisture.2', @@ -1912,6 +1943,7 @@ 'original_icon': None, 'original_name': 'Moisture sensor 3', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'moisture_sensor_3', 'unique_id': '/EF.111111111112/moisture/is_moisture.3', @@ -2073,6 +2105,7 @@ 'original_icon': None, 'original_name': 'Hub branch 0', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hub_branch_0', 'unique_id': '/EF.111111111113/hub/branch.0', @@ -2101,6 +2134,7 @@ 'original_icon': None, 'original_name': 'Hub branch 1', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hub_branch_1', 'unique_id': '/EF.111111111113/hub/branch.1', @@ -2129,6 +2163,7 @@ 'original_icon': None, 'original_name': 'Hub branch 2', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hub_branch_2', 'unique_id': '/EF.111111111113/hub/branch.2', @@ -2157,6 +2192,7 @@ 'original_icon': None, 'original_name': 'Hub branch 3', 'platform': 'onewire', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hub_branch_3', 'unique_id': '/EF.111111111113/hub/branch.3', diff --git a/tests/components/renault/snapshots/test_binary_sensor.ambr b/tests/components/renault/snapshots/test_binary_sensor.ambr index 9625810bedb..6d5e509ab6b 100644 --- a/tests/components/renault/snapshots/test_binary_sensor.ambr +++ b/tests/components/renault/snapshots/test_binary_sensor.ambr @@ -53,6 +53,7 @@ 'original_icon': None, 'original_name': 'Lock', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_lock_status', @@ -81,6 +82,7 @@ 'original_icon': None, 'original_name': 'Hatch', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hatch_status', 'unique_id': 'vf1aaaaa555777123_hatch_status', @@ -109,6 +111,7 @@ 'original_icon': None, 'original_name': 'Rear left door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_left_door_status', 'unique_id': 'vf1aaaaa555777123_rear_left_door_status', @@ -137,6 +140,7 @@ 'original_icon': None, 'original_name': 'Rear right door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_right_door_status', 'unique_id': 'vf1aaaaa555777123_rear_right_door_status', @@ -165,6 +169,7 @@ 'original_icon': None, 'original_name': 'Driver door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'driver_door_status', 'unique_id': 'vf1aaaaa555777123_driver_door_status', @@ -193,6 +198,7 @@ 'original_icon': None, 'original_name': 'Passenger door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'passenger_door_status', 'unique_id': 'vf1aaaaa555777123_passenger_door_status', @@ -324,6 +330,7 @@ 'original_icon': None, 'original_name': 'Plug', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_plugged_in', @@ -352,6 +359,7 @@ 'original_icon': None, 'original_name': 'Charging', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_charging', @@ -380,6 +388,7 @@ 'original_icon': None, 'original_name': 'Lock', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_lock_status', @@ -408,6 +417,7 @@ 'original_icon': None, 'original_name': 'Hatch', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hatch_status', 'unique_id': 'vf1aaaaa555777123_hatch_status', @@ -436,6 +446,7 @@ 'original_icon': None, 'original_name': 'Rear left door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_left_door_status', 'unique_id': 'vf1aaaaa555777123_rear_left_door_status', @@ -464,6 +475,7 @@ 'original_icon': None, 'original_name': 'Rear right door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_right_door_status', 'unique_id': 'vf1aaaaa555777123_rear_right_door_status', @@ -492,6 +504,7 @@ 'original_icon': None, 'original_name': 'Driver door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'driver_door_status', 'unique_id': 'vf1aaaaa555777123_driver_door_status', @@ -520,6 +533,7 @@ 'original_icon': None, 'original_name': 'Passenger door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'passenger_door_status', 'unique_id': 'vf1aaaaa555777123_passenger_door_status', @@ -673,6 +687,7 @@ 'original_icon': None, 'original_name': 'Plug', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_plugged_in', @@ -701,6 +716,7 @@ 'original_icon': None, 'original_name': 'Charging', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_charging', @@ -729,6 +745,7 @@ 'original_icon': 'mdi:fan-off', 'original_name': 'HVAC', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_status', 'unique_id': 'vf1aaaaa555777999_hvac_status', @@ -827,6 +844,7 @@ 'original_icon': None, 'original_name': 'Plug', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_plugged_in', @@ -855,6 +873,7 @@ 'original_icon': None, 'original_name': 'Charging', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_charging', @@ -883,6 +902,7 @@ 'original_icon': 'mdi:fan-off', 'original_name': 'HVAC', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_status', 'unique_id': 'vf1aaaaa555777999_hvac_status', @@ -911,6 +931,7 @@ 'original_icon': None, 'original_name': 'Lock', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_lock_status', @@ -939,6 +960,7 @@ 'original_icon': None, 'original_name': 'Hatch', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hatch_status', 'unique_id': 'vf1aaaaa555777999_hatch_status', @@ -967,6 +989,7 @@ 'original_icon': None, 'original_name': 'Rear left door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_left_door_status', 'unique_id': 'vf1aaaaa555777999_rear_left_door_status', @@ -995,6 +1018,7 @@ 'original_icon': None, 'original_name': 'Rear right door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_right_door_status', 'unique_id': 'vf1aaaaa555777999_rear_right_door_status', @@ -1023,6 +1047,7 @@ 'original_icon': None, 'original_name': 'Driver door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'driver_door_status', 'unique_id': 'vf1aaaaa555777999_driver_door_status', @@ -1051,6 +1076,7 @@ 'original_icon': None, 'original_name': 'Passenger door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'passenger_door_status', 'unique_id': 'vf1aaaaa555777999_passenger_door_status', @@ -1215,6 +1241,7 @@ 'original_icon': None, 'original_name': 'Lock', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_lock_status', @@ -1243,6 +1270,7 @@ 'original_icon': None, 'original_name': 'Hatch', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hatch_status', 'unique_id': 'vf1aaaaa555777123_hatch_status', @@ -1271,6 +1299,7 @@ 'original_icon': None, 'original_name': 'Rear left door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_left_door_status', 'unique_id': 'vf1aaaaa555777123_rear_left_door_status', @@ -1299,6 +1328,7 @@ 'original_icon': None, 'original_name': 'Rear right door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_right_door_status', 'unique_id': 'vf1aaaaa555777123_rear_right_door_status', @@ -1327,6 +1357,7 @@ 'original_icon': None, 'original_name': 'Driver door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'driver_door_status', 'unique_id': 'vf1aaaaa555777123_driver_door_status', @@ -1355,6 +1386,7 @@ 'original_icon': None, 'original_name': 'Passenger door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'passenger_door_status', 'unique_id': 'vf1aaaaa555777123_passenger_door_status', @@ -1486,6 +1518,7 @@ 'original_icon': None, 'original_name': 'Plug', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_plugged_in', @@ -1514,6 +1547,7 @@ 'original_icon': None, 'original_name': 'Charging', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_charging', @@ -1542,6 +1576,7 @@ 'original_icon': None, 'original_name': 'Lock', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_lock_status', @@ -1570,6 +1605,7 @@ 'original_icon': None, 'original_name': 'Hatch', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hatch_status', 'unique_id': 'vf1aaaaa555777123_hatch_status', @@ -1598,6 +1634,7 @@ 'original_icon': None, 'original_name': 'Rear left door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_left_door_status', 'unique_id': 'vf1aaaaa555777123_rear_left_door_status', @@ -1626,6 +1663,7 @@ 'original_icon': None, 'original_name': 'Rear right door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_right_door_status', 'unique_id': 'vf1aaaaa555777123_rear_right_door_status', @@ -1654,6 +1692,7 @@ 'original_icon': None, 'original_name': 'Driver door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'driver_door_status', 'unique_id': 'vf1aaaaa555777123_driver_door_status', @@ -1682,6 +1721,7 @@ 'original_icon': None, 'original_name': 'Passenger door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'passenger_door_status', 'unique_id': 'vf1aaaaa555777123_passenger_door_status', @@ -1835,6 +1875,7 @@ 'original_icon': None, 'original_name': 'Plug', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_plugged_in', @@ -1863,6 +1904,7 @@ 'original_icon': None, 'original_name': 'Charging', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_charging', @@ -1891,6 +1933,7 @@ 'original_icon': 'mdi:fan-off', 'original_name': 'HVAC', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_status', 'unique_id': 'vf1aaaaa555777999_hvac_status', @@ -1989,6 +2032,7 @@ 'original_icon': None, 'original_name': 'Plug', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_plugged_in', @@ -2017,6 +2061,7 @@ 'original_icon': None, 'original_name': 'Charging', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_charging', @@ -2045,6 +2090,7 @@ 'original_icon': 'mdi:fan-off', 'original_name': 'HVAC', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_status', 'unique_id': 'vf1aaaaa555777999_hvac_status', @@ -2073,6 +2119,7 @@ 'original_icon': None, 'original_name': 'Lock', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_lock_status', @@ -2101,6 +2148,7 @@ 'original_icon': None, 'original_name': 'Hatch', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hatch_status', 'unique_id': 'vf1aaaaa555777999_hatch_status', @@ -2129,6 +2177,7 @@ 'original_icon': None, 'original_name': 'Rear left door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_left_door_status', 'unique_id': 'vf1aaaaa555777999_rear_left_door_status', @@ -2157,6 +2206,7 @@ 'original_icon': None, 'original_name': 'Rear right door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'rear_right_door_status', 'unique_id': 'vf1aaaaa555777999_rear_right_door_status', @@ -2185,6 +2235,7 @@ 'original_icon': None, 'original_name': 'Driver door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'driver_door_status', 'unique_id': 'vf1aaaaa555777999_driver_door_status', @@ -2213,6 +2264,7 @@ 'original_icon': None, 'original_name': 'Passenger door', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'passenger_door_status', 'unique_id': 'vf1aaaaa555777999_passenger_door_status', diff --git a/tests/components/renault/snapshots/test_button.ambr b/tests/components/renault/snapshots/test_button.ambr index 8c56a3842ea..968b20daa5b 100644 --- a/tests/components/renault/snapshots/test_button.ambr +++ b/tests/components/renault/snapshots/test_button.ambr @@ -53,6 +53,7 @@ 'original_icon': 'mdi:air-conditioner', 'original_name': 'Start air conditioner', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_air_conditioner', 'unique_id': 'vf1aaaaa555777123_start_air_conditioner', @@ -129,6 +130,7 @@ 'original_icon': 'mdi:air-conditioner', 'original_name': 'Start air conditioner', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_air_conditioner', 'unique_id': 'vf1aaaaa555777123_start_air_conditioner', @@ -157,6 +159,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Start charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_charge', 'unique_id': 'vf1aaaaa555777123_start_charge', @@ -185,6 +188,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Stop charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'stop_charge', 'unique_id': 'vf1aaaaa555777123_stop_charge', @@ -283,6 +287,7 @@ 'original_icon': 'mdi:air-conditioner', 'original_name': 'Start air conditioner', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_air_conditioner', 'unique_id': 'vf1aaaaa555777999_start_air_conditioner', @@ -311,6 +316,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Start charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_charge', 'unique_id': 'vf1aaaaa555777999_start_charge', @@ -339,6 +345,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Stop charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'stop_charge', 'unique_id': 'vf1aaaaa555777999_stop_charge', @@ -437,6 +444,7 @@ 'original_icon': 'mdi:air-conditioner', 'original_name': 'Start air conditioner', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_air_conditioner', 'unique_id': 'vf1aaaaa555777999_start_air_conditioner', @@ -465,6 +473,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Start charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_charge', 'unique_id': 'vf1aaaaa555777999_start_charge', @@ -493,6 +502,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Stop charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'stop_charge', 'unique_id': 'vf1aaaaa555777999_stop_charge', @@ -591,6 +601,7 @@ 'original_icon': 'mdi:air-conditioner', 'original_name': 'Start air conditioner', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_air_conditioner', 'unique_id': 'vf1aaaaa555777123_start_air_conditioner', @@ -667,6 +678,7 @@ 'original_icon': 'mdi:air-conditioner', 'original_name': 'Start air conditioner', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_air_conditioner', 'unique_id': 'vf1aaaaa555777123_start_air_conditioner', @@ -695,6 +707,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Start charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_charge', 'unique_id': 'vf1aaaaa555777123_start_charge', @@ -723,6 +736,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Stop charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'stop_charge', 'unique_id': 'vf1aaaaa555777123_stop_charge', @@ -821,6 +835,7 @@ 'original_icon': 'mdi:air-conditioner', 'original_name': 'Start air conditioner', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_air_conditioner', 'unique_id': 'vf1aaaaa555777999_start_air_conditioner', @@ -849,6 +864,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Start charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_charge', 'unique_id': 'vf1aaaaa555777999_start_charge', @@ -877,6 +893,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Stop charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'stop_charge', 'unique_id': 'vf1aaaaa555777999_stop_charge', @@ -975,6 +992,7 @@ 'original_icon': 'mdi:air-conditioner', 'original_name': 'Start air conditioner', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_air_conditioner', 'unique_id': 'vf1aaaaa555777999_start_air_conditioner', @@ -1003,6 +1021,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Start charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'start_charge', 'unique_id': 'vf1aaaaa555777999_start_charge', @@ -1031,6 +1050,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Stop charge', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'stop_charge', 'unique_id': 'vf1aaaaa555777999_stop_charge', diff --git a/tests/components/renault/snapshots/test_device_tracker.ambr b/tests/components/renault/snapshots/test_device_tracker.ambr index 474791791d9..8a215f3fdda 100644 --- a/tests/components/renault/snapshots/test_device_tracker.ambr +++ b/tests/components/renault/snapshots/test_device_tracker.ambr @@ -53,6 +53,7 @@ 'original_icon': 'mdi:car', 'original_name': 'Location', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location', 'unique_id': 'vf1aaaaa555777123_location', @@ -130,6 +131,7 @@ 'original_icon': 'mdi:car', 'original_name': 'Location', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location', 'unique_id': 'vf1aaaaa555777123_location', @@ -244,6 +246,7 @@ 'original_icon': 'mdi:car', 'original_name': 'Location', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location', 'unique_id': 'vf1aaaaa555777999_location', @@ -321,6 +324,7 @@ 'original_icon': 'mdi:car', 'original_name': 'Location', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location', 'unique_id': 'vf1aaaaa555777123_location', @@ -401,6 +405,7 @@ 'original_icon': 'mdi:car', 'original_name': 'Location', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location', 'unique_id': 'vf1aaaaa555777123_location', @@ -518,6 +523,7 @@ 'original_icon': 'mdi:car', 'original_name': 'Location', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location', 'unique_id': 'vf1aaaaa555777999_location', diff --git a/tests/components/renault/snapshots/test_select.ambr b/tests/components/renault/snapshots/test_select.ambr index c5bbc6b2002..c862e90f289 100644 --- a/tests/components/renault/snapshots/test_select.ambr +++ b/tests/components/renault/snapshots/test_select.ambr @@ -96,6 +96,7 @@ 'original_icon': 'mdi:calendar-remove', 'original_name': 'Charge mode', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_mode', 'unique_id': 'vf1aaaaa555777123_charge_mode', @@ -183,6 +184,7 @@ 'original_icon': 'mdi:calendar-remove', 'original_name': 'Charge mode', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_mode', 'unique_id': 'vf1aaaaa555777999_charge_mode', @@ -270,6 +272,7 @@ 'original_icon': 'mdi:calendar-remove', 'original_name': 'Charge mode', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_mode', 'unique_id': 'vf1aaaaa555777999_charge_mode', @@ -394,6 +397,7 @@ 'original_icon': 'mdi:calendar-remove', 'original_name': 'Charge mode', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_mode', 'unique_id': 'vf1aaaaa555777123_charge_mode', @@ -481,6 +485,7 @@ 'original_icon': 'mdi:calendar-remove', 'original_name': 'Charge mode', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_mode', 'unique_id': 'vf1aaaaa555777999_charge_mode', @@ -568,6 +573,7 @@ 'original_icon': 'mdi:calendar-clock', 'original_name': 'Charge mode', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_mode', 'unique_id': 'vf1aaaaa555777999_charge_mode', diff --git a/tests/components/renault/snapshots/test_sensor.ambr b/tests/components/renault/snapshots/test_sensor.ambr index 46b231ac7ef..f49dbf7963f 100644 --- a/tests/components/renault/snapshots/test_sensor.ambr +++ b/tests/components/renault/snapshots/test_sensor.ambr @@ -55,6 +55,7 @@ 'original_icon': 'mdi:sign-direction', 'original_name': 'Mileage', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'mileage', 'unique_id': 'vf1aaaaa555777123_mileage', @@ -85,6 +86,7 @@ 'original_icon': 'mdi:gas-station', 'original_name': 'Fuel autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'fuel_autonomy', 'unique_id': 'vf1aaaaa555777123_fuel_autonomy', @@ -115,6 +117,7 @@ 'original_icon': 'mdi:fuel', 'original_name': 'Fuel quantity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'fuel_quantity', 'unique_id': 'vf1aaaaa555777123_fuel_quantity', @@ -143,6 +146,7 @@ 'original_icon': None, 'original_name': 'Last location activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location_last_activity', 'unique_id': 'vf1aaaaa555777123_location_last_activity', @@ -171,6 +175,7 @@ 'original_icon': None, 'original_name': 'Remote engine start', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state', 'unique_id': 'vf1aaaaa555777123_res_state', @@ -199,6 +204,7 @@ 'original_icon': None, 'original_name': 'Remote engine start code', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state_code', 'unique_id': 'vf1aaaaa555777123_res_state_code', @@ -339,6 +345,7 @@ 'original_icon': None, 'original_name': 'Battery', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_battery_level', @@ -378,6 +385,7 @@ 'original_icon': 'mdi:flash-off', 'original_name': 'Charge state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_state', 'unique_id': 'vf1aaaaa555777123_charge_state', @@ -408,6 +416,7 @@ 'original_icon': 'mdi:timer', 'original_name': 'Charging remaining time', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charging_remaining_time', 'unique_id': 'vf1aaaaa555777123_charging_remaining_time', @@ -438,6 +447,7 @@ 'original_icon': None, 'original_name': 'Admissible charging power', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'admissible_charging_power', 'unique_id': 'vf1aaaaa555777123_charging_power', @@ -473,6 +483,7 @@ 'original_icon': 'mdi:power-plug-off', 'original_name': 'Plug state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'plug_state', 'unique_id': 'vf1aaaaa555777123_plug_state', @@ -503,6 +514,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Battery autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_autonomy', 'unique_id': 'vf1aaaaa555777123_battery_autonomy', @@ -533,6 +545,7 @@ 'original_icon': None, 'original_name': 'Battery available energy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_available_energy', 'unique_id': 'vf1aaaaa555777123_battery_available_energy', @@ -563,6 +576,7 @@ 'original_icon': None, 'original_name': 'Battery temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_temperature', 'unique_id': 'vf1aaaaa555777123_battery_temperature', @@ -591,6 +605,7 @@ 'original_icon': None, 'original_name': 'Last battery activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_last_activity', 'unique_id': 'vf1aaaaa555777123_battery_last_activity', @@ -621,6 +636,7 @@ 'original_icon': 'mdi:sign-direction', 'original_name': 'Mileage', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'mileage', 'unique_id': 'vf1aaaaa555777123_mileage', @@ -651,6 +667,7 @@ 'original_icon': 'mdi:gas-station', 'original_name': 'Fuel autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'fuel_autonomy', 'unique_id': 'vf1aaaaa555777123_fuel_autonomy', @@ -681,6 +698,7 @@ 'original_icon': 'mdi:fuel', 'original_name': 'Fuel quantity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'fuel_quantity', 'unique_id': 'vf1aaaaa555777123_fuel_quantity', @@ -709,6 +727,7 @@ 'original_icon': None, 'original_name': 'Last location activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location_last_activity', 'unique_id': 'vf1aaaaa555777123_location_last_activity', @@ -737,6 +756,7 @@ 'original_icon': None, 'original_name': 'Remote engine start', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state', 'unique_id': 'vf1aaaaa555777123_res_state', @@ -765,6 +785,7 @@ 'original_icon': None, 'original_name': 'Remote engine start code', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state_code', 'unique_id': 'vf1aaaaa555777123_res_state_code', @@ -1036,6 +1057,7 @@ 'original_icon': None, 'original_name': 'Battery', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_battery_level', @@ -1075,6 +1097,7 @@ 'original_icon': 'mdi:flash-off', 'original_name': 'Charge state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_state', 'unique_id': 'vf1aaaaa555777999_charge_state', @@ -1105,6 +1128,7 @@ 'original_icon': 'mdi:timer', 'original_name': 'Charging remaining time', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charging_remaining_time', 'unique_id': 'vf1aaaaa555777999_charging_remaining_time', @@ -1135,6 +1159,7 @@ 'original_icon': None, 'original_name': 'Charging power', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charging_power', 'unique_id': 'vf1aaaaa555777999_charging_power', @@ -1170,6 +1195,7 @@ 'original_icon': 'mdi:power-plug-off', 'original_name': 'Plug state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'plug_state', 'unique_id': 'vf1aaaaa555777999_plug_state', @@ -1200,6 +1226,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Battery autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_autonomy', 'unique_id': 'vf1aaaaa555777999_battery_autonomy', @@ -1230,6 +1257,7 @@ 'original_icon': None, 'original_name': 'Battery available energy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_available_energy', 'unique_id': 'vf1aaaaa555777999_battery_available_energy', @@ -1260,6 +1288,7 @@ 'original_icon': None, 'original_name': 'Battery temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_temperature', 'unique_id': 'vf1aaaaa555777999_battery_temperature', @@ -1288,6 +1317,7 @@ 'original_icon': None, 'original_name': 'Last battery activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_last_activity', 'unique_id': 'vf1aaaaa555777999_battery_last_activity', @@ -1318,6 +1348,7 @@ 'original_icon': 'mdi:sign-direction', 'original_name': 'Mileage', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'mileage', 'unique_id': 'vf1aaaaa555777999_mileage', @@ -1348,6 +1379,7 @@ 'original_icon': None, 'original_name': 'Outside temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'outside_temperature', 'unique_id': 'vf1aaaaa555777999_outside_temperature', @@ -1376,6 +1408,7 @@ 'original_icon': None, 'original_name': 'HVAC SoC threshold', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_soc_threshold', 'unique_id': 'vf1aaaaa555777999_hvac_soc_threshold', @@ -1404,6 +1437,7 @@ 'original_icon': None, 'original_name': 'Last HVAC activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_last_activity', 'unique_id': 'vf1aaaaa555777999_hvac_last_activity', @@ -1432,6 +1466,7 @@ 'original_icon': None, 'original_name': 'Remote engine start', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state', 'unique_id': 'vf1aaaaa555777999_res_state', @@ -1460,6 +1495,7 @@ 'original_icon': None, 'original_name': 'Remote engine start code', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state_code', 'unique_id': 'vf1aaaaa555777999_res_state_code', @@ -1727,6 +1763,7 @@ 'original_icon': None, 'original_name': 'Battery', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_battery_level', @@ -1766,6 +1803,7 @@ 'original_icon': 'mdi:flash-off', 'original_name': 'Charge state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_state', 'unique_id': 'vf1aaaaa555777999_charge_state', @@ -1796,6 +1834,7 @@ 'original_icon': 'mdi:timer', 'original_name': 'Charging remaining time', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charging_remaining_time', 'unique_id': 'vf1aaaaa555777999_charging_remaining_time', @@ -1826,6 +1865,7 @@ 'original_icon': None, 'original_name': 'Admissible charging power', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'admissible_charging_power', 'unique_id': 'vf1aaaaa555777999_charging_power', @@ -1861,6 +1901,7 @@ 'original_icon': 'mdi:power-plug-off', 'original_name': 'Plug state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'plug_state', 'unique_id': 'vf1aaaaa555777999_plug_state', @@ -1891,6 +1932,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Battery autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_autonomy', 'unique_id': 'vf1aaaaa555777999_battery_autonomy', @@ -1921,6 +1963,7 @@ 'original_icon': None, 'original_name': 'Battery available energy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_available_energy', 'unique_id': 'vf1aaaaa555777999_battery_available_energy', @@ -1951,6 +1994,7 @@ 'original_icon': None, 'original_name': 'Battery temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_temperature', 'unique_id': 'vf1aaaaa555777999_battery_temperature', @@ -1979,6 +2023,7 @@ 'original_icon': None, 'original_name': 'Last battery activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_last_activity', 'unique_id': 'vf1aaaaa555777999_battery_last_activity', @@ -2009,6 +2054,7 @@ 'original_icon': 'mdi:sign-direction', 'original_name': 'Mileage', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'mileage', 'unique_id': 'vf1aaaaa555777999_mileage', @@ -2039,6 +2085,7 @@ 'original_icon': None, 'original_name': 'Outside temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'outside_temperature', 'unique_id': 'vf1aaaaa555777999_outside_temperature', @@ -2067,6 +2114,7 @@ 'original_icon': None, 'original_name': 'HVAC SoC threshold', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_soc_threshold', 'unique_id': 'vf1aaaaa555777999_hvac_soc_threshold', @@ -2095,6 +2143,7 @@ 'original_icon': None, 'original_name': 'Last HVAC activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_last_activity', 'unique_id': 'vf1aaaaa555777999_hvac_last_activity', @@ -2123,6 +2172,7 @@ 'original_icon': None, 'original_name': 'Last location activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location_last_activity', 'unique_id': 'vf1aaaaa555777999_location_last_activity', @@ -2151,6 +2201,7 @@ 'original_icon': None, 'original_name': 'Remote engine start', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state', 'unique_id': 'vf1aaaaa555777999_res_state', @@ -2179,6 +2230,7 @@ 'original_icon': None, 'original_name': 'Remote engine start code', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state_code', 'unique_id': 'vf1aaaaa555777999_res_state_code', @@ -2457,6 +2509,7 @@ 'original_icon': 'mdi:sign-direction', 'original_name': 'Mileage', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'mileage', 'unique_id': 'vf1aaaaa555777123_mileage', @@ -2487,6 +2540,7 @@ 'original_icon': 'mdi:gas-station', 'original_name': 'Fuel autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'fuel_autonomy', 'unique_id': 'vf1aaaaa555777123_fuel_autonomy', @@ -2517,6 +2571,7 @@ 'original_icon': 'mdi:fuel', 'original_name': 'Fuel quantity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'fuel_quantity', 'unique_id': 'vf1aaaaa555777123_fuel_quantity', @@ -2545,6 +2600,7 @@ 'original_icon': None, 'original_name': 'Last location activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location_last_activity', 'unique_id': 'vf1aaaaa555777123_location_last_activity', @@ -2573,6 +2629,7 @@ 'original_icon': None, 'original_name': 'Remote engine start', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state', 'unique_id': 'vf1aaaaa555777123_res_state', @@ -2601,6 +2658,7 @@ 'original_icon': None, 'original_name': 'Remote engine start code', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state_code', 'unique_id': 'vf1aaaaa555777123_res_state_code', @@ -2741,6 +2799,7 @@ 'original_icon': None, 'original_name': 'Battery', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777123_battery_level', @@ -2780,6 +2839,7 @@ 'original_icon': 'mdi:flash', 'original_name': 'Charge state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_state', 'unique_id': 'vf1aaaaa555777123_charge_state', @@ -2810,6 +2870,7 @@ 'original_icon': 'mdi:timer', 'original_name': 'Charging remaining time', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charging_remaining_time', 'unique_id': 'vf1aaaaa555777123_charging_remaining_time', @@ -2840,6 +2901,7 @@ 'original_icon': None, 'original_name': 'Admissible charging power', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'admissible_charging_power', 'unique_id': 'vf1aaaaa555777123_charging_power', @@ -2875,6 +2937,7 @@ 'original_icon': 'mdi:power-plug', 'original_name': 'Plug state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'plug_state', 'unique_id': 'vf1aaaaa555777123_plug_state', @@ -2905,6 +2968,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Battery autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_autonomy', 'unique_id': 'vf1aaaaa555777123_battery_autonomy', @@ -2935,6 +2999,7 @@ 'original_icon': None, 'original_name': 'Battery available energy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_available_energy', 'unique_id': 'vf1aaaaa555777123_battery_available_energy', @@ -2965,6 +3030,7 @@ 'original_icon': None, 'original_name': 'Battery temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_temperature', 'unique_id': 'vf1aaaaa555777123_battery_temperature', @@ -2993,6 +3059,7 @@ 'original_icon': None, 'original_name': 'Last battery activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_last_activity', 'unique_id': 'vf1aaaaa555777123_battery_last_activity', @@ -3023,6 +3090,7 @@ 'original_icon': 'mdi:sign-direction', 'original_name': 'Mileage', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'mileage', 'unique_id': 'vf1aaaaa555777123_mileage', @@ -3053,6 +3121,7 @@ 'original_icon': 'mdi:gas-station', 'original_name': 'Fuel autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'fuel_autonomy', 'unique_id': 'vf1aaaaa555777123_fuel_autonomy', @@ -3083,6 +3152,7 @@ 'original_icon': 'mdi:fuel', 'original_name': 'Fuel quantity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'fuel_quantity', 'unique_id': 'vf1aaaaa555777123_fuel_quantity', @@ -3111,6 +3181,7 @@ 'original_icon': None, 'original_name': 'Last location activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location_last_activity', 'unique_id': 'vf1aaaaa555777123_location_last_activity', @@ -3139,6 +3210,7 @@ 'original_icon': None, 'original_name': 'Remote engine start', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state', 'unique_id': 'vf1aaaaa555777123_res_state', @@ -3167,6 +3239,7 @@ 'original_icon': None, 'original_name': 'Remote engine start code', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state_code', 'unique_id': 'vf1aaaaa555777123_res_state_code', @@ -3438,6 +3511,7 @@ 'original_icon': None, 'original_name': 'Battery', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_battery_level', @@ -3477,6 +3551,7 @@ 'original_icon': 'mdi:flash', 'original_name': 'Charge state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_state', 'unique_id': 'vf1aaaaa555777999_charge_state', @@ -3507,6 +3582,7 @@ 'original_icon': 'mdi:timer', 'original_name': 'Charging remaining time', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charging_remaining_time', 'unique_id': 'vf1aaaaa555777999_charging_remaining_time', @@ -3537,6 +3613,7 @@ 'original_icon': None, 'original_name': 'Charging power', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charging_power', 'unique_id': 'vf1aaaaa555777999_charging_power', @@ -3572,6 +3649,7 @@ 'original_icon': 'mdi:power-plug', 'original_name': 'Plug state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'plug_state', 'unique_id': 'vf1aaaaa555777999_plug_state', @@ -3602,6 +3680,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Battery autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_autonomy', 'unique_id': 'vf1aaaaa555777999_battery_autonomy', @@ -3632,6 +3711,7 @@ 'original_icon': None, 'original_name': 'Battery available energy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_available_energy', 'unique_id': 'vf1aaaaa555777999_battery_available_energy', @@ -3662,6 +3742,7 @@ 'original_icon': None, 'original_name': 'Battery temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_temperature', 'unique_id': 'vf1aaaaa555777999_battery_temperature', @@ -3690,6 +3771,7 @@ 'original_icon': None, 'original_name': 'Last battery activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_last_activity', 'unique_id': 'vf1aaaaa555777999_battery_last_activity', @@ -3720,6 +3802,7 @@ 'original_icon': 'mdi:sign-direction', 'original_name': 'Mileage', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'mileage', 'unique_id': 'vf1aaaaa555777999_mileage', @@ -3750,6 +3833,7 @@ 'original_icon': None, 'original_name': 'Outside temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'outside_temperature', 'unique_id': 'vf1aaaaa555777999_outside_temperature', @@ -3778,6 +3862,7 @@ 'original_icon': None, 'original_name': 'HVAC SoC threshold', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_soc_threshold', 'unique_id': 'vf1aaaaa555777999_hvac_soc_threshold', @@ -3806,6 +3891,7 @@ 'original_icon': None, 'original_name': 'Last HVAC activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_last_activity', 'unique_id': 'vf1aaaaa555777999_hvac_last_activity', @@ -3834,6 +3920,7 @@ 'original_icon': None, 'original_name': 'Remote engine start', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state', 'unique_id': 'vf1aaaaa555777999_res_state', @@ -3862,6 +3949,7 @@ 'original_icon': None, 'original_name': 'Remote engine start code', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state_code', 'unique_id': 'vf1aaaaa555777999_res_state_code', @@ -4129,6 +4217,7 @@ 'original_icon': None, 'original_name': 'Battery', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'vf1aaaaa555777999_battery_level', @@ -4168,6 +4257,7 @@ 'original_icon': 'mdi:flash-off', 'original_name': 'Charge state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charge_state', 'unique_id': 'vf1aaaaa555777999_charge_state', @@ -4198,6 +4288,7 @@ 'original_icon': 'mdi:timer', 'original_name': 'Charging remaining time', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'charging_remaining_time', 'unique_id': 'vf1aaaaa555777999_charging_remaining_time', @@ -4228,6 +4319,7 @@ 'original_icon': None, 'original_name': 'Admissible charging power', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'admissible_charging_power', 'unique_id': 'vf1aaaaa555777999_charging_power', @@ -4263,6 +4355,7 @@ 'original_icon': 'mdi:power-plug-off', 'original_name': 'Plug state', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'plug_state', 'unique_id': 'vf1aaaaa555777999_plug_state', @@ -4293,6 +4386,7 @@ 'original_icon': 'mdi:ev-station', 'original_name': 'Battery autonomy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_autonomy', 'unique_id': 'vf1aaaaa555777999_battery_autonomy', @@ -4323,6 +4417,7 @@ 'original_icon': None, 'original_name': 'Battery available energy', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_available_energy', 'unique_id': 'vf1aaaaa555777999_battery_available_energy', @@ -4353,6 +4448,7 @@ 'original_icon': None, 'original_name': 'Battery temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_temperature', 'unique_id': 'vf1aaaaa555777999_battery_temperature', @@ -4381,6 +4477,7 @@ 'original_icon': None, 'original_name': 'Last battery activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'battery_last_activity', 'unique_id': 'vf1aaaaa555777999_battery_last_activity', @@ -4411,6 +4508,7 @@ 'original_icon': 'mdi:sign-direction', 'original_name': 'Mileage', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'mileage', 'unique_id': 'vf1aaaaa555777999_mileage', @@ -4441,6 +4539,7 @@ 'original_icon': None, 'original_name': 'Outside temperature', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'outside_temperature', 'unique_id': 'vf1aaaaa555777999_outside_temperature', @@ -4469,6 +4568,7 @@ 'original_icon': None, 'original_name': 'HVAC SoC threshold', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_soc_threshold', 'unique_id': 'vf1aaaaa555777999_hvac_soc_threshold', @@ -4497,6 +4597,7 @@ 'original_icon': None, 'original_name': 'Last HVAC activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'hvac_last_activity', 'unique_id': 'vf1aaaaa555777999_hvac_last_activity', @@ -4525,6 +4626,7 @@ 'original_icon': None, 'original_name': 'Last location activity', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'location_last_activity', 'unique_id': 'vf1aaaaa555777999_location_last_activity', @@ -4553,6 +4655,7 @@ 'original_icon': None, 'original_name': 'Remote engine start', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state', 'unique_id': 'vf1aaaaa555777999_res_state', @@ -4581,6 +4684,7 @@ 'original_icon': None, 'original_name': 'Remote engine start code', 'platform': 'renault', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'res_state_code', 'unique_id': 'vf1aaaaa555777999_res_state_code', diff --git a/tests/components/samsungtv/snapshots/test_init.ambr b/tests/components/samsungtv/snapshots/test_init.ambr index 25d8edb15ac..181cf8de17b 100644 --- a/tests/components/samsungtv/snapshots/test_init.ambr +++ b/tests/components/samsungtv/snapshots/test_init.ambr @@ -47,6 +47,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'samsungtv', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'sample-entry-id', diff --git a/tests/components/sfr_box/snapshots/test_binary_sensor.ambr b/tests/components/sfr_box/snapshots/test_binary_sensor.ambr index b308b5ab3af..1fc8b672c3f 100644 --- a/tests/components/sfr_box/snapshots/test_binary_sensor.ambr +++ b/tests/components/sfr_box/snapshots/test_binary_sensor.ambr @@ -53,6 +53,7 @@ 'original_icon': None, 'original_name': 'WAN status', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'wan_status', 'unique_id': 'e4:5d:51:00:11:22_wan_status', @@ -81,6 +82,7 @@ 'original_icon': None, 'original_name': 'DSL status', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_status', 'unique_id': 'e4:5d:51:00:11:22_dsl_status', @@ -168,6 +170,7 @@ 'original_icon': None, 'original_name': 'WAN status', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'wan_status', 'unique_id': 'e4:5d:51:00:11:22_wan_status', @@ -196,6 +199,7 @@ 'original_icon': None, 'original_name': 'FTTH status', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'ftth_status', 'unique_id': 'e4:5d:51:00:11:22_ftth_status', diff --git a/tests/components/sfr_box/snapshots/test_button.ambr b/tests/components/sfr_box/snapshots/test_button.ambr index f362cfc146f..c216ef6c51d 100644 --- a/tests/components/sfr_box/snapshots/test_button.ambr +++ b/tests/components/sfr_box/snapshots/test_button.ambr @@ -53,6 +53,7 @@ 'original_icon': None, 'original_name': 'Restart', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'e4:5d:51:00:11:22_system_reboot', diff --git a/tests/components/sfr_box/snapshots/test_sensor.ambr b/tests/components/sfr_box/snapshots/test_sensor.ambr index 171a5803ada..29cd99403a2 100644 --- a/tests/components/sfr_box/snapshots/test_sensor.ambr +++ b/tests/components/sfr_box/snapshots/test_sensor.ambr @@ -60,6 +60,7 @@ 'original_icon': None, 'original_name': 'Network infrastructure', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'net_infra', 'unique_id': 'e4:5d:51:00:11:22_system_net_infra', @@ -88,6 +89,7 @@ 'original_icon': None, 'original_name': 'Voltage', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'e4:5d:51:00:11:22_system_alimvoltage', @@ -116,6 +118,7 @@ 'original_icon': None, 'original_name': 'Temperature', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'e4:5d:51:00:11:22_system_temperature', @@ -152,6 +155,7 @@ 'original_icon': None, 'original_name': 'WAN mode', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'wan_mode', 'unique_id': 'e4:5d:51:00:11:22_wan_mode', @@ -180,6 +184,7 @@ 'original_icon': None, 'original_name': 'DSL line mode', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_linemode', 'unique_id': 'e4:5d:51:00:11:22_dsl_linemode', @@ -208,6 +213,7 @@ 'original_icon': None, 'original_name': 'DSL counter', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_counter', 'unique_id': 'e4:5d:51:00:11:22_dsl_counter', @@ -236,6 +242,7 @@ 'original_icon': None, 'original_name': 'DSL CRC', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_crc', 'unique_id': 'e4:5d:51:00:11:22_dsl_crc', @@ -266,6 +273,7 @@ 'original_icon': None, 'original_name': 'DSL noise down', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_noise_down', 'unique_id': 'e4:5d:51:00:11:22_dsl_noise_down', @@ -296,6 +304,7 @@ 'original_icon': None, 'original_name': 'DSL noise up', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_noise_up', 'unique_id': 'e4:5d:51:00:11:22_dsl_noise_up', @@ -326,6 +335,7 @@ 'original_icon': None, 'original_name': 'DSL attenuation down', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_attenuation_down', 'unique_id': 'e4:5d:51:00:11:22_dsl_attenuation_down', @@ -356,6 +366,7 @@ 'original_icon': None, 'original_name': 'DSL attenuation up', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_attenuation_up', 'unique_id': 'e4:5d:51:00:11:22_dsl_attenuation_up', @@ -386,6 +397,7 @@ 'original_icon': None, 'original_name': 'DSL rate down', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_rate_down', 'unique_id': 'e4:5d:51:00:11:22_dsl_rate_down', @@ -416,6 +428,7 @@ 'original_icon': None, 'original_name': 'DSL rate up', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_rate_up', 'unique_id': 'e4:5d:51:00:11:22_dsl_rate_up', @@ -453,6 +466,7 @@ 'original_icon': None, 'original_name': 'DSL line status', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_line_status', 'unique_id': 'e4:5d:51:00:11:22_dsl_line_status', @@ -494,6 +508,7 @@ 'original_icon': None, 'original_name': 'DSL training', 'platform': 'sfr_box', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'dsl_training', 'unique_id': 'e4:5d:51:00:11:22_dsl_training', diff --git a/tests/components/tplink_omada/snapshots/test_switch.ambr b/tests/components/tplink_omada/snapshots/test_switch.ambr index b48f6a5e749..99f49e44bf2 100644 --- a/tests/components/tplink_omada/snapshots/test_switch.ambr +++ b/tests/components/tplink_omada/snapshots/test_switch.ambr @@ -36,6 +36,7 @@ 'original_icon': 'mdi:ethernet', 'original_name': 'Port 1 PoE', 'platform': 'tplink_omada', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '54-AF-97-00-00-01_000000000000000000000001_poe', @@ -79,6 +80,7 @@ 'original_icon': 'mdi:ethernet', 'original_name': 'Port 6 PoE', 'platform': 'tplink_omada', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '54-AF-97-00-00-01_000000000000000000000006_poe', @@ -122,6 +124,7 @@ 'original_icon': 'mdi:ethernet', 'original_name': 'Port 7 PoE', 'platform': 'tplink_omada', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '54-AF-97-00-00-01_000000000000000000000007_poe', @@ -165,6 +168,7 @@ 'original_icon': 'mdi:ethernet', 'original_name': 'Port 8 PoE', 'platform': 'tplink_omada', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '54-AF-97-00-00-01_000000000000000000000008_poe', @@ -208,6 +212,7 @@ 'original_icon': 'mdi:ethernet', 'original_name': 'Port 2 PoE', 'platform': 'tplink_omada', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '54-AF-97-00-00-01_000000000000000000000002_poe', @@ -251,6 +256,7 @@ 'original_icon': 'mdi:ethernet', 'original_name': 'Port 3 PoE', 'platform': 'tplink_omada', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '54-AF-97-00-00-01_000000000000000000000003_poe', @@ -294,6 +300,7 @@ 'original_icon': 'mdi:ethernet', 'original_name': 'Port 4 PoE', 'platform': 'tplink_omada', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '54-AF-97-00-00-01_000000000000000000000004_poe', @@ -337,6 +344,7 @@ 'original_icon': 'mdi:ethernet', 'original_name': 'Port 5 PoE', 'platform': 'tplink_omada', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '54-AF-97-00-00-01_000000000000000000000005_poe', diff --git a/tests/components/twentemilieu/snapshots/test_calendar.ambr b/tests/components/twentemilieu/snapshots/test_calendar.ambr index d004084e063..6403bd83255 100644 --- a/tests/components/twentemilieu/snapshots/test_calendar.ambr +++ b/tests/components/twentemilieu/snapshots/test_calendar.ambr @@ -68,6 +68,7 @@ 'original_icon': 'mdi:delete-empty', 'original_name': None, 'platform': 'twentemilieu', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '12345', diff --git a/tests/components/twentemilieu/snapshots/test_sensor.ambr b/tests/components/twentemilieu/snapshots/test_sensor.ambr index 367da49c7f6..f0e9578ff23 100644 --- a/tests/components/twentemilieu/snapshots/test_sensor.ambr +++ b/tests/components/twentemilieu/snapshots/test_sensor.ambr @@ -37,6 +37,7 @@ 'original_icon': 'mdi:pine-tree', 'original_name': 'Christmas tree pickup', 'platform': 'twentemilieu', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'christmas_tree_pickup', 'unique_id': 'twentemilieu_12345_tree', @@ -108,6 +109,7 @@ 'original_icon': 'mdi:delete-empty', 'original_name': 'Non-recyclable waste pickup', 'platform': 'twentemilieu', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'non_recyclable_waste_pickup', 'unique_id': 'twentemilieu_12345_Non-recyclable', @@ -179,6 +181,7 @@ 'original_icon': 'mdi:delete-empty', 'original_name': 'Organic waste pickup', 'platform': 'twentemilieu', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'organic_waste_pickup', 'unique_id': 'twentemilieu_12345_Organic', @@ -250,6 +253,7 @@ 'original_icon': 'mdi:delete-empty', 'original_name': 'Packages waste pickup', 'platform': 'twentemilieu', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'packages_waste_pickup', 'unique_id': 'twentemilieu_12345_Plastic', @@ -321,6 +325,7 @@ 'original_icon': 'mdi:delete-empty', 'original_name': 'Paper waste pickup', 'platform': 'twentemilieu', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'paper_waste_pickup', 'unique_id': 'twentemilieu_12345_Paper', diff --git a/tests/components/uptime/snapshots/test_sensor.ambr b/tests/components/uptime/snapshots/test_sensor.ambr index 539ba640d80..4381cf30647 100644 --- a/tests/components/uptime/snapshots/test_sensor.ambr +++ b/tests/components/uptime/snapshots/test_sensor.ambr @@ -36,6 +36,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'uptime', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unit_of_measurement': None, diff --git a/tests/components/vesync/snapshots/test_fan.ambr b/tests/components/vesync/snapshots/test_fan.ambr index fa1a7a7b332..8dbefd41794 100644 --- a/tests/components/vesync/snapshots/test_fan.ambr +++ b/tests/components/vesync/snapshots/test_fan.ambr @@ -58,6 +58,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'air-purifier', @@ -140,6 +141,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': 'asd_sdfKIHG7IJHGwJGJ7GJ_ag5h3G55', @@ -229,6 +231,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '400s-purifier', @@ -319,6 +322,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': , 'translation_key': None, 'unique_id': '600s-purifier', diff --git a/tests/components/vesync/snapshots/test_light.ambr b/tests/components/vesync/snapshots/test_light.ambr index 67940603d41..4c33d11564a 100644 --- a/tests/components/vesync/snapshots/test_light.ambr +++ b/tests/components/vesync/snapshots/test_light.ambr @@ -189,6 +189,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'dimmable-bulb', @@ -270,6 +271,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'dimmable-switch', @@ -406,6 +408,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'tunable-bulb', diff --git a/tests/components/vesync/snapshots/test_sensor.ambr b/tests/components/vesync/snapshots/test_sensor.ambr index 06198bca145..7cda1cd0649 100644 --- a/tests/components/vesync/snapshots/test_sensor.ambr +++ b/tests/components/vesync/snapshots/test_sensor.ambr @@ -55,6 +55,7 @@ 'original_icon': None, 'original_name': 'Filter lifetime', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'filter_life', 'unique_id': 'air-purifier-filter-life', @@ -83,6 +84,7 @@ 'original_icon': None, 'original_name': 'Air quality', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'air_quality', 'unique_id': 'air-purifier-air-quality', @@ -172,6 +174,7 @@ 'original_icon': None, 'original_name': 'Filter lifetime', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'filter_life', 'unique_id': 'asd_sdfKIHG7IJHGwJGJ7GJ_ag5h3G55-filter-life', @@ -249,6 +252,7 @@ 'original_icon': None, 'original_name': 'Filter lifetime', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'filter_life', 'unique_id': '400s-purifier-filter-life', @@ -277,6 +281,7 @@ 'original_icon': None, 'original_name': 'Air quality', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'air_quality', 'unique_id': '400s-purifier-air-quality', @@ -307,6 +312,7 @@ 'original_icon': None, 'original_name': 'PM2.5', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '400s-purifier-pm25', @@ -411,6 +417,7 @@ 'original_icon': None, 'original_name': 'Filter lifetime', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'filter_life', 'unique_id': '600s-purifier-filter-life', @@ -439,6 +446,7 @@ 'original_icon': None, 'original_name': 'Air quality', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'air_quality', 'unique_id': '600s-purifier-air-quality', @@ -469,6 +477,7 @@ 'original_icon': None, 'original_name': 'PM2.5', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': '600s-purifier-pm25', @@ -655,6 +664,7 @@ 'original_icon': None, 'original_name': 'Current power', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'current_power', 'unique_id': 'outlet-power', @@ -685,6 +695,7 @@ 'original_icon': None, 'original_name': 'Energy use today', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'energy_today', 'unique_id': 'outlet-energy', @@ -715,6 +726,7 @@ 'original_icon': None, 'original_name': 'Energy use weekly', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'energy_week', 'unique_id': 'outlet-energy-weekly', @@ -745,6 +757,7 @@ 'original_icon': None, 'original_name': 'Energy use monthly', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'energy_month', 'unique_id': 'outlet-energy-monthly', @@ -775,6 +788,7 @@ 'original_icon': None, 'original_name': 'Energy use yearly', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'energy_year', 'unique_id': 'outlet-energy-yearly', @@ -805,6 +819,7 @@ 'original_icon': None, 'original_name': 'Current voltage', 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'current_voltage', 'unique_id': 'outlet-voltage', diff --git a/tests/components/vesync/snapshots/test_switch.ambr b/tests/components/vesync/snapshots/test_switch.ambr index cfe9d66a2ed..95dcb24ded6 100644 --- a/tests/components/vesync/snapshots/test_switch.ambr +++ b/tests/components/vesync/snapshots/test_switch.ambr @@ -267,6 +267,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'outlet', @@ -373,6 +374,7 @@ 'original_icon': None, 'original_name': None, 'platform': 'vesync', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'switch', diff --git a/tests/components/whois/snapshots/test_sensor.ambr b/tests/components/whois/snapshots/test_sensor.ambr index 464af13c7c8..519d5894072 100644 --- a/tests/components/whois/snapshots/test_sensor.ambr +++ b/tests/components/whois/snapshots/test_sensor.ambr @@ -36,6 +36,7 @@ 'original_icon': 'mdi:account-star', 'original_name': 'Admin', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'admin', 'unique_id': 'home-assistant.io_admin', @@ -106,6 +107,7 @@ 'original_icon': None, 'original_name': 'Created', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'creation_date', 'unique_id': 'home-assistant.io_creation_date', @@ -181,6 +183,7 @@ 'original_icon': 'mdi:calendar-clock', 'original_name': 'Days until expiration', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'days_until_expiration', 'unique_id': 'home-assistant.io_days_until_expiration', @@ -251,6 +254,7 @@ 'original_icon': None, 'original_name': 'Expires', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'expiration_date', 'unique_id': 'home-assistant.io_expiration_date', @@ -321,6 +325,7 @@ 'original_icon': None, 'original_name': 'Last updated', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'last_updated', 'unique_id': 'home-assistant.io_last_updated', @@ -391,6 +396,7 @@ 'original_icon': 'mdi:account', 'original_name': 'Owner', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'owner', 'unique_id': 'home-assistant.io_owner', @@ -461,6 +467,7 @@ 'original_icon': 'mdi:account-edit', 'original_name': 'Registrant', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'registrant', 'unique_id': 'home-assistant.io_registrant', @@ -531,6 +538,7 @@ 'original_icon': 'mdi:store', 'original_name': 'Registrar', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'registrar', 'unique_id': 'home-assistant.io_registrar', @@ -601,6 +609,7 @@ 'original_icon': 'mdi:store', 'original_name': 'Reseller', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'reseller', 'unique_id': 'home-assistant.io_reseller', @@ -671,6 +680,7 @@ 'original_icon': None, 'original_name': 'Last updated', 'platform': 'whois', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'last_updated', 'unique_id': 'home-assistant.io_last_updated', diff --git a/tests/components/wled/snapshots/test_binary_sensor.ambr b/tests/components/wled/snapshots/test_binary_sensor.ambr index 7520ea7a6a6..bcf9d7a4cdb 100644 --- a/tests/components/wled/snapshots/test_binary_sensor.ambr +++ b/tests/components/wled/snapshots/test_binary_sensor.ambr @@ -36,6 +36,7 @@ 'original_icon': None, 'original_name': 'Firmware', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbccddeeff_update', diff --git a/tests/components/wled/snapshots/test_button.ambr b/tests/components/wled/snapshots/test_button.ambr index da487b49489..b11befe3832 100644 --- a/tests/components/wled/snapshots/test_button.ambr +++ b/tests/components/wled/snapshots/test_button.ambr @@ -36,6 +36,7 @@ 'original_icon': None, 'original_name': 'Restart', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbccddeeff_restart', diff --git a/tests/components/wled/snapshots/test_number.ambr b/tests/components/wled/snapshots/test_number.ambr index 96b465616c4..509a8860611 100644 --- a/tests/components/wled/snapshots/test_number.ambr +++ b/tests/components/wled/snapshots/test_number.ambr @@ -44,6 +44,7 @@ 'original_icon': None, 'original_name': 'Segment 1 Intensity', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbccddeeff_intensity_1', @@ -127,6 +128,7 @@ 'original_icon': 'mdi:speedometer', 'original_name': 'Segment 1 Speed', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbccddeeff_speed_1', diff --git a/tests/components/wled/snapshots/test_select.ambr b/tests/components/wled/snapshots/test_select.ambr index 9cfc6c6e3fe..d52c6a10ddd 100644 --- a/tests/components/wled/snapshots/test_select.ambr +++ b/tests/components/wled/snapshots/test_select.ambr @@ -47,6 +47,7 @@ 'original_icon': 'mdi:theater', 'original_name': 'Live override', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'live_override', 'unique_id': 'aabbccddeeff_live_override', @@ -226,6 +227,7 @@ 'original_icon': 'mdi:palette-outline', 'original_name': 'Segment 1 color palette', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbccddeeff_palette_1', @@ -309,6 +311,7 @@ 'original_icon': 'mdi:play-speed', 'original_name': 'Playlist', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'playlist', 'unique_id': 'aabbccddee11_playlist', @@ -392,6 +395,7 @@ 'original_icon': 'mdi:playlist-play', 'original_name': 'Preset', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'preset', 'unique_id': 'aabbccddee11_preset', diff --git a/tests/components/wled/snapshots/test_switch.ambr b/tests/components/wled/snapshots/test_switch.ambr index 1434d2b2b2d..52f1e9562e2 100644 --- a/tests/components/wled/snapshots/test_switch.ambr +++ b/tests/components/wled/snapshots/test_switch.ambr @@ -39,6 +39,7 @@ 'original_icon': 'mdi:weather-night', 'original_name': 'Nightlight', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'nightlight', 'unique_id': 'aabbccddeeff_nightlight', @@ -113,6 +114,7 @@ 'original_icon': 'mdi:swap-horizontal-bold', 'original_name': 'Reverse', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, 'unique_id': 'aabbccddeeff_reverse_0', @@ -188,6 +190,7 @@ 'original_icon': 'mdi:download-network-outline', 'original_name': 'Sync receive', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sync_receive', 'unique_id': 'aabbccddeeff_sync_receive', @@ -263,6 +266,7 @@ 'original_icon': 'mdi:upload-network-outline', 'original_name': 'Sync send', 'platform': 'wled', + 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'sync_send', 'unique_id': 'aabbccddeeff_sync_send', diff --git a/tests/helpers/test_entity_registry.py b/tests/helpers/test_entity_registry.py index 4bf03b4d39b..95558e9c73d 100644 --- a/tests/helpers/test_entity_registry.py +++ b/tests/helpers/test_entity_registry.py @@ -665,6 +665,7 @@ async def test_update_entity_unique_id(entity_registry: er.EntityRegistry) -> No ) assert updated_entry != entry assert updated_entry.unique_id == new_unique_id + assert updated_entry.previous_unique_id == "5678" assert mock_schedule_save.call_count == 1 assert entity_registry.async_get_entity_id("light", "hue", "5678") is None