@@ -114,6 +114,9 @@ def descriptor(cls) -> ClusterObjectDescriptor:
114
114
ClusterObjectFieldDescriptor (
115
115
Label = "current" , Tag = 0x130A0009 , Type = float32
116
116
),
117
+ ClusterObjectFieldDescriptor (
118
+ Label = "obstructionDetected" , Tag = 0x130A0010 , Type = bool
119
+ ),
117
120
ClusterObjectFieldDescriptor (
118
121
Label = "altitude" , Tag = 0x130A0013 , Type = float32
119
122
),
@@ -143,6 +146,7 @@ def descriptor(cls) -> ClusterObjectDescriptor:
143
146
weatherTrend : int | None = None
144
147
valvePosition : int | None = None
145
148
motionSensitivity : int | None = None
149
+ obstructionDetected : bool | None = None
146
150
147
151
class Attributes :
148
152
"""Attributes for the Eve Cluster."""
@@ -285,6 +289,29 @@ def attribute_type(cls) -> ClusterObjectFieldDescriptor:
285
289
286
290
value : float32 = 0
287
291
292
+ @dataclass
293
+ class ObstructionDetected (
294
+ ClusterAttributeDescriptor , CustomClusterAttributeMixin
295
+ ):
296
+ """ObstructionDetected Attribute within the Eve Cluster."""
297
+
298
+ @ChipUtility .classproperty
299
+ def cluster_id (cls ) -> int :
300
+ """Return cluster id."""
301
+ return 0x130AFC01
302
+
303
+ @ChipUtility .classproperty
304
+ def attribute_id (cls ) -> int :
305
+ """Return attribute id."""
306
+ return 0x130A0010
307
+
308
+ @ChipUtility .classproperty
309
+ def attribute_type (cls ) -> ClusterObjectFieldDescriptor :
310
+ """Return attribute type."""
311
+ return ClusterObjectFieldDescriptor (Type = bool )
312
+
313
+ value : bool = False
314
+
288
315
@dataclass
289
316
class Altitude (ClusterAttributeDescriptor , CustomClusterAttributeMixin ):
290
317
"""Altitude Attribute within the Eve Cluster."""
0 commit comments