mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 18:27:09 +00:00
Add matter device serial number (#113878)
This commit is contained in:
parent
afa9517716
commit
c5f6925948
@ -185,10 +185,14 @@ class MatterAdapter:
|
|||||||
endpoint,
|
endpoint,
|
||||||
)
|
)
|
||||||
identifiers = {(DOMAIN, f"{ID_TYPE_DEVICE_ID}_{node_device_id}")}
|
identifiers = {(DOMAIN, f"{ID_TYPE_DEVICE_ID}_{node_device_id}")}
|
||||||
|
serial_number: str | None = None
|
||||||
# if available, we also add the serialnumber as identifier
|
# if available, we also add the serialnumber as identifier
|
||||||
if basic_info.serialNumber and "test" not in basic_info.serialNumber.lower():
|
if (
|
||||||
|
basic_info_serial_number := basic_info.serialNumber
|
||||||
|
) and "test" not in basic_info_serial_number.lower():
|
||||||
# prefix identifier with 'serial_' to be able to filter it
|
# prefix identifier with 'serial_' to be able to filter it
|
||||||
identifiers.add((DOMAIN, f"{ID_TYPE_SERIAL}_{basic_info.serialNumber}"))
|
identifiers.add((DOMAIN, f"{ID_TYPE_SERIAL}_{basic_info_serial_number}"))
|
||||||
|
serial_number = basic_info_serial_number
|
||||||
|
|
||||||
model = (
|
model = (
|
||||||
get_clean_name(basic_info.productName) or device_type.__name__
|
get_clean_name(basic_info.productName) or device_type.__name__
|
||||||
@ -203,6 +207,7 @@ class MatterAdapter:
|
|||||||
sw_version=basic_info.softwareVersionString,
|
sw_version=basic_info.softwareVersionString,
|
||||||
manufacturer=basic_info.vendorName or endpoint.node.device_info.vendorName,
|
manufacturer=basic_info.vendorName or endpoint.node.device_info.vendorName,
|
||||||
model=model,
|
model=model,
|
||||||
|
serial_number=serial_number,
|
||||||
via_device=(DOMAIN, bridge_device_id) if bridge_device_id else None,
|
via_device=(DOMAIN, bridge_device_id) if bridge_device_id else None,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -56,6 +56,7 @@ async def test_device_registry_single_node_device(
|
|||||||
assert entry.model == "Mock Light"
|
assert entry.model == "Mock Light"
|
||||||
assert entry.hw_version == "v1.0"
|
assert entry.hw_version == "v1.0"
|
||||||
assert entry.sw_version == "v1.0"
|
assert entry.sw_version == "v1.0"
|
||||||
|
assert entry.serial_number == "12345678"
|
||||||
|
|
||||||
|
|
||||||
# This tests needs to be adjusted to remove lingering tasks
|
# This tests needs to be adjusted to remove lingering tasks
|
||||||
@ -84,6 +85,7 @@ async def test_device_registry_single_node_device_alt(
|
|||||||
|
|
||||||
# test serial id NOT present as additional identifier
|
# test serial id NOT present as additional identifier
|
||||||
assert (DOMAIN, "serial_TEST_SN") not in entry.identifiers
|
assert (DOMAIN, "serial_TEST_SN") not in entry.identifiers
|
||||||
|
assert entry.serial_number is None
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip("Waiting for a new test fixture")
|
@pytest.mark.skip("Waiting for a new test fixture")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user