From 879e2d1afd332d78711bcfff100ca9f0ee46fff5 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 27 May 2020 00:15:00 -0500 Subject: [PATCH] Improve stability of homekit accessory ids (#35691) --- .../components/homekit/aidmanager.py | 28 +- tests/components/homekit/test_aidmanager.py | 868 +++++++++--------- tests/components/homekit/test_homekit.py | 6 +- 3 files changed, 442 insertions(+), 460 deletions(-) diff --git a/homeassistant/components/homekit/aidmanager.py b/homeassistant/components/homekit/aidmanager.py index 487865f22ab..31c341c9144 100644 --- a/homeassistant/components/homekit/aidmanager.py +++ b/homeassistant/components/homekit/aidmanager.py @@ -11,7 +11,6 @@ This module generates and stores them in a HA storage. """ import logging import random -from zlib import adler32 from fnvhash import fnv1a_32 @@ -44,11 +43,6 @@ def get_system_unique_id(entity: RegistryEntry): def _generate_aids(unique_id: str, entity_id: str) -> int: """Generate accessory aid.""" - # Backward compatibility: Previously HA used to *only* do adler32 on the entity id. - # Not stable if entity ID changes - # Not robust against collisions - yield adler32(entity_id.encode("utf-8")) - if unique_id: # Use fnv1a_32 of the unique id as # fnv1a_32 has less collisions than @@ -96,15 +90,7 @@ class AccessoryAidStorage: # There is no data about aid allocations yet return - # Remove the UNIQUE_IDS_KEY in 0.112 and later - # The beta version used UNIQUE_IDS_KEY but - # since we now have entity ids in the dict - # we use ALLOCATIONS_KEY but check for - # UNIQUE_IDS_KEY in case the database has not - # been upgraded yet - self.allocations = raw_storage.get( - ALLOCATIONS_KEY, raw_storage.get(UNIQUE_IDS_KEY, {}) - ) + self.allocations = raw_storage.get(ALLOCATIONS_KEY, {}) self.allocated_aids = set(self.allocations.values()) def get_or_allocate_aid_for_entity_id(self, entity_id: str): @@ -118,17 +104,17 @@ class AccessoryAidStorage: def _get_or_allocate_aid(self, unique_id: str, entity_id: str): """Allocate (and return) a new aid for an accessory.""" - # Prefer the unique_id over the - # entitiy_id - storage_key = unique_id or entity_id - - if storage_key in self.allocations: - return self.allocations[storage_key] + if unique_id and unique_id in self.allocations: + return self.allocations[unique_id] + if entity_id in self.allocations: + return self.allocations[entity_id] for aid in _generate_aids(unique_id, entity_id): if aid in INVALID_AIDS: continue if aid not in self.allocated_aids: + # Prefer the unique_id over the entitiy_id + storage_key = unique_id or entity_id self.allocations[storage_key] = aid self.allocated_aids.add(aid) self.async_schedule_save() diff --git a/tests/components/homekit/test_aidmanager.py b/tests/components/homekit/test_aidmanager.py index ff55ba9afa4..b7c12e86443 100644 --- a/tests/components/homekit/test_aidmanager.py +++ b/tests/components/homekit/test_aidmanager.py @@ -1,7 +1,7 @@ """Tests for the HomeKit AID manager.""" import os -from zlib import adler32 +from fnvhash import fnv1a_32 import pytest from homeassistant.components.homekit.aidmanager import ( @@ -59,19 +59,19 @@ async def test_aid_generation(hass, device_reg, entity_reg): for _ in range(0, 2): assert ( aid_storage.get_or_allocate_aid_for_entity_id(light_ent.entity_id) - == 1692141785 + == 1953095294 ) assert ( aid_storage.get_or_allocate_aid_for_entity_id(light_ent2.entity_id) - == 2732133210 + == 1975378727 ) assert ( aid_storage.get_or_allocate_aid_for_entity_id(remote_ent.entity_id) - == 1867188557 + == 3508011530 ) assert ( aid_storage.get_or_allocate_aid_for_entity_id("remote.has_no_unique_id") - == 1872038229 + == 1751603975 ) aid_storage.delete_aid(get_system_unique_id(light_ent)) @@ -82,23 +82,23 @@ async def test_aid_generation(hass, device_reg, entity_reg): for _ in range(0, 2): assert ( aid_storage.get_or_allocate_aid_for_entity_id(light_ent.entity_id) - == 1692141785 + == 1953095294 ) assert ( aid_storage.get_or_allocate_aid_for_entity_id(light_ent2.entity_id) - == 2732133210 + == 1975378727 ) assert ( aid_storage.get_or_allocate_aid_for_entity_id(remote_ent.entity_id) - == 1867188557 + == 3508011530 ) assert ( aid_storage.get_or_allocate_aid_for_entity_id("remote.has_no_unique_id") - == 1872038229 + == 1751603975 ) -async def test_aid_adler32_collision(hass, device_reg, entity_reg): +async def test_no_aid_collision(hass, device_reg, entity_reg): """Test generating aids.""" config_entry = MockConfigEntry(domain="test", data={}) config_entry.add_to_hass(hass) @@ -130,16 +130,22 @@ async def test_aid_generation_no_unique_ids_handles_collision( ): """Test colliding aids is stable.""" config_entry = MockConfigEntry(domain="test", data={}) + config_entry.add_to_hass(hass) aid_storage = AccessoryAidStorage(hass, config_entry) await aid_storage.async_initialize() + device_entry = device_reg.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")}, + ) + seen_aids = set() collisions = [] for light_id in range(0, 220): entity_id = f"light.light{light_id}" hass.states.async_set(entity_id, "on") - expected_aid = adler32(entity_id.encode("utf-8")) + expected_aid = fnv1a_32(entity_id.encode("utf-8")) aid = aid_storage.get_or_allocate_aid_for_entity_id(entity_id) if aid != expected_aid: collisions.append(entity_id) @@ -147,143 +153,131 @@ async def test_aid_generation_no_unique_ids_handles_collision( assert aid not in seen_aids seen_aids.add(aid) - assert collisions == [ - "light.light201", - "light.light202", - "light.light203", - "light.light204", - "light.light205", - "light.light206", - "light.light207", - "light.light208", - "light.light209", - "light.light211", - "light.light212", - "light.light213", - "light.light214", - "light.light215", - "light.light216", - "light.light217", - "light.light218", - "light.light219", - ] + light_ent = entity_reg.async_get_or_create( + "light", "device", "unique_id", device_id=device_entry.id + ) + hass.states.async_set(light_ent.entity_id, "on") + aid_storage.get_or_allocate_aid_for_entity_id(light_ent.entity_id) + + assert not collisions assert aid_storage.allocations == { - "light.light0": 514851983, - "light.light1": 514917520, - "light.light10": 594609344, - "light.light100": 677446896, - "light.light101": 677512433, - "light.light102": 677577970, - "light.light103": 677643507, - "light.light104": 677709044, - "light.light105": 677774581, - "light.light106": 677840118, - "light.light107": 677905655, - "light.light108": 677971192, - "light.light109": 678036729, - "light.light11": 594674881, - "light.light110": 677577969, - "light.light111": 677643506, - "light.light112": 677709043, - "light.light113": 677774580, - "light.light114": 677840117, - "light.light115": 677905654, - "light.light116": 677971191, - "light.light117": 678036728, - "light.light118": 678102265, - "light.light119": 678167802, - "light.light12": 594740418, - "light.light120": 677709042, - "light.light121": 677774579, - "light.light122": 677840116, - "light.light123": 677905653, - "light.light124": 677971190, - "light.light125": 678036727, - "light.light126": 678102264, - "light.light127": 678167801, - "light.light128": 678233338, - "light.light129": 678298875, - "light.light13": 594805955, - "light.light130": 677840115, - "light.light131": 677905652, - "light.light132": 677971189, - "light.light133": 678036726, - "light.light134": 678102263, - "light.light135": 678167800, - "light.light136": 678233337, - "light.light137": 678298874, - "light.light138": 678364411, - "light.light139": 678429948, - "light.light14": 594871492, - "light.light140": 677971188, - "light.light141": 678036725, - "light.light142": 678102262, - "light.light143": 678167799, - "light.light144": 678233336, - "light.light145": 678298873, - "light.light146": 678364410, - "light.light147": 678429947, - "light.light148": 678495484, - "light.light149": 678561021, - "light.light15": 594937029, - "light.light150": 678102261, - "light.light151": 678167798, - "light.light152": 678233335, - "light.light153": 678298872, - "light.light154": 678364409, - "light.light155": 678429946, - "light.light156": 678495483, - "light.light157": 678561020, - "light.light158": 678626557, - "light.light159": 678692094, - "light.light16": 595002566, - "light.light160": 678233334, - "light.light161": 678298871, - "light.light162": 678364408, - "light.light163": 678429945, - "light.light164": 678495482, - "light.light165": 678561019, - "light.light166": 678626556, - "light.light167": 678692093, - "light.light168": 678757630, - "light.light169": 678823167, - "light.light17": 595068103, - "light.light170": 678364407, - "light.light171": 678429944, - "light.light172": 678495481, - "light.light173": 678561018, - "light.light174": 678626555, - "light.light175": 678692092, - "light.light176": 678757629, - "light.light177": 678823166, - "light.light178": 678888703, - "light.light179": 678954240, - "light.light18": 595133640, - "light.light180": 678495480, - "light.light181": 678561017, - "light.light182": 678626554, - "light.light183": 678692091, - "light.light184": 678757628, - "light.light185": 678823165, - "light.light186": 678888702, - "light.light187": 678954239, - "light.light188": 679019776, - "light.light189": 679085313, - "light.light19": 595199177, - "light.light190": 678626553, - "light.light191": 678692090, - "light.light192": 678757627, - "light.light193": 678823164, - "light.light194": 678888701, - "light.light195": 678954238, - "light.light196": 679019775, - "light.light197": 679085312, - "light.light198": 679150849, - "light.light199": 679216386, - "light.light2": 514983057, - "light.light20": 594740417, - "light.light200": 677643505, + "device.light.unique_id": 1953095294, + "light.light0": 301577847, + "light.light1": 284800228, + "light.light10": 2367138236, + "light.light100": 2822760292, + "light.light101": 2839537911, + "light.light102": 2856315530, + "light.light103": 2873093149, + "light.light104": 2755649816, + "light.light105": 2772427435, + "light.light106": 2789205054, + "light.light107": 2805982673, + "light.light108": 2688539340, + "light.light109": 2705316959, + "light.light11": 2383915855, + "light.light110": 776141037, + "light.light111": 759363418, + "light.light112": 742585799, + "light.light113": 725808180, + "light.light114": 709030561, + "light.light115": 692252942, + "light.light116": 675475323, + "light.light117": 658697704, + "light.light118": 641920085, + "light.light119": 625142466, + "light.light12": 2400693474, + "light.light120": 340070038, + "light.light121": 356847657, + "light.light122": 306514800, + "light.light123": 323292419, + "light.light124": 407180514, + "light.light125": 423958133, + "light.light126": 373625276, + "light.light127": 390402895, + "light.light128": 474290990, + "light.light129": 491068609, + "light.light13": 2417471093, + "light.light130": 440882847, + "light.light131": 424105228, + "light.light132": 474438085, + "light.light133": 457660466, + "light.light134": 373772371, + "light.light135": 356994752, + "light.light136": 407327609, + "light.light137": 390549990, + "light.light138": 575103799, + "light.light139": 558326180, + "light.light14": 2300027760, + "light.light140": 271973824, + "light.light141": 288751443, + "light.light142": 305529062, + "light.light143": 322306681, + "light.light144": 339084300, + "light.light145": 355861919, + "light.light146": 372639538, + "light.light147": 389417157, + "light.light148": 406194776, + "light.light149": 422972395, + "light.light15": 2316805379, + "light.light150": 2520321865, + "light.light151": 2503544246, + "light.light152": 2486766627, + "light.light153": 2469989008, + "light.light154": 2587432341, + "light.light155": 2570654722, + "light.light156": 2553877103, + "light.light157": 2537099484, + "light.light158": 2654542817, + "light.light159": 2637765198, + "light.light16": 2333582998, + "light.light160": 2621134674, + "light.light161": 2637912293, + "light.light162": 2587579436, + "light.light163": 2604357055, + "light.light164": 2554024198, + "light.light165": 2570801817, + "light.light166": 2520468960, + "light.light167": 2537246579, + "light.light168": 2755355626, + "light.light169": 2772133245, + "light.light17": 2350360617, + "light.light170": 2721947483, + "light.light171": 2705169864, + "light.light172": 2755502721, + "light.light173": 2738725102, + "light.light174": 2789057959, + "light.light175": 2772280340, + "light.light176": 2822613197, + "light.light177": 2805835578, + "light.light178": 2587726531, + "light.light179": 2570948912, + "light.light18": 2501359188, + "light.light180": 408166252, + "light.light181": 424943871, + "light.light182": 441721490, + "light.light183": 458499109, + "light.light184": 341055776, + "light.light185": 357833395, + "light.light186": 374611014, + "light.light187": 391388633, + "light.light188": 542387204, + "light.light189": 559164823, + "light.light19": 2518136807, + "light.light190": 508979061, + "light.light191": 492201442, + "light.light192": 475423823, + "light.light193": 458646204, + "light.light194": 441868585, + "light.light195": 425090966, + "light.light196": 408313347, + "light.light197": 391535728, + "light.light198": 643200013, + "light.light199": 626422394, + "light.light2": 335133085, + "light.light20": 522144599, + "light.light200": 1698935589, "light.light201": 1682157970, "light.light202": 1665380351, "light.light203": 1648602732, @@ -293,8 +287,8 @@ async def test_aid_generation_no_unique_ids_handles_collision( "light.light207": 1581492256, "light.light208": 1833156541, "light.light209": 1816378922, - "light.light21": 594805954, - "light.light210": 677774578, + "light.light21": 505366980, + "light.light210": 1598122780, "light.light211": 1614900399, "light.light212": 1631678018, "light.light213": 1648455637, @@ -304,215 +298,217 @@ async def test_aid_generation_no_unique_ids_handles_collision( "light.light217": 1581345161, "light.light218": 1732343732, "light.light219": 1749121351, - "light.light22": 594871491, - "light.light23": 594937028, - "light.light24": 595002565, - "light.light25": 595068102, - "light.light26": 595133639, - "light.light27": 595199176, - "light.light28": 595264713, - "light.light29": 595330250, - "light.light3": 515048594, - "light.light30": 594871490, - "light.light31": 594937027, - "light.light32": 595002564, - "light.light33": 595068101, - "light.light34": 595133638, - "light.light35": 595199175, - "light.light36": 595264712, - "light.light37": 595330249, - "light.light38": 595395786, - "light.light39": 595461323, - "light.light4": 515114131, - "light.light40": 595002563, - "light.light41": 595068100, - "light.light42": 595133637, - "light.light43": 595199174, - "light.light44": 595264711, - "light.light45": 595330248, - "light.light46": 595395785, - "light.light47": 595461322, - "light.light48": 595526859, - "light.light49": 595592396, - "light.light5": 515179668, - "light.light50": 595133636, - "light.light51": 595199173, - "light.light52": 595264710, - "light.light53": 595330247, - "light.light54": 595395784, - "light.light55": 595461321, - "light.light56": 595526858, - "light.light57": 595592395, - "light.light58": 595657932, - "light.light59": 595723469, - "light.light6": 515245205, - "light.light60": 595264709, - "light.light61": 595330246, - "light.light62": 595395783, - "light.light63": 595461320, - "light.light64": 595526857, - "light.light65": 595592394, - "light.light66": 595657931, - "light.light67": 595723468, - "light.light68": 595789005, - "light.light69": 595854542, - "light.light7": 515310742, - "light.light70": 595395782, - "light.light71": 595461319, - "light.light72": 595526856, - "light.light73": 595592393, - "light.light74": 595657930, - "light.light75": 595723467, - "light.light76": 595789004, - "light.light77": 595854541, - "light.light78": 595920078, - "light.light79": 595985615, - "light.light8": 515376279, - "light.light80": 595526855, - "light.light81": 595592392, - "light.light82": 595657929, - "light.light83": 595723466, - "light.light84": 595789003, - "light.light85": 595854540, - "light.light86": 595920077, - "light.light87": 595985614, - "light.light88": 596051151, - "light.light89": 596116688, - "light.light9": 515441816, - "light.light90": 595657928, - "light.light91": 595723465, - "light.light92": 595789002, - "light.light93": 595854539, - "light.light94": 595920076, - "light.light95": 595985613, - "light.light96": 596051150, - "light.light97": 596116687, - "light.light98": 596182224, - "light.light99": 596247761, + "light.light22": 555699837, + "light.light23": 538922218, + "light.light24": 455034123, + "light.light25": 438256504, + "light.light26": 488589361, + "light.light27": 471811742, + "light.light28": 387923647, + "light.light29": 371146028, + "light.light3": 318355466, + "light.light30": 421331790, + "light.light31": 438109409, + "light.light32": 387776552, + "light.light33": 404554171, + "light.light34": 488442266, + "light.light35": 505219885, + "light.light36": 454887028, + "light.light37": 471664647, + "light.light38": 287110838, + "light.light39": 303888457, + "light.light4": 234467371, + "light.light40": 454048385, + "light.light41": 437270766, + "light.light42": 420493147, + "light.light43": 403715528, + "light.light44": 521158861, + "light.light45": 504381242, + "light.light46": 487603623, + "light.light47": 470826004, + "light.light48": 319827433, + "light.light49": 303049814, + "light.light5": 217689752, + "light.light50": 353235576, + "light.light51": 370013195, + "light.light52": 386790814, + "light.light53": 403568433, + "light.light54": 420346052, + "light.light55": 437123671, + "light.light56": 453901290, + "light.light57": 470678909, + "light.light58": 219014624, + "light.light59": 235792243, + "light.light6": 268022609, + "light.light60": 2266325427, + "light.light61": 2249547808, + "light.light62": 2299880665, + "light.light63": 2283103046, + "light.light64": 2333435903, + "light.light65": 2316658284, + "light.light66": 2366991141, + "light.light67": 2350213522, + "light.light68": 2400546379, + "light.light69": 2383768760, + "light.light7": 251244990, + "light.light70": 554861194, + "light.light71": 571638813, + "light.light72": 521305956, + "light.light73": 538083575, + "light.light74": 487750718, + "light.light75": 504528337, + "light.light76": 454195480, + "light.light77": 470973099, + "light.light78": 420640242, + "light.light79": 437417861, + "light.light8": 167356895, + "light.light80": 2735113021, + "light.light81": 2718335402, + "light.light82": 2701557783, + "light.light83": 2684780164, + "light.light84": 2668002545, + "light.light85": 2651224926, + "light.light86": 2634447307, + "light.light87": 2617669688, + "light.light88": 2600892069, + "light.light89": 2584114450, + "light.light9": 150579276, + "light.light90": 2634300212, + "light.light91": 2651077831, + "light.light92": 2667855450, + "light.light93": 2684633069, + "light.light94": 2567189736, + "light.light95": 2583967355, + "light.light96": 2600744974, + "light.light97": 2617522593, + "light.light98": 2500079260, + "light.light99": 2516856879, } await aid_storage.async_save() await hass.async_block_till_done() - aid_storage = AccessoryAidStorage(hass, config_entry) + with patch("fnvhash.fnv1a_32", side_effect=Exception): + aid_storage = AccessoryAidStorage(hass, config_entry) await aid_storage.async_initialize() assert aid_storage.allocations == { - "light.light0": 514851983, - "light.light1": 514917520, - "light.light10": 594609344, - "light.light100": 677446896, - "light.light101": 677512433, - "light.light102": 677577970, - "light.light103": 677643507, - "light.light104": 677709044, - "light.light105": 677774581, - "light.light106": 677840118, - "light.light107": 677905655, - "light.light108": 677971192, - "light.light109": 678036729, - "light.light11": 594674881, - "light.light110": 677577969, - "light.light111": 677643506, - "light.light112": 677709043, - "light.light113": 677774580, - "light.light114": 677840117, - "light.light115": 677905654, - "light.light116": 677971191, - "light.light117": 678036728, - "light.light118": 678102265, - "light.light119": 678167802, - "light.light12": 594740418, - "light.light120": 677709042, - "light.light121": 677774579, - "light.light122": 677840116, - "light.light123": 677905653, - "light.light124": 677971190, - "light.light125": 678036727, - "light.light126": 678102264, - "light.light127": 678167801, - "light.light128": 678233338, - "light.light129": 678298875, - "light.light13": 594805955, - "light.light130": 677840115, - "light.light131": 677905652, - "light.light132": 677971189, - "light.light133": 678036726, - "light.light134": 678102263, - "light.light135": 678167800, - "light.light136": 678233337, - "light.light137": 678298874, - "light.light138": 678364411, - "light.light139": 678429948, - "light.light14": 594871492, - "light.light140": 677971188, - "light.light141": 678036725, - "light.light142": 678102262, - "light.light143": 678167799, - "light.light144": 678233336, - "light.light145": 678298873, - "light.light146": 678364410, - "light.light147": 678429947, - "light.light148": 678495484, - "light.light149": 678561021, - "light.light15": 594937029, - "light.light150": 678102261, - "light.light151": 678167798, - "light.light152": 678233335, - "light.light153": 678298872, - "light.light154": 678364409, - "light.light155": 678429946, - "light.light156": 678495483, - "light.light157": 678561020, - "light.light158": 678626557, - "light.light159": 678692094, - "light.light16": 595002566, - "light.light160": 678233334, - "light.light161": 678298871, - "light.light162": 678364408, - "light.light163": 678429945, - "light.light164": 678495482, - "light.light165": 678561019, - "light.light166": 678626556, - "light.light167": 678692093, - "light.light168": 678757630, - "light.light169": 678823167, - "light.light17": 595068103, - "light.light170": 678364407, - "light.light171": 678429944, - "light.light172": 678495481, - "light.light173": 678561018, - "light.light174": 678626555, - "light.light175": 678692092, - "light.light176": 678757629, - "light.light177": 678823166, - "light.light178": 678888703, - "light.light179": 678954240, - "light.light18": 595133640, - "light.light180": 678495480, - "light.light181": 678561017, - "light.light182": 678626554, - "light.light183": 678692091, - "light.light184": 678757628, - "light.light185": 678823165, - "light.light186": 678888702, - "light.light187": 678954239, - "light.light188": 679019776, - "light.light189": 679085313, - "light.light19": 595199177, - "light.light190": 678626553, - "light.light191": 678692090, - "light.light192": 678757627, - "light.light193": 678823164, - "light.light194": 678888701, - "light.light195": 678954238, - "light.light196": 679019775, - "light.light197": 679085312, - "light.light198": 679150849, - "light.light199": 679216386, - "light.light2": 514983057, - "light.light20": 594740417, - "light.light200": 677643505, + "device.light.unique_id": 1953095294, + "light.light0": 301577847, + "light.light1": 284800228, + "light.light10": 2367138236, + "light.light100": 2822760292, + "light.light101": 2839537911, + "light.light102": 2856315530, + "light.light103": 2873093149, + "light.light104": 2755649816, + "light.light105": 2772427435, + "light.light106": 2789205054, + "light.light107": 2805982673, + "light.light108": 2688539340, + "light.light109": 2705316959, + "light.light11": 2383915855, + "light.light110": 776141037, + "light.light111": 759363418, + "light.light112": 742585799, + "light.light113": 725808180, + "light.light114": 709030561, + "light.light115": 692252942, + "light.light116": 675475323, + "light.light117": 658697704, + "light.light118": 641920085, + "light.light119": 625142466, + "light.light12": 2400693474, + "light.light120": 340070038, + "light.light121": 356847657, + "light.light122": 306514800, + "light.light123": 323292419, + "light.light124": 407180514, + "light.light125": 423958133, + "light.light126": 373625276, + "light.light127": 390402895, + "light.light128": 474290990, + "light.light129": 491068609, + "light.light13": 2417471093, + "light.light130": 440882847, + "light.light131": 424105228, + "light.light132": 474438085, + "light.light133": 457660466, + "light.light134": 373772371, + "light.light135": 356994752, + "light.light136": 407327609, + "light.light137": 390549990, + "light.light138": 575103799, + "light.light139": 558326180, + "light.light14": 2300027760, + "light.light140": 271973824, + "light.light141": 288751443, + "light.light142": 305529062, + "light.light143": 322306681, + "light.light144": 339084300, + "light.light145": 355861919, + "light.light146": 372639538, + "light.light147": 389417157, + "light.light148": 406194776, + "light.light149": 422972395, + "light.light15": 2316805379, + "light.light150": 2520321865, + "light.light151": 2503544246, + "light.light152": 2486766627, + "light.light153": 2469989008, + "light.light154": 2587432341, + "light.light155": 2570654722, + "light.light156": 2553877103, + "light.light157": 2537099484, + "light.light158": 2654542817, + "light.light159": 2637765198, + "light.light16": 2333582998, + "light.light160": 2621134674, + "light.light161": 2637912293, + "light.light162": 2587579436, + "light.light163": 2604357055, + "light.light164": 2554024198, + "light.light165": 2570801817, + "light.light166": 2520468960, + "light.light167": 2537246579, + "light.light168": 2755355626, + "light.light169": 2772133245, + "light.light17": 2350360617, + "light.light170": 2721947483, + "light.light171": 2705169864, + "light.light172": 2755502721, + "light.light173": 2738725102, + "light.light174": 2789057959, + "light.light175": 2772280340, + "light.light176": 2822613197, + "light.light177": 2805835578, + "light.light178": 2587726531, + "light.light179": 2570948912, + "light.light18": 2501359188, + "light.light180": 408166252, + "light.light181": 424943871, + "light.light182": 441721490, + "light.light183": 458499109, + "light.light184": 341055776, + "light.light185": 357833395, + "light.light186": 374611014, + "light.light187": 391388633, + "light.light188": 542387204, + "light.light189": 559164823, + "light.light19": 2518136807, + "light.light190": 508979061, + "light.light191": 492201442, + "light.light192": 475423823, + "light.light193": 458646204, + "light.light194": 441868585, + "light.light195": 425090966, + "light.light196": 408313347, + "light.light197": 391535728, + "light.light198": 643200013, + "light.light199": 626422394, + "light.light2": 335133085, + "light.light20": 522144599, + "light.light200": 1698935589, "light.light201": 1682157970, "light.light202": 1665380351, "light.light203": 1648602732, @@ -522,8 +518,8 @@ async def test_aid_generation_no_unique_ids_handles_collision( "light.light207": 1581492256, "light.light208": 1833156541, "light.light209": 1816378922, - "light.light21": 594805954, - "light.light210": 677774578, + "light.light21": 505366980, + "light.light210": 1598122780, "light.light211": 1614900399, "light.light212": 1631678018, "light.light213": 1648455637, @@ -533,91 +529,91 @@ async def test_aid_generation_no_unique_ids_handles_collision( "light.light217": 1581345161, "light.light218": 1732343732, "light.light219": 1749121351, - "light.light22": 594871491, - "light.light23": 594937028, - "light.light24": 595002565, - "light.light25": 595068102, - "light.light26": 595133639, - "light.light27": 595199176, - "light.light28": 595264713, - "light.light29": 595330250, - "light.light3": 515048594, - "light.light30": 594871490, - "light.light31": 594937027, - "light.light32": 595002564, - "light.light33": 595068101, - "light.light34": 595133638, - "light.light35": 595199175, - "light.light36": 595264712, - "light.light37": 595330249, - "light.light38": 595395786, - "light.light39": 595461323, - "light.light4": 515114131, - "light.light40": 595002563, - "light.light41": 595068100, - "light.light42": 595133637, - "light.light43": 595199174, - "light.light44": 595264711, - "light.light45": 595330248, - "light.light46": 595395785, - "light.light47": 595461322, - "light.light48": 595526859, - "light.light49": 595592396, - "light.light5": 515179668, - "light.light50": 595133636, - "light.light51": 595199173, - "light.light52": 595264710, - "light.light53": 595330247, - "light.light54": 595395784, - "light.light55": 595461321, - "light.light56": 595526858, - "light.light57": 595592395, - "light.light58": 595657932, - "light.light59": 595723469, - "light.light6": 515245205, - "light.light60": 595264709, - "light.light61": 595330246, - "light.light62": 595395783, - "light.light63": 595461320, - "light.light64": 595526857, - "light.light65": 595592394, - "light.light66": 595657931, - "light.light67": 595723468, - "light.light68": 595789005, - "light.light69": 595854542, - "light.light7": 515310742, - "light.light70": 595395782, - "light.light71": 595461319, - "light.light72": 595526856, - "light.light73": 595592393, - "light.light74": 595657930, - "light.light75": 595723467, - "light.light76": 595789004, - "light.light77": 595854541, - "light.light78": 595920078, - "light.light79": 595985615, - "light.light8": 515376279, - "light.light80": 595526855, - "light.light81": 595592392, - "light.light82": 595657929, - "light.light83": 595723466, - "light.light84": 595789003, - "light.light85": 595854540, - "light.light86": 595920077, - "light.light87": 595985614, - "light.light88": 596051151, - "light.light89": 596116688, - "light.light9": 515441816, - "light.light90": 595657928, - "light.light91": 595723465, - "light.light92": 595789002, - "light.light93": 595854539, - "light.light94": 595920076, - "light.light95": 595985613, - "light.light96": 596051150, - "light.light97": 596116687, - "light.light98": 596182224, - "light.light99": 596247761, + "light.light22": 555699837, + "light.light23": 538922218, + "light.light24": 455034123, + "light.light25": 438256504, + "light.light26": 488589361, + "light.light27": 471811742, + "light.light28": 387923647, + "light.light29": 371146028, + "light.light3": 318355466, + "light.light30": 421331790, + "light.light31": 438109409, + "light.light32": 387776552, + "light.light33": 404554171, + "light.light34": 488442266, + "light.light35": 505219885, + "light.light36": 454887028, + "light.light37": 471664647, + "light.light38": 287110838, + "light.light39": 303888457, + "light.light4": 234467371, + "light.light40": 454048385, + "light.light41": 437270766, + "light.light42": 420493147, + "light.light43": 403715528, + "light.light44": 521158861, + "light.light45": 504381242, + "light.light46": 487603623, + "light.light47": 470826004, + "light.light48": 319827433, + "light.light49": 303049814, + "light.light5": 217689752, + "light.light50": 353235576, + "light.light51": 370013195, + "light.light52": 386790814, + "light.light53": 403568433, + "light.light54": 420346052, + "light.light55": 437123671, + "light.light56": 453901290, + "light.light57": 470678909, + "light.light58": 219014624, + "light.light59": 235792243, + "light.light6": 268022609, + "light.light60": 2266325427, + "light.light61": 2249547808, + "light.light62": 2299880665, + "light.light63": 2283103046, + "light.light64": 2333435903, + "light.light65": 2316658284, + "light.light66": 2366991141, + "light.light67": 2350213522, + "light.light68": 2400546379, + "light.light69": 2383768760, + "light.light7": 251244990, + "light.light70": 554861194, + "light.light71": 571638813, + "light.light72": 521305956, + "light.light73": 538083575, + "light.light74": 487750718, + "light.light75": 504528337, + "light.light76": 454195480, + "light.light77": 470973099, + "light.light78": 420640242, + "light.light79": 437417861, + "light.light8": 167356895, + "light.light80": 2735113021, + "light.light81": 2718335402, + "light.light82": 2701557783, + "light.light83": 2684780164, + "light.light84": 2668002545, + "light.light85": 2651224926, + "light.light86": 2634447307, + "light.light87": 2617669688, + "light.light88": 2600892069, + "light.light89": 2584114450, + "light.light9": 150579276, + "light.light90": 2634300212, + "light.light91": 2651077831, + "light.light92": 2667855450, + "light.light93": 2684633069, + "light.light94": 2567189736, + "light.light95": 2583967355, + "light.light96": 2600744974, + "light.light97": 2617522593, + "light.light98": 2500079260, + "light.light99": 2516856879, } aidstore = get_aid_storage_filename_for_entry_id(config_entry.entry_id) diff --git a/tests/components/homekit/test_homekit.py b/tests/components/homekit/test_homekit.py index 5e756ae51b5..dbca6135c89 100644 --- a/tests/components/homekit/test_homekit.py +++ b/tests/components/homekit/test_homekit.py @@ -390,15 +390,15 @@ async def test_homekit_add_accessory(hass): with patch(f"{PATH_HOMEKIT}.get_accessory") as mock_get_acc: mock_get_acc.side_effect = [None, "acc", None] homekit.add_bridge_accessory(State("light.demo", "on")) - mock_get_acc.assert_called_with(hass, "driver", ANY, 363398124, {}) + mock_get_acc.assert_called_with(hass, "driver", ANY, 1403373688, {}) assert not mock_bridge.add_accessory.called homekit.add_bridge_accessory(State("demo.test", "on")) - mock_get_acc.assert_called_with(hass, "driver", ANY, 294192020, {}) + mock_get_acc.assert_called_with(hass, "driver", ANY, 600325356, {}) assert mock_bridge.add_accessory.called homekit.add_bridge_accessory(State("demo.test_2", "on")) - mock_get_acc.assert_called_with(hass, "driver", ANY, 429982757, {}) + mock_get_acc.assert_called_with(hass, "driver", ANY, 1467253281, {}) mock_bridge.add_accessory.assert_called_with("acc")