diff --git a/zhaquirks/thirdreality/temperature_and_humidity_sensor_v2.py b/zhaquirks/thirdreality/temperature_and_humidity_sensor_v2.py deleted file mode 100644 index 6cf8738c2d..0000000000 --- a/zhaquirks/thirdreality/temperature_and_humidity_sensor_v2.py +++ /dev/null @@ -1,79 +0,0 @@ -"""Third Reality temperature and humidity sensor devices.""" - -from typing import Final - -from zigpy.quirks import CustomCluster -from zigpy.quirks.v2 import NumberDeviceClass, QuirkBuilder -from zigpy.quirks.v2.homeassistant import PERCENTAGE, UnitOfTemperature -import zigpy.types as t -from zigpy.zcl.foundation import BaseAttributeDefs, ZCLAttributeDef - - -class ThirdRealityTemperatureAndHumidityCluster(CustomCluster): - """Third Reality's temperature and humidity sensor private cluster.""" - - cluster_id = 0xFF01 - - class AttributeDefs(BaseAttributeDefs): - """Define the attributes of a private cluster.""" - - temperature_correction_fahrenheit: Final = ZCLAttributeDef( - id=0x0033, - type=t.int16s, - is_manufacturer_specific=True, - ) - - temperature_correction_celsius: Final = ZCLAttributeDef( - id=0x0031, - type=t.int16s, - is_manufacturer_specific=True, - ) - - humidity_correction: Final = ZCLAttributeDef( - id=0x0032, - type=t.int16s, - is_manufacturer_specific=True, - ) - - -( - QuirkBuilder("Third Reality, Inc", "3RTHS24BZ") - .replaces(ThirdRealityTemperatureAndHumidityCluster) - .number( - attribute_name=ThirdRealityTemperatureAndHumidityCluster.AttributeDefs.temperature_correction_celsius.name, - cluster_id=ThirdRealityTemperatureAndHumidityCluster.cluster_id, - min_value=-10000, - max_value=10000, - multiplier=0.01, - step=0.1, - device_class=NumberDeviceClass.TEMPERATURE, - unit=UnitOfTemperature.CELSIUS, - translation_key="temperature_offset_celsius", - fallback_name="Celsius offset", - ) - .number( - attribute_name=ThirdRealityTemperatureAndHumidityCluster.AttributeDefs.temperature_correction_fahrenheit.name, - cluster_id=ThirdRealityTemperatureAndHumidityCluster.cluster_id, - min_value=-10000, - max_value=10000, - multiplier=0.01, - step=0.1, - device_class=NumberDeviceClass.TEMPERATURE, - unit=UnitOfTemperature.FAHRENHEIT, - translation_key="temperature_offset_fahrenheit", - fallback_name="Fahrenheit offset", - ) - .number( - attribute_name=ThirdRealityTemperatureAndHumidityCluster.AttributeDefs.humidity_correction.name, - cluster_id=ThirdRealityTemperatureAndHumidityCluster.cluster_id, - min_value=-10000, - max_value=10000, - multiplier=0.01, - step=0.1, - device_class=NumberDeviceClass.HUMIDITY, - unit=PERCENTAGE, - translation_key="humidity_offset", - fallback_name="Humidity offset", - ) - .add_to_registry() -) diff --git a/zhaquirks/thirdreality/temperature_and_humidity_sensor_lite_v2.py b/zhaquirks/thirdreality/temperature_sensor.py similarity index 89% rename from zhaquirks/thirdreality/temperature_and_humidity_sensor_lite_v2.py rename to zhaquirks/thirdreality/temperature_sensor.py index 10694b519d..884e34d932 100644 --- a/zhaquirks/thirdreality/temperature_and_humidity_sensor_lite_v2.py +++ b/zhaquirks/thirdreality/temperature_sensor.py @@ -11,7 +11,7 @@ class ThirdRealityTemperatureAndHumidityCluster(CustomCluster): - """Third Reality's temperature and humidity sensor lite private cluster.""" + """Third Reality's temperature and humidity sensor private cluster.""" cluster_id = 0xFF01 @@ -37,10 +37,9 @@ class AttributeDefs(BaseAttributeDefs): ) -( - QuirkBuilder("Third Reality, Inc", "3RTHS0224Z") +base_quirk = ( + QuirkBuilder() .replaces(ThirdRealityTemperatureAndHumidityCluster) - .removes(PollControl.cluster_id) .number( attribute_name=ThirdRealityTemperatureAndHumidityCluster.AttributeDefs.temperature_correction_celsius.name, cluster_id=ThirdRealityTemperatureAndHumidityCluster.cluster_id, @@ -77,5 +76,17 @@ class AttributeDefs(BaseAttributeDefs): translation_key="humidity_offset", fallback_name="Humidity offset", ) +) + +( + base_quirk.clone() + .applies_to("Third Reality, Inc", "3RTHS24BZ") + .add_to_registry() +) # fmt: skip + +( + base_quirk.clone() + .applies_to("Third Reality, Inc", "3RTHS0224Z") + .removes(PollControl.cluster_id) .add_to_registry() )