Browse Source

feat(devices): add Haoqi HQ 001 humidifier

Issue #6044
Jason Rumney 2 hours ago
parent
commit
82f4d615e8
2 changed files with 159 additions and 0 deletions
  1. 1 0
      DEVICES.md
  2. 158 0
      custom_components/tuya_local/devices/haoqi_hq001_humidifier.yaml

+ 1 - 0
DEVICES.md

@@ -624,6 +624,7 @@
 - Eberg HUMI H03G1 humidifier
 - Eta Noble humidifier
 - Flymoon Top Fill 5L Cool Mist humidifier
+- Haoqi HQ 001 humidifier
 - Homvana H111S humidifier
 - Inkbird IHC-200 humidity controller
 - Klarta Humea and Humea Grande humidifiers

+ 158 - 0
custom_components/tuya_local/devices/haoqi_hq001_humidifier.yaml

@@ -0,0 +1,158 @@
+name: Humidifier
+products:
+  - id: hmxaecm1akdukotj
+    manufacturer: Haoqi
+    model: HQ 001
+entities:
+  - entity: humidifier
+    class: humidifier
+    translation_key: extended
+    dps:
+      - id: 2
+        type: boolean
+        name: switch
+      - id: 13
+        type: integer
+        name: humidity
+        range:
+          min: 45
+          max: 95
+        mapping:
+          - step: 5
+      - id: 14
+        type: integer
+        name: current_humidity
+      - id: 101
+        type: boolean
+        name: mode
+        mapping:
+          - dps_val: false
+            value: normal
+          - dps_val: true
+            value: continuous
+
+  - entity: light
+    translation_key: ambient_light
+    category: config
+    dps:
+      - id: 5
+        type: boolean
+        name: switch
+
+  - entity: switch
+    translation_key: sleep
+    category: config
+    dps:
+      - id: 16
+        type: boolean
+        name: switch
+  - entity: select
+    translation_key: timer
+    category: config
+    dps:
+      - id: 19
+        type: string
+        name: option
+        mapping:
+          - dps_val: cancel
+            value: cancel
+          - dps_val: "1h"
+            value: "1h"
+          - dps_val: "2h"
+            value: "2h"
+          - dps_val: "3h"
+            value: "3h"
+          - dps_val: "4h"
+            value: "4h"
+          - dps_val: "5h"
+            value: "5h"
+          - dps_val: "6h"
+            value: "6h"
+          - dps_val: "7h"
+            value: "7h"
+          - dps_val: "8h"
+            value: "8h"
+          - dps_val: "9h"
+            value: "9h"
+          - dps_val: "10h"
+            value: "10h"
+          - dps_val: "11h"
+            value: "11h"
+          - dps_val: "12h"
+            value: "12h"
+          - dps_val: "13h"
+            value: "13h"
+          - dps_val: "14h"
+            value: "14h"
+          - dps_val: "15h"
+            value: "15h"
+          - dps_val: "16h"
+            value: "16h"
+          - dps_val: "17h"
+            value: "17h"
+          - dps_val: "18h"
+            value: "18h"
+          - dps_val: "19h"
+            value: "19h"
+          - dps_val: "20h"
+            value: "20h"
+          - dps_val: "21h"
+            value: "21h"
+          - dps_val: "22h"
+            value: "22h"
+          - dps_val: "23h"
+            value: "23h"
+          - dps_val: "24h"
+            value: "24h"
+  - entity: sensor
+    translation_key: time_remaining
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 20
+        type: integer
+        name: sensor
+        unit: min
+  - entity: binary_sensor
+    translation_key: tank_empty
+    dps:
+      - id: 22
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 1
+            value: true
+          - value: false
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 22
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: 1
+            value: false
+          - value: true
+      - id: 22
+        type: bitfield
+        name: fault_code
+  - entity: fan
+    dps:
+      - id: 2
+        type: boolean
+        name: switch
+      - id: 23
+        type: string
+        name: speed
+        mapping:
+          - dps_val: level_1
+            value: 25
+          - dps_val: level_2
+            value: 50
+          - dps_val: level_3
+            value: 75
+          - dps_val: level_4
+            value: 100