Bump python-matter-server to 3.0.0 (#88607)

* Bump python-matter-server to 3.0.0

Include all fixes for the changed api schema of the library

* fix test fixtures

* remove invalid data from fixtures

* fix some of the tests

* fix binary sensor bug

* fix sensor bug

* fix switch test

* fix tests

* adjust bugs and typos
This commit is contained in:
Marcel van der Veldt 2023-02-22 20:24:30 +01:00 committed by GitHub
parent 9c7adfc4b2
commit 881e85d74f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
39 changed files with 3687 additions and 31021 deletions

View file

@ -5,12 +5,8 @@ import asyncio
import async_timeout
from matter_server.client import MatterClient
from matter_server.client.exceptions import (
CannotConnect,
FailedCommand,
InvalidServerVersion,
)
from matter_server.common.models.error import MatterError
from matter_server.client.exceptions import CannotConnect, InvalidServerVersion
from matter_server.common.errors import MatterError, NodeCommissionFailed
import voluptuous as vol
from homeassistant.components.hassio import AddonError, AddonManager, AddonState
@ -211,31 +207,10 @@ def _async_init_services(hass: HomeAssistant) -> None:
"""Get node id from ha device id."""
dev_reg = dr.async_get(hass)
device = dev_reg.async_get(ha_device_id)
if device is None:
return None
matter_id = next(
(
identifier
for identifier in device.identifiers
if identifier[0] == DOMAIN
),
None,
)
if not matter_id:
return None
unique_id = matter_id[1]
matter_client = get_matter(hass).matter_client
# This could be more efficient
for node in await matter_client.get_nodes():
if node.unique_id == unique_id:
return node.node_id
if node := await get_node_from_device_entry(hass, device):
return node.node_id
return None
async def open_commissioning_window(call: ServiceCall) -> None:
@ -251,7 +226,7 @@ def _async_init_services(hass: HomeAssistant) -> None:
try:
await matter_client.open_commissioning_window(node_id)
except FailedCommand as err:
except NodeCommissionFailed as err:
raise HomeAssistantError(str(err)) from err
async_register_admin_service(

View file

@ -4,12 +4,11 @@ from __future__ import annotations
from typing import TYPE_CHECKING, cast
from chip.clusters import Objects as all_clusters
from matter_server.common.models.events import EventType
from matter_server.common.models.node_device import (
from matter_server.client.models.node_device import (
AbstractMatterNodeDevice,
MatterBridgedNodeDevice,
)
from matter_server.common.models.server_information import ServerInfo
from matter_server.common.models import EventType, ServerInfoMessage
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
@ -23,7 +22,7 @@ from .helpers import get_device_id
if TYPE_CHECKING:
from matter_server.client import MatterClient
from matter_server.common.models.node import MatterNode
from matter_server.client.models.node import MatterNode
class MatterAdapter:
@ -70,15 +69,19 @@ class MatterAdapter:
bridge_unique_id: str | None = None
if node.aggregator_device_type_instance is not None and (
node.root_device_type_instance.get_cluster(all_clusters.BasicInformation)
if (
node.aggregator_device_type_instance is not None
and node.root_device_type_instance is not None
and node.root_device_type_instance.get_cluster(
all_clusters.BasicInformation
)
):
# create virtual (parent) device for bridge node device
bridge_device = MatterBridgedNodeDevice(
node.aggregator_device_type_instance
)
self._create_device_registry(bridge_device)
server_info = cast(ServerInfo, self.matter_client.server_info)
server_info = cast(ServerInfoMessage, self.matter_client.server_info)
bridge_unique_id = get_device_id(server_info, bridge_device)
for node_device in node.node_devices:
@ -90,7 +93,7 @@ class MatterAdapter:
bridge_unique_id: str | None = None,
) -> None:
"""Create a device registry entry."""
server_info = cast(ServerInfo, self.matter_client.server_info)
server_info = cast(ServerInfoMessage, self.matter_client.server_info)
basic_info = node_device.device_info()
device_type_instances = node_device.device_type_instances()

View file

@ -5,7 +5,7 @@ from collections.abc import Callable
from functools import wraps
from typing import Any
from matter_server.client.exceptions import FailedCommand
from matter_server.common.errors import MatterError
import voluptuous as vol
from homeassistant.components import websocket_api
@ -44,7 +44,7 @@ def async_get_matter_adapter(func: Callable) -> Callable:
def async_handle_failed_command(func: Callable) -> Callable:
"""Decorate function to handle FailedCommand and send relevant error."""
"""Decorate function to handle MatterError and send relevant error."""
@wraps(func)
async def async_handle_failed_command_func(
@ -54,11 +54,11 @@ def async_handle_failed_command(func: Callable) -> Callable:
*args: Any,
**kwargs: Any,
) -> None:
"""Handle FailedCommand within function and send relevant error."""
"""Handle MatterError within function and send relevant error."""
try:
await func(hass, connection, msg, *args, **kwargs)
except FailedCommand as err:
connection.send_error(msg[ID], err.error_code, err.args[0])
except MatterError as err:
connection.send_error(msg[ID], str(err.error_code), err.args[0])
return async_handle_failed_command_func

View file

@ -5,7 +5,7 @@ from dataclasses import dataclass
from functools import partial
from chip.clusters import Objects as clusters
from matter_server.common.models import device_types
from matter_server.client.models import device_types
from homeassistant.components.binary_sensor import (
BinarySensorDeviceClass,
@ -39,8 +39,10 @@ class MatterBinarySensor(MatterEntity, BinarySensorEntity):
@callback
def _update_from_device(self) -> None:
"""Update from device."""
cluster = self._device_type_instance.get_cluster(clusters.BooleanState)
self._attr_is_on = cluster.stateValue if cluster else None
self._attr_is_on = self.get_matter_attribute_value(
# We always subscribe to a single value
self.entity_description.subscribe_attributes[0],
)
class MatterOccupancySensor(MatterBinarySensor):
@ -51,9 +53,12 @@ class MatterOccupancySensor(MatterBinarySensor):
@callback
def _update_from_device(self) -> None:
"""Update from device."""
cluster = self._device_type_instance.get_cluster(clusters.OccupancySensing)
value = self.get_matter_attribute_value(
# We always subscribe to a single value
self.entity_description.subscribe_attributes[0],
)
# The first bit = if occupied
self._attr_is_on = cluster.occupancy & 1 == 1 if cluster else None
self._attr_is_on = (value & 1 == 1) if value is not None else None
@dataclass

View file

@ -11,7 +11,7 @@ from .sensor import DEVICE_ENTITY as SENSOR_DEVICE_ENTITY
from .switch import DEVICE_ENTITY as SWITCH_DEVICE_ENTITY
if TYPE_CHECKING:
from matter_server.common.models.device_types import DeviceType
from matter_server.client.models.device_types import DeviceType
from .entity import MatterEntityDescriptionBaseClass

View file

@ -4,7 +4,8 @@ from __future__ import annotations
from copy import deepcopy
from typing import Any
from matter_server.common.helpers.util import dataclass_to_dict
from chip.clusters import Objects
from matter_server.common.helpers.util import dataclass_to_dict, parse_attribute_path
from homeassistant.components.diagnostics import REDACTED
from homeassistant.config_entries import ConfigEntry
@ -13,16 +14,20 @@ from homeassistant.helpers import device_registry as dr
from .helpers import get_matter, get_node_from_device_entry
ATTRIBUTES_TO_REDACT = {"chip.clusters.Objects.BasicInformation.Attributes.Location"}
ATTRIBUTES_TO_REDACT = {Objects.BasicInformation.Attributes.Location}
def redact_matter_attributes(node_data: dict[str, Any]) -> dict[str, Any]:
"""Redact Matter cluster attribute."""
redacted = deepcopy(node_data)
for attribute_to_redact in ATTRIBUTES_TO_REDACT:
for value in redacted["attributes"].values():
if value["attribute_type"] == attribute_to_redact:
value["value"] = REDACTED
for attribute_path, _value in redacted["attributes"].items():
_, cluster_id, attribute_id = parse_attribute_path(attribute_path)
if cluster_id != attribute_to_redact.cluster_id:
continue
if attribute_id != attribute_to_redact.attribute_id:
continue
redacted["attributes"][attribute_path] = REDACTED
return redacted
@ -40,7 +45,7 @@ async def async_get_config_entry_diagnostics(
"""Return diagnostics for a config entry."""
matter = get_matter(hass)
server_diagnostics = await matter.matter_client.get_diagnostics()
data = remove_serialization_type(dataclass_to_dict(server_diagnostics))
data = dataclass_to_dict(server_diagnostics)
nodes = [redact_matter_attributes(node_data) for node_data in data["nodes"]]
data["nodes"] = nodes
@ -56,10 +61,8 @@ async def async_get_device_diagnostics(
node = await get_node_from_device_entry(hass, device)
return {
"server_info": remove_serialization_type(
dataclass_to_dict(server_diagnostics.info)
),
"server_info": dataclass_to_dict(server_diagnostics.info),
"node": redact_matter_attributes(
remove_serialization_type(dataclass_to_dict(node) if node else {})
remove_serialization_type(dataclass_to_dict(node.node_data) if node else {})
),
}

View file

@ -7,10 +7,11 @@ from dataclasses import dataclass
import logging
from typing import TYPE_CHECKING, Any, cast
from matter_server.common.models.device_type_instance import MatterDeviceTypeInstance
from matter_server.common.models.events import EventType
from matter_server.common.models.node_device import AbstractMatterNodeDevice
from matter_server.common.models.server_information import ServerInfo
from chip.clusters.Objects import ClusterAttributeDescriptor
from matter_server.client.models.device_type_instance import MatterDeviceTypeInstance
from matter_server.client.models.node_device import AbstractMatterNodeDevice
from matter_server.common.helpers.util import create_attribute_path
from matter_server.common.models import EventType, ServerInfoMessage
from homeassistant.core import callback
from homeassistant.helpers.entity import DeviceInfo, Entity, EntityDescription
@ -20,7 +21,6 @@ from .helpers import get_device_id, get_operational_instance_id
if TYPE_CHECKING:
from matter_server.client import MatterClient
from matter_server.common.models.node import MatterAttribute
LOGGER = logging.getLogger(__name__)
@ -59,19 +59,20 @@ class MatterEntity(Entity):
self.entity_description = entity_description
self._unsubscribes: list[Callable] = []
# for fast lookups we create a mapping to the attribute paths
# The server info is set when the client connects to the server.
self._attributes_map: dict[type, str] = {}
server_info = cast(ServerInfo, self.matter_client.server_info)
# The server info is set when the client connects to the server.
server_info = cast(ServerInfoMessage, self.matter_client.server_info)
# create unique_id based on "Operational Instance Name" and endpoint/device type
self._attr_unique_id = (
f"{get_operational_instance_id(server_info, self._node_device.node())}-"
f"{device_type_instance.endpoint}-"
f"{device_type_instance.endpoint.endpoint_id}-"
f"{device_type_instance.device_type.device_type}"
)
node_device_id = get_device_id(server_info, node_device)
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, f"{ID_TYPE_DEVICE_ID}_{node_device_id}")}
)
self._attr_available = self._node_device.node().available
async def async_added_to_hass(self) -> None:
"""Handle being added to Home Assistant."""
@ -79,19 +80,24 @@ class MatterEntity(Entity):
# Subscribe to attribute updates.
for attr_cls in self.entity_description.subscribe_attributes:
if matter_attr := self.get_matter_attribute(attr_cls):
self._attributes_map[attr_cls] = matter_attr.path
self._unsubscribes.append(
self.matter_client.subscribe(
self._on_matter_event,
EventType.ATTRIBUTE_UPDATED,
self._device_type_instance.node.node_id,
matter_attr.path,
)
attr_path = self.get_matter_attribute_path(attr_cls)
self._attributes_map[attr_cls] = attr_path
self._unsubscribes.append(
self.matter_client.subscribe(
callback=self._on_matter_event,
event_filter=EventType.ATTRIBUTE_UPDATED,
node_filter=self._device_type_instance.node.node_id,
attr_path_filter=attr_path,
)
continue
# not sure if this can happen, but just in case log it.
LOGGER.warning("Attribute not found on device: %s", attr_cls)
)
# subscribe to node (availability changes)
self._unsubscribes.append(
self.matter_client.subscribe(
callback=self._on_matter_event,
event_filter=EventType.NODE_UPDATED,
node_filter=self._device_type_instance.node.node_id,
)
)
# make sure to update the attributes once
self._update_from_device()
@ -104,6 +110,7 @@ class MatterEntity(Entity):
@callback
def _on_matter_event(self, event: EventType, data: Any = None) -> None:
"""Call on update."""
self._attr_available = self._device_type_instance.node.available
self._update_from_device()
self.async_write_ha_state()
@ -113,13 +120,18 @@ class MatterEntity(Entity):
"""Update data from Matter device."""
@callback
def get_matter_attribute(self, attribute: type) -> MatterAttribute | None:
"""Lookup MatterAttribute on device by providing the attribute class."""
return next(
(
x
for x in self._device_type_instance.attributes
if x.attribute_type == attribute
),
None,
def get_matter_attribute_value(
self, attribute: type[ClusterAttributeDescriptor]
) -> Any:
"""Get current value for given attribute."""
return self._device_type_instance.get_attribute_value(None, attribute)
@callback
def get_matter_attribute_path(
self, attribute: type[ClusterAttributeDescriptor]
) -> str:
"""Return AttributePath by providing the endpoint and Attribute class."""
endpoint = self._device_type_instance.endpoint.endpoint_id
return create_attribute_path(
endpoint, attribute.cluster_id, attribute.attribute_id
)

View file

@ -11,9 +11,9 @@ from homeassistant.helpers import device_registry as dr
from .const import DOMAIN, ID_TYPE_DEVICE_ID
if TYPE_CHECKING:
from matter_server.common.models.node import MatterNode
from matter_server.common.models.node_device import AbstractMatterNodeDevice
from matter_server.common.models.server_information import ServerInfo
from matter_server.client.models.node import MatterNode
from matter_server.client.models.node_device import AbstractMatterNodeDevice
from matter_server.common.models import ServerInfoMessage
from .adapter import MatterAdapter
@ -37,7 +37,7 @@ def get_matter(hass: HomeAssistant) -> MatterAdapter:
def get_operational_instance_id(
server_info: ServerInfo,
server_info: ServerInfoMessage,
node: MatterNode,
) -> str:
"""Return `Operational Instance Name` for given MatterNode."""
@ -49,7 +49,7 @@ def get_operational_instance_id(
def get_device_id(
server_info: ServerInfo,
server_info: ServerInfoMessage,
node_device: AbstractMatterNodeDevice,
) -> str:
"""Return HA device_id for the given MatterNodeDevice."""

View file

@ -7,7 +7,7 @@ from functools import partial
from typing import Any
from chip.clusters import Objects as clusters
from matter_server.common.models import device_types
from matter_server.client.models import device_types
from homeassistant.components.light import (
ATTR_BRIGHTNESS,
@ -85,15 +85,13 @@ class MatterLight(MatterEntity, LightEntity):
def _supports_color_mode(self, color_feature: MatterColorControlFeatures) -> bool:
"""Return if device supports given color mode."""
feature_map = self._device_type_instance.node.get_attribute(
self._device_type_instance.endpoint,
clusters.ColorControl,
feature_map = self.get_matter_attribute_value(
clusters.ColorControl.Attributes.FeatureMap,
)
assert isinstance(feature_map.value, int)
assert isinstance(feature_map, int)
return self._supports_feature(feature_map.value, color_feature)
return self._supports_feature(feature_map, color_feature)
def _supports_hs_color(self) -> bool:
"""Return if device supports hs color."""
@ -176,7 +174,7 @@ class MatterLight(MatterEntity, LightEntity):
assert level_control is not None
level = round(
level = round( # type: ignore[unreachable]
renormalize(
brightness,
(0, 255),
@ -195,13 +193,17 @@ class MatterLight(MatterEntity, LightEntity):
def _get_xy_color(self) -> tuple[float, float]:
"""Get xy color from matter."""
x_color = self.get_matter_attribute(clusters.ColorControl.Attributes.CurrentX)
y_color = self.get_matter_attribute(clusters.ColorControl.Attributes.CurrentY)
x_color = self.get_matter_attribute_value(
clusters.ColorControl.Attributes.CurrentX
)
y_color = self.get_matter_attribute_value(
clusters.ColorControl.Attributes.CurrentY
)
assert x_color is not None
assert y_color is not None
xy_color = convert_to_hass_xy((x_color.value, y_color.value))
xy_color = convert_to_hass_xy((x_color, y_color))
LOGGER.debug(
"Got xy color %s for %s",
xy_color,
@ -213,16 +215,18 @@ class MatterLight(MatterEntity, LightEntity):
def _get_hs_color(self) -> tuple[float, float]:
"""Get hs color from matter."""
hue = self.get_matter_attribute(clusters.ColorControl.Attributes.CurrentHue)
hue = self.get_matter_attribute_value(
clusters.ColorControl.Attributes.CurrentHue
)
saturation = self.get_matter_attribute(
saturation = self.get_matter_attribute_value(
clusters.ColorControl.Attributes.CurrentSaturation
)
assert hue is not None
assert saturation is not None
hs_color = convert_to_hass_hs((hue.value, saturation.value))
hs_color = convert_to_hass_hs((hue, saturation))
LOGGER.debug(
"Got hs color %s for %s",
@ -235,7 +239,7 @@ class MatterLight(MatterEntity, LightEntity):
def _get_color_temperature(self) -> int:
"""Get color temperature from matter."""
color_temp = self.get_matter_attribute(
color_temp = self.get_matter_attribute_value(
clusters.ColorControl.Attributes.ColorTemperatureMireds
)
@ -243,11 +247,11 @@ class MatterLight(MatterEntity, LightEntity):
LOGGER.debug(
"Got color temperature %s for %s",
color_temp.value,
color_temp,
self._device_type_instance,
)
return int(color_temp.value)
return int(color_temp)
def _get_brightness(self) -> int:
"""Get brightness from matter."""
@ -257,7 +261,7 @@ class MatterLight(MatterEntity, LightEntity):
# We should not get here if brightness is not supported.
assert level_control is not None
LOGGER.debug(
LOGGER.debug( # type: ignore[unreachable]
"Got brightness %s for %s",
level_control.currentLevel,
self._device_type_instance,
@ -274,13 +278,13 @@ class MatterLight(MatterEntity, LightEntity):
def _get_color_mode(self) -> ColorMode:
"""Get color mode from matter."""
color_mode = self.get_matter_attribute(
color_mode = self.get_matter_attribute_value(
clusters.ColorControl.Attributes.ColorMode
)
assert color_mode is not None
ha_color_mode = COLOR_MODE_MAP[MatterColorMode(color_mode.value)]
ha_color_mode = COLOR_MODE_MAP[MatterColorMode(color_mode)]
LOGGER.debug(
"Got color mode (%s) for %s", ha_color_mode, self._device_type_instance
@ -292,7 +296,7 @@ class MatterLight(MatterEntity, LightEntity):
"""Send device command."""
await self.matter_client.send_device_command(
node_id=self._device_type_instance.node.node_id,
endpoint=self._device_type_instance.endpoint,
endpoint_id=self._device_type_instance.endpoint_id,
command=command,
)
@ -369,8 +373,9 @@ class MatterLight(MatterEntity, LightEntity):
if supports_color_temperature:
self._attr_color_temp = self._get_color_temperature()
if attr := self.get_matter_attribute(clusters.OnOff.Attributes.OnOff):
self._attr_is_on = attr.value
self._attr_is_on = self.get_matter_attribute_value(
clusters.OnOff.Attributes.OnOff
)
if supports_brightness:
self._attr_brightness = self._get_brightness()

View file

@ -6,5 +6,5 @@
"dependencies": ["websocket_api"],
"documentation": "https://www.home-assistant.io/integrations/matter",
"iot_class": "local_push",
"requirements": ["python-matter-server==2.1.1"]
"requirements": ["python-matter-server==3.0.0"]
}

View file

@ -4,12 +4,10 @@ from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from functools import partial
from typing import Any
from chip.clusters import Objects as clusters
from chip.clusters.Types import Nullable, NullValue
from matter_server.common.models import device_types
from matter_server.common.models.device_type_instance import MatterDeviceTypeInstance
from matter_server.client.models import device_types
from homeassistant.components.sensor import (
SensorDeviceClass,
@ -53,13 +51,12 @@ class MatterSensor(MatterEntity, SensorEntity):
def _update_from_device(self) -> None:
"""Update from device."""
measurement: Nullable | float | None
measurement = _get_attribute_value(
self._device_type_instance,
measurement = self.get_matter_attribute_value(
# We always subscribe to a single value
self.entity_description.subscribe_attributes[0],
)
if measurement is NullValue or measurement is None:
if measurement == NullValue or measurement is None:
measurement = None
else:
measurement = self.entity_description.measurement_to_ha(measurement)
@ -67,29 +64,6 @@ class MatterSensor(MatterEntity, SensorEntity):
self._attr_native_value = measurement
def _get_attribute_value(
device_type_instance: MatterDeviceTypeInstance,
attribute: clusters.ClusterAttributeDescriptor,
) -> Any:
"""Return the value of an attribute."""
# Find the cluster for this attribute. We don't have a lookup table yet.
cluster_cls: clusters.Cluster = next(
cluster
for cluster in device_type_instance.device_type.clusters
if cluster.id == attribute.cluster_id
)
# Find the attribute descriptor so we know the instance variable to fetch
attribute_descriptor: clusters.ClusterObjectFieldDescriptor = next(
descriptor
for descriptor in cluster_cls.descriptor.Fields
if descriptor.Tag == attribute.attribute_id
)
cluster_data = device_type_instance.get_cluster(cluster_cls)
return getattr(cluster_data, attribute_descriptor.Label)
@dataclass
class MatterSensorEntityDescriptionMixin:
"""Required fields for sensor device mapping."""

View file

@ -6,7 +6,7 @@ from functools import partial
from typing import Any
from chip.clusters import Objects as clusters
from matter_server.common.models import device_types
from matter_server.client.models import device_types
from homeassistant.components.switch import (
SwitchDeviceClass,
@ -41,7 +41,7 @@ class MatterSwitch(MatterEntity, SwitchEntity):
"""Turn switch on."""
await self.matter_client.send_device_command(
node_id=self._device_type_instance.node.node_id,
endpoint=self._device_type_instance.endpoint,
endpoint_id=self._device_type_instance.endpoint_id,
command=clusters.OnOff.Commands.On(),
)
@ -49,15 +49,16 @@ class MatterSwitch(MatterEntity, SwitchEntity):
"""Turn switch off."""
await self.matter_client.send_device_command(
node_id=self._device_type_instance.node.node_id,
endpoint=self._device_type_instance.endpoint,
endpoint_id=self._device_type_instance.endpoint_id,
command=clusters.OnOff.Commands.Off(),
)
@callback
def _update_from_device(self) -> None:
"""Update from device."""
cluster = self._device_type_instance.get_cluster(clusters.OnOff)
self._attr_is_on = cluster.onOff if cluster else None
self._attr_is_on = self.get_matter_attribute_value(
clusters.OnOff.Attributes.OnOff
)
@dataclass

View file

@ -2081,7 +2081,7 @@ python-kasa==0.5.1
# python-lirc==1.2.3
# homeassistant.components.matter
python-matter-server==2.1.1
python-matter-server==3.0.0
# homeassistant.components.xiaomi_miio
python-miio==0.5.12

View file

@ -1480,7 +1480,7 @@ python-juicenet==1.1.0
python-kasa==0.5.1
# homeassistant.components.matter
python-matter-server==2.1.1
python-matter-server==3.0.0
# homeassistant.components.xiaomi_miio
python-miio==0.5.12

View file

@ -6,9 +6,9 @@ import json
from typing import Any
from unittest.mock import MagicMock
from matter_server.client.models.node import MatterNode
from matter_server.common.helpers.util import dataclass_from_dict
from matter_server.common.models.events import EventType
from matter_server.common.models.node import MatterNode
from matter_server.common.models import EventType, MatterNodeData
from homeassistant.core import HomeAssistant
@ -33,9 +33,11 @@ async def setup_integration_with_node_fixture(
) -> MatterNode:
"""Set up Matter integration with fixture as node."""
node_data = load_and_parse_node_fixture(node_fixture)
node = dataclass_from_dict(
MatterNode,
node_data,
node = MatterNode(
dataclass_from_dict(
MatterNodeData,
node_data,
)
)
client.get_nodes.return_value = [node]
client.get_node.return_value = node
@ -58,8 +60,8 @@ def set_node_attribute(
value: Any,
) -> None:
"""Set a node attribute."""
attribute = node.attributes[f"{endpoint}/{cluster_id}/{attribute_id}"]
attribute.value = value
attribute_path = f"{endpoint}/{cluster_id}/{attribute_id}"
node.endpoints[endpoint].set_attribute_value(attribute_path, value)
async def trigger_subscription_callback(
@ -69,6 +71,6 @@ async def trigger_subscription_callback(
data: Any = None,
) -> None:
"""Trigger a subscription callback."""
callback = client.subscribe.call_args[0][0]
callback = client.subscribe.call_args.kwargs["callback"]
callback(event, data)
await hass.async_block_till_done()

View file

@ -6,7 +6,7 @@ from collections.abc import AsyncGenerator, Generator
from unittest.mock import AsyncMock, MagicMock, patch
from matter_server.common.const import SCHEMA_VERSION
from matter_server.common.models.server_information import ServerInfo
from matter_server.common.models import ServerInfoMessage
import pytest
from homeassistant.core import HomeAssistant
@ -39,7 +39,7 @@ async def matter_client_fixture() -> AsyncGenerator[MagicMock, None]:
client.connect = AsyncMock(side_effect=connect)
client.start_listening = AsyncMock(side_effect=listen)
client.server_info = ServerInfo(
client.server_info = ServerInfoMessage(
fabric_id=MOCK_FABRIC_ID,
compressed_fabric_id=MOCK_COMPR_FABRIC_ID,
schema_version=1,

File diff suppressed because it is too large Load diff

View file

@ -2,655 +2,88 @@
"node_id": 1,
"date_commissioned": "2022-11-29T21:23:48.485051",
"last_interview": "2022-11-29T21:23:48.485057",
"interview_version": 1,
"interview_version": 2,
"attributes": {
"0/29/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 22,
"revision": 1
}
]
},
"0/29/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62,
63, 64, 65
]
},
"0/29/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": [41]
},
"0/29/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [1]
},
"0/29/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/29/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/29/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/29/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"0/40/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.DataModelRevision",
"attribute_name": "DataModelRevision",
"value": 1
},
"0/40/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorName",
"attribute_name": "VendorName",
"value": "Nabu Casa"
},
"0/40/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorID",
"attribute_name": "VendorID",
"value": 65521
},
"0/40/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductName",
"attribute_name": "ProductName",
"value": "Mock ContactSensor"
},
"0/40/4": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 4,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductID",
"attribute_name": "ProductID",
"value": 32768
},
"0/40/5": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 5,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.NodeLabel",
"attribute_name": "NodeLabel",
"value": "Mock Contact sensor"
},
"0/40/6": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 6,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Location",
"attribute_name": "Location",
"value": "XX"
},
"0/40/7": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 7,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersion",
"attribute_name": "HardwareVersion",
"value": 0
},
"0/40/8": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 8,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersionString",
"attribute_name": "HardwareVersionString",
"value": "v1.0"
},
"0/40/9": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 9,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersion",
"attribute_name": "SoftwareVersion",
"value": 1
},
"0/40/10": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 10,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersionString",
"attribute_name": "SoftwareVersionString",
"value": "v1.0"
},
"0/40/11": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 11,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ManufacturingDate",
"attribute_name": "ManufacturingDate",
"value": "20221206"
},
"0/40/12": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 12,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.PartNumber",
"attribute_name": "PartNumber",
"value": ""
},
"0/40/13": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 13,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductURL",
"attribute_name": "ProductURL",
"value": ""
},
"0/40/14": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 14,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductLabel",
"attribute_name": "ProductLabel",
"value": ""
},
"0/40/15": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 15,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SerialNumber",
"attribute_name": "SerialNumber",
"value": "TEST_SN"
},
"0/40/16": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 16,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.LocalConfigDisabled",
"attribute_name": "LocalConfigDisabled",
"value": false
},
"0/40/17": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 17,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Reachable",
"attribute_name": "Reachable",
"value": true
},
"0/40/18": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 18,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.UniqueID",
"attribute_name": "UniqueID",
"value": "mock-contact-sensor"
},
"0/40/19": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 19,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.CapabilityMinima",
"attribute_name": "CapabilityMinima",
"value": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
"0/29/0": [
{
"type": 22,
"revision": 1
}
],
"0/29/1": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62, 63,
64, 65
],
"0/29/2": [41],
"0/29/3": [1],
"0/29/65532": 0,
"0/29/65533": 1,
"0/29/65528": [],
"0/29/65529": [],
"0/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"0/40/0": 1,
"0/40/1": "Nabu Casa",
"0/40/2": 65521,
"0/40/3": "Mock ContactSensor",
"0/40/4": 32768,
"0/40/5": "Mock Contact sensor",
"0/40/6": "XX",
"0/40/7": 0,
"0/40/8": "v1.0",
"0/40/9": 1,
"0/40/10": "v1.0",
"0/40/11": "20221206",
"0/40/12": "",
"0/40/13": "",
"0/40/14": "",
"0/40/15": "TEST_SN",
"0/40/16": false,
"0/40/17": true,
"0/40/18": "mock-contact-sensor",
"0/40/19": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
},
"0/40/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/40/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/40/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/40/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/40/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
]
},
"1/3/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.IdentifyTime",
"attribute_name": "IdentifyTime",
"value": 0
},
"1/3/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.IdentifyType",
"attribute_name": "IdentifyType",
"value": 2
},
"1/3/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/3/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 4
},
"1/3/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/3/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": [0, 64]
},
"1/3/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 65528, 65529, 65531, 65532, 65533]
},
"1/29/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 21,
"revision": 1
}
]
},
"1/29/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
3, 4, 5, 6, 7, 8, 15, 29, 30, 37, 47, 59, 64, 65, 69, 80, 257, 258, 259,
512, 513, 514, 516, 768, 1024, 1026, 1027, 1028, 1029, 1030, 1283, 1284,
1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 2820,
4294048773
]
},
"1/29/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": []
},
"1/29/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": []
},
"1/29/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/29/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/29/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/29/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/29/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"1/69/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 69,
"cluster_type": "chip.clusters.Objects.BooleanState",
"cluster_name": "BooleanState",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.BooleanState.Attributes.StateValue",
"attribute_name": "StateValue",
"value": true
},
"1/69/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 69,
"cluster_type": "chip.clusters.Objects.BooleanState",
"cluster_name": "BooleanState",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.BooleanState.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/69/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 69,
"cluster_type": "chip.clusters.Objects.BooleanState",
"cluster_name": "BooleanState",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.BooleanState.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/69/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 69,
"cluster_type": "chip.clusters.Objects.BooleanState",
"cluster_name": "BooleanState",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.BooleanState.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/69/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 69,
"cluster_type": "chip.clusters.Objects.BooleanState",
"cluster_name": "BooleanState",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.BooleanState.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/69/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 69,
"cluster_type": "chip.clusters.Objects.BooleanState",
"cluster_name": "BooleanState",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.BooleanState.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 65528, 65529, 65531, 65532, 65533]
}
"0/40/65532": 0,
"0/40/65533": 1,
"0/40/65528": [],
"0/40/65529": [],
"0/40/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
],
"1/3/0": 0,
"1/3/1": 2,
"1/3/65532": 0,
"1/3/65533": 4,
"1/3/65528": [],
"1/3/65529": [0, 64],
"1/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
"1/29/0": [
{
"type": 21,
"revision": 1
}
],
"1/29/1": [
3, 4, 5, 6, 7, 8, 15, 29, 30, 37, 47, 59, 64, 65, 69, 80, 257, 258, 259,
512, 513, 514, 516, 768, 1024, 1026, 1027, 1028, 1029, 1030, 1283, 1284,
1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 2820,
4294048773
],
"1/29/2": [],
"1/29/3": [],
"1/29/65532": 0,
"1/29/65533": 1,
"1/29/65528": [],
"1/29/65529": [],
"1/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"1/69/0": true,
"1/69/65532": 0,
"1/69/65533": 1,
"1/69/65528": [],
"1/69/65529": [],
"1/69/65531": [0, 65528, 65529, 65531, 65532, 65533]
},
"endpoints": [0, 1],
"root_device_type_instance": null,
"aggregator_device_type_instance": null,
"device_type_instances": [null],
"node_devices": [null],
"_type": "matter_server.common.models.node.MatterNode"
"available": true
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,624 +2,81 @@
"node_id": 1,
"date_commissioned": "2022-11-29T21:23:48.485051",
"last_interview": "2022-11-29T21:23:48.485057",
"interview_version": 1,
"interview_version": 2,
"attributes": {
"0/29/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 22,
"revision": 1
}
]
},
"0/29/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62,
63, 64, 65
]
},
"0/29/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": [41]
},
"0/29/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [1]
},
"0/29/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/29/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/29/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/29/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"0/40/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.DataModelRevision",
"attribute_name": "DataModelRevision",
"value": 1
},
"0/40/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorName",
"attribute_name": "VendorName",
"value": "Nabu Casa"
},
"0/40/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorID",
"attribute_name": "VendorID",
"value": 65521
},
"0/40/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductName",
"attribute_name": "ProductName",
"value": "Mock FlowSensor"
},
"0/40/4": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 4,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductID",
"attribute_name": "ProductID",
"value": 32768
},
"0/40/5": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 5,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.NodeLabel",
"attribute_name": "NodeLabel",
"value": "Mock Flow Sensor"
},
"0/40/6": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 6,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Location",
"attribute_name": "Location",
"value": "XX"
},
"0/40/7": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 7,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersion",
"attribute_name": "HardwareVersion",
"value": 0
},
"0/40/8": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 8,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersionString",
"attribute_name": "HardwareVersionString",
"value": "v1.0"
},
"0/40/9": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 9,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersion",
"attribute_name": "SoftwareVersion",
"value": 1
},
"0/40/10": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 10,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersionString",
"attribute_name": "SoftwareVersionString",
"value": "v1.0"
},
"0/40/11": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 11,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ManufacturingDate",
"attribute_name": "ManufacturingDate",
"value": "20221206"
},
"0/40/12": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 12,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.PartNumber",
"attribute_name": "PartNumber",
"value": ""
},
"0/40/13": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 13,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductURL",
"attribute_name": "ProductURL",
"value": ""
},
"0/40/14": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 14,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductLabel",
"attribute_name": "ProductLabel",
"value": ""
},
"0/40/15": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 15,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SerialNumber",
"attribute_name": "SerialNumber",
"value": "TEST_SN"
},
"0/40/16": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 16,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.LocalConfigDisabled",
"attribute_name": "LocalConfigDisabled",
"value": false
},
"0/40/17": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 17,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Reachable",
"attribute_name": "Reachable",
"value": true
},
"0/40/18": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 18,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.UniqueID",
"attribute_name": "UniqueID",
"value": "mock-flow-sensor"
},
"0/40/19": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 19,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.CapabilityMinima",
"attribute_name": "CapabilityMinima",
"value": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
"0/29/0": [
{
"type": 22,
"revision": 1
}
],
"0/29/1": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62, 63,
64, 65
],
"0/29/2": [41],
"0/29/3": [1],
"0/29/65532": 0,
"0/29/65533": 1,
"0/29/65528": [],
"0/29/65529": [],
"0/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"0/40/0": 1,
"0/40/1": "Nabu Casa",
"0/40/2": 65521,
"0/40/3": "Mock FlowSensor",
"0/40/4": 32768,
"0/40/5": "Mock Flow Sensor",
"0/40/6": "XX",
"0/40/7": 0,
"0/40/8": "v1.0",
"0/40/9": 1,
"0/40/10": "v1.0",
"0/40/11": "20221206",
"0/40/12": "",
"0/40/13": "",
"0/40/14": "",
"0/40/15": "TEST_SN",
"0/40/16": false,
"0/40/17": true,
"0/40/18": "mock-flow-sensor",
"0/40/19": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
},
"0/40/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/40/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/40/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/40/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/40/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
]
},
"1/3/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": [0, 64]
},
"1/3/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 65528, 65529, 65531, 65532, 65533]
},
"1/29/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 774,
"revision": 1
}
]
},
"1/29/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [6, 29, 57, 768, 8, 40]
},
"1/29/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": []
},
"1/29/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [9, 10]
},
"1/29/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": null
},
"1/29/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/29/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/29/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"1/1028/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.MeasuredValue",
"attribute_name": "MeasuredValue",
"value": 0
},
"1/1028/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.MinMeasuredValue",
"attribute_name": "MinMeasuredValue",
"value": 0
},
"1/1028/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.MaxMeasuredValue",
"attribute_name": "MaxMeasuredValue",
"value": 0
},
"1/1028/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.Tolerance",
"attribute_name": "Tolerance",
"value": 0
},
"1/1028/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/1028/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 3
},
"1/1028/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/1028/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/1028/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1028,
"cluster_type": "chip.clusters.Objects.FlowMeasurement",
"cluster_name": "FlowMeasurement",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.FlowMeasurement.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
}
"0/40/65532": 0,
"0/40/65533": 1,
"0/40/65528": [],
"0/40/65529": [],
"0/40/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
],
"1/3/65529": [0, 64],
"1/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
"1/29/0": [
{
"type": 774,
"revision": 1
}
],
"1/29/1": [6, 29, 57, 768, 8, 40],
"1/29/2": [],
"1/29/3": [9, 10],
"1/29/65532": null,
"1/29/65533": 1,
"1/29/65528": [],
"1/29/65529": [],
"1/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"1/1028/0": 0,
"1/1028/1": 0,
"1/1028/2": 0,
"1/1028/3": 0,
"1/1028/65532": 0,
"1/1028/65533": 3,
"1/1028/65528": [],
"1/1028/65529": [],
"1/1028/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"endpoints": [0, 1],
"_type": "matter_server.common.models.node.MatterNode"
"available": true
}

View file

@ -2,613 +2,80 @@
"node_id": 1,
"date_commissioned": "2022-11-29T21:23:48.485051",
"last_interview": "2022-11-29T21:23:48.485057",
"interview_version": 1,
"interview_version": 2,
"attributes": {
"0/29/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 22,
"revision": 1
}
]
},
"0/29/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62,
63, 64, 65
]
},
"0/29/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": [41]
},
"0/29/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [1]
},
"0/29/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/29/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/29/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/29/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"0/40/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.DataModelRevision",
"attribute_name": "DataModelRevision",
"value": 1
},
"0/40/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorName",
"attribute_name": "VendorName",
"value": "Nabu Casa"
},
"0/40/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorID",
"attribute_name": "VendorID",
"value": 65521
},
"0/40/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductName",
"attribute_name": "ProductName",
"value": "Mock HumiditySensor"
},
"0/40/4": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 4,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductID",
"attribute_name": "ProductID",
"value": 32768
},
"0/40/5": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 5,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.NodeLabel",
"attribute_name": "NodeLabel",
"value": "Mock Humidity Sensor"
},
"0/40/6": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 6,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Location",
"attribute_name": "Location",
"value": "XX"
},
"0/40/7": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 7,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersion",
"attribute_name": "HardwareVersion",
"value": 0
},
"0/40/8": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 8,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersionString",
"attribute_name": "HardwareVersionString",
"value": "v1.0"
},
"0/40/9": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 9,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersion",
"attribute_name": "SoftwareVersion",
"value": 1
},
"0/40/10": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 10,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersionString",
"attribute_name": "SoftwareVersionString",
"value": "v1.0"
},
"0/40/11": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 11,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ManufacturingDate",
"attribute_name": "ManufacturingDate",
"value": "20221206"
},
"0/40/12": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 12,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.PartNumber",
"attribute_name": "PartNumber",
"value": ""
},
"0/40/13": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 13,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductURL",
"attribute_name": "ProductURL",
"value": ""
},
"0/40/14": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 14,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductLabel",
"attribute_name": "ProductLabel",
"value": ""
},
"0/40/15": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 15,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SerialNumber",
"attribute_name": "SerialNumber",
"value": "TEST_SN"
},
"0/40/16": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 16,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.LocalConfigDisabled",
"attribute_name": "LocalConfigDisabled",
"value": false
},
"0/40/17": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 17,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Reachable",
"attribute_name": "Reachable",
"value": true
},
"0/40/18": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 18,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.UniqueID",
"attribute_name": "UniqueID",
"value": "mock-humidity-sensor"
},
"0/40/19": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 19,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.CapabilityMinima",
"attribute_name": "CapabilityMinima",
"value": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
"0/29/0": [
{
"type": 22,
"revision": 1
}
],
"0/29/1": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62, 63,
64, 65
],
"0/29/2": [41],
"0/29/3": [1],
"0/29/65532": 0,
"0/29/65533": 1,
"0/29/65528": [],
"0/29/65529": [],
"0/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"0/40/0": 1,
"0/40/1": "Nabu Casa",
"0/40/2": 65521,
"0/40/3": "Mock HumiditySensor",
"0/40/4": 32768,
"0/40/5": "Mock Humidity Sensor",
"0/40/6": "XX",
"0/40/7": 0,
"0/40/8": "v1.0",
"0/40/9": 1,
"0/40/10": "v1.0",
"0/40/11": "20221206",
"0/40/12": "",
"0/40/13": "",
"0/40/14": "",
"0/40/15": "TEST_SN",
"0/40/16": false,
"0/40/17": true,
"0/40/18": "mock-humidity-sensor",
"0/40/19": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
},
"0/40/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/40/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/40/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/40/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/40/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
]
},
"1/3/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": [0, 64]
},
"1/3/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 65528, 65529, 65531, 65532, 65533]
},
"1/29/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 775,
"revision": 1
}
]
},
"1/29/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [6, 29, 57, 768, 8, 40]
},
"1/29/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": []
},
"1/29/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [9, 10]
},
"1/29/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": null
},
"1/29/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/29/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/29/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/29/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"1/1029/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1029,
"cluster_type": "chip.clusters.Objects.RelativeHumidityMeasurement",
"cluster_name": "RelativeHumidityMeasurement",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.RelativeHumidityMeasurement.Attributes.MeasuredValue",
"attribute_name": "MeasuredValue",
"value": 0
},
"1/1029/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1029,
"cluster_type": "chip.clusters.Objects.RelativeHumidityMeasurement",
"cluster_name": "RelativeHumidityMeasurement",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.RelativeHumidityMeasurement.Attributes.MinMeasuredValue",
"attribute_name": "MinMeasuredValue",
"value": 0
},
"1/1029/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1029,
"cluster_type": "chip.clusters.Objects.RelativeHumidityMeasurement",
"cluster_name": "RelativeHumidityMeasurement",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.RelativeHumidityMeasurement.Attributes.MaxMeasuredValue",
"attribute_name": "MaxMeasuredValue",
"value": 10000
},
"1/1029/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1029,
"cluster_type": "chip.clusters.Objects.RelativeHumidityMeasurement",
"cluster_name": "RelativeHumidityMeasurement",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.RelativeHumidityMeasurement.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/1029/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1029,
"cluster_type": "chip.clusters.Objects.RelativeHumidityMeasurement",
"cluster_name": "RelativeHumidityMeasurement",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.RelativeHumidityMeasurement.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 3
},
"1/1029/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1029,
"cluster_type": "chip.clusters.Objects.RelativeHumidityMeasurement",
"cluster_name": "RelativeHumidityMeasurement",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.RelativeHumidityMeasurement.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/1029/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1029,
"cluster_type": "chip.clusters.Objects.RelativeHumidityMeasurement",
"cluster_name": "RelativeHumidityMeasurement",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.RelativeHumidityMeasurement.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/1029/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1029,
"cluster_type": "chip.clusters.Objects.RelativeHumidityMeasurement",
"cluster_name": "RelativeHumidityMeasurement",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.RelativeHumidityMeasurement.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 65528, 65529, 65531, 65532, 65533]
}
"0/40/65532": 0,
"0/40/65533": 1,
"0/40/65528": [],
"0/40/65529": [],
"0/40/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
],
"1/3/65529": [0, 64],
"1/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
"1/29/0": [
{
"type": 775,
"revision": 1
}
],
"1/29/1": [6, 29, 57, 768, 8, 40],
"1/29/2": [],
"1/29/3": [9, 10],
"1/29/65532": null,
"1/29/65533": 1,
"1/29/65528": [],
"1/29/65529": [],
"1/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"1/1029/0": 0,
"1/1029/1": 0,
"1/1029/2": 10000,
"1/1029/65532": 0,
"1/1029/65533": 3,
"1/1029/65528": [],
"1/1029/65529": [],
"1/1029/65531": [0, 1, 2, 65528, 65529, 65531, 65532, 65533]
},
"endpoints": [0, 1],
"_type": "matter_server.common.models.node.MatterNode"
"available": true
}

View file

@ -2,701 +2,88 @@
"node_id": 1,
"date_commissioned": "2022-11-29T21:23:48.485051",
"last_interview": "2022-11-29T21:23:48.485057",
"interview_version": 1,
"interview_version": 2,
"attributes": {
"0/29/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 22,
"revision": 1
}
]
},
"0/29/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62,
63, 64, 65
]
},
"0/29/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": [41]
},
"0/29/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [1]
},
"0/29/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/29/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/29/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/29/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"0/40/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.DataModelRevision",
"attribute_name": "DataModelRevision",
"value": 1
},
"0/40/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorName",
"attribute_name": "VendorName",
"value": "Nabu Casa"
},
"0/40/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorID",
"attribute_name": "VendorID",
"value": 65521
},
"0/40/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductName",
"attribute_name": "ProductName",
"value": "Mock LightSensor"
},
"0/40/4": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 4,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductID",
"attribute_name": "ProductID",
"value": 32768
},
"0/40/5": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 5,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.NodeLabel",
"attribute_name": "NodeLabel",
"value": "Mock Light Sensor"
},
"0/40/6": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 6,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Location",
"attribute_name": "Location",
"value": "XX"
},
"0/40/7": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 7,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersion",
"attribute_name": "HardwareVersion",
"value": 0
},
"0/40/8": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 8,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersionString",
"attribute_name": "HardwareVersionString",
"value": "v1.0"
},
"0/40/9": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 9,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersion",
"attribute_name": "SoftwareVersion",
"value": 1
},
"0/40/10": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 10,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersionString",
"attribute_name": "SoftwareVersionString",
"value": "v1.0"
},
"0/40/11": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 11,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ManufacturingDate",
"attribute_name": "ManufacturingDate",
"value": "20221206"
},
"0/40/12": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 12,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.PartNumber",
"attribute_name": "PartNumber",
"value": ""
},
"0/40/13": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 13,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductURL",
"attribute_name": "ProductURL",
"value": ""
},
"0/40/14": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 14,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductLabel",
"attribute_name": "ProductLabel",
"value": ""
},
"0/40/15": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 15,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SerialNumber",
"attribute_name": "SerialNumber",
"value": "TEST_SN"
},
"0/40/16": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 16,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.LocalConfigDisabled",
"attribute_name": "LocalConfigDisabled",
"value": false
},
"0/40/17": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 17,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Reachable",
"attribute_name": "Reachable",
"value": true
},
"0/40/18": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 18,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.UniqueID",
"attribute_name": "UniqueID",
"value": "mock-light-sensor"
},
"0/40/19": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 19,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.CapabilityMinima",
"attribute_name": "CapabilityMinima",
"value": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
"0/29/0": [
{
"type": 22,
"revision": 1
}
],
"0/29/1": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62, 63,
64, 65
],
"0/29/2": [41],
"0/29/3": [1],
"0/29/65532": 0,
"0/29/65533": 1,
"0/29/65528": [],
"0/29/65529": [],
"0/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"0/40/0": 1,
"0/40/1": "Nabu Casa",
"0/40/2": 65521,
"0/40/3": "Mock LightSensor",
"0/40/4": 32768,
"0/40/5": "Mock Light Sensor",
"0/40/6": "XX",
"0/40/7": 0,
"0/40/8": "v1.0",
"0/40/9": 1,
"0/40/10": "v1.0",
"0/40/11": "20221206",
"0/40/12": "",
"0/40/13": "",
"0/40/14": "",
"0/40/15": "TEST_SN",
"0/40/16": false,
"0/40/17": true,
"0/40/18": "mock-light-sensor",
"0/40/19": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
},
"0/40/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/40/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/40/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/40/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/40/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
]
},
"1/3/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": [0, 64]
},
"1/3/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 65528, 65529, 65531, 65532, 65533]
},
"1/29/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 262,
"revision": 1
}
]
},
"1/29/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [6, 29, 57, 768, 8, 40]
},
"1/29/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": []
},
"1/29/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [9, 10]
},
"1/29/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": null
},
"1/29/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/29/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/29/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"1/30/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.Binding",
"attribute_name": "Binding",
"value": []
},
"1/30/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/30/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/30/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/30/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/30/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 65528, 65529, 65531, 65532, 65533]
},
"1/1024/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.MeasuredValue",
"attribute_name": "MeasuredValue",
"value": 1000
},
"1/1024/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.MinMeasuredValue",
"attribute_name": "MinMeasuredValue",
"value": 1
},
"1/1024/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.MaxMeasuredValue",
"attribute_name": "MaxMeasuredValue",
"value": 65534
},
"1/1024/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.Tolerance",
"attribute_name": "Tolerance",
"value": 0
},
"1/1024/4": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 4,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.LightSensorType",
"attribute_name": "LightSensorType",
"value": null
},
"1/1024/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/1024/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 3
},
"1/1024/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/1024/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/1024/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1024,
"cluster_type": "chip.clusters.Objects.IlluminanceMeasurement",
"cluster_name": "IlluminanceMeasurement",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.IlluminanceMeasurement.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 4, 65528, 65529, 65531, 65532, 65533]
}
"0/40/65532": 0,
"0/40/65533": 1,
"0/40/65528": [],
"0/40/65529": [],
"0/40/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
],
"1/3/65529": [0, 64],
"1/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
"1/29/0": [
{
"type": 262,
"revision": 1
}
],
"1/29/1": [6, 29, 57, 768, 8, 40],
"1/29/2": [],
"1/29/3": [9, 10],
"1/29/65532": null,
"1/29/65533": 1,
"1/29/65528": [],
"1/29/65529": [],
"1/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"1/30/0": [],
"1/30/65532": 0,
"1/30/65533": 1,
"1/30/65528": [],
"1/30/65529": [],
"1/30/65531": [0, 65528, 65529, 65531, 65532, 65533],
"1/1024/0": 1000,
"1/1024/1": 1,
"1/1024/2": 65534,
"1/1024/3": 0,
"1/1024/4": null,
"1/1024/65532": 0,
"1/1024/65533": 3,
"1/1024/65528": [],
"1/1024/65529": [],
"1/1024/65531": [0, 1, 2, 3, 4, 65528, 65529, 65531, 65532, 65533]
},
"endpoints": [0, 1],
"_type": "matter_server.common.models.node.MatterNode"
"available": true
}

View file

@ -2,739 +2,96 @@
"node_id": 1,
"date_commissioned": "2022-11-29T21:23:48.485051",
"last_interview": "2022-11-29T21:23:48.485057",
"interview_version": 1,
"interview_version": 2,
"attributes": {
"0/29/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 22,
"revision": 1
}
]
},
"0/29/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62,
63, 64, 65
]
},
"0/29/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": [41]
},
"0/29/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [1]
},
"0/29/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/29/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/29/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/29/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"0/40/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.DataModelRevision",
"attribute_name": "DataModelRevision",
"value": 1
},
"0/40/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorName",
"attribute_name": "VendorName",
"value": "Nabu Casa"
},
"0/40/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorID",
"attribute_name": "VendorID",
"value": 65521
},
"0/40/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductName",
"attribute_name": "ProductName",
"value": "Mock OccupancySensor"
},
"0/40/4": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 4,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductID",
"attribute_name": "ProductID",
"value": 32768
},
"0/40/5": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 5,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.NodeLabel",
"attribute_name": "NodeLabel",
"value": "Mock Occupancy Sensor"
},
"0/40/6": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 6,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Location",
"attribute_name": "Location",
"value": "XX"
},
"0/40/7": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 7,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersion",
"attribute_name": "HardwareVersion",
"value": 0
},
"0/40/8": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 8,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersionString",
"attribute_name": "HardwareVersionString",
"value": "v1.0"
},
"0/40/9": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 9,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersion",
"attribute_name": "SoftwareVersion",
"value": 1
},
"0/40/10": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 10,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersionString",
"attribute_name": "SoftwareVersionString",
"value": "v1.0"
},
"0/40/11": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 11,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ManufacturingDate",
"attribute_name": "ManufacturingDate",
"value": "20221206"
},
"0/40/12": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 12,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.PartNumber",
"attribute_name": "PartNumber",
"value": ""
},
"0/40/13": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 13,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductURL",
"attribute_name": "ProductURL",
"value": ""
},
"0/40/14": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 14,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductLabel",
"attribute_name": "ProductLabel",
"value": ""
},
"0/40/15": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 15,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SerialNumber",
"attribute_name": "SerialNumber",
"value": "TEST_SN"
},
"0/40/16": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 16,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.LocalConfigDisabled",
"attribute_name": "LocalConfigDisabled",
"value": false
},
"0/40/17": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 17,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Reachable",
"attribute_name": "Reachable",
"value": true
},
"0/40/18": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 18,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.UniqueID",
"attribute_name": "UniqueID",
"value": "mock-temperature-sensor"
},
"0/40/19": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 19,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.CapabilityMinima",
"attribute_name": "CapabilityMinima",
"value": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
"0/29/0": [
{
"type": 22,
"revision": 1
}
],
"0/29/1": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62, 63,
64, 65
],
"0/29/2": [41],
"0/29/3": [1],
"0/29/65532": 0,
"0/29/65533": 1,
"0/29/65528": [],
"0/29/65529": [],
"0/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"0/40/0": 1,
"0/40/1": "Nabu Casa",
"0/40/2": 65521,
"0/40/3": "Mock OccupancySensor",
"0/40/4": 32768,
"0/40/5": "Mock Occupancy Sensor",
"0/40/6": "XX",
"0/40/7": 0,
"0/40/8": "v1.0",
"0/40/9": 1,
"0/40/10": "v1.0",
"0/40/11": "20221206",
"0/40/12": "",
"0/40/13": "",
"0/40/14": "",
"0/40/15": "TEST_SN",
"0/40/16": false,
"0/40/17": true,
"0/40/18": "mock-temperature-sensor",
"0/40/19": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
},
"0/40/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/40/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/40/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/40/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/40/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
]
},
"1/3/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.IdentifyTime",
"attribute_name": "IdentifyTime",
"value": 0
},
"1/3/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.IdentifyType",
"attribute_name": "IdentifyType",
"value": 2
},
"1/3/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/3/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 4
},
"1/3/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/3/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": [0, 64]
},
"1/3/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 65528, 65529, 65531, 65532, 65533]
},
"1/29/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 263,
"revision": 1
}
]
},
"1/29/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
3, 4, 5, 6, 7, 8, 15, 29, 30, 37, 47, 59, 64, 65, 69, 80, 257, 258, 259,
512, 513, 514, 516, 768, 1024, 1026, 1027, 1028, 1029, 1030, 1283, 1284,
1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 2820,
4294048773
]
},
"1/29/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": []
},
"1/29/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": []
},
"1/29/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/29/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/29/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/29/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/29/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"1/30/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.Binding",
"attribute_name": "Binding",
"value": []
},
"1/30/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/30/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/30/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/30/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/30/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 30,
"cluster_type": "chip.clusters.Objects.Binding",
"cluster_name": "Binding",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Binding.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 65528, 65529, 65531, 65532, 65533]
},
"1/1030/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1030,
"cluster_type": "chip.clusters.Objects.OccupancySensing",
"cluster_name": "OccupancySensing",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.OccupancySensing.Attributes.Occupancy",
"attribute_name": "Occupancy",
"value": 1
},
"1/1030/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1030,
"cluster_type": "chip.clusters.Objects.OccupancySensing",
"cluster_name": "OccupancySensing",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.OccupancySensing.Attributes.OccupancySensorType",
"attribute_name": "OccupancySensorType",
"value": 0
},
"1/1030/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1030,
"cluster_type": "chip.clusters.Objects.OccupancySensing",
"cluster_name": "OccupancySensing",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.OccupancySensing.Attributes.OccupancySensorTypeBitmap",
"attribute_name": "OccupancySensorTypeBitmap",
"value": 1
},
"1/1030/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1030,
"cluster_type": "chip.clusters.Objects.OccupancySensing",
"cluster_name": "OccupancySensing",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.OccupancySensing.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/1030/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1030,
"cluster_type": "chip.clusters.Objects.OccupancySensing",
"cluster_name": "OccupancySensing",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.OccupancySensing.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 3
},
"1/1030/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1030,
"cluster_type": "chip.clusters.Objects.OccupancySensing",
"cluster_name": "OccupancySensing",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.OccupancySensing.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/1030/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1030,
"cluster_type": "chip.clusters.Objects.OccupancySensing",
"cluster_name": "OccupancySensing",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.OccupancySensing.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/1030/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1030,
"cluster_type": "chip.clusters.Objects.OccupancySensing",
"cluster_name": "OccupancySensing",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.OccupancySensing.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 65528, 65529, 65531, 65532, 65533]
}
"0/40/65532": 0,
"0/40/65533": 1,
"0/40/65528": [],
"0/40/65529": [],
"0/40/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
],
"1/3/0": 0,
"1/3/1": 2,
"1/3/65532": 0,
"1/3/65533": 4,
"1/3/65528": [],
"1/3/65529": [0, 64],
"1/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
"1/29/0": [
{
"type": 263,
"revision": 1
}
],
"1/29/1": [
3, 4, 5, 6, 7, 8, 15, 29, 30, 37, 47, 59, 64, 65, 69, 80, 257, 258, 259,
512, 513, 514, 516, 768, 1024, 1026, 1027, 1028, 1029, 1030, 1283, 1284,
1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 2820,
4294048773
],
"1/29/2": [],
"1/29/3": [],
"1/29/65532": 0,
"1/29/65533": 1,
"1/29/65528": [],
"1/29/65529": [],
"1/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"1/30/0": [],
"1/30/65532": 0,
"1/30/65533": 1,
"1/30/65528": [],
"1/30/65529": [],
"1/30/65531": [0, 65528, 65529, 65531, 65532, 65533],
"1/1030/0": 1,
"1/1030/1": 0,
"1/1030/2": 1,
"1/1030/65532": 0,
"1/1030/65533": 3,
"1/1030/65528": [],
"1/1030/65529": [],
"1/1030/65531": [0, 1, 2, 65528, 65529, 65531, 65532, 65533]
},
"endpoints": [0, 1],
"_type": "matter_server.common.models.node.MatterNode"
"available": true
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,613 +2,80 @@
"node_id": 1,
"date_commissioned": "2022-11-29T21:23:48.485051",
"last_interview": "2022-11-29T21:23:48.485057",
"interview_version": 1,
"interview_version": 2,
"attributes": {
"0/29/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 22,
"revision": 1
}
]
},
"0/29/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62,
63, 64, 65
]
},
"0/29/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": [41]
},
"0/29/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [1]
},
"0/29/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/29/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/29/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/29/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"0/40/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.DataModelRevision",
"attribute_name": "DataModelRevision",
"value": 1
},
"0/40/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorName",
"attribute_name": "VendorName",
"value": "Nabu Casa"
},
"0/40/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorID",
"attribute_name": "VendorID",
"value": 65521
},
"0/40/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductName",
"attribute_name": "ProductName",
"value": "Mock PressureSensor"
},
"0/40/4": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 4,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductID",
"attribute_name": "ProductID",
"value": 32768
},
"0/40/5": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 5,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.NodeLabel",
"attribute_name": "NodeLabel",
"value": "Mock Pressure Sensor"
},
"0/40/6": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 6,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Location",
"attribute_name": "Location",
"value": "XX"
},
"0/40/7": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 7,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersion",
"attribute_name": "HardwareVersion",
"value": 0
},
"0/40/8": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 8,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersionString",
"attribute_name": "HardwareVersionString",
"value": "v1.0"
},
"0/40/9": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 9,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersion",
"attribute_name": "SoftwareVersion",
"value": 1
},
"0/40/10": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 10,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersionString",
"attribute_name": "SoftwareVersionString",
"value": "v1.0"
},
"0/40/11": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 11,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ManufacturingDate",
"attribute_name": "ManufacturingDate",
"value": "20221206"
},
"0/40/12": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 12,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.PartNumber",
"attribute_name": "PartNumber",
"value": ""
},
"0/40/13": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 13,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductURL",
"attribute_name": "ProductURL",
"value": ""
},
"0/40/14": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 14,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductLabel",
"attribute_name": "ProductLabel",
"value": ""
},
"0/40/15": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 15,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SerialNumber",
"attribute_name": "SerialNumber",
"value": "TEST_SN"
},
"0/40/16": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 16,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.LocalConfigDisabled",
"attribute_name": "LocalConfigDisabled",
"value": false
},
"0/40/17": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 17,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Reachable",
"attribute_name": "Reachable",
"value": true
},
"0/40/18": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 18,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.UniqueID",
"attribute_name": "UniqueID",
"value": "mock-pressure-sensor"
},
"0/40/19": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 19,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.CapabilityMinima",
"attribute_name": "CapabilityMinima",
"value": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
"0/29/0": [
{
"type": 22,
"revision": 1
}
],
"0/29/1": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62, 63,
64, 65
],
"0/29/2": [41],
"0/29/3": [1],
"0/29/65532": 0,
"0/29/65533": 1,
"0/29/65528": [],
"0/29/65529": [],
"0/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"0/40/0": 1,
"0/40/1": "Nabu Casa",
"0/40/2": 65521,
"0/40/3": "Mock PressureSensor",
"0/40/4": 32768,
"0/40/5": "Mock Pressure Sensor",
"0/40/6": "XX",
"0/40/7": 0,
"0/40/8": "v1.0",
"0/40/9": 1,
"0/40/10": "v1.0",
"0/40/11": "20221206",
"0/40/12": "",
"0/40/13": "",
"0/40/14": "",
"0/40/15": "TEST_SN",
"0/40/16": false,
"0/40/17": true,
"0/40/18": "mock-pressure-sensor",
"0/40/19": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
},
"0/40/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/40/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/40/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/40/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/40/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
]
},
"1/3/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": [0, 64]
},
"1/3/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 65528, 65529, 65531, 65532, 65533]
},
"1/29/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 773,
"revision": 1
}
]
},
"1/29/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [6, 29, 57, 768, 8, 40]
},
"1/29/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": []
},
"1/29/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [9, 10]
},
"1/29/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": null
},
"1/29/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/29/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/29/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"1/1027/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1027,
"cluster_type": "chip.clusters.Objects.PressureMeasurement",
"cluster_name": "PressureMeasurement",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.PressureMeasurement.Attributes.MeasuredValue",
"attribute_name": "MeasuredValue",
"value": 0
},
"1/1027/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1027,
"cluster_type": "chip.clusters.Objects.PressureMeasurement",
"cluster_name": "PressureMeasurement",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.PressureMeasurement.Attributes.MinMeasuredValue",
"attribute_name": "MinMeasuredValue",
"value": 0
},
"1/1027/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1027,
"cluster_type": "chip.clusters.Objects.PressureMeasurement",
"cluster_name": "PressureMeasurement",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.PressureMeasurement.Attributes.MaxMeasuredValue",
"attribute_name": "MaxMeasuredValue",
"value": 0
},
"1/1027/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1027,
"cluster_type": "chip.clusters.Objects.PressureMeasurement",
"cluster_name": "PressureMeasurement",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.PressureMeasurement.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/1027/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1027,
"cluster_type": "chip.clusters.Objects.PressureMeasurement",
"cluster_name": "PressureMeasurement",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.PressureMeasurement.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 3
},
"1/1027/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1027,
"cluster_type": "chip.clusters.Objects.PressureMeasurement",
"cluster_name": "PressureMeasurement",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.PressureMeasurement.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/1027/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1027,
"cluster_type": "chip.clusters.Objects.PressureMeasurement",
"cluster_name": "PressureMeasurement",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.PressureMeasurement.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/1027/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1027,
"cluster_type": "chip.clusters.Objects.PressureMeasurement",
"cluster_name": "PressureMeasurement",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.PressureMeasurement.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 65528, 65529, 65531, 65532, 65533]
}
"0/40/65532": 0,
"0/40/65533": 1,
"0/40/65528": [],
"0/40/65529": [],
"0/40/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
],
"1/3/65529": [0, 64],
"1/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
"1/29/0": [
{
"type": 773,
"revision": 1
}
],
"1/29/1": [6, 29, 57, 768, 8, 40],
"1/29/2": [],
"1/29/3": [9, 10],
"1/29/65532": null,
"1/29/65533": 1,
"1/29/65528": [],
"1/29/65529": [],
"1/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"1/1027/0": 0,
"1/1027/1": 0,
"1/1027/2": 0,
"1/1027/65532": 0,
"1/1027/65533": 3,
"1/1027/65528": [],
"1/1027/65529": [],
"1/1027/65531": [0, 1, 2, 65528, 65529, 65531, 65532, 65533]
},
"endpoints": [0, 1],
"_type": "matter_server.common.models.node.MatterNode"
"available": true
}

View file

@ -2,680 +2,86 @@
"node_id": 1,
"date_commissioned": "2022-11-29T21:23:48.485051",
"last_interview": "2022-11-29T21:23:48.485057",
"interview_version": 1,
"interview_version": 2,
"attributes": {
"0/29/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 22,
"revision": 1
}
]
},
"0/29/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62,
63, 64, 65
]
},
"0/29/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": [41]
},
"0/29/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [1]
},
"0/29/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/29/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/29/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/29/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"0/40/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.DataModelRevision",
"attribute_name": "DataModelRevision",
"value": 1
},
"0/40/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorName",
"attribute_name": "VendorName",
"value": "Nabu Casa"
},
"0/40/2": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.VendorID",
"attribute_name": "VendorID",
"value": 65521
},
"0/40/3": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductName",
"attribute_name": "ProductName",
"value": "Mock PressureSensor"
},
"0/40/4": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 4,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductID",
"attribute_name": "ProductID",
"value": 32768
},
"0/40/5": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 5,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.NodeLabel",
"attribute_name": "NodeLabel",
"value": "Mock Temperature Sensor"
},
"0/40/6": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 6,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Location",
"attribute_name": "Location",
"value": "XX"
},
"0/40/7": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 7,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersion",
"attribute_name": "HardwareVersion",
"value": 0
},
"0/40/8": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 8,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.HardwareVersionString",
"attribute_name": "HardwareVersionString",
"value": "v1.0"
},
"0/40/9": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 9,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersion",
"attribute_name": "SoftwareVersion",
"value": 1
},
"0/40/10": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 10,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SoftwareVersionString",
"attribute_name": "SoftwareVersionString",
"value": "v1.0"
},
"0/40/11": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 11,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ManufacturingDate",
"attribute_name": "ManufacturingDate",
"value": "20221206"
},
"0/40/12": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 12,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.PartNumber",
"attribute_name": "PartNumber",
"value": ""
},
"0/40/13": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 13,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductURL",
"attribute_name": "ProductURL",
"value": ""
},
"0/40/14": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 14,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ProductLabel",
"attribute_name": "ProductLabel",
"value": ""
},
"0/40/15": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 15,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.SerialNumber",
"attribute_name": "SerialNumber",
"value": "TEST_SN"
},
"0/40/16": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 16,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.LocalConfigDisabled",
"attribute_name": "LocalConfigDisabled",
"value": false
},
"0/40/17": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 17,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.Reachable",
"attribute_name": "Reachable",
"value": true
},
"0/40/18": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 18,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.UniqueID",
"attribute_name": "UniqueID",
"value": "mock-temperature-sensor"
},
"0/40/19": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 19,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.CapabilityMinima",
"attribute_name": "CapabilityMinima",
"value": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
"0/29/0": [
{
"type": 22,
"revision": 1
}
],
"0/29/1": [
4, 29, 31, 40, 42, 43, 44, 48, 49, 50, 51, 52, 53, 54, 55, 59, 60, 62, 63,
64, 65
],
"0/29/2": [41],
"0/29/3": [1],
"0/29/65532": 0,
"0/29/65533": 1,
"0/29/65528": [],
"0/29/65529": [],
"0/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"0/40/0": 1,
"0/40/1": "Nabu Casa",
"0/40/2": 65521,
"0/40/3": "Mock PressureSensor",
"0/40/4": 32768,
"0/40/5": "Mock Temperature Sensor",
"0/40/6": "XX",
"0/40/7": 0,
"0/40/8": "v1.0",
"0/40/9": 1,
"0/40/10": "v1.0",
"0/40/11": "20221206",
"0/40/12": "",
"0/40/13": "",
"0/40/14": "",
"0/40/15": "TEST_SN",
"0/40/16": false,
"0/40/17": true,
"0/40/18": "mock-temperature-sensor",
"0/40/19": {
"caseSessionsPerFabric": 3,
"subscriptionsPerFabric": 3
},
"0/40/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/40/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"0/40/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"0/40/65529": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"0/40/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 40,
"cluster_type": "chip.clusters.Objects.BasicInformation",
"cluster_name": "Basic",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.BasicInformation.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
]
},
"0/3/0": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.IdentifyTime",
"attribute_name": "IdentifyTime",
"value": 0
},
"0/3/1": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.IdentifyType",
"attribute_name": "IdentifyType",
"value": 2
},
"0/3/65532": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"0/3/65533": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 4
},
"0/3/65528": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/3/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": [0, 64]
},
"1/3/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 3,
"cluster_type": "chip.clusters.Objects.Identify",
"cluster_name": "Identify",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Identify.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 65528, 65529, 65531, 65532, 65533]
},
"1/29/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.DeviceTypeList",
"attribute_name": "DeviceTypeList",
"value": [
{
"type": 770,
"revision": 1
}
]
},
"1/29/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ServerList",
"attribute_name": "ServerList",
"value": [6, 29, 57, 768, 8, 40]
},
"1/29/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClientList",
"attribute_name": "ClientList",
"value": []
},
"1/29/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.PartsList",
"attribute_name": "PartsList",
"value": [9, 10]
},
"1/29/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": null
},
"1/29/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 1
},
"1/29/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/29/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/29/65531": {
"node_id": 1,
"endpoint": 0,
"cluster_id": 29,
"cluster_type": "chip.clusters.Objects.Descriptor",
"cluster_name": "Descriptor",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.Descriptor.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"1/1026/0": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 0,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.MeasuredValue",
"attribute_name": "MeasuredValue",
"value": 2100
},
"1/1026/1": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 1,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.MinMeasuredValue",
"attribute_name": "MinMeasuredValue",
"value": null
},
"1/1026/2": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 2,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.MaxMeasuredValue",
"attribute_name": "MaxMeasuredValue",
"value": null
},
"1/1026/3": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 3,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.Tolerance",
"attribute_name": "Tolerance",
"value": 0
},
"1/1026/65532": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 65532,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.FeatureMap",
"attribute_name": "FeatureMap",
"value": 0
},
"1/1026/65533": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 65533,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.ClusterRevision",
"attribute_name": "ClusterRevision",
"value": 4
},
"1/1026/65528": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 65528,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.GeneratedCommandList",
"attribute_name": "GeneratedCommandList",
"value": []
},
"1/1026/65529": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 65529,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.AcceptedCommandList",
"attribute_name": "AcceptedCommandList",
"value": []
},
"1/1026/65531": {
"node_id": 1,
"endpoint": 1,
"cluster_id": 1026,
"cluster_type": "chip.clusters.Objects.TemperatureMeasurement",
"cluster_name": "TemperatureMeasurement",
"attribute_id": 65531,
"attribute_type": "chip.clusters.Objects.TemperatureMeasurement.Attributes.AttributeList",
"attribute_name": "AttributeList",
"value": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
}
"0/40/65532": 0,
"0/40/65533": 1,
"0/40/65528": [],
"0/40/65529": [],
"0/40/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
65528, 65529, 65531, 65532, 65533
],
"0/3/0": 0,
"0/3/1": 2,
"0/3/65532": 0,
"0/3/65533": 4,
"0/3/65528": [],
"1/3/65529": [0, 64],
"1/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
"1/29/0": [
{
"type": 770,
"revision": 1
}
],
"1/29/1": [6, 29, 57, 768, 8, 40],
"1/29/2": [],
"1/29/3": [9, 10],
"1/29/65532": null,
"1/29/65533": 1,
"1/29/65528": [],
"1/29/65529": [],
"1/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533],
"1/1026/0": 2100,
"1/1026/1": null,
"1/1026/2": null,
"1/1026/3": 0,
"1/1026/65532": 0,
"1/1026/65533": 4,
"1/1026/65528": [],
"1/1026/65529": [],
"1/1026/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533]
},
"endpoints": [0, 1],
"_type": "matter_server.common.models.node.MatterNode"
"available": true
}

View file

@ -3,9 +3,9 @@ from __future__ import annotations
from unittest.mock import MagicMock
from matter_server.client.models.node import MatterNode
from matter_server.common.helpers.util import dataclass_from_dict
from matter_server.common.models.events import EventType
from matter_server.common.models.node import MatterNode
from matter_server.common.models import EventType, MatterNodeData
import pytest
from homeassistant.components.matter.const import DOMAIN
@ -124,9 +124,11 @@ async def test_node_added_subscription(
node_added_callback = matter_client.subscribe.call_args[0][0]
node_data = load_and_parse_node_fixture("onoff-light")
node = dataclass_from_dict(
MatterNode,
node_data,
node = MatterNode(
dataclass_from_dict(
MatterNodeData,
node_data,
)
)
entity_state = hass.states.get("light.mock_onoff_light")

View file

@ -3,7 +3,7 @@ from collections.abc import Awaitable, Callable
from unittest.mock import MagicMock, call
from aiohttp import ClientWebSocketResponse
from matter_server.client.exceptions import FailedCommand
from matter_server.common.errors import InvalidCommand, NodeCommissionFailed
from homeassistant.components.matter.api import ID, TYPE
from homeassistant.core import HomeAssistant
@ -33,8 +33,8 @@ async def test_commission(
matter_client.commission_with_code.assert_called_once_with("12345678")
matter_client.commission_with_code.reset_mock()
matter_client.commission_with_code.side_effect = FailedCommand(
"test_id", "test_code", "Failed to commission"
matter_client.commission_with_code.side_effect = InvalidCommand(
"test_id", "9", "Failed to commission"
)
await ws_client.send_json(
@ -47,7 +47,7 @@ async def test_commission(
msg = await ws_client.receive_json()
assert not msg["success"]
assert msg["error"]["code"] == "test_code"
assert msg["error"]["code"] == "9"
matter_client.commission_with_code.assert_called_once_with("12345678")
@ -73,8 +73,8 @@ async def test_commission_on_network(
matter_client.commission_on_network.assert_called_once_with(1234)
matter_client.commission_on_network.reset_mock()
matter_client.commission_on_network.side_effect = FailedCommand(
"test_id", "test_code", "Failed to commission on network"
matter_client.commission_on_network.side_effect = NodeCommissionFailed(
"test_id", "1", "Failed to commission on network"
)
await ws_client.send_json(
@ -87,7 +87,7 @@ async def test_commission_on_network(
msg = await ws_client.receive_json()
assert not msg["success"]
assert msg["error"]["code"] == "test_code"
assert msg["error"]["code"] == "1"
matter_client.commission_on_network.assert_called_once_with(1234)
@ -113,8 +113,8 @@ async def test_set_thread_dataset(
matter_client.set_thread_operational_dataset.assert_called_once_with("test_dataset")
matter_client.set_thread_operational_dataset.reset_mock()
matter_client.set_thread_operational_dataset.side_effect = FailedCommand(
"test_id", "test_code", "Failed to commission"
matter_client.set_thread_operational_dataset.side_effect = NodeCommissionFailed(
"test_id", "1", "Failed to commission"
)
await ws_client.send_json(
@ -127,7 +127,7 @@ async def test_set_thread_dataset(
msg = await ws_client.receive_json()
assert not msg["success"]
assert msg["error"]["code"] == "test_code"
assert msg["error"]["code"] == "1"
matter_client.set_thread_operational_dataset.assert_called_once_with("test_dataset")
@ -157,8 +157,8 @@ async def test_set_wifi_credentials(
)
matter_client.set_wifi_credentials.reset_mock()
matter_client.set_wifi_credentials.side_effect = FailedCommand(
"test_id", "test_code", "Failed to commission on network"
matter_client.set_wifi_credentials.side_effect = NodeCommissionFailed(
"test_id", "1", "Failed to commission on network"
)
await ws_client.send_json(
@ -172,7 +172,7 @@ async def test_set_wifi_credentials(
msg = await ws_client.receive_json()
assert not msg["success"]
assert msg["error"]["code"] == "test_code"
assert msg["error"]["code"] == "1"
assert matter_client.set_wifi_credentials.call_count == 1
assert matter_client.set_wifi_credentials.call_args == call(
ssid="test_network", credentials="test_password"

View file

@ -1,7 +1,7 @@
"""Test Matter binary sensors."""
from unittest.mock import MagicMock
from matter_server.common.models.node import MatterNode
from matter_server.client.models.node import MatterNode
import pytest
from homeassistant.core import HomeAssistant
@ -34,7 +34,9 @@ async def test_contact_sensor(
assert state.state == "on"
set_node_attribute(contact_sensor_node, 1, 69, 0, False)
await trigger_subscription_callback(hass, matter_client)
await trigger_subscription_callback(
hass, matter_client, data=(contact_sensor_node.node_id, "1/69/0", False)
)
state = hass.states.get("binary_sensor.mock_contact_sensor_contact")
assert state
@ -62,7 +64,9 @@ async def test_occupancy_sensor(
assert state.state == "on"
set_node_attribute(occupancy_sensor_node, 1, 1030, 0, 0)
await trigger_subscription_callback(hass, matter_client)
await trigger_subscription_callback(
hass, matter_client, data=(occupancy_sensor_node.node_id, "1/1030/0", 0)
)
state = hass.states.get("binary_sensor.mock_occupancy_sensor_occupancy")
assert state

View file

@ -6,7 +6,7 @@ from typing import Any
from unittest.mock import MagicMock
from matter_server.common.helpers.util import dataclass_from_dict
from matter_server.common.models.server_information import ServerDiagnostics
from matter_server.common.models import ServerDiagnostics
import pytest
from homeassistant.components.matter.const import DOMAIN
@ -44,17 +44,15 @@ def device_diagnostics_fixture() -> dict[str, Any]:
async def test_matter_attribute_redact(device_diagnostics: dict[str, Any]) -> None:
"""Test the matter attribute redact helper."""
assert device_diagnostics["attributes"]["0/40/6"]["value"] == "XX"
assert device_diagnostics["attributes"]["0/40/6"] == "XX"
redacted_device_diagnostics = redact_matter_attributes(device_diagnostics)
# Check that the correct attribute value is redacted.
assert (
redacted_device_diagnostics["attributes"]["0/40/6"]["value"] == "**REDACTED**"
)
assert redacted_device_diagnostics["attributes"]["0/40/6"] == "**REDACTED**"
# Check that the other attribute values are not redacted.
redacted_device_diagnostics["attributes"]["0/40/6"]["value"] = "XX"
redacted_device_diagnostics["attributes"]["0/40/6"] = "XX"
assert redacted_device_diagnostics == device_diagnostics
@ -107,5 +105,4 @@ async def test_device_diagnostics(
diagnostics = await get_diagnostics_for_device(
hass, hass_client, config_entry, device
)
assert diagnostics == device_diagnostics_redacted

View file

@ -7,9 +7,10 @@ from unittest.mock import AsyncMock, MagicMock, call, patch
from aiohttp import ClientWebSocketResponse
from matter_server.client.exceptions import CannotConnect, InvalidServerVersion
from matter_server.client.models.node import MatterNode
from matter_server.common.errors import MatterError
from matter_server.common.helpers.util import dataclass_from_dict
from matter_server.common.models.error import MatterError
from matter_server.common.models.node import MatterNode
from matter_server.common.models import MatterNodeData
import pytest
from homeassistant.components.hassio import HassioAPIError
@ -51,9 +52,11 @@ async def test_entry_setup_unload(
) -> None:
"""Test the integration set up and unload."""
node_data = load_and_parse_node_fixture("onoff-light")
node = dataclass_from_dict(
MatterNode,
node_data,
node = MatterNode(
dataclass_from_dict(
MatterNodeData,
node_data,
)
)
matter_client.get_nodes.return_value = [node]
matter_client.get_node.return_value = node

View file

@ -66,7 +66,7 @@ async def test_on_off_light(
assert matter_client.send_device_command.call_count == 1
assert matter_client.send_device_command.call_args == call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.OnOff.Commands.Off(),
)
matter_client.send_device_command.reset_mock()
@ -84,7 +84,7 @@ async def test_on_off_light(
assert matter_client.send_device_command.call_count == 1
assert matter_client.send_device_command.call_args == call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.OnOff.Commands.On(),
)
matter_client.send_device_command.reset_mock()
@ -135,7 +135,7 @@ async def test_dimmable_light(
assert matter_client.send_device_command.call_count == 1
assert matter_client.send_device_command.call_args == call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.LevelControl.Commands.MoveToLevelWithOnOff(
level=128,
transitionTime=0,
@ -192,7 +192,7 @@ async def test_color_temperature_light(
[
call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.ColorControl.Commands.MoveToColorTemperature(
colorTemperature=3003,
transitionTime=0,
@ -200,7 +200,7 @@ async def test_color_temperature_light(
),
call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.OnOff.Commands.On(),
),
]
@ -268,14 +268,14 @@ async def test_extended_color_light(
[
call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.ColorControl.Commands.MoveToColor(
colorX=0.5 * 65536, colorY=0.5 * 65536, transitionTime=0
),
),
call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.OnOff.Commands.On(),
),
]
@ -298,14 +298,14 @@ async def test_extended_color_light(
[
call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.ColorControl.Commands.MoveToHueAndSaturation(
hue=0, saturation=0, transitionTime=0
),
),
call(
node_id=light_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.OnOff.Commands.On(),
),
]

View file

@ -1,7 +1,7 @@
"""Test Matter sensors."""
from unittest.mock import MagicMock
from matter_server.common.models.node import MatterNode
from matter_server.client.models.node import MatterNode
import pytest
from homeassistant.core import HomeAssistant

View file

@ -2,7 +2,7 @@
from unittest.mock import MagicMock, call
from chip.clusters import Objects as clusters
from matter_server.common.models.node import MatterNode
from matter_server.client.models.node import MatterNode
import pytest
from homeassistant.core import HomeAssistant
@ -46,7 +46,7 @@ async def test_turn_on(
assert matter_client.send_device_command.call_count == 1
assert matter_client.send_device_command.call_args == call(
node_id=switch_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.OnOff.Commands.On(),
)
@ -80,6 +80,6 @@ async def test_turn_off(
assert matter_client.send_device_command.call_count == 1
assert matter_client.send_device_command.call_args == call(
node_id=switch_node.node_id,
endpoint=1,
endpoint_id=1,
command=clusters.OnOff.Commands.Off(),
)