Explorar o código

Add support for Wasserstein AquaPal water monitor.

Issue #2633
Jason Rumney hai 1 ano
pai
achega
506f1f23e4

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -801,3 +801,4 @@ Further device support has been made with the assistance of users. Please consid
 - [estevao90](https://github.com/estevao90) for contributing support for Geonav HISB80A energy meter.
 - [estevao90](https://github.com/estevao90) for contributing support for Geonav HISB80A energy meter.
 - [akop](https://github.com/akop) for contributing support for Ledvance Smart+ Planon plus backlight.
 - [akop](https://github.com/akop) for contributing support for Ledvance Smart+ Planon plus backlight.
 - [vytux-com](https://github.com/vytux-com) for contributing support for 3A Nue 3 speed fan and light controller.
 - [vytux-com](https://github.com/vytux-com) for contributing support for 3A Nue 3 speed fan and light controller.
+- [nocolas-sora](https://github.com/nocolas-sora) for assisting with support for Wasserstein AquaPal water monitor.

+ 1 - 0
DEVICES.md

@@ -864,6 +864,7 @@ port and password.
 - Qoto 03 smart water valve / sprinkler controller
 - Qoto 03 smart water valve / sprinkler controller
 - Qoto 05 smart water valve / sprinkler controller
 - Qoto 05 smart water valve / sprinkler controller
 - SH07-8 / SH07S-TY smart sprinkler controller (sold as Aquarobo, Leictory LK06 and other brands)
 - SH07-8 / SH07S-TY smart sprinkler controller (sold as Aquarobo, Leictory LK06 and other brands)
+- Wasserstein AquaPal water monitor
 - Zemismart DP-WBS01 8-zone sprinkler controller (also sold as Benexmart and other brands)
 - Zemismart DP-WBS01 8-zone sprinkler controller (also sold as Benexmart and other brands)
 
 
 ### Miscellaneous
 ### Miscellaneous

+ 282 - 0
custom_components/tuya_local/devices/wasserstein_aquapal_watermonitor.yaml

@@ -0,0 +1,282 @@
+name: Water monitor
+products:
+  - id: h2hwrtfdg3uwcsil
+    manufacturer: Wasserstein
+    model: AquaPal
+entities:
+  - entity: valve
+    class: water
+    dps:
+      - id: 1
+        type: boolean
+        name: valve
+      - id: 10
+        type: string
+        optional: true
+        name: unused_weather_delay
+  - entity: sensor
+    class: volume_flow_rate
+    dps:
+      - id: 5
+        type: integer
+        name: sensor
+        unit: gal/min
+        class: measurement
+        mapping:
+          - scale: 600
+  - entity: sensor
+    class: water
+    category: diagnostic
+    dps:
+      - id: 6
+        type: integer
+        name: sensor
+        unit: gal
+        class: measurement
+        mapping:
+          - scale: 10
+      - id: 125
+        type: integer
+        name: last_hour
+        mapping:
+          - scale: 10
+  - entity: sensor
+    class: temperature
+    dps:
+      - id: 101
+        type: integer
+        name: sensor
+        unit: F
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: sensor
+    class: pressure
+    dps:
+      - id: 102
+        type: integer
+        name: sensor
+        unit: psi
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: number
+    name: Minimum temperature
+    class: temperature
+    category: config
+    icon: "mdi:thermometer-chevron-down"
+    dps:
+      - id: 104
+        type: integer
+        name: value
+        unit: F
+        range:
+          min: 0
+          max: 176
+  - entity: number
+    name: Maximum temperature
+    class: temperature
+    category: config
+    icon: "mdi:thermometer-chevron-up"
+    dps:
+      - id: 105
+        type: integer
+        name: value
+        unit: F
+        range:
+          min: 0
+          max: 176
+  - entity: number
+    name: Minimum pressure
+    class: pressure
+    category: config
+    icon: "mdi:chevron-down-cirle-outline"
+    dps:
+      - id: 106
+        type: integer
+        name: value
+        unit: psi
+        range:
+          min: 0
+          max: 100
+  - entity: number
+    name: Maximum pressure
+    class: pressure
+    category: config
+    icon: "mdi:chevron-up-cirle-outline"
+    dps:
+      - id: 107
+        type: integer
+        name: value
+        unit: psi
+        range:
+          min: 0
+          max: 100
+  - entity: number
+    name: Minimum flow
+    class: volume_flow_rate
+    category: config
+    icon: "mdi:waves-arrow-left"
+    dps:
+      - id: 108
+        type: integer
+        name: value
+        unit: gal/min
+        range:
+          min: 0
+          max: 4000
+        mapping:
+          - scale: 60
+  - entity: number
+    name: Maximum flow
+    class: volume_flow_rate
+    category: config
+    icon: "mdi:waves-arrow-right"
+    dps:
+      - id: 109
+        type: integer
+        name: value
+        unit: gal/min
+        range:
+          min: 0
+          max: 4000
+        mapping:
+          - scale: 60
+  - entity: switch
+    name: Temperature alarm
+    icon: "mdi:thermometer-alert"
+    category: config
+    dps:
+      - id: 110
+        type: boolean
+        name: switch
+  - entity: switch
+    name: Pressure alarm
+    icon: "mdi:car-brake-low-pressure"
+    category: config
+    dps:
+      - id: 111
+        type: boolean
+        name: switch
+  - entity: button
+    name: Leakage self test
+    category: config
+    dps:
+      - id: 112
+        type: string
+        optional: true
+        name: button
+        mapping:
+          - dps_val: "1"
+            value: true
+  - entity: select
+    translation_key: temperature_unit
+    category: config
+    dps:
+      - id: 114
+        type: string
+        name: option
+        mapping:
+          - dps_val: "1"
+            value: fahrenheit
+          - dps_val: "2"
+            value: celsius
+  - entity: select
+    name: Pressure unit
+    category: config
+    dps:
+      - id: 115
+        type: string
+        name: option
+        mapping:
+          - dps_val: "1"
+            value: psi
+          - dps_val: "2"
+            value: kPa
+  - entity: select
+    name: Flow rate unit
+    category: config
+    dps:
+      - id: 116
+        type: string
+        name: option
+        mapping:
+          - dps_val: "1"
+            value: gal/h
+          - dps_val: "2"
+            value: m³/h
+  - entity: event
+    name: Leak
+    dps:
+      - id: 118
+        type: string
+        optional: true
+        name: event
+        mapping:
+          - dps_val: "0"
+            value: ok
+          - dps_val: "1"
+            value: alert
+  - entity: event
+    name: Temperature alert
+    dps:
+      - id: 119
+        type: string
+        name: event
+        optional: true
+        mapping:
+          - dps_val: "0"
+            value: ok
+          - dps_val: "1"
+            value: low_temperature
+          - dps_val: "2"
+            value: high_temperature
+          - dps_val: "3"
+            value: sensor_fault
+  - entity: event
+    name: Pressure alert
+    dps:
+      - id: 120
+        type: string
+        name: event
+        optional: true
+        mapping:
+          - dps_val: "0"
+            value: ok
+          - dps_val: "1"
+            value: low_pressure
+          - dps_val: "2"
+            value: high_pressure
+          - dps_val: "3"
+            value: sensor_fault
+  - entity: event
+    name: Flow alert
+    dps:
+      - id: 121
+        type: string
+        name: event
+        optional: true
+        mapping:
+          - dps_val: "0"
+            value: ok
+          - dps_val: "1"
+            value: high_flow_rate
+          - dps_val: "2"
+            value: low_flow_rate
+          - dps_val: "3"
+            value: sensor_fault
+  - entity: switch
+    name: Flow alarm
+    category: config
+    dps:
+      - id: 123
+        type: boolean
+        name: switch
+  - entity: button
+    name: Meter reset
+    category: config
+    dps:
+      - id: 124
+        type: boolean
+        optional: true
+        name: button