1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00

Add serial_number to device registry entries (#77713)

This commit is contained in:
Erik Montnemery
2022-09-27 09:08:54 +02:00
committed by GitHub
parent c52d0f7495
commit cba3b6ad94
4 changed files with 148 additions and 5 deletions

View File

@@ -32,7 +32,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
@@ -83,6 +83,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)
@@ -180,6 +181,10 @@ class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
# Introduced in 2022.2
for device in old_data["devices"]:
device["hw_version"] = device.get("hw_version")
if old_minor_version < 4:
# Introduced in 2022.10
for device in old_data["devices"]:
device["serial_number"] = device.get("serial_number")
if old_major_version > 1:
raise NotImplementedError
@@ -301,6 +306,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 = None,
@@ -366,6 +372,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,
@@ -395,6 +402,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,
@@ -479,6 +487,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),
@@ -566,6 +575,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"],
)
@@ -608,6 +618,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,
}