Add serial_number to device registry entries (#102334)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
parent
b3bd34a024
commit
1621310ba7
34 changed files with 444 additions and 22 deletions
|
@ -36,7 +36,7 @@ DATA_REGISTRY = "device_registry"
|
|||
EVENT_DEVICE_REGISTRY_UPDATED = "device_registry_updated"
|
||||
STORAGE_KEY = "core.device_registry"
|
||||
STORAGE_VERSION_MAJOR = 1
|
||||
STORAGE_VERSION_MINOR = 3
|
||||
STORAGE_VERSION_MINOR = 4
|
||||
SAVE_DELAY = 10
|
||||
CLEANUP_DELAY = 10
|
||||
|
||||
|
@ -79,6 +79,7 @@ class DeviceInfo(TypedDict, total=False):
|
|||
manufacturer: str | None
|
||||
model: str | None
|
||||
name: str | None
|
||||
serial_number: str | None
|
||||
suggested_area: str | None
|
||||
sw_version: str | None
|
||||
hw_version: str | None
|
||||
|
@ -102,6 +103,7 @@ DEVICE_INFO_TYPES = {
|
|||
"manufacturer",
|
||||
"model",
|
||||
"name",
|
||||
"serial_number",
|
||||
"suggested_area",
|
||||
"sw_version",
|
||||
"via_device",
|
||||
|
@ -229,6 +231,7 @@ class DeviceEntry:
|
|||
model: str | None = attr.ib(default=None)
|
||||
name_by_user: 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)
|
||||
sw_version: str | None = attr.ib(default=None)
|
||||
via_device_id: str | None = attr.ib(default=None)
|
||||
|
@ -257,6 +260,7 @@ class DeviceEntry:
|
|||
"model": self.model,
|
||||
"name_by_user": self.name_by_user,
|
||||
"name": self.name,
|
||||
"serial_number": self.serial_number,
|
||||
"sw_version": self.sw_version,
|
||||
"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
|
||||
for device in old_data["devices"]:
|
||||
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:
|
||||
raise NotImplementedError
|
||||
|
@ -490,6 +498,7 @@ class DeviceRegistry:
|
|||
manufacturer: str | None | UndefinedType = UNDEFINED,
|
||||
model: str | None | UndefinedType = UNDEFINED,
|
||||
name: str | None | UndefinedType = UNDEFINED,
|
||||
serial_number: str | None | UndefinedType = UNDEFINED,
|
||||
suggested_area: str | None | UndefinedType = UNDEFINED,
|
||||
sw_version: str | None | UndefinedType = UNDEFINED,
|
||||
via_device: tuple[str, str] | None | UndefinedType = UNDEFINED,
|
||||
|
@ -514,6 +523,7 @@ class DeviceRegistry:
|
|||
("manufacturer", manufacturer),
|
||||
("model", model),
|
||||
("name", name),
|
||||
("serial_number", serial_number),
|
||||
("suggested_area", suggested_area),
|
||||
("sw_version", sw_version),
|
||||
("via_device", via_device),
|
||||
|
@ -591,6 +601,7 @@ class DeviceRegistry:
|
|||
merge_identifiers=identifiers or UNDEFINED,
|
||||
model=model,
|
||||
name=name,
|
||||
serial_number=serial_number,
|
||||
suggested_area=suggested_area,
|
||||
sw_version=sw_version,
|
||||
via_device_id=via_device_id,
|
||||
|
@ -620,6 +631,7 @@ class DeviceRegistry:
|
|||
name: str | None | UndefinedType = UNDEFINED,
|
||||
new_identifiers: set[tuple[str, str]] | UndefinedType = UNDEFINED,
|
||||
remove_config_entry_id: str | UndefinedType = UNDEFINED,
|
||||
serial_number: str | None | UndefinedType = UNDEFINED,
|
||||
suggested_area: str | None | UndefinedType = UNDEFINED,
|
||||
sw_version: str | None | UndefinedType = UNDEFINED,
|
||||
via_device_id: str | None | UndefinedType = UNDEFINED,
|
||||
|
@ -709,6 +721,7 @@ class DeviceRegistry:
|
|||
("model", model),
|
||||
("name", name),
|
||||
("name_by_user", name_by_user),
|
||||
("serial_number", serial_number),
|
||||
("suggested_area", suggested_area),
|
||||
("sw_version", sw_version),
|
||||
("via_device_id", via_device_id),
|
||||
|
@ -802,6 +815,7 @@ class DeviceRegistry:
|
|||
model=device["model"],
|
||||
name_by_user=device["name_by_user"],
|
||||
name=device["name"],
|
||||
serial_number=device["serial_number"],
|
||||
sw_version=device["sw_version"],
|
||||
via_device_id=device["via_device_id"],
|
||||
)
|
||||
|
@ -851,6 +865,7 @@ class DeviceRegistry:
|
|||
"model": entry.model,
|
||||
"name_by_user": entry.name_by_user,
|
||||
"name": entry.name,
|
||||
"serial_number": entry.serial_number,
|
||||
"sw_version": entry.sw_version,
|
||||
"via_device_id": entry.via_device_id,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue