From 6e7ffd74c56663f9c055fa37fdf32995273a0398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20BOU=C3=89?= Date: Thu, 12 Sep 2024 10:25:53 +0200 Subject: [PATCH] ValvePosition attribute of EveCluster Cluster (#880) --- matter_server/common/custom_clusters.py | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/matter_server/common/custom_clusters.py b/matter_server/common/custom_clusters.py index 38762f6e..b5e8d59b 100644 --- a/matter_server/common/custom_clusters.py +++ b/matter_server/common/custom_clusters.py @@ -90,6 +90,9 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor( Label="pressure", Tag=0x130A0014, Type=float32 ), + ClusterObjectFieldDescriptor( + Label="valvePosition", Tag=0x130A0018, Type=int + ), ] ) @@ -101,6 +104,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: current: float32 | None = None altitude: float32 | None = None pressure: float32 | None = None + valvePosition: int | None = None class Attributes: """Attributes for the Eve Cluster.""" @@ -287,6 +291,29 @@ def attribute_type(cls) -> ClusterObjectFieldDescriptor: value: float32 = 0 + @dataclass + class ValvePosition(ClusterAttributeDescriptor, CustomClusterAttributeMixin): + """ValvePosition Attribute within the Eve Cluster.""" + + should_poll = True + + @ChipUtility.classproperty + def cluster_id(cls) -> int: + """Return cluster id.""" + return 0x130AFC01 + + @ChipUtility.classproperty + def attribute_id(cls) -> int: + """Return attribute id.""" + return 0x130A0018 + + @ChipUtility.classproperty + def attribute_type(cls) -> ClusterObjectFieldDescriptor: + """Return attribute type.""" + return ClusterObjectFieldDescriptor(Type=int) + + value: int = 0 + @dataclass class NeoCluster(Cluster, CustomClusterMixin):