Skip to content

Commit 3fca5a9

Browse files
Add Third Reality watering kit options (#3926)
Co-authored-by: TheJulianJES <[email protected]>
1 parent 775de19 commit 3fca5a9

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
"""Third Reality watering kit devices."""
2+
3+
from typing import Final
4+
5+
from zigpy.quirks import CustomCluster
6+
from zigpy.quirks.v2 import QuirkBuilder
7+
from zigpy.quirks.v2.homeassistant import UnitOfTime
8+
from zigpy.quirks.v2.homeassistant.number import NumberDeviceClass
9+
import zigpy.types as t
10+
from zigpy.zcl.foundation import BaseAttributeDefs, ZCLAttributeDef
11+
12+
13+
class ThirdRealityWateringKitCluster(CustomCluster):
14+
"""Third Reality's watering kit private cluster."""
15+
16+
cluster_id = 0xFFF2
17+
18+
class AttributeDefs(BaseAttributeDefs):
19+
"""Define the attributes of a private cluster."""
20+
21+
water_duration: Final = ZCLAttributeDef(
22+
id=0x0000,
23+
type=t.uint16_t,
24+
is_manufacturer_specific=True,
25+
)
26+
27+
water_interval: Final = ZCLAttributeDef(
28+
id=0x0001,
29+
type=t.uint8_t,
30+
is_manufacturer_specific=True,
31+
)
32+
33+
34+
(
35+
QuirkBuilder("Third Reality, Inc", "3RWK0148Z")
36+
.replaces(ThirdRealityWateringKitCluster)
37+
.number(
38+
attribute_name=ThirdRealityWateringKitCluster.AttributeDefs.water_duration.name,
39+
min_value=1,
40+
max_value=1800,
41+
step=1,
42+
device_class=NumberDeviceClass.DURATION,
43+
unit=UnitOfTime.SECONDS,
44+
cluster_id=ThirdRealityWateringKitCluster.cluster_id,
45+
translation_key="water_duration",
46+
fallback_name="Water duration",
47+
)
48+
.number(
49+
attribute_name=ThirdRealityWateringKitCluster.AttributeDefs.water_interval.name,
50+
min_value=0,
51+
max_value=30,
52+
step=1,
53+
device_class=NumberDeviceClass.DURATION,
54+
unit=UnitOfTime.DAYS,
55+
cluster_id=ThirdRealityWateringKitCluster.cluster_id,
56+
translation_key="water_interval",
57+
fallback_name="Water interval",
58+
)
59+
.add_to_registry()
60+
)

0 commit comments

Comments
 (0)