Просмотр исходного кода

Add support for PH-W218 water quality monitor.

Issue #580
Jason Rumney 2 лет назад
Родитель
Сommit
9682ecc6a5

+ 1 - 1
ACKNOWLEDGEMENTS.md

@@ -230,4 +230,4 @@ Further device support has been made with the assistance of users.  Please consi
 - [MackoMici](https://github.com/MackoMici) for contributing support for GX aroma diffuser, which was merged with the YYM config.
 - [MackoMici](https://github.com/MackoMici) for contributing support for GX aroma diffuser, which was merged with the YYM config.
 - [Die-Meester](https://github.com/Die-Meester) for contributing support for CBI Astute smart switches.
 - [Die-Meester](https://github.com/Die-Meester) for contributing support for CBI Astute smart switches.
 - [ResteNarquois](https://github.com/ResteNarquois) for assisting with support for Zemismart roller shades.
 - [ResteNarquois](https://github.com/ResteNarquois) for assisting with support for Zemismart roller shades.
-
+- [grangoni](https://github.com/grangoni) for contributing support for PH-W218 water quality monitors.

+ 2 - 1
DEVICES.md

@@ -344,8 +344,9 @@ of device.
 - Nedis pet feeder
 - Nedis pet feeder
 - Nedis WIFISA10CWT air quality monitor
 - Nedis WIFISA10CWT air quality monitor
 - PGST PA-010 indoor temperature and humidity sensor
 - PGST PA-010 indoor temperature and humidity sensor
+- PH-W218 water quality monitor
 - Qoto 03 smart water valve / sprinkler controller
 - Qoto 03 smart water valve / sprinkler controller
 - SD123 HPR01 human presence radar
 - SD123 HPR01 human presence radar
 - Universal remote control (supports sensors only)
 - Universal remote control (supports sensors only)
-- Yieryi pH meter (also matches unbranded pH-W3988 device)
+- Yieryi water quality monitor (also matches unbranded PH-W3988 device)
 - ZX-G30 alarm system (not as an alarm_control_panel, as individual inputs and sensors)
 - ZX-G30 alarm system (not as an alarm_control_panel, as individual inputs and sensors)

+ 280 - 0
custom_components/tuya_local/devices/phw218_waterquality_monitor.yaml

@@ -0,0 +1,280 @@
+name:  Water quality
+product:
+  - id: layxxij0sdbrfmrf
+    name: pH-W218
+primary_entity:
+  entity: sensor
+  name: Temperature
+  class: temperature
+  icon: "mdi:water-thermometer"
+  dps:
+    - id: 8
+      type: integer
+      name: sensor
+      class: measurement
+      mapping:
+        - scale: 10
+secondary_entities:
+  - entity: sensor
+    name: pH
+    icon: "mdi:ph"
+    dps:
+      - id: 106
+        type: integer
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 100
+          - dps_val: 1500
+            value: null
+  - entity: sensor
+    name: Oxidation reduction potential
+    icon: "mdi:virus-off"
+    dps:
+      - id: 131
+        type: integer
+        name: sensor
+        class: measurement
+        unit: mV
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Electrical conductivity
+    icon: "mdi:omega"
+    dps:
+      - id: 116
+        type: integer
+        name: sensor
+        class: measurement
+        unit: µS/cm
+  - entity: sensor
+    name: Total dissolved solids
+    icon: "mdi:water-opacity"
+    dps:
+      - id: 111
+        type: integer
+        name: sensor
+        class: measurement
+        unit: ppm
+  - entity: sensor
+    name: Salinity
+    icon: "mdi:shaker"
+    dps:
+      - id: 121
+        type: integer
+        name: sensor
+        class: measurement
+        unit: ppm
+  - entity: sensor
+    name: Specific gravity
+    icon: "mdi:weight"
+    dps:
+      - id: 126
+        type: integer
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 1000
+  - entity: sensor
+    name: Conductivity factor
+    icon: "mdi:omega"
+    dps:
+      - id: 136
+        type: integer
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 100
+  - entity: sensor
+    name: Humidity
+    class: humidity
+    dps:
+      - id: 141
+        type: integer
+        name: sensor
+        class: measurement
+        unit: "%"
+  - entity: number
+    name: High temperature warning
+    category: config
+    icon: "mdi:thermometer-chevron-up"
+    dps:
+      - id: 102
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 0
+          max: 50
+  - entity: number
+    name: Low temperature warning
+    category: config
+    icon: "mdi:thermometer-chevron-down"
+    dps:
+      - id: 103
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 0
+          max: 50
+  - entity: number
+    name: High pH warning
+    category: config
+    icon: "mdi:pH"
+    dps:
+      - id: 107
+        type: integer
+        name: value
+        range:
+          min: 0
+          max: 1500
+        mapping:
+          - scale: 100
+  - entity: number
+    name: Low pH warning
+    category: config
+    icon: "mdi:pH"
+    dps:
+      - id: 108
+        type: integer
+        name: value
+        range:
+          min: 0
+          max: 1500
+        mapping:
+          - scale: 100
+  - entity: number
+    name: High TDS warning
+    category: config
+    icon: "mdi:water-opacity"
+    dps:
+      - id: 112
+        type: integer
+        name: value
+        unit: ppm
+        range:
+          min: 0
+          max: 199999
+  - entity: number
+    name: Low TDS warning
+    category: config
+    icon: "mdi:water-opacity"
+    dps:
+      - id: 113
+        type: integer
+        name: value
+        unit: ppm
+        range:
+          min: 0
+          max: 199999
+  - entity: number
+    name: High EC warning
+    category: config
+    icon: "mdi:omega"
+    dps:
+      - id: 117
+        type: integer
+        name: value
+        unit: µS/cm
+        range:
+          min: 0
+          max: 199999
+  - entity: number
+    name: Low EC warning
+    category: config
+    icon: "mdi:omega"
+    dps:
+      - id: 118
+        type: integer
+        name: value
+        unit: µS/cm
+        range:
+          min: 0
+          max: 199999
+  - entity: number
+    name: High salinity warning
+    category: config
+    icon: "mdi:shaker"
+    dps:
+      - id: 122
+        type: integer
+        name: value
+        unit: ppm
+        range:
+          min: 0
+          max: 199999
+  - entity: number
+    name: Low salinity warning
+    category: config
+    icon: "mdi:shaker"
+    dps:
+      - id: 123
+        type: integer
+        name: value
+        unit: 
+        range:
+          min: 0
+          max: 199999
+  - entity: number
+    name: High ORP warning
+    category: config
+    icon: "mdi:virus-off"
+    dps:
+      - id: 132
+        type: integer
+        name: value
+        unit: mV
+        range:
+          min: -2000
+          max: 2000
+  - entity: number
+    name: Low ORP warning
+    category: config
+    icon: "mdi:virus-off"
+    dps:
+      - id: 133
+        type: integer
+        name: value
+        unit: mV
+        range:
+          min: -2000
+          max: 2000
+  - entity: number
+    name: High CF warning
+    category: config
+    icon: "mdi:omega"
+    dps:
+      - id: 137
+        type: integer
+        name: value
+        range:
+          min: 0
+          max: 199999
+        mapping:
+          - scale: 100
+  - entity: number
+    name: High humidity warning
+    category: config
+    icon: "mdi:water-percent-alert"
+    dps:
+      - id: 142
+        type: integer
+        name: value
+        unit: "%"
+        range:
+          min: 0
+          max: 100
+  - entity: number
+    name: High humidity warning
+    category: config
+    icon: "mdi:water-percent-alert"
+    dps:
+      - id: 143
+        type: integer
+        name: value
+        unit: "%"
+        range:
+          min: 0
+          max: 100
+

+ 1 - 0
custom_components/tuya_local/devices/yieryi_ph_meter.yaml

@@ -5,6 +5,7 @@ products:
 primary_entity:
 primary_entity:
   entity: sensor
   entity: sensor
   name: pH
   name: pH
+  icon: "mdi:ph"
   dps:
   dps:
     - id: 102
     - id: 102
       type: integer
       type: integer