瀏覽代碼

[feat] add frizzlife_lp365p_watermonitorandshutdoff (#4112)

* [feat] add frizzlife_lp365p_watermonitorandshutdoff

* Update frizzlife_lp365p_watermonitorandshutdoff.yaml

Refactored the temperature sensor to expose native °C values only.
Removed Fahrenheit conversion, updated unit and range to match device representation, allowing HA to handle unit conversion.

* Refactor water monitor YAML configuration

Updated entity names and units for clarity, changed temperature and volume units from Fahrenheit and gallons to Celsius and liters respectively. Adjusted mapping scales and added new entities for configuration options.

* Fix dps_val key in YAML configuration

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
nalditopr 2 月之前
父節點
當前提交
b7367267a8
共有 1 個文件被更改,包括 273 次插入0 次删除
  1. 273 0
      custom_components/tuya_local/devices/frizzlife_lp365p_watermonitorandshutdoff.yaml

+ 273 - 0
custom_components/tuya_local/devices/frizzlife_lp365p_watermonitorandshutdoff.yaml

@@ -0,0 +1,273 @@
+name: Water meter
+products:
+  - id: 89tojzdfimssmkuk
+    manufacturer: Frizzlife
+    model: LP365P
+entities:
+  # Valve
+  - entity: valve
+    class: water
+    dps:
+      - id: 1
+        type: boolean
+        name: valve
+
+  # Temperature sensor
+  - entity: sensor
+    class: temperature
+    dps:
+      - id: 12
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+
+  # Protection Enabled Switch
+  - entity: switch
+    name: Protection Enabled
+    dps:
+      - id: 101
+        type: boolean
+        name: switch
+
+  # Volume Today
+  - entity: sensor
+    class: water
+    dps:
+      - id: 103
+        type: integer
+        optional: true
+        name: sensor
+        class: total_increasing
+        unit: L
+        mapping:
+          - scale: 10
+
+  # Flow rate
+  - entity: sensor
+    class: volume_flow_rate
+    name: Average flow rate
+    dps:
+      - id: 104
+        type: integer
+        optional: true
+        name: sensor
+        class: measurement
+        unit: L/h
+
+  # Current flow rate
+  - entity: sensor
+    class: volume_flow_rate
+    name: Current flow rate
+    dps:
+      - id: 105
+        type: integer
+        name: sensor
+        class: measurement
+        unit: L/h
+        mapping:
+          - scale: 1000
+  # Leak Warning
+  - entity: binary_sensor
+    class: moisture
+    dps:
+      - id: 106
+        type: boolean
+        name: sensor
+
+  # Leak Alarm
+  - entity: binary_sensor
+    name: Leak alarm
+    class: problem
+    dps:
+      - id: 107
+        type: boolean
+        name: sensor
+
+  # Alarm Clear Button
+  - entity: button
+    name: Alarm clear
+    dps:
+      - id: 108
+        type: boolean
+        name: button
+
+  # Protection Mode Select
+  - entity: select
+    name: Protection mode
+    category: config
+    dps:
+      - id: 109
+        type: string
+        name: option
+        mapping:
+          - dps_val: "AUTO"
+            value: "Auto"
+          - dps_val: "ADVANCED_SETTING"
+            value: "Advanced"
+
+  # AUTO Mode #
+  - entity: select
+    name: "Auto mode"
+    category: config
+    dps:
+      - id: 110
+        type: string
+        name: option
+        mapping:
+          - dps_val: "mode1"
+            value: "Mode 1"
+          - dps_val: "mode2"
+            value: "Mode 2"
+          - dps_val: "mode3"
+            value: "Mode 3"
+      - id: 109
+        type: string
+        name: available
+        mapping:
+          - dps_val: AUTO
+            value: true
+          - value: false
+
+  # ADVANCED Mode #
+  - entity: select
+    name: "Advanced mode"
+    category: config
+    dps:
+      - id: 111
+        type: string
+        name: option
+        mapping:
+          - dps_val: "mode4"
+            value: "Mode 4"
+          - dps_val: "mode5"
+            value: "Mode 5"
+          - dps_val: "mode6"
+            value: "Mode 6"
+      - id: 109
+        type: string
+        name: available
+        mapping:
+          - dps_val: ADVANCED_SETTING
+            value: true
+          - value: false
+
+  # Mode4 allowed flow time
+  - entity: number
+    name: Allowed flow time
+    class: duration
+    category: config
+    dps:
+      - id: 109
+        type: string
+        name: available
+        mapping:
+          - dps_val: ADVANCED_SETTING
+            value: true
+          - value: false
+      - id: 111
+        type: string
+        name: value
+        unit: min
+        range:
+          min: 18
+          max: 180
+        mapping:
+          - dps_val: mode4
+            step: 6
+            value_redirect: mode4_val
+          - dps_val: mode5
+            step: 6
+            value_redirect: mode5_val
+          - dps_val: mode6
+            step: 6
+            value_redirect: mode6_val
+      - id: 112
+        type: integer
+        name: mode4_val
+        precision: 0
+        range:
+          min: 3
+          max: 30
+        mapping:
+          - scale: 0.1666666667
+      - id: 113
+        type: integer
+        name: mode5_val
+        precision: 0
+        range:
+          min: 3
+          max: 30
+        mapping:
+          - scale: 0.1666666667
+      - id: 114
+        type: integer
+        name: mode6_val
+        precision: 0
+        range:
+          min: 3
+          max: 30
+        mapping:
+          - scale: 0.1666666667
+
+  # Mode4 allowed flow volume
+  - entity: number
+    name: Allowed flow volume
+    category: config
+    dps:
+      - id: 109
+        type: string
+        name: available
+        mapping:
+          - dps_val: ADVANCED_SETTING
+            value: true
+          - value: false
+      - id: 111
+        type: string
+        name: value
+        unit: L
+        range:
+          min: 0
+          max: 5000
+        mapping:
+          - dps_val: mode4
+            step: 100
+            value_redirect: mode4_val
+          - dps_val: mode5
+            step: 100
+            value_redirect: mode5_val
+          - dps_val: mode6
+            step: 100
+            value_redirect: mode6_val
+      - id: 115
+        type: integer
+        name: mode4_val
+        range:
+          min: 0
+          max: 50
+        mapping:
+          - dps_val: 0
+            value: 50
+          - scale: 0.01
+      - id: 116
+        type: integer
+        name: mode5_val
+        range:
+          min: 0
+          max: 50
+        mapping:
+          - dps_val: 0
+            value: 50
+          - scale: 0.01
+      - id: 117
+        type: integer
+        name: mode6_val
+        range:
+          min: 0
+          max: 50
+        mapping:
+          - dps_val: 0
+            value: 50
+          - scale: 0.01