Skip to content

Commit 5f1f14b

Browse files
fgschTheJulianJES
andauthored
Add temperature and humidity offset to Sonoff SNZB-02D (#3989)
Co-authored-by: TheJulianJES <[email protected]>
1 parent 1dbb085 commit 5f1f14b

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

zhaquirks/sonoff/snzb02d.py

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Sonoff SNZB-02D - Zigbee LCD smart temperature humidity sensor."""
22

33
from zigpy.quirks import CustomCluster
4-
from zigpy.quirks.v2 import QuirkBuilder
4+
from zigpy.quirks.v2 import NumberDeviceClass, QuirkBuilder
55
from zigpy.quirks.v2.homeassistant import PERCENTAGE, UnitOfTemperature
66
import zigpy.types as t
77
from zigpy.zcl import foundation
@@ -50,6 +50,16 @@ class AttributeDefs(BaseAttributeDefs):
5050
zcl_type=DataTypeId.uint16,
5151
)
5252

53+
temperature_offset = ZCLAttributeDef(
54+
id=0x2003,
55+
type=t.int16s,
56+
)
57+
58+
humidity_offset = ZCLAttributeDef(
59+
id=0x2004,
60+
type=t.int16s,
61+
)
62+
5363

5464
(
5565
QuirkBuilder("SONOFF", "SNZB-02D")
@@ -60,6 +70,7 @@ class AttributeDefs(BaseAttributeDefs):
6070
min_value=-10,
6171
max_value=60,
6272
step=0.1,
73+
device_class=NumberDeviceClass.TEMPERATURE,
6374
unit=UnitOfTemperature.CELSIUS,
6475
multiplier=0.01,
6576
translation_key="comfort_temperature_min",
@@ -71,6 +82,7 @@ class AttributeDefs(BaseAttributeDefs):
7182
min_value=-10,
7283
max_value=60,
7384
step=0.1,
85+
device_class=NumberDeviceClass.TEMPERATURE,
7486
unit=UnitOfTemperature.CELSIUS,
7587
multiplier=0.01,
7688
translation_key="comfort_temperature_max",
@@ -82,6 +94,7 @@ class AttributeDefs(BaseAttributeDefs):
8294
min_value=5,
8395
max_value=95,
8496
step=0.1,
97+
device_class=NumberDeviceClass.HUMIDITY,
8598
unit=PERCENTAGE,
8699
multiplier=0.01,
87100
translation_key="comfort_humidity_min",
@@ -93,6 +106,7 @@ class AttributeDefs(BaseAttributeDefs):
93106
min_value=5,
94107
max_value=95,
95108
step=0.1,
109+
device_class=NumberDeviceClass.HUMIDITY,
96110
unit=PERCENTAGE,
97111
multiplier=0.01,
98112
translation_key="comfort_humidity_max",
@@ -105,5 +119,29 @@ class AttributeDefs(BaseAttributeDefs):
105119
translation_key="display_unit",
106120
fallback_name="Display unit",
107121
)
122+
.number(
123+
CustomSonoffCluster.AttributeDefs.temperature_offset.name,
124+
CustomSonoffCluster.cluster_id,
125+
min_value=-50,
126+
max_value=50,
127+
step=0.1,
128+
device_class=NumberDeviceClass.TEMPERATURE,
129+
unit=UnitOfTemperature.CELSIUS,
130+
multiplier=0.01,
131+
translation_key="temperature_offset",
132+
fallback_name="Temperature offset",
133+
)
134+
.number(
135+
CustomSonoffCluster.AttributeDefs.humidity_offset.name,
136+
CustomSonoffCluster.cluster_id,
137+
min_value=-50,
138+
max_value=50,
139+
step=0.1,
140+
device_class=NumberDeviceClass.HUMIDITY,
141+
unit=PERCENTAGE,
142+
multiplier=0.01,
143+
translation_key="humidity_offset",
144+
fallback_name="Humidity offset",
145+
)
108146
.add_to_registry()
109147
)

0 commit comments

Comments
 (0)