|
3 | 3 | from datetime import datetime, timedelta, timezone
|
4 | 4 |
|
5 | 5 | from zigpy.quirks.v2 import BinarySensorDeviceClass, EntityPlatform, EntityType
|
6 |
| -from zigpy.quirks.v2.homeassistant import UnitOfTime, UnitOfVolume |
| 6 | +from zigpy.quirks.v2.homeassistant import ( |
| 7 | + UnitOfElectricPotential, |
| 8 | + UnitOfTime, |
| 9 | + UnitOfVolume, |
| 10 | +) |
7 | 11 | from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass
|
8 | 12 | import zigpy.types as t
|
9 | 13 | from zigpy.zcl.clusters.smartenergy import Metering
|
@@ -666,3 +670,38 @@ class GiexIrrigationStatus(t.enum8):
|
666 | 670 | .skip_configuration()
|
667 | 671 | .add_to_registry()
|
668 | 672 | )
|
| 673 | + |
| 674 | + |
| 675 | +# Tuya 214C Ultrasonic water meter valve |
| 676 | +( |
| 677 | + TuyaQuirkBuilder("_TZE200_zlwr0raf", "TS0601") |
| 678 | + .tuya_metering(dp_id=1, metering_cfg=TuyaValveWaterConsumed) |
| 679 | + # Skipped DP 2,3,4,5,6,16,18 |
| 680 | + .tuya_onoff(dp_id=13) |
| 681 | + .tuya_switch( |
| 682 | + dp_id=14, |
| 683 | + attribute_name="auto_clean", |
| 684 | + entity_type=EntityType.CONFIG, |
| 685 | + translation_key="auto_clean", |
| 686 | + fallback_name="Auto clean", |
| 687 | + ) |
| 688 | + .tuya_dp( |
| 689 | + dp_id=21, |
| 690 | + ep_attribute=TuyaValveWaterConsumed.ep_attribute, |
| 691 | + attribute_name=Metering.AttributeDefs.instantaneous_demand.name, |
| 692 | + ) |
| 693 | + .tuya_temperature(dp_id=22) |
| 694 | + .tuya_sensor( |
| 695 | + dp_id=26, |
| 696 | + attribute_name="voltage", |
| 697 | + type=t.uint16_t, |
| 698 | + converter=lambda x: x * 100, |
| 699 | + device_class=SensorDeviceClass.VOLTAGE, |
| 700 | + state_class=SensorStateClass.MEASUREMENT, |
| 701 | + unit=UnitOfElectricPotential.VOLT, |
| 702 | + entity_type=EntityType.STANDARD, |
| 703 | + fallback_name="Voltage", |
| 704 | + ) |
| 705 | + .skip_configuration() |
| 706 | + .add_to_registry() |
| 707 | +) |
0 commit comments