From 3f0017156950bfb5c020b3a57b0383a2f13974a4 Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Sun, 23 Jul 2023 17:10:27 +0900 Subject: [PATCH] Add support for Yinmik water quality tester Issue #880 --- ACKNOWLEDGEMENTS.md | 1 + DEVICES.md | 1 + .../devices/yinmik_waterquality_tester.yaml | 241 ++++++++++++++++++ 3 files changed, 243 insertions(+) create mode 100644 custom_components/tuya_local/devices/yinmik_waterquality_tester.yaml diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md index 471773fe1b..b94df1fd98 100644 --- a/ACKNOWLEDGEMENTS.md +++ b/ACKNOWLEDGEMENTS.md @@ -320,3 +320,4 @@ Further device support has been made with the assistance of users. Please consi - [iotinkognito](https://github.com/iotinkognito) for contributing support for Makegood double power points. - [luyzfernando08](https://github.com/luyzfernando08) for contributing support for GauTone PG-103 alarm systems. - [jafar-atili](https://github.com/jafar-atili) for contributing improvements to Lytmi Fantasy 3 HDMI sync backlights. +- [samgalagher](https://github.com/samgalagher) for contributing support for Yinmik WF-3188 water quality monitors. diff --git a/DEVICES.md b/DEVICES.md index 541ac2a96d..2f09e6ff37 100644 --- a/DEVICES.md +++ b/DEVICES.md @@ -430,6 +430,7 @@ of device. - Tontine electric blanket - Universal remote control (supports sensors only) - Yieryi water quality monitor (also matches unbranded PH-W3988 device) +- Yinmik WF-3188 water quality monitor - ZN-2C09 9-in-1 air quality monitor - ZX-GS21 gas leak alarm monitor - ZY-M100-WiFi mmWave human presence sensor diff --git a/custom_components/tuya_local/devices/yinmik_waterquality_tester.yaml b/custom_components/tuya_local/devices/yinmik_waterquality_tester.yaml new file mode 100644 index 0000000000..eb8c122fd0 --- /dev/null +++ b/custom_components/tuya_local/devices/yinmik_waterquality_tester.yaml @@ -0,0 +1,241 @@ +name: Water quality monitor +products: + - id: u5xgcpcngk3pfxb4 + name: Yinmik WF-3188 +primary_entity: + entity: sensor + name: Temperature + icon: "mdi:pool-thermometer" + class: temperature + dps: + - id: 2 + type: integer + name: sensor + unit: C + class: measurement + mapping: + - scale: 10 +secondary_entities: + - entity: sensor + name: Battery + class: battery + category: diagnostic + dps: + - id: 7 + type: integer + name: sensor + unit: "%" + - entity: sensor + name: pH + icon: "mdi:ph" + dps: + - id: 10 + type: integer + name: sensor + class: measurement + mapping: + - scale: 100 + - dps_val: 1500 + value: null + - entity: sensor + name: Electrical conductivity + icon: "mdi:omega" + dps: + - id: 11 + type: integer + name: sensor + unit: mS/cm + class: measurement + mapping: + - scale: 1000 + - entity: sensor + name: Oxidation reduction potential + icon: "mdi:virus-off" + dps: + - id: 12 + type: integer + name: sensor + unit: mV + class: measurement + - entity: select + name: pH buffer standard + icon: "mdi:ph" + category: config + dps: + - id: 101 + type: string + name: option + mapping: + - dps_val: AsiaStandard + value: Asia + - dps_val: EUStandard + value: EU + - entity: switch + name: Hold reading + category: config + dps: + - id: 102 + type: boolean + name: switch + - entity: light + name: Backlight + category: config + icon: "mdi:television-ambient-light" + dps: + - id: 103 + type: boolean + name: switch + - entity: switch + name: EC temperature compensation + icon: "mdi:thermometer-check" + category: config + dps: + - id: 104 + type: boolean + name: switch + - entity: number + name: EC temperature factor + category: config + icon: "mdi:thermometer-check" + dps: + - id: 105 + type: integer + name: value + optional: true + unit: "%/℃" + range: + min: 0 + max: 30 + mapping: + - scale: 10 + - entity: switch + name: Warning buzzer + category: config + icon: "mdi:bullhorn" + dps: + - id: 106 + type: boolean + name: switch + - entity: number + name: Maximum pH + category: config + icon: "mdi:ph" + dps: + - id: 107 + type: integer + name: value + range: + min: 0 + max: 1400 + mapping: + - scale: 100 + - entity: number + name: Minimum pH + category: config + icon: "mdi:ph" + dps: + - id: 108 + type: integer + name: value + range: + min: 0 + max: 1400 + mapping: + - scale: 100 + - entity: number + name: Maximum EC + category: config + icon: "mdi:omega" + dps: + - id: 109 + type: integer + name: value + unit: "mS/cm" + range: + min: 0 + max: 200000 + mapping: + - scale: 1000 + - entity: number + name: Minimum EC + category: config + icon: "mdi:omega" + dps: + - id: 110 + type: integer + name: value + unit: "mS/cm" + range: + min: 0 + max: 200000 + mapping: + - scale: 1000 + - entity: number + name: Maximum ORP + icon: "mdi:virus-off" + category: config + dps: + - id: 111 + type: integer + name: value + unit: "mV" + range: + min: -1200 + max: 1200 + - entity: number + name: Minimum ORP + icon: "mdi:virus-off" + category: config + dps: + - id: 112 + type: integer + name: value + unit: "mV" + range: + min: -1200 + max: 1200 + - entity: sensor + name: CF + category: diagnostic + dps: + - id: 113 + type: integer + name: sensor + class: measurement + mapping: + - scale: 10 + - entity: sensor + name: Humidity + class: humidity + dps: + - id: 114 + type: integer + name: sensor + unit: "%" + class: measurement + - entity: number + name: Maximum humidity + category: config + class: humidity + dps: + - id: 115 + type: integer + name: value + unit: "%" + range: + min: 0 + max: 100 + - entity: number + name: Minimum humidity + category: config + class: humidity + dps: + - id: 116 + optional: true + type: integer + name: value + unit: "%" + range: + min: 0 + max: 100 +