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

Kettles: avoid using non-standard operation modes

HA documentation for water_heater seems to have been updated since it
was implemented, to clarify that integrations must only use
pre-defined operation modes.

So using operation_mode for different kettle modes is not correct.

Instead, move the translations to a kettle_mode key under select
entity, and add such an entity to kettles that were previously abusing
operation_mode for this, and use operation_mode only as a switch
between "off" and "electric".

- Korex AX-WF306N disentangle the two temperature settings, and
instead allow temperature_unit to take effect. Since the temperatures
are no longer entangled, and the keep warm switch is separated out,
only have the "keep warm" temperature as a separate select entity.

The exact operation of this device is still a bit confusing to me,
especially with the number of write-only dps related to temperature
settings that are currently being ignored by the config.

PR #3301
Jason Rumney 8 месяцев назад
Родитель
Сommit
76a57bf406
28 измененных файлов с 410 добавлено и 419 удалено
  1. 16 10
      custom_components/tuya_local/devices/aeno_ek7s_kettle.yaml
  2. 14 12
      custom_components/tuya_local/devices/anko_kettle.yaml
  3. 71 104
      custom_components/tuya_local/devices/korex_axwf306n_smart_kettle.yaml
  4. 14 12
      custom_components/tuya_local/devices/setti_czajnik_kettle.yaml
  5. 16 14
      custom_components/tuya_local/devices/silvercrest_kettle.yaml
  6. 14 2
      custom_components/tuya_local/devices/weeket_kettle.yaml
  7. 9 3
      custom_components/tuya_local/icons.json
  8. 12 13
      custom_components/tuya_local/translations/bg.json
  9. 12 13
      custom_components/tuya_local/translations/ca.json
  10. 12 13
      custom_components/tuya_local/translations/cz.json
  11. 12 13
      custom_components/tuya_local/translations/de.json
  12. 12 13
      custom_components/tuya_local/translations/el.json
  13. 12 13
      custom_components/tuya_local/translations/en.json
  14. 12 13
      custom_components/tuya_local/translations/es.json
  15. 12 13
      custom_components/tuya_local/translations/fr.json
  16. 12 13
      custom_components/tuya_local/translations/hu.json
  17. 12 13
      custom_components/tuya_local/translations/id.json
  18. 12 13
      custom_components/tuya_local/translations/it.json
  19. 12 13
      custom_components/tuya_local/translations/ja.json
  20. 12 13
      custom_components/tuya_local/translations/no-NB.json
  21. 12 13
      custom_components/tuya_local/translations/pl.json
  22. 12 13
      custom_components/tuya_local/translations/pt-BR.json
  23. 16 2
      custom_components/tuya_local/translations/pt-PT.json
  24. 12 13
      custom_components/tuya_local/translations/ru.json
  25. 12 13
      custom_components/tuya_local/translations/uk.json
  26. 12 13
      custom_components/tuya_local/translations/ur.json
  27. 12 13
      custom_components/tuya_local/translations/zh-Hans.json
  28. 12 13
      custom_components/tuya_local/translations/zh-Hant.json

+ 16 - 10
custom_components/tuya_local/devices/aeno_ek7s_kettle.yaml

@@ -14,16 +14,7 @@ entities:
           - dps_val: false
             value: "off"
           - dps_val: true
-            constraint: work_type
-            conditions:
-              - dps_val: setting_quick
-                value: quick_heat
-              - dps_val: boiling_quick
-                value: quick_boil
-              - dps_val: temp_setting
-                value: heat
-              - dps_val: temp_boiling
-                value: boil
+            value: electric
       # Temperatures documented as having F equivalents at +1
       - id: 2
         type: integer
@@ -93,6 +84,21 @@ entities:
         type: string
         name: work_type
         hidden: true
+  - entity: select
+    translation_key: kettle_mode
+    dps:
+      - id: 16
+        type: string
+        name: option
+        mapping:
+          - dps_val: setting_quick
+            value: quick_heat
+          - dps_val: boiling_quick
+            value: quick_boil
+          - dps_val: temp_setting
+            value: heat
+          - dps_val: temp_boiling
+            value: boil            
   - entity: switch
     name: Keep warm
     icon: "mdi:kettle-steam"

+ 14 - 12
custom_components/tuya_local/devices/anko_kettle.yaml

@@ -14,16 +14,7 @@ entities:
           - dps_val: false
             value: "off"
           - dps_val: true
-            constraint: work_type
-            conditions:
-              - dps_val: boiling_quick
-                value: quick_boil
-              - dps_val: setting_quick
-                value: quick_heat
-              - dps_val: temp_boiling
-                value: boil
-              - dps_val: temp_setting
-                value: heat
+            value: electric
       - id: 2
         type: integer
         name: current_temperature
@@ -36,10 +27,21 @@ entities:
           max: 90
         mapping:
           - step: 5
+  - entity: select
+    translation_key: kettle_mode
+    dps:
       - id: 16
         type: string
-        name: work_type
-        hidden: true
+        name: option
+        mapping:
+          - dps_val: boiling_quick
+            value: quick_boil
+          - dps_val: setting_quick
+            value: quick_heat
+          - dps_val: temp_boiling
+            value: boil
+          - dps_val: temp_setting
+            value: heat
   - entity: switch
     name: Keep warm
     icon: "mdi:kettle-outline"

+ 71 - 104
custom_components/tuya_local/devices/korex_axwf306n_smart_kettle.yaml

@@ -14,12 +14,7 @@ entities:
           - dps_val: false
             value: "off"
           - dps_val: true
-            constraint: keep_warm
-            conditions:
-              - dps_val: false
-                value: heat
-              - dps_val: true
-                value: keep_warm
+            value: electric
       - id: 5
         type: integer
         name: current_temperature
@@ -27,77 +22,87 @@ entities:
         type: string
         name: temperature
         range:
-          min: 113
+          min: 45
           max: 212
         mapping:
-          - step: 9
-            constraint: keep_warm
-            conditions:
-              - dps_val: false
-                mapping:
-                  - dps_val: "0"
-                    value: 113  # actually off, but avoids disjointed values
-                  - dps_val: "11"
-                    value: 122
-                  - dps_val: "10"
-                    value: 131
-                  - dps_val: "9"
-                    value: 140
-                  - dps_val: "8"
-                    value: 149
-                  - dps_val: "7"
-                    value: 158
-                  - dps_val: "6"
-                    value: 167
-                  - dps_val: "5"
-                    value: 176
-                  - dps_val: "4"
-                    value: 185
-                  - dps_val: "3"
-                    value: 194
-                  - dps_val: "2"
-                    value: 203
-                  - dps_val: "1"
-                    value: 212
-              - dps_val: true
-                range:
-                  min: 113
-                  max: 203
-                value_redirect: keep_warm_temp
-      - id: 102
+            - constraint: temperature_unit
+              conditions:
+                - dps_val: c
+                  value_redirect: temperature_c
+                  step: 5
+                  range:
+                    min: 45
+                    max: 100
+                - dps_val: f
+                  value_redirect: temperature_f
+                  step: 9
+                  range:
+                    min: 113
+                    max: 212
+      - id: 101
         type: string
-        name: keep_warm_temp
+        name: temperature_f
         hidden: true
         range:
           min: 113
-          max: 203
+          max: 212
         mapping:
           - dps_val: "0"
-            value: 113  # actually off
-          - dps_val: "10"
+            value: 113  # actually off, but avoids disjointed values
+          - dps_val: "11"
             value: 122
-          - dps_val: "9"
+          - dps_val: "10"
             value: 131
-          - dps_val: "8"
+          - dps_val: "9"
             value: 140
-          - dps_val: "7"
+          - dps_val: "8"
             value: 149
-          - dps_val: "6"
+          - dps_val: "7"
             value: 158
-          - dps_val: "5"
+          - dps_val: "6"
             value: 167
-          - dps_val: "4"
+          - dps_val: "5"
             value: 176
-          - dps_val: "3"
+          - dps_val: "4"
             value: 185
-          - dps_val: "2"
+          - dps_val: "3"
             value: 194
-          - dps_val: "1"
+          - dps_val: "2"
             value: 203
-      - id: 103
-        type: boolean
-        name: keep_warm
+          - dps_val: "1"
+            value: 212
+      - id: 101
+        type: string
+        name: temperature_f
         hidden: true
+        range:
+          min: 45
+          max: 100
+        mapping:
+          - dps_val: "0"
+            value: 45  # actually off, but avoids disjointed values
+          - dps_val: "11"
+            value: 50
+          - dps_val: "10"
+            value: 55
+          - dps_val: "9"
+            value: 60
+          - dps_val: "8"
+            value: 65
+          - dps_val: "7"
+            value: 70
+          - dps_val: "6"
+            value: 75
+          - dps_val: "5"
+            value: 80
+          - dps_val: "4"
+            value: 85
+          - dps_val: "3"
+            value: 90
+          - dps_val: "2"
+            value: 95
+          - dps_val: "1"
+            value: 100
       - id: 105
         type: string
         name: temperature_unit
@@ -127,20 +132,6 @@ entities:
             value: keeping_warm
           - dps_val: "5"
             value: done
-  - entity: binary_sensor
-    # This config is designed for a fahrenheit market version
-    name: Temperature unit mismatch
-    category: diagnostic
-    class: problem
-    dps:
-      - id: 105
-        type: string
-        name: sensor
-        mapping:
-          - dps_val: c
-            value: true
-          - dps_val: f
-            value: false
   - entity: binary_sensor
     class: problem
     category: diagnostic
@@ -165,41 +156,17 @@ entities:
             value: off_base
           - dps_val: 2
             value: no_water
-  - entity: select
-    name: Heat to temperature
-    translation_key: temperature
+  - entity: switch
+    name: Keep warm
+    icon: "mdi:kettle-steam"
+    category: config
     dps:
-      - id: 101
-        type: string
-        name: option
-        mapping:
-          - dps_val: "0"
-            value: cancel
-          - dps_val: "1"
-            value: "100 C / 212 F"
-          - dps_val: "2"
-            value: "95 C / 203 F"
-          - dps_val: "3"
-            value: "90 C / 194 F"
-          - dps_val: "4"
-            value: "85 C / 185 F"
-          - dps_val: "5"
-            value: "80 C / 176 F"
-          - dps_val: "6"
-            value: "75 C / 167 F"
-          - dps_val: "7"
-            value: "70 C / 158 F"
-          - dps_val: "8"
-            value: "65 C / 149 F"
-          - dps_val: "9"
-            value: "60 C / 140 F"
-          - dps_val: "10"
-            value: "55 C / 131 F"
-          - dps_val: "11"
-            value: "50 C / 122 F"
+      - id: 103
+        type: boolean
+        name: switch
   - entity: select
     name: Keep warm temperature
-    translation_key: temperature
+    icon: "mdi:kettle-steam"
     dps:
       - id: 102
         type: string

+ 14 - 12
custom_components/tuya_local/devices/setti_czajnik_kettle.yaml

@@ -15,16 +15,7 @@ entities:
           - dps_val: false
             value: "off"
           - dps_val: true
-            constraint: work_type
-            conditions:
-              - dps_val: setting_quick
-                value: quick_heat
-              - dps_val: boiling_quick
-                value: quick_boil
-              - dps_val: temp_setting
-                value: heat
-              - dps_val: temp_boiling
-                value: boil
+            value: electric
       - id: 2
         type: integer
         name: current_temperature
@@ -66,10 +57,21 @@ entities:
             value: C
           - dps_val: f
             value: F
+  - entity: select
+    translation_key: kettle_mode
+    dps:
       - id: 16
         type: string
-        name: work_type
-        hidden: true
+        name: option
+        mapping:
+          - dps_val: setting_quick
+            value: quick_heat
+          - dps_val: boiling_quick
+            value: quick_boil
+          - dps_val: temp_setting
+            value: heat
+          - dps_val: temp_boiling
+            value: boil
   - entity: select
     name: Quick set temperature C
     icon: "mdi:water-thermometer-outline"

+ 16 - 14
custom_components/tuya_local/devices/silvercrest_kettle.yaml

@@ -14,15 +14,10 @@ entities:
           - dps_val: false
             value: "off"
           - dps_val: true
-            constraint: warm
-            conditions:
-              - dps_val: false
-                value: keep_warm
-              - dps_val: true
-                value: boil
-              - dps_val: null
-                value: boil
-                hidden: true
+            value: electric
+          - dps_val: null
+            value: electric
+            hidden: true
       - id: 2
         type: integer
         name: current_temperature
@@ -35,11 +30,6 @@ entities:
           max: 100
         mapping:
           - step: 5
-      - id: 13
-        type: boolean
-        name: warm
-        optional: true
-        hidden: true
         # One of these unknowns should be the "16 preset programs".
         # Both are numeric strings (so probably enums)
       - id: 15
@@ -54,6 +44,18 @@ entities:
       - id: 104
         type: integer
         name: unknown_104
+  - entity: switch
+    name: Keep warm
+    icon: "mdi:kettle-steam"
+    dps:
+      - id: 13
+        type: boolean
+        optional: true
+        name: switch
+        mapping:
+          - dps_val: null
+            value: false
+            hidden: true
   # Portal docs say there is a number to set, and also a countdown remaining.
   # This might be the remaining (log was 5, which is not a 30 minute step)
   # with the other unknown string above a 0/30/60/90/120 selection

+ 14 - 2
custom_components/tuya_local/devices/weeket_kettle.yaml

@@ -48,10 +48,20 @@ entities:
             value: F
           - dps_val: c
             value: C
+      - id: 1
+        type: boolean
+        name: operation_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            value: electric
+  - entity: select
+    translation_key: kettle_mode
+    dps:
       - id: 16
         type: string
-        optional: true
-        name: operation_mode
+        name: option
         mapping:
           - dps_val: setting_quick
             value: quick_heat
@@ -62,6 +72,8 @@ entities:
           - dps_val: temp_boiling
             value: boil
   - entity: switch
+    # 2025-06-07
+    deprecated: water_heater_kettle.operation_mode
     dps:
       - id: 1
         type: boolean

+ 9 - 3
custom_components/tuya_local/icons.json

@@ -158,6 +158,14 @@
             "language": {
                 "default": "mdi:translate"
             },
+            "kettle_mode": {
+                "default": "mdi:kettle",
+                "state": {
+                    "keep_warm": "mdi:heat-wave",
+                    "boil": "mdi:kettle-steam",
+                    "quick_boil": "mdi:kettle-steam"
+                }
+            },
             "mopping": {
                 "default": "mdi:water"
             },
@@ -337,9 +345,7 @@
             "kettle": {
                 "default": "mdi:kettle",
                 "state": {
-                    "off": "mdi:kettle-off",
-                    "boil": "mdi:kettle-steam",
-                    "quick_boil": "mdi:kettle-steam"
+                    "off": "mdi:kettle-off"
                 }
             }
         }

+ 12 - 13
custom_components/tuya_local/translations/bg.json

@@ -427,6 +427,17 @@
                     "memory": "Памет"
                 }
             },
+            "kettle_mode": {
+                "name": "Режим на чайник",
+                "state": {
+                    "off": "Изключено",
+                    "heat": "Нагряване",
+                    "boil": "Кипене",
+                    "quick_heat": "Бързо загряване",
+                    "quick_boil": "Бързо кипене",
+                    "keep_warm": "Поддържайте топло"
+                }
+            },
             "language": {
                 "name": "Език",
                 "state": {
@@ -785,19 +796,7 @@
                 }
             },
             "kettle": {
-                "name": "Кана",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Изключено",
-                            "heat": "Нагряване",
-                            "boil": "Кипене",
-                            "quick_heat": "Бързо загряване",
-                            "quick_boil": "Бързо кипене",
-                            "keep_warm": "Поддържайте топло"
-                        }
-                    }
-                }
+                "name": "Кана"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/ca.json

@@ -562,6 +562,17 @@
                     "memory": "Memòria"
                 }
             },
+            "kettle_mode": {
+                "name": "Mode de bullidor",
+                "state": {
+                    "off": "Apagat",
+                    "heat": "Escalfament",
+                    "boil": "Ebullició",
+                    "quick_heat": "Calor ràpida",
+                    "quick_boil": "Ebullició ràpida",
+                    "keep_warm": "Conserva l'escalfor"
+                }
+            },
             "language": {
                 "name": "Llengua",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Bullidor d'aigua",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Apagat",
-                            "heat": "Escalfament",
-                            "boil": "Ebullició",
-                            "quick_heat": "Calor ràpida",
-                            "quick_boil": "Ebullició ràpida",
-                            "keep_warm": "Conserva l'escalfor"
-                        }
-                    }
-                }
+                "name": "Bullidor d'aigua"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/cz.json

@@ -427,6 +427,17 @@
                     "memory": "Paměť"
                 }
             },
+            "kettle_mode": {
+                "name": "Režim konvice",
+                "state": {
+                    "off": "Vypnuto",
+                    "heat": "Ohřátí",
+                    "boil": "Vaření",
+                    "quick_heat": "Rychlé ohřátí",
+                    "quick_boil": "Rychlé vaření",
+                    "keep_warm": "Udržování tepla"
+                }
+            },
             "language": {
                 "name": "Jazyk",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Konvice",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Vypnuto",
-                            "heat": "Ohřátí",
-                            "boil": "Vaření",
-                            "quick_heat": "Rychlé ohřátí",
-                            "quick_boil": "Rychlé vaření",
-                            "keep_warm": "Udržování tepla"
-                        }
-                    }
-                }
+                "name": "Konvice"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/de.json

@@ -426,6 +426,17 @@
                     "memory": "Speicher"
                 }
             },
+            "kettle_mode": {
+                "name": "Kesselmodus",
+                "state": {
+                    "off": "Aus",
+                    "heat": "Heizen",
+                    "boil": "Kochen",
+                    "quick_heat": "Schnellheizen",
+                    "quick_boil": "Schnellkochen",
+                    "keep_warm": "Warmhalten"
+                }
+            },
             "language": {
                 "name": "Sprache",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Wasserkocher",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Aus",
-                            "heat": "Heizen",
-                            "boil": "Kochen",
-                            "quick_heat": "Schnellheizen",
-                            "quick_boil": "Schnellkochen",
-                            "keep_warm": "Warmhalten"
-                        }
-                    }
-                }
+                "name": "Wasserkocher"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/el.json

@@ -427,6 +427,17 @@
                     "memory": "Μνήμη"
                 }
             },
+            "kettle_mode": {
+                "name": "Λειτουργία βραστήρα",
+                "state": {
+                    "off": "Απενεργοποίηση",
+                    "heat": "Θέρμανση",
+                    "boil": "Βράσιμο",
+                    "quick_heat": "Γρήγορη θέρμανση",
+                    "quick_boil": "Γρήγορο βράσιμο",
+                    "keep_warm": "Διατήρηση θερμοκρασίας"
+                }
+            },
             "language": {
                 "name": "Γλώσσα",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Βραστήρας",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Απενεργοποίηση",
-                            "heat": "Θέρμανση",
-                            "boil": "Βράσιμο",
-                            "quick_heat": "Γρήγορη θέρμανση",
-                            "quick_boil": "Γρήγορο βράσιμο",
-                            "keep_warm": "Διατήρηση θερμοκρασίας"
-                        }
-                    }
-                }
+                "name": "Βραστήρας"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/en.json

@@ -427,6 +427,17 @@
                     "memory": "Memory"
                 }
             },
+            "kettle_mode": {
+                "name": "Kettle mode",
+                "state": {
+                    "off": "Off",
+                    "heat": "Heat",
+                    "boil": "Boil",
+                    "quick_heat": "Quick heat",
+                    "quick_boil": "Quick boil",
+                    "keep_warm": "Keep warm"
+                }
+            },
             "language": {
                 "name": "Language",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Kettle",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Off",
-                            "heat": "Heat",
-                            "boil": "Boil",
-                            "quick_heat": "Quick heat",
-                            "quick_boil": "Quick boil",
-                            "keep_warm": "Keep warm"
-                        }
-                    }
-                }
+                "name": "Kettle"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/es.json

@@ -427,6 +427,17 @@
                     "memory": "Memoria"
                 }
             },
+            "kettle_mode": {
+                "name": "Modo hervidor",
+                "state": {
+                    "off": "Apagar",
+                    "heat": "Calor",
+                    "boil": "Hervir",
+                    "quick_heat": "Calor rápido",
+                    "quick_boil": "Hervir rápido",
+                    "keep_warm": "Mantener caliente"
+                }
+            },
             "language": {
                 "name": "Idioma",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Hervidor",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Apagar",
-                            "heat": "Calor",
-                            "boil": "Hervir",
-                            "quick_heat": "Calor rápido",
-                            "quick_boil": "Hervir rápido",
-                            "keep_warm": "Mantener caliente"
-                        }
-                    }
-                }
+                "name": "Hervidor"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/fr.json

@@ -427,6 +427,17 @@
                     "memory": "Mémoire"
                 }
             },
+            "kettle_mode": {
+                "name": "Mode Bouilloire",
+                "state": {
+                    "off": "Éteint",
+                    "heat": "Chauffage",
+                    "boil": "Ébullition",
+                    "quick_heat": "Chauffage rapide",
+                    "quick_boil": "Ébullition rapide",
+                    "keep_warm": "Garder au chaud"
+                }
+            },
             "language": {
                 "name": "Langue",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Bouilloire",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Éteint",
-                            "heat": "Chauffage",
-                            "boil": "Ébullition",
-                            "quick_heat": "Chauffage rapide",
-                            "quick_boil": "Ébullition rapide",
-                            "keep_warm": "Garder au chaud"
-                        }
-                    }
-                }
+                "name": "Bouilloire"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/hu.json

@@ -428,6 +428,17 @@
                     "memory": "Memória"
                 }
             },
+            "kettle_mode": {
+                "name": "Vízforraló mód",
+                "state": {
+                    "off": "Ki",
+                    "heat": "Fűtés",
+                    "boil": "Forralás",
+                    "quick_heat": "Gyors fűtés",
+                    "quick_boil": "Gyors forralás",
+                    "keep_warm": "Melegen tartás"
+                }
+            },
             "language": {
                 "name": "Nyelv",
                 "state": {
@@ -785,19 +796,7 @@
                 }
             },
             "kettle": {
-                "name": "Vízforraló",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Ki",
-                            "heat": "Fűtés",
-                            "boil": "Forralás",
-                            "quick_heat": "Gyors fűtés",
-                            "quick_boil": "Gyors forralás",
-                            "keep_warm": "Melegen tartás"
-                        }
-                    }
-                }
+                "name": "Vízforraló"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/id.json

@@ -427,6 +427,17 @@
                     "memory": "Memori"
                 }
             },
+            "kettle_mode": {
+                "name": "Mode ketel",
+                "state": {
+                    "off": "Mati",
+                    "heat": "Pemanas",
+                    "boil": "Mendidih",
+                    "quick_heat": "Pemanasan cepat",
+                    "quick_boil": "Mendidih cepat",
+                    "keep_warm": "Tetap hangat"
+                }
+            },
             "language": {
                 "name": "Bahasa",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Ketel",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Mati",
-                            "heat": "Pemanas",
-                            "boil": "Mendidih",
-                            "quick_heat": "Pemanasan cepat",
-                            "quicl_boil": "Mendidih cepat",
-                            "keep_warm": "Tetap hangat"
-                        }
-                    }
-                }
+                "name": "Ketel"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/it.json

@@ -428,6 +428,17 @@
                     "memory": "Memoria"
                 }
             },
+            "kettle_mode": {
+                "name": "Modalità bollitore",
+                "state": {
+                    "off": "Spento",
+                    "heat": "Riscaldamento",
+                    "boil": "Bollire",
+                    "quick_heat": "Riscaldamento rapido",
+                    "quick_boil": "Bollitura rapida",
+                    "keep_warm": "Mantenere caldo"
+                }
+            },
             "language": {
                 "name": "Lingua",
                 "state": {
@@ -785,19 +796,7 @@
                 }
             },
             "kettle": {
-                "name": "Bollitore",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Spento",
-                            "heat": "Riscaldamento",
-                            "boil": "Bollire",
-                            "quick_heat": "Riscaldamento rapido",
-                            "quick_boil": "Bollitura rapida",
-                            "keep_warm": "Mantenere caldo"
-                        }
-                    }
-                }
+                "name": "Bollitore"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/ja.json

@@ -427,6 +427,17 @@
                     "memory": "メモリ"
                 }
             },
+            "kettle_mode": {
+                "name": "ケトルモード",
+                "state": {
+                    "off": "オフ",
+                    "heat": "加熱",
+                    "boil": "沸騰",
+                    "quick_heat": "急速加熱",
+                    "quick_boil": "急速沸騰",
+                    "keep_warm": "保温"
+                }
+            },
             "language": {
                 "name": "言語",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "ケトル",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "オフ",
-                            "heat": "加熱",
-                            "boil": "沸騰",
-                            "quick_heat": "急速加熱",
-                            "quick_boil": "急速沸騰",
-                            "keep_warm": "保温"
-                        }
-                    }
-                }
+                "name": "ケトル"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/no-NB.json

@@ -428,6 +428,17 @@
                     "memory": "Minne"
                 }
             },
+            "kettle_mode": {
+                "name": "Kjelemodus",
+                "state": {
+                    "off": "Av",
+                    "heat": "Varm",
+                    "boil": "Kok",
+                    "quick_heat": "Kjapp varming",
+                    "quick_boil": "Kjapp koking",
+                    "keep_warm": "Hold varm"
+                }
+            },
             "language": {
                 "name": "Språk",
                 "state": {
@@ -785,19 +796,7 @@
                 }
             },
             "kettle": {
-                "name": "Vannkoker",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Av",
-                            "heat": "Varm",
-                            "boil": "Kok",
-                            "quick_heat": "Kjapp varming",
-                            "quick_boil": "Kjapp koking",
-                            "keep_warm": "Hold varm"
-                        }
-                    }
-                }
+                "name": "Vannkoker"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/pl.json

@@ -427,6 +427,17 @@
                     "memory": "Pamięć"
                 }
             },
+            "kettle_mode": {
+                "name": "Tryb czajnika",
+                "state": {
+                    "off": "Wyłączony",
+                    "heat": "Ogrzewanie",
+                    "boil": "Gotowanie",
+                    "quick_heat": "Szybkie ogrzewanie",
+                    "quick_boil": "Szybkie gotowanie",
+                    "keep_warm": "Podgrzewanie"
+                }
+            },
             "language": {
                 "name": "Język",
                 "state": {
@@ -785,19 +796,7 @@
                 }
             },
             "kettle": {
-                "name": "Czajnik",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Wyłączony",
-                            "heat": "Ogrzewanie",
-                            "boil": "Gotowanie",
-                            "quick_heat": "Szybkie ogrzewanie",
-                            "quick_boil": "Szybkie gotowanie",
-                            "keep_warm": "Podgrzewanie"
-                        }
-                    }
-                }
+                "name": "Czajnik"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/pt-BR.json

@@ -427,6 +427,17 @@
                     "memory": "Memória"
                 }
             },
+            "kettle_mode": {
+                "name": "Modo da chaleira",
+                "state": {
+                    "off": "Desligado",
+                    "heat": "Aquecimento",
+                    "boil": "Fervura",
+                    "quick_heat": "Aquecimento rápido",
+                    "quick_boil": "Fervura rápida",
+                    "keep_warm": "Manter quente"
+                }
+            },
             "language": {
                 "name": "Idioma",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Chaleira",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Desligado",
-                            "heat": "Aquecimento",
-                            "boil": "Fervura",
-                            "quick_heat": "Aquecimento rápido",
-                            "quick_boil": "Fervura rápida",
-                            "keep_warm": "Manter quente"
-                        }
-                    }
-                }
+                "name": "Chaleira"
             }
         }
     }

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

@@ -427,6 +427,17 @@
                     "memory": "Memória"
                 }
             },
+            "kettle_mode": {
+                "name": "Modo da chaleira",
+                "state": {
+                    "off": "Desligado",
+                    "boil": "Ferver",
+                    "heat": "Aquecimento",
+                    "quick_boil": "Fervura rápida",
+                    "quick_heat": "Aquecimento rápido",
+                    "keep_warm": "Manter quente"
+                }
+            },
             "language": {
                 "name": "Idioma",
                 "state": {
@@ -777,11 +788,14 @@
                             "off": "Desligado",
                             "hotwater": "Água quente",
                             "hotwater_cool": "Água quente e resfriamento",
-                            "hotwater_heat": "Aquecimento de água quente",
-                            "hotwater_auto": "Água quente automática"
+                            "hotwater_heat": "Água quente e aquecimento",
+                            "hotwater_auto": "Água quente e automática"
                         }
                     }
                 }
+            },
+            "kettle": {
+                "name": "Chaleira"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/ru.json

@@ -427,6 +427,17 @@
                     "memory": "Память"
                 }
             },
+            "kettle_mode": {
+                "name": "Режим чайника",
+                "state": {
+                    "off": "Выкл",
+                    "heat": "Нагрев",
+                    "boil": "Кипячение",
+                    "quick_heat": "Быстрый нагрев",
+                    "quick_boil": "Быстрое кипячение",
+                    "keep_warm": "Поддержание тепла"
+                }
+            },
             "language": {
                 "name": "Язык",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "Чайник",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Выкл",
-                            "heat": "Нагрев",
-                            "boil": "Кипячение",
-                            "quick_heat": "Быстрый нагрев",
-                            "quick_boil": "Быстрое кипячение",
-                            "keep_warm": "Поддержание тепла"
-                        }
-                    }
-                }
+                "name": "Чайник"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/uk.json

@@ -430,6 +430,17 @@
                     "memory": "Пам'ять"
                 }
             },
+            "kettle_mode": {
+                "name": "Режим чайника",
+                "state": {
+                    "off": "Вимк",
+                    "heat": "Нагрівання",
+                    "boil": "Кип'ятіння",
+                    "quick_heat": "Швидке нагрівання",
+                    "quick_boil": "Швидке кип'ятіння",
+                    "keep_warm": "Підтримувати тепло"
+                }
+            },
             "language": {
                 "name": "Мова",
                 "state": {
@@ -787,19 +798,7 @@
                 }
             },
             "kettle": {
-                "name": "Чайник",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "Вимк",
-                            "heat": "Нагрівання",
-                            "boil": "Кип'ятіння",
-                            "quick_heat": "Швидке нагрівання",
-                            "quick_boil": "Швидке кип'ятіння",
-                            "keep_warm": "Підтримувати тепло"
-                        }
-                    }
-                }
+                "name": "Чайник"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/ur.json

@@ -430,6 +430,17 @@
                     "memory": "یاد"
                 }
             },
+            "kettle_mode": {
+                "name": "کیٹل موڈ",
+                "state": {
+                    "off": "آف",
+                    "heat": "گرم",
+                    "boil": "ابالنا",
+                    "quick_heat": "فوری گرم",
+                    "quick_boil": "فوری ابالنا",
+                    "keep_warm": "گرم رکھنا"
+                }
+            },
             "language": {
                 "name": "زبان",
                 "state": {
@@ -787,19 +798,7 @@
                 }
             },
             "kettle": {
-                "name": "کیٹل",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "آف",
-                            "heat": "گرم",
-                            "boil": "ابالنا",
-                            "quick_heat": "فوری گرم",
-                            "quick_boil": "فوری ابالنا",
-                            "keep_warm": "گرم رکھنا"
-                        }
-                    }
-                }
+                "name": "کیٹل"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/zh-Hans.json

@@ -427,6 +427,17 @@
                     "memory": "记忆"
                 }
             },
+            "kettle_mode": {
+                "name": "电热水壶模式",
+                "state": {
+                    "off": "关闭",
+                    "heat": "加热",
+                    "boil": "煮沸",
+                    "quick_heat": "快速加热",
+                    "quick_boil": "快速煮沸",
+                    "keep_warm": "保温"
+                }
+            },
             "language": {
                 "name": "语言",
                 "state": {
@@ -784,19 +795,7 @@
                 }
             },
             "kettle": {
-                "name": "电热水壶",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "关闭",
-                            "heat": "加热",
-                            "boil": "煮沸",
-                            "quick_heat": "快速加热",
-                            "quick_boil": "快速煮沸",
-                            "keep_warm": "保温"
-                        }
-                    }
-                }
+                "name": "电热水壶"
             }
         }
     }

+ 12 - 13
custom_components/tuya_local/translations/zh-Hant.json

@@ -428,6 +428,17 @@
                     "memory": "記憶"
                 }
             },
+            "kettle_mode": {
+                "name": "水壺模式",
+                "state": {
+                    "off": "關",
+                    "heat": "加熱",
+                    "boil": "煮沸",
+                    "quick_heat": "快速加熱",
+                    "quick_boil": "快速煮沸",
+                    "keep_warm": "保溫"
+                }
+            },
             "language": {
                 "name": "語言",
                 "state": {
@@ -785,19 +796,7 @@
                 }
             },
             "kettle": {
-                "name": "水壺",
-                "state_attributes": {
-                    "operation_mode": {
-                        "state": {
-                            "off": "關",
-                            "heat": "加熱",
-                            "boil": "煮沸",
-                            "quick_heat": "快速加熱",
-                            "quick_boil": "快速煮沸",
-                            "keep_warm": "保溫"
-                        }
-                    }
-                }
+                "name": "水壺"
             }
         }
     }