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

feat(devices): add Ecoso WiFi heating element

Issue #5507

translation changes:
 - replace invalid hyphen in key with underscore
 - update 3 configs that used the invalid key
 - add program and anti_frost to heater translations
Jason Rumney 1 день назад
Родитель
Сommit
7145e05131
28 измененных файлов с 256 добавлено и 53 удалено
  1. 1 0
      DEVICES.md
  2. 154 0
      custom_components/tuya_local/devices/ecoso_wifi_element.yaml
  3. 2 2
      custom_components/tuya_local/devices/kcvents_vt501_fan.yaml
  4. 1 1
      custom_components/tuya_local/devices/royalclima_rcb150_ventilation.yaml
  5. 6 4
      custom_components/tuya_local/icons.json
  6. 4 2
      custom_components/tuya_local/translations/bg.json
  7. 4 2
      custom_components/tuya_local/translations/ca.json
  8. 4 2
      custom_components/tuya_local/translations/cz.json
  9. 4 2
      custom_components/tuya_local/translations/de.json
  10. 4 2
      custom_components/tuya_local/translations/el.json
  11. 4 2
      custom_components/tuya_local/translations/en.json
  12. 4 2
      custom_components/tuya_local/translations/es.json
  13. 4 2
      custom_components/tuya_local/translations/fr.json
  14. 4 2
      custom_components/tuya_local/translations/hu.json
  15. 4 2
      custom_components/tuya_local/translations/id.json
  16. 4 2
      custom_components/tuya_local/translations/it.json
  17. 4 2
      custom_components/tuya_local/translations/ja.json
  18. 4 2
      custom_components/tuya_local/translations/no-NB.json
  19. 4 2
      custom_components/tuya_local/translations/pl.json
  20. 4 2
      custom_components/tuya_local/translations/pt-BR.json
  21. 4 2
      custom_components/tuya_local/translations/pt-PT.json
  22. 4 2
      custom_components/tuya_local/translations/ro.json
  23. 4 2
      custom_components/tuya_local/translations/ru.json
  24. 4 2
      custom_components/tuya_local/translations/sv.json
  25. 4 2
      custom_components/tuya_local/translations/uk.json
  26. 4 2
      custom_components/tuya_local/translations/ur.json
  27. 4 2
      custom_components/tuya_local/translations/zh-Hans.json
  28. 4 2
      custom_components/tuya_local/translations/zh-Hant.json

+ 1 - 0
DEVICES.md

@@ -26,6 +26,7 @@
 - Cronos GPH-D-DA heater
 - Devola Intelligent and Patio heaters
 - Dynasty BTX fireplace
+- Ecoso WiFi heating element
 - Ecostrad Accent iQ heating panel
 - Ecostrad iQ ceramic radiators
 - Ecostrad iQ heating elements

+ 154 - 0
custom_components/tuya_local/devices/ecoso_wifi_element.yaml

@@ -0,0 +1,154 @@
+name: Heating element
+products:
+  - id: 7e1lbi2nugtkhued
+    manufacturer: Ecoso
+entities:
+  - entity: climate
+    translation_key: heater
+    dps:
+      - id: 1
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            value: heat
+      - id: 2
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: thaw
+            value: anti_frost
+          - dps_val: eco
+            value: eco
+          - dps_val: comf
+            value: comfort
+          - dps_val: boost
+            value: boost
+          - dps_val: pragram
+            value: program
+          - dps_val: travel
+            value: away
+      - id: 16
+        type: integer
+        name: temperature
+        range:
+          min: 7
+          max: 30
+      - id: 24
+        type: integer
+        name: current_temperature
+        mapping:
+          - scale: 10
+      - id: 32
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: HEAT
+            value: heating
+          - value: idle
+  - entity: number
+    translation_key: temperature_calibration
+    class: temperature_delta
+    category: config
+    dps:
+      - id: 27
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: -10
+          max: 10
+  - entity: sensor
+    translation_key: time_remaining
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 42
+        type: integer
+        name: sensor
+        unit: min
+  - entity: text
+    translation_key: schedule
+    category: config
+    hidden: true
+    dps:
+      - id: 53
+        type: base64
+        optional: true
+        name: value
+  - entity: number
+    name: Holiday length
+    category: config
+    class: duration
+    dps:
+      - id: 101
+        type: integer
+        name: value
+        unit: d
+        range:
+          min: 0
+          max: 60
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 102
+        type: boolean
+        name: lock
+  - entity: number
+    name: Anti-frost threshold
+    category: config
+    class: temperature
+    dps:
+      - id: 103
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 0
+          max: 5
+  - entity: sensor
+    name: Surface temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 104
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+  - entity: sensor
+    name: Timer mode
+    category: config
+    hidden: true
+    dps:
+      - id: 105
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: "0"
+          - dps_val: "1"
+            value: "1"
+          - dps_val: "2"
+            value: "2"
+          - dps_val: "3"
+            value: "3"
+  - entity: select
+    name: Open window detection
+    translation_key: timer
+    icon: "mdi:window-open-variant"
+    category: config
+    dps:
+      - id: 112
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: "cancel"
+          - dps_val: "60"
+            value: "1h"
+          - dps_val: "90"
+            value: "1h30m"

+ 2 - 2
custom_components/tuya_local/devices/kcvents_vt501_fan.yaml

@@ -58,7 +58,7 @@ entities:
             value: fresh
             value_redirect: preset_mode3
           - dps_val: dummy_mode4
-            value: anti-condensation
+            value: anti_condensation
             value_redirect: preset_mode4
           - dps_val: dummy_mode5
             value: circulate
@@ -97,7 +97,7 @@ entities:
         name: preset_mode4
         mapping:
           - dps_val: true
-            value: anti-condensation
+            value: anti_condensation
           - dps_val: false
             value_redirect: preset_mode5
         hidden: true

+ 1 - 1
custom_components/tuya_local/devices/royalclima_rcb150_ventilation.yaml

@@ -25,7 +25,7 @@ entities:
           - dps_val: Eco
             value: eco
           - dps_val: Anti_Condensation
-            value: anti-condensation
+            value: anti_condensation
       - id: 12
         name: speed
         type: string

+ 6 - 4
custom_components/tuya_local/icons.json

@@ -144,7 +144,9 @@
                             "program_2": "mdi:numeric-2-circle",
                             "program_3": "mdi:numeric-3-circle",
                             "standby": "mdi:power-standby",
-                            "fan_only": "mdi:fan"
+                            "fan_only": "mdi:fan",
+                            "program": "mdi:calendar-clock",
+                            "anti_frost": "mdi:snowflake-alert"
                         }
                     }
                 }
@@ -224,7 +226,7 @@
             "thermostat": {
                 "default": "mdi:thermostat",
                 "state_attributes": {
-                    "fan-mode": {
+                    "fan_mode": {
                         "state": {
                             "cycle": "mdi:auto-renew"
                         }
@@ -344,7 +346,7 @@
                             "auto": "mdi:auto-mode",
                             "manual": "mdi:hand-back-left",
                             "eco": "mdi:leaf",
-                            "anti-condensation": "mdi:water-off",
+                            "anti_condensation": "mdi:water-off",
                             "extractor": "mdi:hvac",
                             "heat_recovery": "mdi:recycle",
                             "timer": "mdi:timer",
@@ -889,7 +891,7 @@
                     "rinsing": "mdi:water",
                     "drying": "mdi:tumble-dryer",
                     "air_purging": "mdi:air-filter",
-                    "anti-freeze": "mdi:snowflake-melt",
+                    "anti_freeze": "mdi:snowflake-melt",
                     "close": "mdi:close-circle",
                     "monitor": "mdi:eye-check",
                     "working": "mdi:hammer-wrench",

+ 4 - 2
custom_components/tuya_local/translations/bg.json

@@ -357,7 +357,9 @@
                             "program_2": "Програма 2",
                             "program_3": "Програма 3",
                             "standby": "Готовност",
-                            "fan_only": "Само вентилатор"
+                            "fan_only": "Само вентилатор",
+                            "program": "Програма",
+                            "anti_frost": "Анти замръзване"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Автоматичен",
                             "manual": "Ръководство",
                             "eco": "Еко",
-                            "anti-condensation": "Антиконденз",
+                            "anti_condensation": "Антиконденз",
                             "extractor": "Екстрактор",
                             "heat_recovery": "Възстановяване на топлината",
                             "timer": "Таймер",

+ 4 - 2
custom_components/tuya_local/translations/ca.json

@@ -357,7 +357,9 @@
                             "program_2": "Programa 2",
                             "program_3": "Programa 3",
                             "standby": "En espera",
-                            "fan_only": "Només ventilador"
+                            "fan_only": "Només ventilador",
+                            "program": "Programa",
+                            "anti_frost": "Anticongelació"
                         }
                     }
                 }
@@ -542,7 +544,7 @@
                             "auto": "Automàtic",
                             "manual": "Manual",
                             "eco": "Ecològic",
-                            "anti-condensation": "Anticondensació",
+                            "anti_condensation": "Anticondensació",
                             "extractor": "Extractor",
                             "heat_recovery": "Recuperació de calor",
                             "timer": "Temporitzador",

+ 4 - 2
custom_components/tuya_local/translations/cz.json

@@ -357,7 +357,9 @@
                             "program_2": "Program 2",
                             "program_3": "Program 3",
                             "standby": "Pohotovostní režim",
-                            "fan_only": "Pouze ventilátor"
+                            "fan_only": "Pouze ventilátor",
+                            "program": "Program",
+                            "anti_frost": "Protizámrazový"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manuál",
                             "eco": "Eco",
-                            "anti-condensation": "Proti kondenzaci",
+                            "anti_condensation": "Proti kondenzaci",
                             "extractor": "Odsávání",
                             "heat_recovery": "Ovzduší",
                             "timer": "Časovač",

+ 4 - 2
custom_components/tuya_local/translations/de.json

@@ -357,7 +357,9 @@
                             "program_2": "Programm 2",
                             "program_3": "Programm 3",
                             "standby": "Standby",
-                            "fan_only": "Ventilator"
+                            "fan_only": "Ventilator",
+                            "program": "Programm",
+                            "anti_frost": "Frostschutz"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manuell",
                             "eco": "Eco",
-                            "anti-condensation": "Anti-Kondensation",
+                            "anti_condensation": "Anti-Kondensation",
                             "extractor": "Abluft",
                             "heat_recovery": "Wärmerückgewinnung",
                             "timer": "Timer",

+ 4 - 2
custom_components/tuya_local/translations/el.json

@@ -357,7 +357,9 @@
                             "program_2": "Πρόγραμμα 2",
                             "program_3": "Πρόγραμμα 3",
                             "standby": "Αναμονή",
-                            "fan_only": "Μόνο ανεμιστήρας"
+                            "fan_only": "Μόνο ανεμιστήρας",
+                            "program": "Πρόγραμμα",
+                            "anti_frost": "Αντιπαγωτική προστασία"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Αυτόματο",
                             "manual": "Χειροκίνητα",
                             "eco": "Οικονομικό",
-                            "anti-condensation": "Αποφυγή υγρασίας",
+                            "anti_condensation": "Αποφυγή υγρασίας",
                             "extractor": "Εξαγωγή",
                             "heat_recovery": "Ανάκτηση θερμότητας",
                             "timer": "Χρονοδιακόπτης",

+ 4 - 2
custom_components/tuya_local/translations/en.json

@@ -357,7 +357,9 @@
                             "program_2": "Program 2",
                             "program_3": "Program 3",
                             "standby": "Standby",
-                            "fan_only": "Fan only"
+                            "fan_only": "Fan only",
+                            "program": "Program",
+                            "anti_frost": "Anti-frost"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manual",
                             "eco": "Eco",
-                            "anti-condensation": "Anti-condensation",
+                            "anti_condensation": "Anti-condensation",
                             "extractor": "Extractor",
                             "heat_recovery": "Heat recovery",
                             "timer": "Timer",

+ 4 - 2
custom_components/tuya_local/translations/es.json

@@ -357,7 +357,9 @@
                             "program_2": "Programa 2",
                             "program_3": "Programa 3",
                             "standby": "En espera",
-                            "fan_only": "Solo ventilador"
+                            "fan_only": "Solo ventilador",
+                            "program": "Programa",
+                            "anti_frost": "Anticongelante"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manual",
                             "eco": "Ecológico",
-                            "anti-condensation": "Anticondensación",
+                            "anti_condensation": "Anticondensación",
                             "extractor": "Extractor",
                             "heat_recovery": "Recuperación de calor",
                             "timer": "Temporizador",

+ 4 - 2
custom_components/tuya_local/translations/fr.json

@@ -357,7 +357,9 @@
                             "program_2": "Programme 2",
                             "program_3": "Programme 3",
                             "standby": "Veille",
-                            "fan_only": "Ventilation"
+                            "fan_only": "Ventilation",
+                            "program": "Programme",
+                            "anti_frost": "Anti-gel"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manuel",
                             "eco": "Écologique",
-                            "anti-condensation": "Anti-condensation",
+                            "anti_condensation": "Anti-condensation",
                             "extractor": "Extracteur",
                             "heat_recovery": "Récupération de chaleur",
                             "timer": "Minuteur",

+ 4 - 2
custom_components/tuya_local/translations/hu.json

@@ -357,7 +357,9 @@
                             "program_2": "Program 2",
                             "program_3": "Program 3",
                             "standby": "Készenlét",
-                            "fan_only": "Ventilátor"
+                            "fan_only": "Ventilátor",
+                            "program": "Programozott",
+                            "anti_frost": "Fagyásgátló"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manuális",
                             "eco": "Eco",
-                            "anti-condensation": "Pára mentesítés",
+                            "anti_condensation": "Pára mentesítés",
                             "extractor": "Kivonat",
                             "heat_recovery": "Hővisszanyerés",
                             "timer": "Időzítő",

+ 4 - 2
custom_components/tuya_local/translations/id.json

@@ -357,7 +357,9 @@
                             "program_2": "Program 2",
                             "program_3": "Program 3",
                             "standby": "Siaga",
-                            "fan_only": "Hanya kipas"
+                            "fan_only": "Hanya kipas",
+                            "program": "Program",
+                            "anti_frost": "Anti beku"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Otomatis",
                             "manual": "Manual",
                             "eco": "Hemat",
-                            "anti-condensation": "Anti kondensasi",
+                            "anti_condensation": "Anti kondensasi",
                             "extractor": "Ekstraktor",
                             "heat_recovery": "Pemulihan panas",
                             "timer": "Pengatur waktu",

+ 4 - 2
custom_components/tuya_local/translations/it.json

@@ -357,7 +357,9 @@
                             "program_2": "Programma 2",
                             "program_3": "Programma 3",
                             "standby": "Standby",
-                            "fan_only": "Solo ventola"
+                            "fan_only": "Solo ventola",
+                            "program": "Programma",
+                            "anti_frost": "Antigelo"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manuale",
                             "eco": "Eco",
-                            "anti-condensation": "Anticondensa",
+                            "anti_condensation": "Anticondensa",
                             "extractor": "Estrattore",
                             "heat_recovery": "Recupero di calore",
                             "timer": "Timer",

+ 4 - 2
custom_components/tuya_local/translations/ja.json

@@ -357,7 +357,9 @@
                             "program_2": "プログラム 2",
                             "program_3": "プログラム 3",
                             "standby": "スタンバイ",
-                            "fan_only": "ファンのみ"
+                            "fan_only": "ファンのみ",
+                            "program": "プログラム",
+                            "anti_frost": "霜防止"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "自動",
                             "manual": "マニュアル",
                             "eco": "エコ",
-                            "anti-condensation": "結露防止",
+                            "anti_condensation": "結露防止",
                             "extractor": "抽出",
                             "heat_recovery": "熱回収",
                             "timer": "タイマー",

+ 4 - 2
custom_components/tuya_local/translations/no-NB.json

@@ -357,7 +357,9 @@
                             "program_2": "Program 2",
                             "program_3": "Program 3",
                             "standby": "Standby",
-                            "fan_only": "Kun vifte"
+                            "fan_only": "Kun vifte",
+                            "program": "Program",
+                            "anti_frost": "Anti-frost"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manuell",
                             "eco": "Øko",
-                            "anti-condensation": "Anti-kondens",
+                            "anti_condensation": "Anti-kondens",
                             "extractor": "Ekstraktor",
                             "heat_recovery": "Varmeutvinning",
                             "timer": "Timer",

+ 4 - 2
custom_components/tuya_local/translations/pl.json

@@ -357,7 +357,9 @@
                             "program_2": "Program 2",
                             "program_3": "Program 3",
                             "standby": "Tryb gotowości",
-                            "fan_only": "Tylko wentylator"
+                            "fan_only": "Tylko wentylator",
+                            "program": "Program",
+                            "anti_frost": "Ochrona przed mrozem"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Ręczny",
                             "eco": "Eco",
-                            "anti-condensation": "Zapobieganie kondensacji",
+                            "anti_condensation": "Zapobieganie kondensacji",
                             "extractor": "Wyciąg",
                             "heat_recovery": "Odzysk ciepła",
                             "timer": "Regulator czasowy",

+ 4 - 2
custom_components/tuya_local/translations/pt-BR.json

@@ -357,7 +357,9 @@
                             "program_2": "Programa 2",
                             "program_3": "Programa 3",
                             "standby": "Em espera",
-                            "fan_only": "Apenas ventilador"
+                            "fan_only": "Apenas ventilador",
+                            "program": "Programa",
+                            "anti_frost": "Anti-congelamento"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manual",
                             "eco": "Ecológico",
-                            "anti-condensation": "Anti-condensação",
+                            "anti_condensation": "Anti-condensação",
                             "extractor": "Extrator",
                             "heat_recovery": "Recuperação de calor",
                             "timer": "Temporizador",

+ 4 - 2
custom_components/tuya_local/translations/pt-PT.json

@@ -357,7 +357,9 @@
                             "program_2": "Programa 2",
                             "program_3": "Programa 3",
                             "standby": "Em espera",
-                            "fan_only": "Ventilador"
+                            "fan_only": "Ventilador",
+                            "program": "Programa",
+                            "anti_frost": "Anti-congelamento"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manual",
                             "eco": "Ecológico",
-                            "anti-condensation": "Anti-condensação",
+                            "anti_condensation": "Anti-condensação",
                             "extractor": "Extrator",
                             "heat_recovery": "Recuperação de calor",
                             "timer": "Temporizador",

+ 4 - 2
custom_components/tuya_local/translations/ro.json

@@ -357,7 +357,9 @@
                             "program_2": "Program 2",
                             "program_3": "Program 3",
                             "standby": "În așteptare",
-                            "fan_only": "Doar ventilator"
+                            "fan_only": "Doar ventilator",
+                            "program": "Program",
+                            "anti_frost": "Anti-îngheț"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manual",
                             "eco": "Eco",
-                            "anti-condensation": "Anti-condens",
+                            "anti_condensation": "Anti-condens",
                             "extractor": "Extractor",
                             "heat_recovery": "Recuperare căldură",
                             "timer": "Temporizator",

+ 4 - 2
custom_components/tuya_local/translations/ru.json

@@ -357,7 +357,9 @@
                             "program_2": "Программа 2",
                             "program_3": "Программа 3",
                             "standby": "Режим ожидания",
-                            "fan_only": "Вентилятор"
+                            "fan_only": "Вентилятор",
+                            "program": "Программа",
+                            "anti_frost": "Антифриз"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Авто",
                             "manual": "Ручной",
                             "eco": "Эко",
-                            "anti-condensation": "Антиконденсация",
+                            "anti_condensation": "Антиконденсация",
                             "extractor": "Экстрактор",
                             "heat_recovery": "Тепловосстановление",
                             "timer": "Таймер",

+ 4 - 2
custom_components/tuya_local/translations/sv.json

@@ -357,7 +357,9 @@
                             "program_2": "Program 2",
                             "program_3": "Program 3",
                             "standby": "Standby",
-                            "fan_only": "Endast fläkt"
+                            "fan_only": "Endast fläkt",
+                            "program": "Program",
+                            "anti_frost": "Antifrost"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Auto",
                             "manual": "Manuell",
                             "eco": "Eko",
-                            "anti-condensation": "Anti-kondens",
+                            "anti_condensation": "Anti-kondens",
                             "extractor": "Fläkt",
                             "heat_recovery": "Värmeåtervinning",
                             "timer": "Timer",

+ 4 - 2
custom_components/tuya_local/translations/uk.json

@@ -357,7 +357,9 @@
                             "program_2": "Програма 2",
                             "program_3": "Програма 3",
                             "standby": "Режим очікування",
-                            "fan_only": "Вентилятор"
+                            "fan_only": "Вентилятор",
+                            "program": "Програма",
+                            "anti_frost: "Антифриз"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "Авто",
                             "manual": "Інструкція",
                             "eco": "Еко",
-                            "anti-condensation": "Антиконденсат",
+                            "anti_condensation": "Антиконденсат",
                             "extractor": "Екстрактор",
                             "heat_recovery": "Відновлення тепла",
                             "timer": "Таймер",

+ 4 - 2
custom_components/tuya_local/translations/ur.json

@@ -357,7 +357,9 @@
                             "program_2": "پروگرام 2",
                             "program_3": "پروگرام 3",
                             "standby": "اسٹینڈ بائی",
-                            "fan_only": "پنکھا"
+                            "fan_only": "پنکھا",
+                            "program": "پروگرام",
+                            "anti_frost": "اینٹی فراسٹ"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "خود مختار",
                             "manual": "دستی",
                             "eco": "ایکو",
-                            "anti-condensation": "اینٹی کنڈینسیشن",
+                            "anti_condensation": "اینٹی کنڈینسیشن",
                             "extractor": "نکالنے والا",
                             "heat_recovery": "حرارتی بازیابی",
                             "timer": "ٹائمر",

+ 4 - 2
custom_components/tuya_local/translations/zh-Hans.json

@@ -357,7 +357,9 @@
                             "program_2": "程序2",
                             "program_3": "程序3",
                             "standby": "待机",
-                            "fan_only": "风扇"
+                            "fan_only": "风扇",
+                            "program": "程序",
+                            "anti_frost": "防冻"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "自动",
                             "manual": "手动",
                             "eco": "节能",
-                            "anti-condensation": "防凝结",
+                            "anti_condensation": "防凝结",
                             "extractor": "排气",
                             "heat_recovery": "热回收",
                             "timer": "定时",

+ 4 - 2
custom_components/tuya_local/translations/zh-Hant.json

@@ -357,7 +357,9 @@
                             "program_2": "程式2",
                             "program_3": "程式3",
                             "standby": "待機",
-                            "fan_only": "僅風扇"
+                            "fan_only": "僅風扇",
+                            "program": "程式",
+                            "anti_frost": "防凍"
                         }
                     }
                 }
@@ -504,7 +506,7 @@
                             "auto": "自動",
                             "manual": "手動",
                             "eco": "節能",
-                            "anti-condensation": "防凝結",
+                            "anti_condensation": "防凝結",
                             "extractor": "抽氣",
                             "heat_recovery": "熱回收",
                             "timer": "計時",