Skip to content

Commit 87d976f

Browse files
committed
Add HOBEIAN (Tuya) soil sensor ZG-303Z and Tuya soil sensor _TZE200_npj9bug3 variant
1 parent 79df871 commit 87d976f

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed

zhaquirks/tuya/tuya_sensor.py

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,114 @@ class NoManufTimeTuyaMCUCluster(TuyaMCUCluster):
296296
)
297297

298298

299+
(
300+
TuyaQuirkBuilder("HOBEIAN", "ZG-303Z")
301+
.applies_to("_TZE200_npj9bug3", "TS0601") # COOLO CS-201Z
302+
.tuya_soil_moisture(dp_id=3)
303+
.tuya_temperature(dp_id=5, scale=10)
304+
.tuya_enum(
305+
dp_id=9,
306+
attribute_name="display_unit",
307+
enum_class=TuyaTempUnitConvert,
308+
entity_type=EntityType.CONFIG,
309+
translation_key="display_unit",
310+
fallback_name="Display unit",
311+
)
312+
.tuya_battery(dp_id=15, battery_type=BatterySize.AAA)
313+
.tuya_number(
314+
dp_id=102,
315+
attribute_name="soil_moisture_calibration",
316+
type=t.uint16_t,
317+
unit=PERCENTAGE,
318+
min_value=-30,
319+
max_value=30,
320+
step=1,
321+
entity_type=EntityType.CONFIG,
322+
device_class=NumberDeviceClass.HUMIDITY,
323+
translation_key="soil_moisture_calibration",
324+
fallback_name="Soil moisture Calibration",
325+
)
326+
.tuya_number(
327+
dp_id=104,
328+
attribute_name="temperature_calibration",
329+
type=t.uint16_t,
330+
unit=UnitOfTemperature.KELVIN,
331+
min_value=-2,
332+
max_value=2,
333+
step=0.1,
334+
multiplier=10,
335+
entity_type=EntityType.CONFIG,
336+
device_class=NumberDeviceClass.TEMPERATURE,
337+
translation_key="temperature_calibration",
338+
fallback_name="Temperature Calibration",
339+
)
340+
.tuya_number(
341+
dp_id=105,
342+
attribute_name="humidity_calibration",
343+
type=t.uint16_t,
344+
unit=PERCENTAGE,
345+
min_value=-30,
346+
max_value=30,
347+
step=1,
348+
entity_type=EntityType.CONFIG,
349+
device_class=NumberDeviceClass.HUMIDITY,
350+
translation_key="humidity_calibration",
351+
fallback_name="Humidity Calibration",
352+
)
353+
.tuya_binary_sensor(
354+
dp_id=106,
355+
attribute_name="dry",
356+
entity_type=EntityType.STANDARD,
357+
device_class=BinarySensorDeviceClass.MOISTURE,
358+
translation_key="dry",
359+
fallback_name="Dry",
360+
)
361+
.tuya_humidity(dp_id=109)
362+
.tuya_number(
363+
dp_id=110,
364+
attribute_name="alarm_soil_moisture_min",
365+
type=t.uint16_t,
366+
unit=PERCENTAGE,
367+
min_value=0,
368+
max_value=100,
369+
step=1,
370+
entity_type=EntityType.CONFIG,
371+
device_class=NumberDeviceClass.MOISTURE,
372+
translation_key="alarm_soil_moisture_min",
373+
fallback_name="Alarm soil moisture min",
374+
)
375+
.tuya_number(
376+
dp_id=111,
377+
attribute_name="temperature_sampling",
378+
type=t.uint16_t,
379+
unit=UnitOfTime.SECONDS,
380+
min_value=5,
381+
max_value=3600,
382+
step=1,
383+
entity_type=EntityType.CONFIG,
384+
device_class=NumberDeviceClass.DURATION,
385+
translation_key="temperature_sampling",
386+
fallback_name="Temperature Sampling",
387+
)
388+
.tuya_number(
389+
dp_id=112,
390+
attribute_name="soil_moisture_sampling",
391+
type=t.uint16_t,
392+
unit=UnitOfTime.SECONDS,
393+
min_value=5,
394+
max_value=3600,
395+
step=1,
396+
entity_type=EntityType.CONFIG,
397+
device_class=NumberDeviceClass.DURATION,
398+
translation_key="soil_moisture_sampling",
399+
fallback_name="Soil Moisture Sampling",
400+
)
401+
.tuya_enchantment(data_query_spell=True)
402+
.skip_configuration()
403+
.add_to_registry()
404+
)
405+
406+
299407
(
300408
TuyaQuirkBuilder("_TZE200_upagmta9", "TS0601")
301409
.applies_to("_TZE204_upagmta9", "TS0601")

0 commit comments

Comments
 (0)