diff --git a/zhaquirks/tuya/ts0201.py b/zhaquirks/tuya/ts0201.py index 3a591f7ced..196013fb8b 100644 --- a/zhaquirks/tuya/ts0201.py +++ b/zhaquirks/tuya/ts0201.py @@ -12,6 +12,7 @@ RelativeHumidity, TemperatureMeasurement, ) +from zigpy.zcl.clusters.security import IasZone from zigpy.zcl.foundation import BaseAttributeDefs, ZCLAttributeDef from zigpy.zdo.types import NodeDescriptor @@ -235,3 +236,54 @@ class MoesTemperatureHumidtySensorWithScreen(CustomDevice): }, }, } + + +class TuyaTempHumiditySensorWithIPRating(CustomDevice): + """Tuya temperature and humidity sensor with IP Rating and weather sealing.""" + + signature = { + MODELS_INFO: [("_TZ3000_isw9u95y", "TS0201")], + ENDPOINTS: { + 1: { + PROFILE_ID: zha.PROFILE_ID, + DEVICE_TYPE: DeviceType.TEMPERATURE_SENSOR, + INPUT_CLUSTERS: [ + Basic.cluster_id, + PowerConfiguration.cluster_id, + Identify.cluster_id, + IlluminanceMeasurement.cluster_id, # 0x0400 Ghost Cluster + TemperatureMeasurement.cluster_id, + RelativeHumidity.cluster_id, + IasZone.cluster_id, # 0x0500 Ghost Cluster + TuyaTemperatureHumidityAlarmCluster.cluster_id, + ], + OUTPUT_CLUSTERS: [ + Time.cluster_id, + Ota.cluster_id, + ], + } + }, + } + + replacement = { + ENDPOINTS: { + 1: { + PROFILE_ID: zha.PROFILE_ID, + DEVICE_TYPE: DeviceType.TEMPERATURE_SENSOR, + INPUT_CLUSTERS: [ + Basic.cluster_id, + PowerConfiguration.cluster_id, + Identify.cluster_id, + # 0x0400 Ghost Cluster Illuminance Removed + TemperatureMeasurement.cluster_id, + RelativeHumidityX10, + # 0x0500 Ghost Cluster IAD Removed + TuyaTemperatureHumidityAlarmCluster, + ], + OUTPUT_CLUSTERS: [ + Time.cluster_id, + Ota.cluster_id, + ], + } + }, + }