Pārlūkot izejas kodu

Summary: fix(kaisai_proheat_airconditioner): tweak fan and swing modes

- Invert fan mode to hopefully be more reliable in switching between auto and manual modes.
- add additional swing modes, match others to translations
- add more translations for additional swing modes

There are many other dps for this device listed in the device info,
and many of them present in the log, but a lot seems to be a lot of
function duplication for voice etc control, or unclear features.

Issue #3695
Jason Rumney 5 mēneši atpakaļ
vecāks
revīzija
49241af990

+ 1 - 1
ACKNOWLEDGEMENTS.md

@@ -1043,4 +1043,4 @@ Further device support has been made with the assistance of users. Please consid
 - [aleks31031992](https://github.com/aleks31031992) for assisting with support for Moes single outlet water timer.
 - [robosphinx](https://github.com/robosphinx) for contributing support for Meegeem cat litter box.
 - [OriginalArkus](https://github.com/OriginalArkus) for contributing support for Princess Smart air cooler.
-- [k0ff33](https://github.com/k0ff33) for contributing support for Kasai Pro Heat+ air conditioner.
+- [k0ff33](https://github.com/k0ff33) for contributing support for Kaisai Pro Heat+ air conditioner.

+ 1 - 1
DEVICES.md

@@ -102,7 +102,7 @@
 - Idea Heating Belt (with CS1 USB dongle)
 - Igenix IG9901WIFI portable air conditioner
 - Inventor Comfort and Leon air conditioners
-- Kasai Pro Heat+ air conditioner
+- Kaisai Pro Heat+ air conditioner
 - Klarstein Iceblock Ecosmart air conditioner
 - Kogan portable air conditioners (Y09, Y12, Y16)
 - Kogan vertical window air conditioner

+ 49 - 59
custom_components/tuya_local/devices/kaisai_proheat_airconditioner.yaml

@@ -5,6 +5,7 @@ products:
     model: Pro Heat+ AC
 entities:
   - entity: climate
+    translation_key: aircon_extra
     dps:
       - id: 1
         name: hvac_mode
@@ -16,7 +17,7 @@ entities:
             constraint: mode
             conditions:
               - dps_val: "0"
-                value: auto
+                value: heat_cool
               - dps_val: "1"
                 value: cool
               - dps_val: "2"
@@ -46,98 +47,87 @@ entities:
         mapping:
           - scale: 100
       - id: 5
-        name: fan_mode
         type: string
+        name: manual_fan_mode
+        hidden: true
+      - id: 7
+        name: fan_mode
+        type: boolean
         mapping:
-          - constraint: auto_fan
-            conditions:
-              - dps_val: true
-                value: auto
-          - dps_val: "1"
-            constraint: auto_fan
+          - dps_val: true
+            value: auto
+          - dps_val: false
+            constraint: manual_fan_mode
             conditions:
-              - dps_val: false
+              - dps_val: "0"
+                value: "off"
+                hidden: true
+              - dps_val: "1"
                 value: quiet
-          - dps_val: "2"
-            constraint: auto_fan
-            conditions:
-              - dps_val: false
+              - dps_val: "2"
                 value: low
-          - dps_val: "3"
-            constraint: auto_fan
-            conditions:
-              - dps_val: false
-                value: medium_low
-          - dps_val: "4"
-            constraint: auto_fan
-            conditions:
-              - dps_val: false
+              - dps_val: "3"
+                value: medlow
+              - dps_val: "4"
                 value: medium
-          - dps_val: "5"
-            constraint: auto_fan
-            conditions:
-              - dps_val: false
-                value: medium_high
-          - dps_val: "6"
-            constraint: auto_fan
-            conditions:
-              - dps_val: false
+              - dps_val: "5"
+                value: medhigh
+              - dps_val: "6"
                 value: high
-          - dps_val: "7"
-            constraint: auto_fan
-            conditions:
-              - dps_val: false
-                value: turbo
-      - id: 7
-        name: auto_fan
-        type: boolean
-        hidden: true
+              - dps_val: "7"
+                value: strong
       - id: 31
         name: swing_mode
         type: string
         mapping:
-          - dps_val: "0"
+          - dps_val: "8"
             value: "off"
           - dps_val: "1"
-            value: vertical
+            value: "on"
           - dps_val: "2"
-            value: up
+            value: upper_half
           - dps_val: "3"
-            value: down
+            value: lower_half
+          - dps_val: "6"
+            value: surround
           - dps_val: "9"
-            value: up_fixed
+            value: topmost
           - dps_val: "10"
-            value: up_offset_fixed
+            value: top
           - dps_val: "11"
-            value: middle_fixed
+            value: middle
           - dps_val: "12"
-            value: down_offset_fixed
+            value: down
           - dps_val: "13"
-            value: down_fixed
+            value: downmost
       - id: 34
         name: swing_horizontal_mode
         type: string
         mapping:
-          - dps_val: "0"
+          - dps_val: "8"
             value: "off"
           - dps_val: "1"
-            value: horizontal
+            value: "on"
           - dps_val: "2"
-            value: left
+            value: left_swing
           - dps_val: "3"
-            value: center
+            value: center_swing
           - dps_val: "4"
-            value: right
+            value: right_swing
+          - dps_val: "5"
+            value: direct
           - dps_val: "9"
-            value: left_fixed
+            value: leftmost
           - dps_val: "10"
-            value: left_offset_fixed
+            value: left
           - dps_val: "11"
-            value: center_fixed
+            value: center
           - dps_val: "12"
-            value: right_offset_fixed
+            value: right
           - dps_val: "13"
-            value: right_fixed
+            value: rightmost
+          - dps_val: "17"
+            value: surround
       - id: 8
         name: preset_mode
         type: boolean

+ 17 - 1
custom_components/tuya_local/translations/bg.json

@@ -182,9 +182,25 @@
                             "top": "Връх",
                             "middle": "Среден",
                             "down": "Надолу",
-                            "downmost": "Най-долу"
+                            "downmost": "Най-долу",
+                            "upper_half": "Горна половина",
+                            "lower_half": "Долна половина",
+                            "surround": "Около"
                         }
                     }
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Най-вляво",
+                            "left": "Ляво",
+                            "center": "Среден",
+                            "right": "Право",
+                            "rightmost": "Най-вдясно",
+                            "left_swing": "Ляв люлеене",
+                            "right_swing": "Дясно люлеене",
+                            "center_swing": "Център люлеене",
+                            "surround": "Около",
+                            "direct": "Директно"
+                        }
                 }
             },
             "thermostat": {

+ 18 - 1
custom_components/tuya_local/translations/ca.json

@@ -182,7 +182,24 @@
                             "downmost": "Més avall",
                             "topmost": "Més amunt",
                             "top": "Amunt",
-                            "middle": "Mitjà"
+                            "middle": "Mitjà",
+                            "upper_half": "Meitat superior",
+                            "lower_half": "Meitat inferior",
+                            "surround": "Al voltant"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "left": "Esquerra",
+                            "leftmost": "Més a l'esquerra",
+                            "rightmost": "Més a la dreta",
+                            "right": "Dreta",
+                            "center": "Centre",
+                            "left_swing": "Balanceig a l'esquerra",
+                            "right_swing": "Balanceig a la dreta",
+                            "center_swing": "Balanceig al centre",
+                            "surround": "Al voltant",
+                            "direct": "Directe"
                         }
                     }
                 }

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

@@ -182,9 +182,26 @@
                             "top": "Horní",
                             "middle": "Střední",
                             "down": "Dolů",
-                            "downmost": "Nejspodnější"
+                            "downmost": "Nejspodnější",
+                            "upper_half": "Horní polovina",
+                            "lower_half": "Dolní polovina",
+                            "surround": "Obklopit"
                         }
-                    }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Nejlevější",
+                            "left": "Vlevo",
+                            "center": "Střed",
+                            "right": "Vpravo",
+                            "rightmost": "Nejpravější",
+                            "left_swing": "Vlevo kyvadlo",
+                            "right_swing": "Vpravo kyvadlo",
+                            "center_swing": "Kyvadlo středu",
+                            "surround": "Obklopit",
+                            "direct": "Přímo"
+                        }
+                    },
                 }
             },
             "thermostat": {

+ 18 - 1
custom_components/tuya_local/translations/de.json

@@ -182,7 +182,24 @@
                             "top": "Oben",
                             "middle": "Mitte",
                             "down": "Unten",
-                            "downmost": "Ganz unten"
+                            "downmost": "Ganz unten",
+                            "upper_half": "Obere Hälfte",
+                            "lower_half": "Untere Hälfte",
+                            "surround": "Umgebung"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Ganz links",
+                            "left": "Links",
+                            "center": "Mitte",
+                            "right": "Rechts",
+                            "rightmost": "Ganz rechts",
+                            "left_swing": "Links schwingen",
+                            "right_swing": "Rechts schwingen",
+                            "center_swing": "Mitte schwingen",
+                            "surround": "Umgebung",
+                            "direct": "Direkt"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/el.json

@@ -182,7 +182,24 @@
                             "top": "Υψηλό",
                             "middle": "Μεσαίο",
                             "down": "Χαμηλό",
-                            "downmost": "Χαμηλότερο δυνατόν"
+                            "downmost": "Χαμηλότερο δυνατόν",
+                            "upper_half": "Άνω μισό",
+                            "lower_half": "Κάτω μισό",
+                            "surround": "Περιστροφή"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Αριστερότερο δυνατόν",
+                            "left": "Αριστερό",
+                            "center": "Κέντρο",
+                            "right": "Δεξί",
+                            "rightmost": "Δεξιότερο δυνατόν",
+                            "left_swing": "Αριστερή κίνηση",
+                            "right_swing": "Δεξιά κίνηση",
+                            "center_swing": "Κίνηση κέντρου",
+                            "surround": "Περιστροφή",
+                            "direct": "Κατευθείαν"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/en.json

@@ -182,7 +182,24 @@
                             "top": "Top",
                             "middle": "Middle",
                             "down": "Down",
-                            "downmost": "Downmost"
+                            "downmost": "Downmost",
+                            "upper_half": "Upper half",
+                            "lower_half": "Lower half",
+                            "surround": "Surround"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Leftmost",
+                            "left": "Left",
+                            "center": "Center",
+                            "right": "Right",
+                            "rightmost": "Rightmost",
+                            "left_swing": "Left swing",
+                            "right_swing": "Right swing",
+                            "center_swing": "Center swing",
+                            "surround": "Surround",
+                            "direct": "Direct"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/es.json

@@ -182,7 +182,24 @@
                             "top": "Alto",
                             "middle": "Medio",
                             "down": "Abajo",
-                            "downmost": "Más abajo"
+                            "downmost": "Más abajo",
+                            "upper_half": "Mitad superior",
+                            "lower_half": "Mitad inferior",
+                            "surround": "Alrededor"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Más a la izquierda",
+                            "left": "Izquierda",
+                            "center": "Centro",
+                            "right": "Derecha",
+                            "rightmost": "Más a la derecha",
+                            "left_swing": "Oscilación izquierda",
+                            "right_swing": "Oscilación derecha",
+                            "center_swing": "Oscilación central",
+                            "surround": "Alrededor",
+                            "direct": "Directo"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/fr.json

@@ -182,7 +182,24 @@
                             "top": "Haut",
                             "middle": "Milieu",
                             "down": "Bas",
-                            "downmost": "Très bas"
+                            "downmost": "Très bas",
+                            "upper_half": "Moitié supérieure",
+                            "lower_half": "Moitié inférieure",
+                            "surround": "Environnant"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Très à gauche",
+                            "left": "Gauche",
+                            "center": "Centre",
+                            "right": "Droite",
+                            "rightmost": "Très à droite",
+                            "left_swing": "Oscillation gauche",
+                            "right_swing": "Oscillation droite",
+                            "center_swing": "Oscillation centrale",
+                            "surround": "Environnant",
+                            "direct": "Direct"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/hu.json

@@ -183,7 +183,24 @@
                             "top": "Fent",
                             "middle": "Középen",
                             "down": "Lent",
-                            "downmost": "Legalacsonyabban"
+                            "downmost": "Legalacsonyabban",
+                            "upper_half": "Felső fél",
+                            "lower_half": "Alsó fél",
+                            "surround": "Körül"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Legbaloldalibb",
+                            "left": "Balra",
+                            "center": "Középre",
+                            "right": "Jobbra",
+                            "rightmost": "Legjobboldalibb",
+                            "left_swing": "Balra lengő",
+                            "right_swing": "Jobbra lengő",
+                            "center_swing": "Középre lengő",
+                            "surround": "Körül",
+                            "direct": "Közvetlen"
                         }
                     }
                 }

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

@@ -182,9 +182,26 @@
                             "top": "Atas",
                             "middle": "Tengah",
                             "down": "Bawah",
-                            "downmost": "Paling bawah"
+                            "downmost": "Paling bawah",
+                            "upper_half": "Setengah atas",
+                            "lower_half": "Setengah bawah",
+                            "surround": "Mengelilingi"
                         }
-                    }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Paling kiri",
+                            "left": "Kiri",
+                            "center": "Tengah",
+                            "right": "Kanan",
+                            "rightmost": "Paling kanan",
+                            "left_swing": "Ayunan kiri",
+                            "right_swing": "Ayunan kanan",
+                            "center_swing": "Ayunan tengah",
+                            "surround": "Mengelilingi",
+                            "direct": "Langsung"
+                        }
+                    },
                 }
             },
             "thermostat": {

+ 18 - 1
custom_components/tuya_local/translations/it.json

@@ -183,7 +183,24 @@
                             "top": "Su",
                             "middle": "A metà",
                             "down": "Giù",
-                            "downmost": "Più giù"
+                            "downmost": "Più giù",
+                            "upper_half": "Metà superiore",
+                            "lower_half": "Metà inferiore",
+                            "surround": "Circonda"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Più a sinistra",
+                            "left": "Sinistra",
+                            "center": "Centro",
+                            "right": "Destra",
+                            "rightmost": "Più a destra",
+                            "left_swing": "Oscillazione a sinistra",
+                            "right_swing": "Oscillazione a destra",
+                            "center_swing": "Oscillazione centrale",
+                            "surround": "Circonda",
+                            "direct": "Diretto"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/ja.json

@@ -182,7 +182,24 @@
                             "top": "上",
                             "middle": "中",
                             "down": "下",
-                            "downmost": "最下"
+                            "downmost": "最下",
+                            "upper_half": "上半分",
+                            "lower_half": "下半分",
+                            "surround": "サラウンド"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "最左",
+                            "left": "左",
+                            "center": "中",
+                            "right": "右",
+                            "rightmost": "最右",
+                            "left_swing": "左スイング",
+                            "right_swing": "右スイング",
+                            "center_swing": "中央スイング",
+                            "surround": "サラウンド",
+                            "direct": "直接"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/no-NB.json

@@ -183,7 +183,24 @@
                             "top": "Høy",
                             "middle": "Midterst",
                             "down": "Nedre",
-                            "downmost": "Nederst"
+                            "downmost": "Nederst",
+                            "upper_half": "Øvre halvdel",
+                            "lower_half": "Nedre halvdel",
+                            "surround": "Omgivelse"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Venstre",
+                            "left": "Midt-venstre",
+                            "center": "Senter",
+                            "right": "Midt-høyre",
+                            "rightmost": "Høyre",
+                            "left_swing": "Venstre sving",
+                            "right_swing": "Høyre sving",
+                            "center_swing": "Senter sving",
+                            "surround": "Omgivelse",
+                            "direct": "Direkte"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/pl.json

@@ -182,7 +182,24 @@
                             "top": "Wysoki",
                             "middle": "Średni",
                             "down": "Niski",
-                            "downmost": "Najniższy"
+                            "downmost": "Najniższy",
+                            "upper_half": "Górna połowa",
+                            "lower_half": "Dolna połowa",
+                            "surround": "Otaczający"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Najbardziej w lewo",
+                            "left": "W lewo",
+                            "center": "Środek",
+                            "right": "W prawo",
+                            "rightmost": "Najbardziej w prawo",
+                            "left_swing": "Huśtawka w lewo",
+                            "right_swing": "Huśtawka w prawo",
+                            "center_swing": "Huśtawka w środek",
+                            "surround": "Otaczający",
+                            "direct": "Bezpośredni"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/pt-BR.json

@@ -182,7 +182,24 @@
                             "top": "Alto",
                             "middle": "Meio",
                             "down": "Abaixo",
-                            "downmost": "Mais abaixo"
+                            "downmost": "Mais abaixo",
+                            "upper_half": "Metade superior",
+                            "lower_half": "Metade inferior",
+                            "surround": "Ao redor"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Mais à esquerda",
+                            "left": "Esquerda",
+                            "center": "Centro",
+                            "right": "Direita",
+                            "rightmost": "Mais à direita",
+                            "left_swing": "Oscilação esquerda",
+                            "right_swing": "Oscilação direita",
+                            "center_swing": "Oscilação central",
+                            "surround": "Ao redor",
+                            "direct": "Direto"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/pt-PT.json

@@ -182,7 +182,24 @@
                             "top": "Alto",
                             "middle": "Meio",
                             "down": "Abaixo",
-                            "downmost": "Mais abaixo"
+                            "downmost": "Mais abaixo",
+                            "upper_half": "Metade superior",
+                            "lower_half": "Metade inferior",
+                            "surround": "Ao redor"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Mais à esquerda",
+                            "left": "Esquerda",
+                            "center": "Centro",
+                            "right": "Direita",
+                            "rightmost": "Mais à direita",
+                            "left_swing": "Oscilação esquerda",
+                            "right_swing": "Oscilação direita",
+                            "center_swing": "Oscilação central",
+                            "surround": "Ao redor",
+                            "direct": "Direto"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/ru.json

@@ -182,7 +182,24 @@
                             "top": "Верхний",
                             "middle": "Средний",
                             "down": "Нижний",
-                            "downmost": "Самый нижний"
+                            "downmost": "Самый нижний",
+                            "upper_half": "Верхняя половина",
+                            "lower_half": "Нижняя половина",
+                            "surround": "Окружающий"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Самый левый",
+                            "left": "Левый",
+                            "center": "Центр",
+                            "right": "Правый",
+                            "rightmost": "Самый правый",
+                            "left_swing": "Маятник влево",
+                            "right_swing": "Маятник вправо",
+                            "center_swing": "Маятник центр",
+                            "surround": "Окружающий",
+                            "direct": "Прямой"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/uk.json

@@ -184,7 +184,24 @@
                             "top": "Верхній",
                             "middle": "Середній",
                             "down": "Низький",
-                            "downmost": "Самий низький"
+                            "downmost": "Самий низький",
+                            "upper_half": "Верхня половина",
+                            "lower_half": "Нижня половина",
+                            "surround": "Навколо"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "Самий лівий",
+                            "left": "Лівий",
+                            "center": "Центр",
+                            "right": "Правий",
+                            "rightmost": "Самий правий",
+                            "left_swing": "Лівий гойдалка",
+                            "right_swing": "Правий гойдалка",
+                            "center_swing": "Центр гойдалка",
+                            "surround": "Навколо",
+                            "direct": "Прямий"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/ur.json

@@ -185,7 +185,24 @@
                             "top": "اوپر",
                             "middle": "درمیانی",
                             "down": "نیچے",
-                            "downmost": "سب سے نیچے"
+                            "downmost": "سب سے نیچے",
+                            "upper_half": "اوپری نصف",
+                            "lower_half": "نچلا نصف",
+                            "surround": "گھیرنا"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "سب سے بائیں",
+                            "left": "بائیں",
+                            "center": "مرکز",
+                            "right": "دائیں",
+                            "rightmost": "سب سے دائیں",
+                            "left_swing": "بائیں جھول",
+                            "right_swing": "دائیں جھول",
+                            "center_swing": "مرکز جھول",
+                            "surround": "گھیرنا",
+                            "direct": "براہ راست"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/zh-Hans.json

@@ -182,7 +182,24 @@
                             "top": "高",
                             "middle": "中",
                             "down": "低",
-                            "downmost": "最低"
+                            "downmost": "最低",
+                            "upper_half": "上半",
+                            "lower_half": "下半",
+                            "surround": "环绕"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "最左",
+                            "left": "左",
+                            "center": "中",
+                            "right": "右",
+                            "rightmost": "最右",
+                            "left_swing": "左摆",
+                            "right_swing": "右摆",
+                            "center_swing": "中摆"
+                            "surround": "环绕",
+                            "direct": "定向"
                         }
                     }
                 }

+ 18 - 1
custom_components/tuya_local/translations/zh-Hant.json

@@ -182,7 +182,24 @@
                             "top": "高",
                             "middle": "中",
                             "down": "低",
-                            "downmost": "最低"
+                            "downmost": "最低",
+                            "upper_half": "上半",
+                            "lower_half": "下半",
+                            "surround": "環繞"
+                        }
+                    },
+                    "swing_horizontal_mode": {
+                        "state": {
+                            "leftmost": "最左",
+                            "left": "左",
+                            "center": "中",
+                            "right": "右",
+                            "rightmost": "最右",
+                            "left_swing": "左擺",
+                            "right_swing": "右擺",
+                            "center_swing": "中擺",
+                            "surround": "環繞",
+                            "direct": "定向"
                         }
                     }
                 }