Add serial_number to device registry entries (#102334)

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
Erik Montnemery 2023-10-22 15:14:44 +02:00 committed by GitHub
parent b3bd34a024
commit 1621310ba7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 444 additions and 22 deletions

View file

@ -36,7 +36,7 @@ DATA_REGISTRY = "device_registry"
EVENT_DEVICE_REGISTRY_UPDATED = "device_registry_updated" EVENT_DEVICE_REGISTRY_UPDATED = "device_registry_updated"
STORAGE_KEY = "core.device_registry" STORAGE_KEY = "core.device_registry"
STORAGE_VERSION_MAJOR = 1 STORAGE_VERSION_MAJOR = 1
STORAGE_VERSION_MINOR = 3 STORAGE_VERSION_MINOR = 4
SAVE_DELAY = 10 SAVE_DELAY = 10
CLEANUP_DELAY = 10 CLEANUP_DELAY = 10
@ -79,6 +79,7 @@ class DeviceInfo(TypedDict, total=False):
manufacturer: str | None manufacturer: str | None
model: str | None model: str | None
name: str | None name: str | None
serial_number: str | None
suggested_area: str | None suggested_area: str | None
sw_version: str | None sw_version: str | None
hw_version: str | None hw_version: str | None
@ -102,6 +103,7 @@ DEVICE_INFO_TYPES = {
"manufacturer", "manufacturer",
"model", "model",
"name", "name",
"serial_number",
"suggested_area", "suggested_area",
"sw_version", "sw_version",
"via_device", "via_device",
@ -229,6 +231,7 @@ class DeviceEntry:
model: str | None = attr.ib(default=None) model: str | None = attr.ib(default=None)
name_by_user: str | None = attr.ib(default=None) name_by_user: str | None = attr.ib(default=None)
name: str | None = attr.ib(default=None) name: str | None = attr.ib(default=None)
serial_number: str | None = attr.ib(default=None)
suggested_area: str | None = attr.ib(default=None) suggested_area: str | None = attr.ib(default=None)
sw_version: str | None = attr.ib(default=None) sw_version: str | None = attr.ib(default=None)
via_device_id: str | None = attr.ib(default=None) via_device_id: str | None = attr.ib(default=None)
@ -257,6 +260,7 @@ class DeviceEntry:
"model": self.model, "model": self.model,
"name_by_user": self.name_by_user, "name_by_user": self.name_by_user,
"name": self.name, "name": self.name,
"serial_number": self.serial_number,
"sw_version": self.sw_version, "sw_version": self.sw_version,
"via_device_id": self.via_device_id, "via_device_id": self.via_device_id,
} }
@ -359,6 +363,10 @@ class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
# Version 1.3 adds hw_version # Version 1.3 adds hw_version
for device in old_data["devices"]: for device in old_data["devices"]:
device["hw_version"] = None device["hw_version"] = None
if old_minor_version < 4:
# Introduced in 2023.11
for device in old_data["devices"]:
device["serial_number"] = None
if old_major_version > 1: if old_major_version > 1:
raise NotImplementedError raise NotImplementedError
@ -490,6 +498,7 @@ class DeviceRegistry:
manufacturer: str | None | UndefinedType = UNDEFINED, manufacturer: str | None | UndefinedType = UNDEFINED,
model: str | None | UndefinedType = UNDEFINED, model: str | None | UndefinedType = UNDEFINED,
name: str | None | UndefinedType = UNDEFINED, name: str | None | UndefinedType = UNDEFINED,
serial_number: str | None | UndefinedType = UNDEFINED,
suggested_area: str | None | UndefinedType = UNDEFINED, suggested_area: str | None | UndefinedType = UNDEFINED,
sw_version: str | None | UndefinedType = UNDEFINED, sw_version: str | None | UndefinedType = UNDEFINED,
via_device: tuple[str, str] | None | UndefinedType = UNDEFINED, via_device: tuple[str, str] | None | UndefinedType = UNDEFINED,
@ -514,6 +523,7 @@ class DeviceRegistry:
("manufacturer", manufacturer), ("manufacturer", manufacturer),
("model", model), ("model", model),
("name", name), ("name", name),
("serial_number", serial_number),
("suggested_area", suggested_area), ("suggested_area", suggested_area),
("sw_version", sw_version), ("sw_version", sw_version),
("via_device", via_device), ("via_device", via_device),
@ -591,6 +601,7 @@ class DeviceRegistry:
merge_identifiers=identifiers or UNDEFINED, merge_identifiers=identifiers or UNDEFINED,
model=model, model=model,
name=name, name=name,
serial_number=serial_number,
suggested_area=suggested_area, suggested_area=suggested_area,
sw_version=sw_version, sw_version=sw_version,
via_device_id=via_device_id, via_device_id=via_device_id,
@ -620,6 +631,7 @@ class DeviceRegistry:
name: str | None | UndefinedType = UNDEFINED, name: str | None | UndefinedType = UNDEFINED,
new_identifiers: set[tuple[str, str]] | UndefinedType = UNDEFINED, new_identifiers: set[tuple[str, str]] | UndefinedType = UNDEFINED,
remove_config_entry_id: str | UndefinedType = UNDEFINED, remove_config_entry_id: str | UndefinedType = UNDEFINED,
serial_number: str | None | UndefinedType = UNDEFINED,
suggested_area: str | None | UndefinedType = UNDEFINED, suggested_area: str | None | UndefinedType = UNDEFINED,
sw_version: str | None | UndefinedType = UNDEFINED, sw_version: str | None | UndefinedType = UNDEFINED,
via_device_id: str | None | UndefinedType = UNDEFINED, via_device_id: str | None | UndefinedType = UNDEFINED,
@ -709,6 +721,7 @@ class DeviceRegistry:
("model", model), ("model", model),
("name", name), ("name", name),
("name_by_user", name_by_user), ("name_by_user", name_by_user),
("serial_number", serial_number),
("suggested_area", suggested_area), ("suggested_area", suggested_area),
("sw_version", sw_version), ("sw_version", sw_version),
("via_device_id", via_device_id), ("via_device_id", via_device_id),
@ -802,6 +815,7 @@ class DeviceRegistry:
model=device["model"], model=device["model"],
name_by_user=device["name_by_user"], name_by_user=device["name_by_user"],
name=device["name"], name=device["name"],
serial_number=device["serial_number"],
sw_version=device["sw_version"], sw_version=device["sw_version"],
via_device_id=device["via_device_id"], via_device_id=device["via_device_id"],
) )
@ -851,6 +865,7 @@ class DeviceRegistry:
"model": entry.model, "model": entry.model,
"name_by_user": entry.name_by_user, "name_by_user": entry.name_by_user,
"name": entry.name, "name": entry.name,
"serial_number": entry.serial_number,
"sw_version": entry.sw_version, "sw_version": entry.sw_version,
"via_device_id": entry.via_device_id, "via_device_id": entry.via_device_id,
} }

View file

@ -63,6 +63,7 @@ async def test_list_devices(
"model": "model", "model": "model",
"name_by_user": None, "name_by_user": None,
"name": None, "name": None,
"serial_number": None,
"sw_version": None, "sw_version": None,
"via_device_id": None, "via_device_id": None,
}, },
@ -79,6 +80,7 @@ async def test_list_devices(
"model": "model", "model": "model",
"name_by_user": None, "name_by_user": None,
"name": None, "name": None,
"serial_number": None,
"sw_version": None, "sw_version": None,
"via_device_id": dev1, "via_device_id": dev1,
}, },
@ -108,6 +110,7 @@ async def test_list_devices(
"model": "model", "model": "model",
"name_by_user": None, "name_by_user": None,
"name": None, "name": None,
"serial_number": None,
"sw_version": None, "sw_version": None,
"via_device_id": None, "via_device_id": None,
} }

View file

@ -69,6 +69,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,
@ -144,6 +145,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,

View file

@ -101,6 +101,7 @@
'model': 'Elgato Key Light', 'model': 'Elgato Key Light',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.3 (192)', 'sw_version': '1.0.3 (192)',
'via_device_id': None, 'via_device_id': None,
@ -210,6 +211,7 @@
'model': 'Elgato Key Light', 'model': 'Elgato Key Light',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.3 (192)', 'sw_version': '1.0.3 (192)',
'via_device_id': None, 'via_device_id': None,
@ -319,6 +321,7 @@
'model': 'Elgato Key Light', 'model': 'Elgato Key Light',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.3 (192)', 'sw_version': '1.0.3 (192)',
'via_device_id': None, 'via_device_id': None,

View file

@ -76,6 +76,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,
@ -161,6 +162,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,
@ -246,6 +248,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,
@ -328,6 +331,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,
@ -413,6 +417,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,

View file

@ -69,6 +69,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,
@ -144,6 +145,7 @@
'model': 'Elgato Key Light Mini', 'model': 'Elgato Key Light Mini',
'name': 'Frenck', 'name': 'Frenck',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4 (229)', 'sw_version': '1.0.4 (229)',
'via_device_id': None, 'via_device_id': None,

View file

@ -516,6 +516,7 @@
'model': None, 'model': None,
'name': 'Energy market price', 'name': 'Energy market price',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -584,6 +585,7 @@
'model': None, 'model': None,
'name': 'Energy market price', 'name': 'Energy market price',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -649,6 +651,7 @@
'model': None, 'model': None,
'name': 'Energy market price', 'name': 'Energy market price',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -715,6 +718,7 @@
'model': None, 'model': None,
'name': 'Energy market price', 'name': 'Energy market price',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -780,6 +784,7 @@
'model': None, 'model': None,
'name': 'Energy market price', 'name': 'Energy market price',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -848,6 +853,7 @@
'model': None, 'model': None,
'name': 'Gas market price', 'name': 'Gas market price',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -21,6 +21,7 @@
'model': 'Mock Model', 'model': 'Mock Model',
'name': 'Mock Title', 'name': 'Mock Title',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.2.3', 'sw_version': '1.2.3',
'via_device_id': None, 'via_device_id': None,

View file

@ -24,6 +24,7 @@
'model': 'AP2', 'model': 'AP2',
'name': 'Airversa AP2 1808', 'name': 'Airversa AP2 1808',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.16', 'sw_version': '0.8.16',
}), }),
@ -471,6 +472,7 @@
'model': 'T8010', 'model': 'T8010',
'name': 'eufy HomeBase2-0AAA', 'name': 'eufy HomeBase2-0AAA',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '2.1.6', 'sw_version': '2.1.6',
}), }),
@ -536,6 +538,7 @@
'model': 'T8113', 'model': 'T8113',
'name': 'eufyCam2-0000', 'name': 'eufyCam2-0000',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.6.7', 'sw_version': '1.6.7',
}), }),
@ -754,6 +757,7 @@
'model': 'T8113', 'model': 'T8113',
'name': 'eufyCam2-000A', 'name': 'eufyCam2-000A',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.6.7', 'sw_version': '1.6.7',
}), }),
@ -972,6 +976,7 @@
'model': 'T8113', 'model': 'T8113',
'name': 'eufyCam2-000A', 'name': 'eufyCam2-000A',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.6.7', 'sw_version': '1.6.7',
}), }),
@ -1194,6 +1199,7 @@
'model': 'HE1-G01', 'model': 'HE1-G01',
'name': 'Aqara-Hub-E1-00A0', 'name': 'Aqara-Hub-E1-00A0',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '3.3.0', 'sw_version': '3.3.0',
}), }),
@ -1383,6 +1389,7 @@
'model': 'AS006', 'model': 'AS006',
'name': 'Contact Sensor', 'name': 'Contact Sensor',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0', 'sw_version': '0',
}), }),
@ -1531,6 +1538,7 @@
'model': 'ZHWA11LM', 'model': 'ZHWA11LM',
'name': 'Aqara Hub-1563', 'name': 'Aqara Hub-1563',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.4.7', 'sw_version': '1.4.7',
}), }),
@ -1773,6 +1781,7 @@
'model': 'AR004', 'model': 'AR004',
'name': 'Programmable Switch', 'name': 'Programmable Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '9', 'sw_version': '9',
}), }),
@ -1884,6 +1893,7 @@
'model': 'ABC1000', 'model': 'ABC1000',
'name': 'ArloBabyA0', 'name': 'ArloBabyA0',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.10.931', 'sw_version': '1.10.931',
}), }),
@ -2314,6 +2324,7 @@
'model': 'CS-IWO', 'model': 'CS-IWO',
'name': 'InWall Outlet-0394DE', 'name': 'InWall Outlet-0394DE',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.0', 'sw_version': '1.0.0',
}), }),
@ -2703,6 +2714,7 @@
'model': 'REMOTE SENSOR', 'model': 'REMOTE SENSOR',
'name': 'Basement', 'name': 'Basement',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.0', 'sw_version': '1.0.0',
}), }),
@ -2846,6 +2858,7 @@
'model': 'ecobee3', 'model': 'ecobee3',
'name': 'HomeW', 'name': 'HomeW',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '4.2.394', 'sw_version': '4.2.394',
}), }),
@ -3261,6 +3274,7 @@
'model': 'REMOTE SENSOR', 'model': 'REMOTE SENSOR',
'name': 'Kitchen', 'name': 'Kitchen',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.0', 'sw_version': '1.0.0',
}), }),
@ -3404,6 +3418,7 @@
'model': 'REMOTE SENSOR', 'model': 'REMOTE SENSOR',
'name': 'Porch', 'name': 'Porch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.0', 'sw_version': '1.0.0',
}), }),
@ -3551,6 +3566,7 @@
'model': 'ecobee3', 'model': 'ecobee3',
'name': 'HomeW', 'name': 'HomeW',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '4.2.394', 'sw_version': '4.2.394',
}), }),
@ -3970,6 +3986,7 @@
'model': 'REMOTE SENSOR', 'model': 'REMOTE SENSOR',
'name': 'Basement', 'name': 'Basement',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.0', 'sw_version': '1.0.0',
}), }),
@ -4072,6 +4089,7 @@
'model': 'ecobee3', 'model': 'ecobee3',
'name': 'HomeW', 'name': 'HomeW',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '4.2.394', 'sw_version': '4.2.394',
}), }),
@ -4330,6 +4348,7 @@
'model': 'REMOTE SENSOR', 'model': 'REMOTE SENSOR',
'name': 'Kitchen', 'name': 'Kitchen',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.0', 'sw_version': '1.0.0',
}), }),
@ -4473,6 +4492,7 @@
'model': 'REMOTE SENSOR', 'model': 'REMOTE SENSOR',
'name': 'Porch', 'name': 'Porch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.0', 'sw_version': '1.0.0',
}), }),
@ -4620,6 +4640,7 @@
'model': 'ECB501', 'model': 'ECB501',
'name': 'My ecobee', 'name': 'My ecobee',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '4.7.340214', 'sw_version': '4.7.340214',
}), }),
@ -5048,6 +5069,7 @@
'model': 'ecobee Switch+', 'model': 'ecobee Switch+',
'name': 'Master Fan', 'name': 'Master Fan',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '4.5.130201', 'sw_version': '4.5.130201',
}), }),
@ -5309,6 +5331,7 @@
'model': 'Eve Degree 00AAA0000', 'model': 'Eve Degree 00AAA0000',
'name': 'Eve Degree AA11', 'name': 'Eve Degree AA11',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.2.8', 'sw_version': '1.2.8',
}), }),
@ -5635,6 +5658,7 @@
'model': 'Eve Energy 20EAO8601', 'model': 'Eve Energy 20EAO8601',
'name': 'Eve Energy 50FF', 'name': 'Eve Energy 50FF',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.2.9', 'sw_version': '1.2.9',
}), }),
@ -5942,6 +5966,7 @@
'model': 'RavenSystem HAA', 'model': 'RavenSystem HAA',
'name': 'HAA-C718B3', 'name': 'HAA-C718B3',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '5.0.18', 'sw_version': '5.0.18',
}), }),
@ -6124,6 +6149,7 @@
'model': 'RavenSystem HAA', 'model': 'RavenSystem HAA',
'name': 'HAA-C718B3', 'name': 'HAA-C718B3',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '5.0.18', 'sw_version': '5.0.18',
}), }),
@ -6229,6 +6255,7 @@
'model': 'Fan', 'model': 'Fan',
'name': 'Ceiling Fan', 'name': 'Ceiling Fan',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.104.0.dev0', 'sw_version': '0.104.0.dev0',
}), }),
@ -6337,6 +6364,7 @@
'model': 'Bridge', 'model': 'Bridge',
'name': 'Home Assistant Bridge', 'name': 'Home Assistant Bridge',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.104.0.dev0', 'sw_version': '0.104.0.dev0',
}), }),
@ -6402,6 +6430,7 @@
'model': 'Fan', 'model': 'Fan',
'name': 'Living Room Fan', 'name': 'Living Room Fan',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.104.0.dev0', 'sw_version': '0.104.0.dev0',
}), }),
@ -6515,6 +6544,7 @@
'model': 'Fan', 'model': 'Fan',
'name': 'Ceiling Fan', 'name': 'Ceiling Fan',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.104.0.dev0', 'sw_version': '0.104.0.dev0',
}), }),
@ -6623,6 +6653,7 @@
'model': 'Bridge', 'model': 'Bridge',
'name': 'Home Assistant Bridge', 'name': 'Home Assistant Bridge',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.104.0.dev0', 'sw_version': '0.104.0.dev0',
}), }),
@ -6688,6 +6719,7 @@
'model': 'Fan', 'model': 'Fan',
'name': 'Living Room Fan', 'name': 'Living Room Fan',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.104.0.dev0', 'sw_version': '0.104.0.dev0',
}), }),
@ -6802,6 +6834,7 @@
'model': 'Bridge', 'model': 'Bridge',
'name': 'Home Assistant Bridge', 'name': 'Home Assistant Bridge',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.104.0.dev0', 'sw_version': '0.104.0.dev0',
}), }),
@ -6867,6 +6900,7 @@
'model': 'Fan', 'model': 'Fan',
'name': 'Living Room Fan', 'name': 'Living Room Fan',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.104.0.dev0', 'sw_version': '0.104.0.dev0',
}), }),
@ -6981,6 +7015,7 @@
'model': 'Daikin-fwec3a-esp32-homekit-bridge', 'model': 'Daikin-fwec3a-esp32-homekit-bridge',
'name': 'Air Conditioner', 'name': 'Air Conditioner',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.0', 'sw_version': '1.0.0',
}), }),
@ -7163,6 +7198,7 @@
'model': 'LTW012', 'model': 'LTW012',
'name': 'Hue ambiance candle', 'name': 'Hue ambiance candle',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -7287,6 +7323,7 @@
'model': 'LTW012', 'model': 'LTW012',
'name': 'Hue ambiance candle', 'name': 'Hue ambiance candle',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -7411,6 +7448,7 @@
'model': 'LTW012', 'model': 'LTW012',
'name': 'Hue ambiance candle', 'name': 'Hue ambiance candle',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -7535,6 +7573,7 @@
'model': 'LTW012', 'model': 'LTW012',
'name': 'Hue ambiance candle', 'name': 'Hue ambiance candle',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -7659,6 +7698,7 @@
'model': 'LTW013', 'model': 'LTW013',
'name': 'Hue ambiance spot', 'name': 'Hue ambiance spot',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -7793,6 +7833,7 @@
'model': 'LTW013', 'model': 'LTW013',
'name': 'Hue ambiance spot', 'name': 'Hue ambiance spot',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -7927,6 +7968,7 @@
'model': 'RWL021', 'model': 'RWL021',
'name': 'Hue dimmer switch', 'name': 'Hue dimmer switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '45.1.17846', 'sw_version': '45.1.17846',
}), }),
@ -8214,6 +8256,7 @@
'model': 'LWB010', 'model': 'LWB010',
'name': 'Hue white lamp', 'name': 'Hue white lamp',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -8325,6 +8368,7 @@
'model': 'LWB010', 'model': 'LWB010',
'name': 'Hue white lamp', 'name': 'Hue white lamp',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -8436,6 +8480,7 @@
'model': 'LWB010', 'model': 'LWB010',
'name': 'Hue white lamp', 'name': 'Hue white lamp',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -8547,6 +8592,7 @@
'model': 'LWB010', 'model': 'LWB010',
'name': 'Hue white lamp', 'name': 'Hue white lamp',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -8658,6 +8704,7 @@
'model': 'LWB010', 'model': 'LWB010',
'name': 'Hue white lamp', 'name': 'Hue white lamp',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -8769,6 +8816,7 @@
'model': 'LWB010', 'model': 'LWB010',
'name': 'Hue white lamp', 'name': 'Hue white lamp',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -8880,6 +8928,7 @@
'model': 'LWB010', 'model': 'LWB010',
'name': 'Hue white lamp', 'name': 'Hue white lamp',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.46.13', 'sw_version': '1.46.13',
}), }),
@ -8991,6 +9040,7 @@
'model': 'BSB002', 'model': 'BSB002',
'name': 'Philips hue - 482544', 'name': 'Philips hue - 482544',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.32.1932126170', 'sw_version': '1.32.1932126170',
}), }),
@ -9060,6 +9110,7 @@
'model': 'LS1', 'model': 'LS1',
'name': 'Koogeek-LS1-20833F', 'name': 'Koogeek-LS1-20833F',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '2.2.15', 'sw_version': '2.2.15',
}), }),
@ -9178,6 +9229,7 @@
'model': 'P1EU', 'model': 'P1EU',
'name': 'Koogeek-P1-A00AA0', 'name': 'Koogeek-P1-A00AA0',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '2.3.7', 'sw_version': '2.3.7',
}), }),
@ -9325,6 +9377,7 @@
'model': 'KH02CN', 'model': 'KH02CN',
'name': 'Koogeek-SW2-187A91', 'name': 'Koogeek-SW2-187A91',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.3', 'sw_version': '1.0.3',
}), }),
@ -9507,6 +9560,7 @@
'model': 'E30 2B', 'model': 'E30 2B',
'name': 'Lennox', 'name': 'Lennox',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '3.40.XX', 'sw_version': '3.40.XX',
}), }),
@ -9764,6 +9818,7 @@
'model': 'OLED55B9PUA', 'model': 'OLED55B9PUA',
'name': 'LG webOS TV AF80', 'name': 'LG webOS TV AF80',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '04.71.04', 'sw_version': '04.71.04',
}), }),
@ -9928,6 +9983,7 @@
'model': 'PD-FSQN-XX', 'model': 'PD-FSQN-XX',
'name': 'Caséta® Wireless Fan Speed Control', 'name': 'Caséta® Wireless Fan Speed Control',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '001.005', 'sw_version': '001.005',
}), }),
@ -10036,6 +10092,7 @@
'model': 'L-BDG2-WH', 'model': 'L-BDG2-WH',
'name': 'Smart Bridge 2', 'name': 'Smart Bridge 2',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '08.08', 'sw_version': '08.08',
}), }),
@ -10105,6 +10162,7 @@
'model': 'MSS425F', 'model': 'MSS425F',
'name': 'MSS425F-15cc', 'name': 'MSS425F-15cc',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '4.2.3', 'sw_version': '4.2.3',
}), }),
@ -10354,6 +10412,7 @@
'model': 'MSS565', 'model': 'MSS565',
'name': 'MSS565-28da', 'name': 'MSS565-28da',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '4.1.9', 'sw_version': '4.1.9',
}), }),
@ -10469,6 +10528,7 @@
'model': 'v1', 'model': 'v1',
'name': 'Mysa-85dda9', 'name': 'Mysa-85dda9',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '2.8.1', 'sw_version': '2.8.1',
}), }),
@ -10770,6 +10830,7 @@
'model': 'NL55', 'model': 'NL55',
'name': 'Nanoleaf Strip 3B32', 'name': 'Nanoleaf Strip 3B32',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.4.40', 'sw_version': '1.4.40',
}), }),
@ -11056,6 +11117,7 @@
'model': 'Netatmo Doorbell', 'model': 'Netatmo Doorbell',
'name': 'Netatmo-Doorbell-g738658', 'name': 'Netatmo-Doorbell-g738658',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '80.0.0', 'sw_version': '80.0.0',
}), }),
@ -11322,6 +11384,7 @@
'model': 'Smart CO Alarm', 'model': 'Smart CO Alarm',
'name': 'Smart CO Alarm', 'name': 'Smart CO Alarm',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.3', 'sw_version': '1.0.3',
}), }),
@ -11465,6 +11528,7 @@
'model': 'Healthy Home Coach', 'model': 'Healthy Home Coach',
'name': 'Healthy Home Coach', 'name': 'Healthy Home Coach',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '59', 'sw_version': '59',
}), }),
@ -11738,6 +11802,7 @@
'model': 'SPK5 Pro', 'model': 'SPK5 Pro',
'name': 'RainMachine-00ce4a', 'name': 'RainMachine-00ce4a',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.0.4', 'sw_version': '1.0.4',
}), }),
@ -12127,6 +12192,7 @@
'model': 'RYSE Shade', 'model': 'RYSE Shade',
'name': 'Master Bath South', 'name': 'Master Bath South',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '3.0.8', 'sw_version': '3.0.8',
}), }),
@ -12272,6 +12338,7 @@
'model': 'RYSE SmartBridge', 'model': 'RYSE SmartBridge',
'name': 'RYSE SmartBridge', 'name': 'RYSE SmartBridge',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.3.0', 'sw_version': '1.3.0',
}), }),
@ -12337,6 +12404,7 @@
'model': 'RYSE Shade', 'model': 'RYSE Shade',
'name': 'RYSE SmartShade', 'name': 'RYSE SmartShade',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '', 'sw_version': '',
}), }),
@ -12486,6 +12554,7 @@
'model': 'RYSE Shade', 'model': 'RYSE Shade',
'name': 'BR Left', 'name': 'BR Left',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '3.0.8', 'sw_version': '3.0.8',
}), }),
@ -12631,6 +12700,7 @@
'model': 'RYSE Shade', 'model': 'RYSE Shade',
'name': 'LR Left', 'name': 'LR Left',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '3.0.8', 'sw_version': '3.0.8',
}), }),
@ -12776,6 +12846,7 @@
'model': 'RYSE Shade', 'model': 'RYSE Shade',
'name': 'LR Right', 'name': 'LR Right',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '3.0.8', 'sw_version': '3.0.8',
}), }),
@ -12921,6 +12992,7 @@
'model': 'RYSE SmartBridge', 'model': 'RYSE SmartBridge',
'name': 'RYSE SmartBridge', 'name': 'RYSE SmartBridge',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.3.0', 'sw_version': '1.3.0',
}), }),
@ -12986,6 +13058,7 @@
'model': 'RYSE Shade', 'model': 'RYSE Shade',
'name': 'RZSS', 'name': 'RZSS',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '3.0.8', 'sw_version': '3.0.8',
}), }),
@ -13135,6 +13208,7 @@
'model': 'BE479CAM619', 'model': 'BE479CAM619',
'name': 'SENSE ', 'name': 'SENSE ',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '004.027.000', 'sw_version': '004.027.000',
}), }),
@ -13241,6 +13315,7 @@
'model': 'SIMPLEconnect', 'model': 'SIMPLEconnect',
'name': 'SIMPLEconnect Fan-06F674', 'name': 'SIMPLEconnect Fan-06F674',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '', 'sw_version': '',
}), }),
@ -13400,6 +13475,7 @@
'model': 'VELUX Gateway', 'model': 'VELUX Gateway',
'name': 'VELUX Gateway', 'name': 'VELUX Gateway',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '70', 'sw_version': '70',
}), }),
@ -13465,6 +13541,7 @@
'model': 'VELUX Sensor', 'model': 'VELUX Sensor',
'name': 'VELUX Sensor', 'name': 'VELUX Sensor',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '16', 'sw_version': '16',
}), }),
@ -13653,6 +13730,7 @@
'model': 'VELUX Window', 'model': 'VELUX Window',
'name': 'VELUX Window', 'name': 'VELUX Window',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '48', 'sw_version': '48',
}), }),
@ -13761,6 +13839,7 @@
'model': 'Flowerbud', 'model': 'Flowerbud',
'name': 'VOCOlinc-Flowerbud-0d324b', 'name': 'VOCOlinc-Flowerbud-0d324b',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '3.121.2', 'sw_version': '3.121.2',
}), }),
@ -14030,6 +14109,7 @@
'model': 'VP3', 'model': 'VP3',
'name': 'VOCOlinc-VP3-123456', 'name': 'VOCOlinc-VP3-123456',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '1.101.2', 'sw_version': '1.101.2',
}), }),

View file

@ -34,6 +34,7 @@
'model': 'DS2405', 'model': 'DS2405',
'name': '05.111111111111', 'name': '05.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -71,6 +72,7 @@
'model': 'DS18S20', 'model': 'DS18S20',
'name': '10.111111111111', 'name': '10.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -108,6 +110,7 @@
'model': 'DS2406', 'model': 'DS2406',
'name': '12.111111111111', 'name': '12.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -227,6 +230,7 @@
'model': 'DS2423', 'model': 'DS2423',
'name': '1D.111111111111', 'name': '1D.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -264,6 +268,7 @@
'model': 'DS2409', 'model': 'DS2409',
'name': '1F.111111111111', 'name': '1F.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -289,6 +294,7 @@
'model': 'DS2423', 'model': 'DS2423',
'name': '1D.111111111111', 'name': '1D.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': <ANY>, 'via_device_id': <ANY>,
@ -326,6 +332,7 @@
'model': 'DS1822', 'model': 'DS1822',
'name': '22.111111111111', 'name': '22.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -363,6 +370,7 @@
'model': 'DS2438', 'model': 'DS2438',
'name': '26.111111111111', 'name': '26.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -400,6 +408,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.111111111111', 'name': '28.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -437,6 +446,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.222222222222', 'name': '28.222222222222',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -474,6 +484,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.222222222223', 'name': '28.222222222223',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -511,6 +522,7 @@
'model': 'DS2408', 'model': 'DS2408',
'name': '29.111111111111', 'name': '29.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -876,6 +888,7 @@
'model': 'DS2760', 'model': 'DS2760',
'name': '30.111111111111', 'name': '30.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -913,6 +926,7 @@
'model': 'DS2413', 'model': 'DS2413',
'name': '3A.111111111111', 'name': '3A.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1032,6 +1046,7 @@
'model': 'DS1825', 'model': 'DS1825',
'name': '3B.111111111111', 'name': '3B.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1069,6 +1084,7 @@
'model': 'DS28EA00', 'model': 'DS28EA00',
'name': '42.111111111111', 'name': '42.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1106,6 +1122,7 @@
'model': 'EDS0068', 'model': 'EDS0068',
'name': '7E.111111111111', 'name': '7E.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1143,6 +1160,7 @@
'model': 'EDS0066', 'model': 'EDS0066',
'name': '7E.222222222222', 'name': '7E.222222222222',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1180,6 +1198,7 @@
'model': 'HobbyBoards_EF', 'model': 'HobbyBoards_EF',
'name': 'EF.111111111111', 'name': 'EF.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1217,6 +1236,7 @@
'model': 'HB_MOISTURE_METER', 'model': 'HB_MOISTURE_METER',
'name': 'EF.111111111112', 'name': 'EF.111111111112',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1254,6 +1274,7 @@
'model': 'HB_HUB', 'model': 'HB_HUB',
'name': 'EF.111111111113', 'name': 'EF.111111111113',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -34,6 +34,7 @@
'model': 'DS2405', 'model': 'DS2405',
'name': '05.111111111111', 'name': '05.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -71,6 +72,7 @@
'model': 'DS18S20', 'model': 'DS18S20',
'name': '10.111111111111', 'name': '10.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -154,6 +156,7 @@
'model': 'DS2406', 'model': 'DS2406',
'name': '12.111111111111', 'name': '12.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -283,6 +286,7 @@
'model': 'DS2423', 'model': 'DS2423',
'name': '1D.111111111111', 'name': '1D.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -410,6 +414,7 @@
'model': 'DS2409', 'model': 'DS2409',
'name': '1F.111111111111', 'name': '1F.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -435,6 +440,7 @@
'model': 'DS2423', 'model': 'DS2423',
'name': '1D.111111111111', 'name': '1D.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': <ANY>, 'via_device_id': <ANY>,
@ -562,6 +568,7 @@
'model': 'DS1822', 'model': 'DS1822',
'name': '22.111111111111', 'name': '22.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -645,6 +652,7 @@
'model': 'DS2438', 'model': 'DS2438',
'name': '26.111111111111', 'name': '26.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1188,6 +1196,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.111111111111', 'name': '28.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1271,6 +1280,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.222222222222', 'name': '28.222222222222',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1354,6 +1364,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.222222222223', 'name': '28.222222222223',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1437,6 +1448,7 @@
'model': 'DS2408', 'model': 'DS2408',
'name': '29.111111111111', 'name': '29.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1474,6 +1486,7 @@
'model': 'DS2760', 'model': 'DS2760',
'name': '30.111111111111', 'name': '30.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1695,6 +1708,7 @@
'model': 'DS2413', 'model': 'DS2413',
'name': '3A.111111111111', 'name': '3A.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1732,6 +1746,7 @@
'model': 'DS1825', 'model': 'DS1825',
'name': '3B.111111111111', 'name': '3B.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1815,6 +1830,7 @@
'model': 'DS28EA00', 'model': 'DS28EA00',
'name': '42.111111111111', 'name': '42.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1898,6 +1914,7 @@
'model': 'EDS0068', 'model': 'EDS0068',
'name': '7E.111111111111', 'name': '7E.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -2119,6 +2136,7 @@
'model': 'EDS0066', 'model': 'EDS0066',
'name': '7E.222222222222', 'name': '7E.222222222222',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -2248,6 +2266,7 @@
'model': 'HobbyBoards_EF', 'model': 'HobbyBoards_EF',
'name': 'EF.111111111111', 'name': 'EF.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -2423,6 +2442,7 @@
'model': 'HB_MOISTURE_METER', 'model': 'HB_MOISTURE_METER',
'name': 'EF.111111111112', 'name': 'EF.111111111112',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -2644,6 +2664,7 @@
'model': 'HB_HUB', 'model': 'HB_HUB',
'name': 'EF.111111111113', 'name': 'EF.111111111113',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -34,6 +34,7 @@
'model': 'DS2405', 'model': 'DS2405',
'name': '05.111111111111', 'name': '05.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -112,6 +113,7 @@
'model': 'DS18S20', 'model': 'DS18S20',
'name': '10.111111111111', 'name': '10.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -149,6 +151,7 @@
'model': 'DS2406', 'model': 'DS2406',
'name': '12.111111111111', 'name': '12.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -350,6 +353,7 @@
'model': 'DS2423', 'model': 'DS2423',
'name': '1D.111111111111', 'name': '1D.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -387,6 +391,7 @@
'model': 'DS2409', 'model': 'DS2409',
'name': '1F.111111111111', 'name': '1F.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -412,6 +417,7 @@
'model': 'DS2423', 'model': 'DS2423',
'name': '1D.111111111111', 'name': '1D.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': <ANY>, 'via_device_id': <ANY>,
@ -449,6 +455,7 @@
'model': 'DS1822', 'model': 'DS1822',
'name': '22.111111111111', 'name': '22.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -486,6 +493,7 @@
'model': 'DS2438', 'model': 'DS2438',
'name': '26.111111111111', 'name': '26.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -564,6 +572,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.111111111111', 'name': '28.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -601,6 +610,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.222222222222', 'name': '28.222222222222',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -638,6 +648,7 @@
'model': 'DS18B20', 'model': 'DS18B20',
'name': '28.222222222223', 'name': '28.222222222223',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -675,6 +686,7 @@
'model': 'DS2408', 'model': 'DS2408',
'name': '29.111111111111', 'name': '29.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1368,6 +1380,7 @@
'model': 'DS2760', 'model': 'DS2760',
'name': '30.111111111111', 'name': '30.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1405,6 +1418,7 @@
'model': 'DS2413', 'model': 'DS2413',
'name': '3A.111111111111', 'name': '3A.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1524,6 +1538,7 @@
'model': 'DS1825', 'model': 'DS1825',
'name': '3B.111111111111', 'name': '3B.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1561,6 +1576,7 @@
'model': 'DS28EA00', 'model': 'DS28EA00',
'name': '42.111111111111', 'name': '42.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1598,6 +1614,7 @@
'model': 'EDS0068', 'model': 'EDS0068',
'name': '7E.111111111111', 'name': '7E.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1635,6 +1652,7 @@
'model': 'EDS0066', 'model': 'EDS0066',
'name': '7E.222222222222', 'name': '7E.222222222222',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1672,6 +1690,7 @@
'model': 'HobbyBoards_EF', 'model': 'HobbyBoards_EF',
'name': 'EF.111111111111', 'name': 'EF.111111111111',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -1709,6 +1728,7 @@
'model': 'HB_MOISTURE_METER', 'model': 'HB_MOISTURE_METER',
'name': 'EF.111111111112', 'name': 'EF.111111111112',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -2074,6 +2094,7 @@
'model': 'HB_HUB', 'model': 'HB_HUB',
'name': 'EF.111111111113', 'name': 'EF.111111111113',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -299,6 +300,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -656,6 +658,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -813,6 +816,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,
@ -1210,6 +1214,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -1487,6 +1492,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -1844,6 +1850,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -2001,6 +2008,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -99,6 +100,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -256,6 +258,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -413,6 +416,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,
@ -570,6 +574,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -647,6 +652,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -804,6 +810,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -961,6 +968,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -100,6 +101,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -178,6 +180,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -215,6 +218,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,
@ -293,6 +297,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -374,6 +379,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -455,6 +461,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -492,6 +499,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -59,6 +60,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -147,6 +149,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -235,6 +238,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,
@ -323,6 +327,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -360,6 +365,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -448,6 +454,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -536,6 +543,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -312,6 +313,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -1024,6 +1026,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -1730,6 +1733,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,
@ -2476,6 +2480,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -2766,6 +2771,7 @@
'model': 'Captur ii', 'model': 'Captur ii',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'XJB1SU', 'sw_version': 'XJB1SU',
'via_device_id': None, 'via_device_id': None,
@ -3478,6 +3484,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X101VE', 'sw_version': 'X101VE',
'via_device_id': None, 'via_device_id': None,
@ -4184,6 +4191,7 @@
'model': 'Zoe', 'model': 'Zoe',
'name': 'REG-NUMBER', 'name': 'REG-NUMBER',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'X102VE', 'sw_version': 'X102VE',
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'NB6VAC-FXC-r0', 'model': 'NB6VAC-FXC-r0',
'name': 'SFR Box', 'name': 'SFR Box',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'NB6VAC-MAIN-R4.0.44k', 'sw_version': 'NB6VAC-MAIN-R4.0.44k',
'via_device_id': None, 'via_device_id': None,
@ -139,6 +140,7 @@
'model': 'NB6VAC-FXC-r0', 'model': 'NB6VAC-FXC-r0',
'name': 'SFR Box', 'name': 'SFR Box',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'NB6VAC-MAIN-R4.0.44k', 'sw_version': 'NB6VAC-MAIN-R4.0.44k',
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'NB6VAC-FXC-r0', 'model': 'NB6VAC-FXC-r0',
'name': 'SFR Box', 'name': 'SFR Box',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'NB6VAC-MAIN-R4.0.44k', 'sw_version': 'NB6VAC-MAIN-R4.0.44k',
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'NB6VAC-FXC-r0', 'model': 'NB6VAC-FXC-r0',
'name': 'SFR Box', 'name': 'SFR Box',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': 'NB6VAC-MAIN-R4.0.44k', 'sw_version': 'NB6VAC-MAIN-R4.0.44k',
'via_device_id': None, 'via_device_id': None,

View file

@ -97,6 +97,7 @@
'model': None, 'model': None,
'name': 'Twente Milieu', 'name': 'Twente Milieu',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -66,6 +66,7 @@
'model': None, 'model': None,
'name': 'Twente Milieu', 'name': 'Twente Milieu',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -138,6 +139,7 @@
'model': None, 'model': None,
'name': 'Twente Milieu', 'name': 'Twente Milieu',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -210,6 +212,7 @@
'model': None, 'model': None,
'name': 'Twente Milieu', 'name': 'Twente Milieu',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -282,6 +285,7 @@
'model': None, 'model': None,
'name': 'Twente Milieu', 'name': 'Twente Milieu',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -354,6 +358,7 @@
'model': None, 'model': None,
'name': 'Twente Milieu', 'name': 'Twente Milieu',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -58,6 +58,7 @@
'model': None, 'model': None,
'name': 'Uptime', 'name': 'Uptime',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -79,6 +80,7 @@
'model': None, 'model': None,
'name': 'Uptime', 'name': 'Uptime',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'LV-PUR131S', 'model': 'LV-PUR131S',
'name': 'Air Purifier 131s', 'name': 'Air Purifier 131s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -106,6 +107,7 @@
'model': 'Core200S', 'model': 'Core200S',
'name': 'Air Purifier 200s', 'name': 'Air Purifier 200s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -195,6 +197,7 @@
'model': 'LAP-C401S-WJP', 'model': 'LAP-C401S-WJP',
'name': 'Air Purifier 400s', 'name': 'Air Purifier 400s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -286,6 +289,7 @@
'model': 'LAP-C601S-WUS', 'model': 'LAP-C601S-WUS',
'name': 'Air Purifier 600s', 'name': 'Air Purifier 600s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -377,6 +381,7 @@
'model': 'ESL100', 'model': 'ESL100',
'name': 'Dimmable Light', 'name': 'Dimmable Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -410,6 +415,7 @@
'model': 'ESWD16', 'model': 'ESWD16',
'name': 'Dimmer Switch', 'name': 'Dimmer Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -459,6 +465,7 @@
'model': 'wifi-switch-1.3', 'model': 'wifi-switch-1.3',
'name': 'Outlet', 'name': 'Outlet',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -492,6 +499,7 @@
'model': 'ESL100CW', 'model': 'ESL100CW',
'name': 'Temperature Light', 'name': 'Temperature Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -525,6 +533,7 @@
'model': 'ESWL01', 'model': 'ESWL01',
'name': 'Wall Switch', 'name': 'Wall Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'LV-PUR131S', 'model': 'LV-PUR131S',
'name': 'Air Purifier 131s', 'name': 'Air Purifier 131s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -55,6 +56,7 @@
'model': 'Core200S', 'model': 'Core200S',
'name': 'Air Purifier 200s', 'name': 'Air Purifier 200s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -88,6 +90,7 @@
'model': 'LAP-C401S-WJP', 'model': 'LAP-C401S-WJP',
'name': 'Air Purifier 400s', 'name': 'Air Purifier 400s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -121,6 +124,7 @@
'model': 'LAP-C601S-WUS', 'model': 'LAP-C601S-WUS',
'name': 'Air Purifier 600s', 'name': 'Air Purifier 600s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -154,6 +158,7 @@
'model': 'ESL100', 'model': 'ESL100',
'name': 'Dimmable Light', 'name': 'Dimmable Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -236,6 +241,7 @@
'model': 'ESWD16', 'model': 'ESWD16',
'name': 'Dimmer Switch', 'name': 'Dimmer Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -336,6 +342,7 @@
'model': 'wifi-switch-1.3', 'model': 'wifi-switch-1.3',
'name': 'Outlet', 'name': 'Outlet',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -369,6 +376,7 @@
'model': 'ESL100CW', 'model': 'ESL100CW',
'name': 'Temperature Light', 'name': 'Temperature Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -466,6 +474,7 @@
'model': 'ESWL01', 'model': 'ESWL01',
'name': 'Wall Switch', 'name': 'Wall Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'LV-PUR131S', 'model': 'LV-PUR131S',
'name': 'Air Purifier 131s', 'name': 'Air Purifier 131s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -141,6 +142,7 @@
'model': 'Core200S', 'model': 'Core200S',
'name': 'Air Purifier 200s', 'name': 'Air Purifier 200s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -219,6 +221,7 @@
'model': 'LAP-C401S-WJP', 'model': 'LAP-C401S-WJP',
'name': 'Air Purifier 400s', 'name': 'Air Purifier 400s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -384,6 +387,7 @@
'model': 'LAP-C601S-WUS', 'model': 'LAP-C601S-WUS',
'name': 'Air Purifier 600s', 'name': 'Air Purifier 600s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -549,6 +553,7 @@
'model': 'ESL100', 'model': 'ESL100',
'name': 'Dimmable Light', 'name': 'Dimmable Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -582,6 +587,7 @@
'model': 'ESWD16', 'model': 'ESWD16',
'name': 'Dimmer Switch', 'name': 'Dimmer Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -631,6 +637,7 @@
'model': 'wifi-switch-1.3', 'model': 'wifi-switch-1.3',
'name': 'Outlet', 'name': 'Outlet',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -940,6 +947,7 @@
'model': 'ESL100CW', 'model': 'ESL100CW',
'name': 'Temperature Light', 'name': 'Temperature Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -973,6 +981,7 @@
'model': 'ESWL01', 'model': 'ESWL01',
'name': 'Wall Switch', 'name': 'Wall Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -22,6 +22,7 @@
'model': 'LV-PUR131S', 'model': 'LV-PUR131S',
'name': 'Air Purifier 131s', 'name': 'Air Purifier 131s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -55,6 +56,7 @@
'model': 'Core200S', 'model': 'Core200S',
'name': 'Air Purifier 200s', 'name': 'Air Purifier 200s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -88,6 +90,7 @@
'model': 'LAP-C401S-WJP', 'model': 'LAP-C401S-WJP',
'name': 'Air Purifier 400s', 'name': 'Air Purifier 400s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -121,6 +124,7 @@
'model': 'LAP-C601S-WUS', 'model': 'LAP-C601S-WUS',
'name': 'Air Purifier 600s', 'name': 'Air Purifier 600s',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -154,6 +158,7 @@
'model': 'ESL100', 'model': 'ESL100',
'name': 'Dimmable Light', 'name': 'Dimmable Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -187,6 +192,7 @@
'model': 'ESWD16', 'model': 'ESWD16',
'name': 'Dimmer Switch', 'name': 'Dimmer Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -236,6 +242,7 @@
'model': 'wifi-switch-1.3', 'model': 'wifi-switch-1.3',
'name': 'Outlet', 'name': 'Outlet',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -310,6 +317,7 @@
'model': 'ESL100CW', 'model': 'ESL100CW',
'name': 'Temperature Light', 'name': 'Temperature Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -343,6 +351,7 @@
'model': 'ESWL01', 'model': 'ESWL01',
'name': 'Wall Switch', 'name': 'Wall Switch',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -65,6 +65,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -136,6 +137,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -212,6 +214,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -283,6 +286,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -354,6 +358,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -425,6 +430,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -496,6 +502,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -567,6 +574,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,
@ -638,6 +646,7 @@
'model': None, 'model': None,
'name': 'home-assistant.io', 'name': 'home-assistant.io',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': None, 'sw_version': None,
'via_device_id': None, 'via_device_id': None,

View file

@ -69,6 +69,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,

View file

@ -69,6 +69,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,

View file

@ -77,6 +77,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,
@ -161,6 +162,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,

View file

@ -80,6 +80,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,
@ -260,6 +261,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,
@ -344,6 +346,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGBW Light', 'name': 'WLED RGBW Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.6b4', 'sw_version': '0.8.6b4',
'via_device_id': None, 'via_device_id': None,
@ -428,6 +431,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGBW Light', 'name': 'WLED RGBW Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.6b4', 'sw_version': '0.8.6b4',
'via_device_id': None, 'via_device_id': None,

View file

@ -72,6 +72,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,
@ -147,6 +148,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,
@ -223,6 +225,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,
@ -299,6 +302,7 @@
'model': 'DIY light', 'model': 'DIY light',
'name': 'WLED RGB Light', 'name': 'WLED RGB Light',
'name_by_user': None, 'name_by_user': None,
'serial_number': None,
'suggested_area': None, 'suggested_area': None,
'sw_version': '0.8.5', 'sw_version': '0.8.5',
'via_device_id': None, 'via_device_id': None,

View file

@ -198,11 +198,12 @@ async def test_loading_from_storage(
"entry_type": dr.DeviceEntryType.SERVICE, "entry_type": dr.DeviceEntryType.SERVICE,
"hw_version": "hw_version", "hw_version": "hw_version",
"id": "abcdefghijklm", "id": "abcdefghijklm",
"identifiers": [["serial", "12:34:56:AB:CD:EF"]], "identifiers": [["serial", "123456ABCDEF"]],
"manufacturer": "manufacturer", "manufacturer": "manufacturer",
"model": "model", "model": "model",
"name_by_user": "Test Friendly Name", "name_by_user": "Test Friendly Name",
"name": "name", "name": "name",
"serial_number": "serial_no",
"sw_version": "version", "sw_version": "version",
"via_device_id": None, "via_device_id": None,
} }
@ -212,7 +213,7 @@ async def test_loading_from_storage(
"config_entries": [mock_config_entry.entry_id], "config_entries": [mock_config_entry.entry_id],
"connections": [["Zigbee", "23.45.67.89.01"]], "connections": [["Zigbee", "23.45.67.89.01"]],
"id": "bcdefghijklmn", "id": "bcdefghijklmn",
"identifiers": [["serial", "34:56:AB:CD:EF:12"]], "identifiers": [["serial", "3456ABCDEF12"]],
"orphaned_timestamp": None, "orphaned_timestamp": None,
} }
], ],
@ -227,7 +228,7 @@ async def test_loading_from_storage(
entry = registry.async_get_or_create( entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id, config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")}, connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "12:34:56:AB:CD:EF")}, identifiers={("serial", "123456ABCDEF")},
manufacturer="manufacturer", manufacturer="manufacturer",
model="model", model="model",
) )
@ -240,11 +241,12 @@ async def test_loading_from_storage(
entry_type=dr.DeviceEntryType.SERVICE, entry_type=dr.DeviceEntryType.SERVICE,
hw_version="hw_version", hw_version="hw_version",
id="abcdefghijklm", id="abcdefghijklm",
identifiers={("serial", "12:34:56:AB:CD:EF")}, identifiers={("serial", "123456ABCDEF")},
manufacturer="manufacturer", manufacturer="manufacturer",
model="model", model="model",
name_by_user="Test Friendly Name", name_by_user="Test Friendly Name",
name="name", name="name",
serial_number="serial_no",
suggested_area=None, # Not stored suggested_area=None, # Not stored
sw_version="version", sw_version="version",
) )
@ -256,7 +258,7 @@ async def test_loading_from_storage(
entry = registry.async_get_or_create( entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id, config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "23.45.67.89.01")}, connections={("Zigbee", "23.45.67.89.01")},
identifiers={("serial", "34:56:AB:CD:EF:12")}, identifiers={("serial", "3456ABCDEF12")},
manufacturer="manufacturer", manufacturer="manufacturer",
model="model", model="model",
) )
@ -264,7 +266,7 @@ async def test_loading_from_storage(
config_entries={mock_config_entry.entry_id}, config_entries={mock_config_entry.entry_id},
connections={("Zigbee", "23.45.67.89.01")}, connections={("Zigbee", "23.45.67.89.01")},
id="bcdefghijklmn", id="bcdefghijklmn",
identifiers={("serial", "34:56:AB:CD:EF:12")}, identifiers={("serial", "3456ABCDEF12")},
manufacturer="manufacturer", manufacturer="manufacturer",
model="model", model="model",
) )
@ -275,12 +277,12 @@ async def test_loading_from_storage(
@pytest.mark.parametrize("load_registries", [False]) @pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_1_to_1_3( async def test_migration_1_1_to_1_4(
hass: HomeAssistant, hass: HomeAssistant,
hass_storage: dict[str, Any], hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry, mock_config_entry: MockConfigEntry,
) -> None: ) -> None:
"""Test migration from version 1.1 to 1.3.""" """Test migration from version 1.1 to 1.4."""
hass_storage[dr.STORAGE_KEY] = { hass_storage[dr.STORAGE_KEY] = {
"version": 1, "version": 1,
"minor_version": 1, "minor_version": 1,
@ -291,7 +293,7 @@ async def test_migration_1_1_to_1_3(
"connections": [["Zigbee", "01.23.45.67.89"]], "connections": [["Zigbee", "01.23.45.67.89"]],
"entry_type": "service", "entry_type": "service",
"id": "abcdefghijklm", "id": "abcdefghijklm",
"identifiers": [["serial", "12:34:56:AB:CD:EF"]], "identifiers": [["serial", "123456ABCDEF"]],
"manufacturer": "manufacturer", "manufacturer": "manufacturer",
"model": "model", "model": "model",
"name": "name", "name": "name",
@ -316,7 +318,7 @@ async def test_migration_1_1_to_1_3(
"connections": [], "connections": [],
"entry_type": "service", "entry_type": "service",
"id": "deletedid", "id": "deletedid",
"identifiers": [["serial", "12:34:56:AB:CD:FF"]], "identifiers": [["serial", "123456ABCDFF"]],
"manufacturer": "manufacturer", "manufacturer": "manufacturer",
"model": "model", "model": "model",
"name": "name", "name": "name",
@ -333,7 +335,7 @@ async def test_migration_1_1_to_1_3(
entry = registry.async_get_or_create( entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id, config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")}, connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "12:34:56:AB:CD:EF")}, identifiers={("serial", "123456ABCDEF")},
) )
assert entry.id == "abcdefghijklm" assert entry.id == "abcdefghijklm"
@ -341,7 +343,7 @@ async def test_migration_1_1_to_1_3(
entry = registry.async_get_or_create( entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id, config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")}, connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "12:34:56:AB:CD:EF")}, identifiers={("serial", "123456ABCDEF")},
sw_version="new_version", sw_version="new_version",
) )
assert entry.id == "abcdefghijklm" assert entry.id == "abcdefghijklm"
@ -363,11 +365,12 @@ async def test_migration_1_1_to_1_3(
"entry_type": "service", "entry_type": "service",
"hw_version": None, "hw_version": None,
"id": "abcdefghijklm", "id": "abcdefghijklm",
"identifiers": [["serial", "12:34:56:AB:CD:EF"]], "identifiers": [["serial", "123456ABCDEF"]],
"manufacturer": "manufacturer", "manufacturer": "manufacturer",
"model": "model", "model": "model",
"name": "name", "name": "name",
"name_by_user": None, "name_by_user": None,
"serial_number": None,
"sw_version": "new_version", "sw_version": "new_version",
"via_device_id": None, "via_device_id": None,
}, },
@ -385,6 +388,7 @@ async def test_migration_1_1_to_1_3(
"model": None, "model": None,
"name_by_user": None, "name_by_user": None,
"name": None, "name": None,
"serial_number": None,
"sw_version": None, "sw_version": None,
"via_device_id": None, "via_device_id": None,
}, },
@ -394,7 +398,7 @@ async def test_migration_1_1_to_1_3(
"config_entries": ["123456"], "config_entries": ["123456"],
"connections": [], "connections": [],
"id": "deletedid", "id": "deletedid",
"identifiers": [["serial", "12:34:56:AB:CD:FF"]], "identifiers": [["serial", "123456ABCDFF"]],
"orphaned_timestamp": None, "orphaned_timestamp": None,
} }
], ],
@ -403,7 +407,7 @@ async def test_migration_1_1_to_1_3(
@pytest.mark.parametrize("load_registries", [False]) @pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_2_to_1_3( async def test_migration_1_2_to_1_4(
hass: HomeAssistant, hass: HomeAssistant,
hass_storage: dict[str, Any], hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry, mock_config_entry: MockConfigEntry,
@ -423,7 +427,7 @@ async def test_migration_1_2_to_1_3(
"disabled_by": None, "disabled_by": None,
"entry_type": "service", "entry_type": "service",
"id": "abcdefghijklm", "id": "abcdefghijklm",
"identifiers": [["serial", "12:34:56:AB:CD:EF"]], "identifiers": [["serial", "123456ABCDEF"]],
"manufacturer": "manufacturer", "manufacturer": "manufacturer",
"model": "model", "model": "model",
"name": "name", "name": "name",
@ -459,7 +463,7 @@ async def test_migration_1_2_to_1_3(
entry = registry.async_get_or_create( entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id, config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")}, connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "12:34:56:AB:CD:EF")}, identifiers={("serial", "123456ABCDEF")},
) )
assert entry.id == "abcdefghijklm" assert entry.id == "abcdefghijklm"
@ -467,7 +471,7 @@ async def test_migration_1_2_to_1_3(
entry = registry.async_get_or_create( entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id, config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")}, connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "12:34:56:AB:CD:EF")}, identifiers={("serial", "123456ABCDEF")},
sw_version="new_version", sw_version="new_version",
) )
assert entry.id == "abcdefghijklm" assert entry.id == "abcdefghijklm"
@ -490,11 +494,12 @@ async def test_migration_1_2_to_1_3(
"entry_type": "service", "entry_type": "service",
"hw_version": None, "hw_version": None,
"id": "abcdefghijklm", "id": "abcdefghijklm",
"identifiers": [["serial", "12:34:56:AB:CD:EF"]], "identifiers": [["serial", "123456ABCDEF"]],
"manufacturer": "manufacturer", "manufacturer": "manufacturer",
"model": "model", "model": "model",
"name": "name", "name": "name",
"name_by_user": None, "name_by_user": None,
"serial_number": None,
"sw_version": "new_version", "sw_version": "new_version",
"via_device_id": None, "via_device_id": None,
}, },
@ -512,6 +517,130 @@ async def test_migration_1_2_to_1_3(
"model": None, "model": None,
"name_by_user": None, "name_by_user": None,
"name": None, "name": None,
"serial_number": None,
"sw_version": None,
"via_device_id": None,
},
],
"deleted_devices": [],
},
}
@pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_3_to_1_4(
hass: HomeAssistant,
hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry,
):
"""Test migration from version 1.3 to 1.4."""
hass_storage[dr.STORAGE_KEY] = {
"version": 1,
"minor_version": 3,
"key": dr.STORAGE_KEY,
"data": {
"devices": [
{
"area_id": None,
"config_entries": [mock_config_entry.entry_id],
"configuration_url": None,
"connections": [["Zigbee", "01.23.45.67.89"]],
"disabled_by": None,
"entry_type": "service",
"hw_version": "hw_version",
"id": "abcdefghijklm",
"identifiers": [["serial", "123456ABCDEF"]],
"manufacturer": "manufacturer",
"model": "model",
"name": "name",
"name_by_user": None,
"sw_version": "version",
"via_device_id": None,
},
{
"area_id": None,
"config_entries": [None],
"configuration_url": None,
"connections": [],
"disabled_by": None,
"entry_type": None,
"hw_version": None,
"id": "invalid-entry-type",
"identifiers": [["serial", "mock-id-invalid-entry"]],
"manufacturer": None,
"model": None,
"name_by_user": None,
"name": None,
"sw_version": None,
"via_device_id": None,
},
],
"deleted_devices": [],
},
}
await dr.async_load(hass)
registry = dr.async_get(hass)
# Test data was loaded
entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "123456ABCDEF")},
)
assert entry.id == "abcdefghijklm"
# Update to trigger a store
entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "123456ABCDEF")},
sw_version="new_version",
)
assert entry.id == "abcdefghijklm"
# Check we store migrated data
await flush_store(registry._store)
assert hass_storage[dr.STORAGE_KEY] == {
"version": dr.STORAGE_VERSION_MAJOR,
"minor_version": dr.STORAGE_VERSION_MINOR,
"key": dr.STORAGE_KEY,
"data": {
"devices": [
{
"area_id": None,
"config_entries": [mock_config_entry.entry_id],
"configuration_url": None,
"connections": [["Zigbee", "01.23.45.67.89"]],
"disabled_by": None,
"entry_type": "service",
"hw_version": "hw_version",
"id": "abcdefghijklm",
"identifiers": [["serial", "123456ABCDEF"]],
"manufacturer": "manufacturer",
"model": "model",
"name": "name",
"name_by_user": None,
"serial_number": None,
"sw_version": "new_version",
"via_device_id": None,
},
{
"area_id": None,
"config_entries": [None],
"configuration_url": None,
"connections": [],
"disabled_by": None,
"entry_type": None,
"hw_version": None,
"id": "invalid-entry-type",
"identifiers": [["serial", "mock-id-invalid-entry"]],
"manufacturer": None,
"model": None,
"name_by_user": None,
"name": None,
"serial_number": None,
"sw_version": None, "sw_version": None,
"via_device_id": None, "via_device_id": None,
}, },
@ -996,6 +1125,7 @@ async def test_update(
name_by_user="Test Friendly Name", name_by_user="Test Friendly Name",
name="name", name="name",
new_identifiers=new_identifiers, new_identifiers=new_identifiers,
serial_number="serial_no",
suggested_area="suggested_area", suggested_area="suggested_area",
sw_version="version", sw_version="version",
via_device_id="98765B", via_device_id="98765B",
@ -1017,6 +1147,7 @@ async def test_update(
model="Test Model", model="Test Model",
name_by_user="Test Friendly Name", name_by_user="Test Friendly Name",
name="name", name="name",
serial_number="serial_no",
suggested_area="suggested_area", suggested_area="suggested_area",
sw_version="version", sw_version="version",
via_device_id="98765B", via_device_id="98765B",
@ -1060,6 +1191,7 @@ async def test_update(
"model": None, "model": None,
"name": None, "name": None,
"name_by_user": None, "name_by_user": None,
"serial_number": None,
"suggested_area": None, "suggested_area": None,
"sw_version": None, "sw_version": None,
"via_device_id": None, "via_device_id": None,
@ -1856,11 +1988,12 @@ async def test_loading_invalid_configuration_url_from_storage(
"entry_type": dr.DeviceEntryType.SERVICE, "entry_type": dr.DeviceEntryType.SERVICE,
"hw_version": None, "hw_version": None,
"id": "abcdefghijklm", "id": "abcdefghijklm",
"identifiers": [["serial", "12:34:56:AB:CD:EF"]], "identifiers": [["serial", "123456ABCDEF"]],
"manufacturer": None, "manufacturer": None,
"model": None, "model": None,
"name_by_user": None, "name_by_user": None,
"name": None, "name": None,
"serial_number": None,
"sw_version": None, "sw_version": None,
"via_device_id": None, "via_device_id": None,
} }
@ -1874,6 +2007,6 @@ async def test_loading_invalid_configuration_url_from_storage(
assert len(registry.devices) == 1 assert len(registry.devices) == 1
entry = registry.async_get_or_create( entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id, config_entry_id=mock_config_entry.entry_id,
identifiers={("serial", "12:34:56:AB:CD:EF")}, identifiers={("serial", "123456ABCDEF")},
) )
assert entry.configuration_url == "invalid" assert entry.configuration_url == "invalid"