diff --git a/matter_server/common/custom_clusters.py b/matter_server/common/custom_clusters.py index b5e8d59b..74fa24ff 100644 --- a/matter_server/common/custom_clusters.py +++ b/matter_server/common/custom_clusters.py @@ -93,6 +93,9 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor( Label="valvePosition", Tag=0x130A0018, Type=int ), + ClusterObjectFieldDescriptor( + Label="motionSensitivity", Tag=0x130A000D, Type=int + ), ] ) @@ -105,6 +108,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: altitude: float32 | None = None pressure: float32 | None = None valvePosition: int | None = None + motionSensitivity: int | None = None class Attributes: """Attributes for the Eve Cluster.""" @@ -314,6 +318,31 @@ def attribute_type(cls) -> ClusterObjectFieldDescriptor: value: int = 0 + @dataclass + class MotionSensitivity( + ClusterAttributeDescriptor, CustomClusterAttributeMixin + ): + """MotionSensitivity Attribute within the Eve Cluster.""" + + should_poll = False + + @ChipUtility.classproperty + def cluster_id(cls) -> int: + """Return cluster id.""" + return 0x130AFC01 + + @ChipUtility.classproperty + def attribute_id(cls) -> int: + """Return attribute id.""" + return 0x130A000D + + @ChipUtility.classproperty + def attribute_type(cls) -> ClusterObjectFieldDescriptor: + """Return attribute type.""" + return ClusterObjectFieldDescriptor(Type=int) + + value: int = 0 + @dataclass class NeoCluster(Cluster, CustomClusterMixin):