Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions zhaquirks/sonoff/snzb02p.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
"""SONOFF SNZB02P - Zigbee Temperature And Humidity Sensor."""

from zigpy.quirks import CustomCluster
from zigpy.quirks.v2 import QuirkBuilder
from zigpy.quirks.v2.homeassistant import PERCENTAGE, UnitOfTemperature
from zigpy.quirks.v2.homeassistant.number import NumberDeviceClass
import zigpy.types as t
from zigpy.zcl import ClusterType
from zigpy.zcl.foundation import BaseAttributeDefs, ZCLAttributeDef


class CustomSonoffCluster(CustomCluster):
"""Custom Sonoff cluster."""

cluster_id = 0xFC11

class AttributeDefs(BaseAttributeDefs):
"""Attribute definitions."""

Temperature_Compensation = ZCLAttributeDef(
name="Temperature_Compensation",
id=0x2003,
type=t.int16s,
)

Relative_Humidity_Compensation = ZCLAttributeDef(
name="Relative_Humidity_Compensation",
id=0x2004,
type=t.int16s,
)

@property
def _is_manuf_specific(self):
return False


(
QuirkBuilder("eWeLink", "SNZB-02P")
.replaces(CustomSonoffCluster, 0xFC11, ClusterType.Server, 1)
.number(
CustomSonoffCluster.AttributeDefs.Temperature_Compensation.name,
CustomSonoffCluster.cluster_id,
ClusterType.Server,
1,
-50.0,
50.0,
0.1,
unit=UnitOfTemperature.CELSIUS,
multiplier=0.01,
translation_key="Temperature_Compensation",
device_class=NumberDeviceClass.TEMPERATURE,
fallback_name="Temperature Compensation",
)
.number(
CustomSonoffCluster.AttributeDefs.Relative_Humidity_Compensation.name,
CustomSonoffCluster.cluster_id,
ClusterType.Server,
1,
-50.0,
50.0,
0.1,
unit=PERCENTAGE,
multiplier=0.01,
translation_key="Relative_Humidity_Compensation",
device_class=NumberDeviceClass.HUMIDITY,
fallback_name="Relative Humidity Compensation",
)
.add_to_registry()
)
Loading