Browse Source

Add support for Duux Bright air purifier

Issue #2269

- add fan presets translations for low, medium, high to avoid forcing
  unnatural mappings to strong, normal (and usually sleep, but this
  already has that separately)
Jason Rumney 1 year ago
parent
commit
1e33eb7f71

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -660,3 +660,4 @@ Further device support has been made with the assistance of users. Please consid
 - [plopezllorca](https://github.com/plopezllorca) for assisting with support for Lefant T700 vacuum.
 - [vrolijkj2](https://github.com/vrolijkj2) for contributing support for FlinQ Breeze fan.
 - [mat1990dj](https://github.com/mat1990dj) for contributing support for Nine EV charger.
+- [bramhoosemans](https://github.com/bramhoosemans) for contributing support for Duux Bright air purifier.

+ 1 - 0
DEVICES.md

@@ -254,6 +254,7 @@
 - Breville Easy Air purifier
 - Breville Smart Air Connect purifier
 - Breville Smart Air Viral Protect Plus purifier
+- Duux Bright air purifier
 - essentials portable air purifier
 - Himox H05 and H06 air purifiers
 - Hosome air purifier

+ 93 - 0
custom_components/tuya_local/devices/duux_bright_purifier.yaml

@@ -0,0 +1,93 @@
+name: Air purifier
+products:
+  - id: go2ndjijilncwuf7
+    name: Duux Bright
+primary_entity:
+  entity: fan
+  translation_key: fan_with_presets
+  icon: "mdi:air-purifier"
+  dps:
+    - id: 1
+      type: boolean
+      name: switch
+    - id: 4
+      type: string
+      name: preset_mode
+      mapping:
+        - dps_val: auto
+          value: auto
+        - dps_val: "1"
+          value: low
+        - dps_val: "2"
+          value: medium
+        - dps_val: "3"
+          value: high
+        - dps_val: sleep
+          value: sleep
+secondary_entities:
+  - entity: sensor
+    class: pm25
+    dps:
+      - id: 2
+        type: integer
+        name: sensor
+        class: measurement
+        unit: ugm3
+  - entity: sensor
+    name: Filter usage
+    icon: "mdi:air-filter"
+    category: diagnostic
+    dps:
+      - id: 5
+        type: integer
+        name: sensor
+        unit: "%"
+  - entity: switch
+    translation_key: ionizer
+    category: config
+    dps:
+      - id: 6
+        type: boolean
+        name: switch
+  - entity: button
+    name: Replace filter
+    class: restart
+    category: config
+    dps:
+      - id: 11
+        type: boolean
+        name: button
+  - entity: select
+    translation_key: timer
+    category: config
+    dps:
+      - id: 18
+        type: string
+        name: option
+        mapping:
+          - dps_val: cancel
+            value: cancel
+          - dps_val: "2h"
+            value: "2h"
+          - dps_val: "4h"
+            value: "4h"
+          - dps_val: "6h"
+            value: "6h"
+          - dps_val: "8h"
+            value: "8h"
+  - entity: sensor
+    name: Air quality
+    icon: "mdi:air-filter"
+    class: enum
+    category: diagnostic
+    dps:
+      - id: 21
+        type: string
+        name: sensor
+        mapping:
+          - dps_val: "great"
+            value: "Great"
+          - dps_val: "good"
+            value: "Good"
+          - dps_val: "poor"
+            value: "Poor"

+ 3 - 0
custom_components/tuya_local/translations/bg.json

@@ -255,6 +255,9 @@
                             "fresh": "Свежо",
                             "smart": "Умен",
                             "strong": "Силен",
+                            "high": "Високо",
+                            "medium": "Средно",
+                            "low": "Ниско",
                             "displayoff": "Дисплеят е изключен",
                             "off": "Изключете дисплея"
                         }

+ 3 - 0
custom_components/tuya_local/translations/cz.json

@@ -255,6 +255,9 @@
                             "fresh": "Svěží",
                             "smart": "Chytrý",
                             "strong": "Silný",
+                            "high": "Vysoký",
+                            "medium": "Střední",
+                            "low": "Nízký",
                             "displayoff": "Vypněte displej",
                             "off": "Vypnuto"
                         }

+ 3 - 0
custom_components/tuya_local/translations/de.json

@@ -255,6 +255,9 @@
                             "fresh": "Frisch",
                             "smart": "Intelligent",
                             "strong": "Stark",
+                            "high": "Hoch",
+                            "medium": "Mittel",
+                            "low": "Niedrig",
                             "displayoff": "Anzeige aus",
                             "off": "Aus"
                         }

+ 3 - 0
custom_components/tuya_local/translations/el.json

@@ -255,6 +255,9 @@
                             "sleep": "Αναμονή",
                             "smart": "Έξυπνο",
                             "strong": "Δυνατό",
+                            "high": "Υψηλό",
+                            "medium": "Μεσαίο",
+                            "low": "Χαμηλό",
                             "displayoff": "Σβήσιμο οθόνης",
                             "off": "Ανενεργό"
                         }

+ 3 - 0
custom_components/tuya_local/translations/en.json

@@ -302,6 +302,9 @@
                             "sleep": "Sleep",
                             "smart": "Smart",
                             "strong": "Strong",
+                            "high": "High",
+                            "medium": "Medium",
+                            "low": "Low",
                             "displayoff": "Display off",
                             "off": "Off"
                         }

+ 3 - 0
custom_components/tuya_local/translations/es.json

@@ -255,6 +255,9 @@
                             "fresh": "Fresco",
                             "smart": "Inteligente",
                             "strong": "Fuerte",
+                            "high": "Alto",
+                            "medium": "Medio",
+                            "low": "Bajo",
                             "displayoff": "Pantalla apagada",
                             "off": "Apagado"
                         }

+ 3 - 0
custom_components/tuya_local/translations/fr.json

@@ -255,6 +255,9 @@
                             "fresh": "Frais",
                             "smart": "Intelligent",
                             "strong": "Fort",
+                            "high": "Haut",
+                            "medium": "Moyen",
+                            "low": "Bas",
                             "displayoff": "Affichage désactivé",
                             "off": "Désactivé"
                         }

+ 3 - 0
custom_components/tuya_local/translations/hu.json

@@ -255,6 +255,9 @@
                             "fresh": "Friss",
                             "smart": "Okos",
                             "strong": "Erős",
+                            "high": "Magas",
+                            "medium": "Közepes",
+                            "low": "Alacsony",
                             "displayoff": "Kijelző kikapcsolva",
                             "off": "Ki"
                         }

+ 3 - 0
custom_components/tuya_local/translations/id.json

@@ -255,6 +255,9 @@
                             "fresh": "Segar",
                             "smart": "Pintar",
                             "strong": "Kencang",
+                            "high": "Tinggi",
+                            "medium": "Sedang",
+                            "low": "Rendah",
                             "displayoff": "Layar mati",
                             "off": "Mati"
                         }

+ 3 - 0
custom_components/tuya_local/translations/it.json

@@ -255,6 +255,9 @@
                             "fresh": "Fresco",
                             "smart": "Inteligente",
                             "strong": "Forte",
+                            "high": "Alto",
+                            "medium": "Medio",
+                            "low": "Basso",
                             "displayoff": "Display spento",
                             "off": "Spento"
                         }

+ 3 - 0
custom_components/tuya_local/translations/ja.json

@@ -255,6 +255,9 @@
                             "fresh": "新鮮",
                             "smart": "スマート",
                             "strong": "強い",
+                            "high": "高い",
+                            "medium": "中",
+                            "low": "低い",
                             "displayoff": "ディスプレイオフ",
                             "off": "オフ"
                         }

+ 3 - 0
custom_components/tuya_local/translations/no-NB.json

@@ -255,6 +255,9 @@
                             "fresh": "Fresh",
                             "smart": "Smart",
                             "strong": "Sterk",
+                            "high": "Høy",
+                            "medium": "Medium",
+                            "low": "Lav",
                             "displayoff": "Skjerm av",
                             "off": "Av"
                         }

+ 3 - 0
custom_components/tuya_local/translations/pl.json

@@ -255,6 +255,9 @@
                             "fresh": "Świeży",
                             "smart": "Inteligentny",
                             "strong": "Silny",
+                            "high": "Wysoki",
+                            "medium": "Średni",
+                            "low": "Niski",
                             "displayoff": "Wyświetlacz wyłączony",
                             "off": "Wyłączony"
                         }

+ 3 - 0
custom_components/tuya_local/translations/pt-BR.json

@@ -255,6 +255,9 @@
                             "fresh": "Fresco",
                             "smart": "Inteligente",
                             "strong": "Forte",
+                            "high": "Alto",
+                            "medium": "Médio",
+                            "low": "Baixo",
                             "displayoff": "Exibição desligada",
                             "off": "Desligado"
                         }

+ 3 - 0
custom_components/tuya_local/translations/ru.json

@@ -255,6 +255,9 @@
                             "fresh": "Свежий",
                             "smart": "Умный",
                             "strong": "Мощный",
+                            "high": "Высокий",
+                            "medium": "Средний",
+                            "low": "Низкий",
                             "displayoff": "Дисплей выкл",
                             "off": "Выкл"
                         }

+ 3 - 0
custom_components/tuya_local/translations/uk.json

@@ -255,6 +255,9 @@
                             "fresh": "Свіжий",
                             "smart": "Розумний",
                             "strong": "Сильний",
+                            "high": "Високий",
+                            "medium": "Середній",
+                            "low": "Низький",
                             "displayoff": "Дисплей вимк",
                             "off": "Вимк"
                         }

+ 3 - 0
custom_components/tuya_local/translations/ur.json

@@ -255,6 +255,9 @@
                             "fresh": "تازه",
                             "smart": "سمارٹ",
                             "strong": "مضبوط",
+                            "high": "زیادہ",
+                            "medium": "درمیانہ",
+                            "low": "کم",
                             "displayoff": "ڈسپلے آف",
                             "off": "آف"
                         }

+ 3 - 0
custom_components/tuya_local/translations/zh-Hans.json

@@ -302,6 +302,9 @@
                             "sleep": "睡眠",
                             "smart": "智能",
                             "strong": "强劲",
+                            "high": "高",
+                            "medium": "中",
+                            "low": "低",
                             "displayoff": "关闭显示",
                             "off": "关闭"
                         }

+ 3 - 0
custom_components/tuya_local/translations/zh-Hant.json

@@ -255,6 +255,9 @@
                             "sleep": "睡眠",
                             "smart": "智能",
                             "strong": "強勁",
+                            "high": "高",
+                            "medium": "中",
+                            "low": "低",
                             "displayoff": "關閉顯示",
                             "off": "關閉"
                         }