Skip to content

Commit 8339de1

Browse files
Add Third Reality temperature and humidity sensor lite settings (#4387)
Co-authored-by: TheJulianJES <[email protected]>
1 parent d240b1f commit 8339de1

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
"""Third Reality temperature and humidity sensor devices."""
2+
3+
from typing import Final
4+
5+
from zigpy.quirks import CustomCluster
6+
from zigpy.quirks.v2 import NumberDeviceClass, QuirkBuilder
7+
from zigpy.quirks.v2.homeassistant import PERCENTAGE, UnitOfTemperature
8+
import zigpy.types as t
9+
from zigpy.zcl.clusters.general import PollControl
10+
from zigpy.zcl.foundation import BaseAttributeDefs, ZCLAttributeDef
11+
12+
13+
class ThirdRealityTemperatureAndHumidityCluster(CustomCluster):
14+
"""Third Reality's temperature and humidity sensor lite private cluster."""
15+
16+
cluster_id = 0xFF01
17+
18+
class AttributeDefs(BaseAttributeDefs):
19+
"""Define the attributes of a private cluster."""
20+
21+
temperature_correction_fahrenheit: Final = ZCLAttributeDef(
22+
id=0x0033,
23+
type=t.int16s,
24+
is_manufacturer_specific=True,
25+
)
26+
27+
temperature_correction_celsius: Final = ZCLAttributeDef(
28+
id=0x0031,
29+
type=t.int16s,
30+
is_manufacturer_specific=True,
31+
)
32+
33+
humidity_correction: Final = ZCLAttributeDef(
34+
id=0x0032,
35+
type=t.int16s,
36+
is_manufacturer_specific=True,
37+
)
38+
39+
40+
(
41+
QuirkBuilder("Third Reality, Inc", "3RTHS0224Z")
42+
.replaces(ThirdRealityTemperatureAndHumidityCluster)
43+
.removes(PollControl.cluster_id)
44+
.number(
45+
attribute_name=ThirdRealityTemperatureAndHumidityCluster.AttributeDefs.temperature_correction_celsius.name,
46+
cluster_id=ThirdRealityTemperatureAndHumidityCluster.cluster_id,
47+
min_value=-10000,
48+
max_value=10000,
49+
multiplier=0.01,
50+
step=0.1,
51+
device_class=NumberDeviceClass.TEMPERATURE,
52+
unit=UnitOfTemperature.CELSIUS,
53+
translation_key="temperature_offset_celsius",
54+
fallback_name="Celsius offset",
55+
)
56+
.number(
57+
attribute_name=ThirdRealityTemperatureAndHumidityCluster.AttributeDefs.temperature_correction_fahrenheit.name,
58+
cluster_id=ThirdRealityTemperatureAndHumidityCluster.cluster_id,
59+
min_value=-10000,
60+
max_value=10000,
61+
multiplier=0.01,
62+
step=0.1,
63+
device_class=NumberDeviceClass.TEMPERATURE,
64+
unit=UnitOfTemperature.FAHRENHEIT,
65+
translation_key="temperature_offset_fahrenheit",
66+
fallback_name="Fahrenheit offset",
67+
)
68+
.number(
69+
attribute_name=ThirdRealityTemperatureAndHumidityCluster.AttributeDefs.humidity_correction.name,
70+
cluster_id=ThirdRealityTemperatureAndHumidityCluster.cluster_id,
71+
min_value=-10000,
72+
max_value=10000,
73+
multiplier=0.01,
74+
step=0.1,
75+
device_class=NumberDeviceClass.HUMIDITY,
76+
unit=PERCENTAGE,
77+
translation_key="humidity_offset",
78+
fallback_name="Humidity offset",
79+
)
80+
.add_to_registry()
81+
)

0 commit comments

Comments
 (0)