Skip to content

Commit

Permalink
Add support for TY0201 temperature/humidity sensor
Browse files Browse the repository at this point in the history
This seems to be a pretty common sensor, for which several models
seem to exist : _TZ3000_bjawzodf and _TZ3000_zl1kmjqx

Fixes: zigpy#2862, zigpy#2851, zigpy#2701

Signed-off-by: Philippe De Swert <[email protected]>
  • Loading branch information
philippedeswert committed Jun 12, 2024
1 parent c6ed94a commit a811c9d
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions zhaquirks/tuya/ty0201.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
"""Tuya TY0201 temperature, humidity and optional illumination sensors."""

from zigpy.profiles import zha
from zigpy.profiles.zha import DeviceType
from zigpy.quirks import CustomCluster, CustomDevice
import zigpy.types as t
from zigpy.zcl.clusters.general import Basic, Identify, Ota, PowerConfiguration, Time
from zigpy.zcl.clusters.measurement import (
IlluminanceMeasurement,
RelativeHumidity,
TemperatureMeasurement,
)
from zigpy.zdo.types import NodeDescriptor

from zhaquirks.const import (
DEVICE_TYPE,
ENDPOINTS,
INPUT_CLUSTERS,
MODELS_INFO,
NODE_DESCRIPTOR,
OUTPUT_CLUSTERS,
PROFILE_ID,
)

from zhaquirks.tuya.air import (
TuyaAirQualityTemperature,
TuyaAirQualityHumidity,
)


class TemperatureHumiditySensorWithScreen(CustomDevice):
"""Temu temperature and humidity sensor with screen."""

signature = {
# <SimpleDescriptor endpoint=1, profile=260, device_type="0x0302"
# input_clusters=["0x000", "0x0001", "0x0003", "0x0402", "0x0405"]
# output_clusters=["0x0019"]>
MODELS_INFO: [("_TZ3000_bjawzodf", "TY0201"),
("_TZ3000_zl1kmjqx", "TY0201"), ("_TZ3000_zl1kmjqx", "")],
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: DeviceType.TEMPERATURE_SENSOR,
INPUT_CLUSTERS: [
Basic.cluster_id,
PowerConfiguration.cluster_id,
Identify.cluster_id,
TemperatureMeasurement.cluster_id,
RelativeHumidity.cluster_id,
],
OUTPUT_CLUSTERS: [
Ota.cluster_id,
],
},
},
}

replacement = {
ENDPOINTS: {
1: {
INPUT_CLUSTERS: [
Basic.cluster_id,
PowerConfiguration.cluster_id,
Identify.cluster_id,
TuyaAirQualityTemperature,
TuyaAirQualityHumidity,
],
OUTPUT_CLUSTERS: [
Ota.cluster_id,
],
},
},
}

0 comments on commit a811c9d

Please sign in to comment.