Explorar o código

add support for tomz smart breaker (#4831)

* add support for tomz smart breaker

* remove name overriding translations

* review fixes: remove tests, fix/add translations

* fix: add more usage of translation key

* fix: add number type translations for leakage current

* restore noformaring, remove unused const

* feat(tomzn_swc32v4_breaker): minor changes before merge

- remove diagnostic category from sensors
- reformat comments

PR #4831

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
Jan Gutowski hai 2 meses
pai
achega
8412ce4b80
Modificáronse 39 ficheiros con 347 adicións e 16 borrados
  1. 1 1
      custom_components/tuya_local/devices/atorch_at2pl_breaker.yaml
  2. 1 1
      custom_components/tuya_local/devices/earu_eaemp3c100_energymeter.yaml
  3. 1 1
      custom_components/tuya_local/devices/ketotek_ktem06pro_energymeter.yaml
  4. 1 1
      custom_components/tuya_local/devices/smartmcb_smt006_energymeter.yaml
  5. 1 1
      custom_components/tuya_local/devices/smartmcb_smt006_energymeterv2.yaml
  6. 1 1
      custom_components/tuya_local/devices/taxnele_energy_meter.yaml
  7. 1 1
      custom_components/tuya_local/devices/tompd_63lw_breaker.yaml
  8. 1 1
      custom_components/tuya_local/devices/tompd_63wifi_breaker.yaml
  9. 194 0
      custom_components/tuya_local/devices/tomzn_swc32v4_breaker.yaml
  10. 1 1
      custom_components/tuya_local/devices/tongou_qcb2100_circuitbreaker.yaml
  11. 1 1
      custom_components/tuya_local/devices/tongou_qcb2wb_breaker.yaml
  12. 1 1
      custom_components/tuya_local/devices/tongou_st463jwt_breaker.yaml
  13. 1 1
      custom_components/tuya_local/devices/veratti_3phase_breaker.yaml
  14. 1 1
      custom_components/tuya_local/devices/wdyk_2p63a_energy_meter.yaml
  15. 1 1
      custom_components/tuya_local/devices/wdyk_3phase_energymonitor.yaml
  16. 1 1
      custom_components/tuya_local/devices/wdyk_4p100a_energymeter.yaml
  17. 6 1
      custom_components/tuya_local/translations/bg.json
  18. 6 0
      custom_components/tuya_local/translations/ca.json
  19. 6 0
      custom_components/tuya_local/translations/cz.json
  20. 6 0
      custom_components/tuya_local/translations/de.json
  21. 6 0
      custom_components/tuya_local/translations/el.json
  22. 6 0
      custom_components/tuya_local/translations/en.json
  23. 6 0
      custom_components/tuya_local/translations/es.json
  24. 6 0
      custom_components/tuya_local/translations/fr.json
  25. 6 0
      custom_components/tuya_local/translations/hu.json
  26. 6 0
      custom_components/tuya_local/translations/id.json
  27. 6 0
      custom_components/tuya_local/translations/it.json
  28. 6 0
      custom_components/tuya_local/translations/ja.json
  29. 6 0
      custom_components/tuya_local/translations/no-NB.json
  30. 6 0
      custom_components/tuya_local/translations/pl.json
  31. 6 0
      custom_components/tuya_local/translations/pt-BR.json
  32. 6 0
      custom_components/tuya_local/translations/pt-PT.json
  33. 6 0
      custom_components/tuya_local/translations/ro.json
  34. 6 0
      custom_components/tuya_local/translations/ru.json
  35. 6 0
      custom_components/tuya_local/translations/sv.json
  36. 6 0
      custom_components/tuya_local/translations/uk.json
  37. 6 0
      custom_components/tuya_local/translations/ur.json
  38. 6 0
      custom_components/tuya_local/translations/zh-Hans.json
  39. 6 0
      custom_components/tuya_local/translations/zh-Hant.json

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

@@ -315,7 +315,7 @@ entities:
         mapping:
           - scale: 1000
   - entity: number
-    name: Leakage current
+    translation_key: leakage_current
     category: config
     class: current
     dps:

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

@@ -360,7 +360,7 @@ entities:
           - dps_val: null
             value: false
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -369,7 +369,7 @@ entities:
         type: boolean
         name: available
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -152,7 +152,7 @@ entities:
         unit: C
         class: measurement
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -155,7 +155,7 @@ entities:
         unit: C
         class: measurement
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -121,7 +121,7 @@ entities:
         mapping:
           - scale: 100
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -83,7 +83,7 @@ entities:
         mapping:
           - scale: 10
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -68,7 +68,7 @@ entities:
         mapping:
           - scale: 10
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

+ 194 - 0
custom_components/tuya_local/devices/tomzn_swc32v4_breaker.yaml

@@ -0,0 +1,194 @@
+name: Circuit breaker
+products:
+  - id: sh45wydgedautxda
+    manufacturer: TOMZN
+    model: SWC32v4
+
+entities:
+  - entity: switch
+    translation_key: breaker
+    dps:
+      - id: 16
+        type: boolean
+        name: switch
+
+  - entity: sensor
+    class: energy
+    dps:
+      - id: 1
+        type: integer
+        unit: kWh
+        class: total_increasing
+        name: sensor
+        mapping:
+          - scale: 100
+
+  # Phase A
+  - entity: sensor
+    translation_key: voltage_x
+    translation_placeholders:
+      x: A
+    class: voltage
+    dps:
+      - id: 6
+        optional: true
+        force: true
+        type: base64
+        unit: V
+        class: measurement
+        name: sensor
+        mask: "FFFF000000000000"
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    translation_key: current_x
+    translation_placeholders:
+      x: A
+    class: current
+    dps:
+      - id: 6
+        optional: true
+        force: true
+        type: base64
+        unit: A
+        name: sensor
+        mask: "0000FFFFFF000000"
+        mapping:
+          - scale: 1000
+
+  - entity: sensor
+    translation_key: power_x
+    translation_placeholders:
+      x: A
+    class: power
+    dps:
+      - id: 6
+        optional: true
+        force: true
+        type: base64
+        unit: kW
+        name: sensor
+        mask: "0000000000FFFFFF"
+        mapping:
+          - scale: 1000
+
+  # Phase B
+  - entity: sensor
+    translation_key: voltage_x
+    translation_placeholders:
+      x: B
+    class: voltage
+    dps:
+      - id: 7
+        optional: true
+        force: true
+        type: base64
+        unit: V
+        class: measurement
+        name: sensor
+        mask: "FFFF000000000000"
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    translation_key: current_x
+    translation_placeholders:
+      x: B
+    class: current
+    dps:
+      - id: 7
+        optional: true
+        force: true
+        type: base64
+        unit: A
+        name: sensor
+        mask: "0000FFFFFF000000"
+        mapping:
+          - scale: 1000
+
+  - entity: sensor
+    translation_key: power_x
+    translation_placeholders:
+      x: B
+    class: power
+    dps:
+      - id: 7
+        optional: true
+        force: true
+        type: base64
+        unit: kW
+        name: sensor
+        mask: "0000000000FFFFFF"
+        mapping:
+          - scale: 1000
+
+  # Phase C
+  - entity: sensor
+    translation_key: voltage_x
+    translation_placeholders:
+      x: C
+    class: voltage
+    dps:
+      - id: 8
+        optional: true
+        force: true
+        type: base64
+        unit: V
+        class: measurement
+        name: sensor
+        mask: "FFFF000000000000"
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    translation_key: current_x
+    translation_placeholders:
+      x: C
+    class: current
+    dps:
+      - id: 8
+        optional: true
+        force: true
+        type: base64
+        unit: A
+        name: sensor
+        mask: "0000FFFFFF000000"
+        mapping:
+          - scale: 1000
+
+  - entity: sensor
+    translation_key: power_x
+    translation_placeholders:
+      x: C
+    class: power
+    dps:
+      - id: 8
+        optional: true
+        force: true
+        type: base64
+        unit: kW
+        name: sensor
+        mask: "0000000000FFFFFF"
+        mapping:
+          - scale: 1000
+
+  # Rest of the sensors
+  - entity: sensor
+    translation_key: leakage_current
+    class: current
+    dps:
+      - id: 15
+        type: integer
+        unit: mA
+        name: sensor
+
+  - entity: sensor
+    class: temperature
+    dps:
+      - id: 102
+        type: integer
+        unit: C
+        name: sensor
+        mapping:
+          - scale: 10

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

@@ -5,7 +5,7 @@ products:
     model: QCB2-100 3P
 entities:
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -18,7 +18,7 @@ entities:
         mapping:
           - scale: 100
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -80,7 +80,7 @@ entities:
         mapping:
           - scale: 10
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -198,7 +198,7 @@ entities:
         class: measurement
 
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -319,7 +319,7 @@ entities:
           min: 1
           max: 63
   - entity: number
-    name: Leakage current
+    translation_key: leakage_current
     category: config
     class: current
     dps:

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

@@ -233,7 +233,7 @@ entities:
         mapping:
           - scale: 10000
   - entity: sensor
-    name: Leakage current
+    translation_key: leakage_current
     class: current
     category: diagnostic
     dps:

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

@@ -311,7 +311,7 @@ entities:
           min: 1
           max: 63
   - entity: number
-    name: Leakage current
+    translation_key: leakage_current
     category: config
     class: current
     dps:

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Температура на върха"
+            },
+            "leakage_current": {
+                "name": "Ток на утечка"
             }
         },
         "select": {
@@ -766,7 +769,6 @@
                     "6d": "6 дни",
                     "7d": "7 дни"
                 }
-
             },
             "temperature_unit": {
                 "name": "Температурна единица",
@@ -1160,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Дни хранилище"
+            },
+            "leakage_current": {
+                "name": "Ток на утечка"
             }
         },
         "switch": {

+ 6 - 0
custom_components/tuya_local/translations/ca.json

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Temperatura superior"
+            },
+            "leakage_current": {
+                "name": "Corrent de fuita"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Días almacenados"
+            },
+            "leakage_current": {
+                "name": "Corrent de fuita"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Horní teplota"
+            },
+            "leakage_current": {
+                "name": "Unikající proud"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Dny uloženy"
+            },
+            "leakage_current": {
+                "name": "Unikající proud"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Obertemperatur"
+            },
+            "leakage_current": {
+                "name": "Leckstrom"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Tage gespeichert"
+            },
+            "leakage_current": {
+                "name": "Leckstrom"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Θερμοκρασία πάνω"
+            },
+            "leakage_current": {
+                "name": "Ρεύμα διαρροής"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Ημέρες αποθήκευσης"
+            },
+            "leakage_current": {
+                "name": "Ρεύμα διαρροής"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Top temperature"
+            },
+            "leakage_current": {
+                "name": "Leakage current"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Days stored"
+            },
+            "leakage_current": {
+                "name": "Leakage current"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Temperatura superior"
+            },
+            "leakage_current": {
+                "name": "Corriente de fuga"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Días almacenados"
+            },
+            "leakage_current": {
+                "name": "Corriente de fuga"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Température du haut"
+            },
+            "leakage_current": {
+                "name": "Courant de fuite"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Jours de stockage"
+            },
+            "leakage_current": {
+                "name": "Courant de fuite"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Felső hőmérséklet"
+            },
+            "leakage_current": {
+                "name": "Szivárgó áram"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Tárolt napok"
+            },
+            "leakage_current": {
+                "name": "Szivárgó áram"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Suhu atas"
+            },
+            "leakage_current": {
+                "name": "Arus bocor"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Hari tersimpan"
+            },
+            "leakage_current": {
+                "name": "Arus bocor"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Temperatura superiore"
+            },
+            "leakage_current": {
+                "name": "Corrente di dispersione"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Giorni memorizzati"
+            },
+            "leakage_current": {
+                "name": "Corrente di dispersione"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "上部温度"
+            },
+            "leakage_current": {
+                "name": "漏れ電流"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "保存された日数"
+            },
+            "leakage_current": {
+                "name": "漏れ電流"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Topp temperatur"
+            },
+            "leakage_current": {
+                "name": "Lekkasjestrøm"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Dager lagret"
+            },
+            "leakage_current": {
+                "name": "Lekkasjestrøm"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Temperatura góry"
+            },
+            "leakage_current": {
+                "name": "Prąd upływu"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Dni przechowywane"
+            },
+            "leakage_current": {
+                "name": "Prąd upływu"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Temperatura superior"
+            },
+            "leakage_current": {
+                "name": "Corrente de fuga"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Dias armazenados"
+            },
+            "leakage_current": {
+                "name": "Corrente de fuga"
             }
         },
         "switch": {

+ 6 - 0
custom_components/tuya_local/translations/pt-PT.json

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Temperatura superior"
+            },
+            "leakage_current": {
+                "name": "Corrente de fuga"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Dias armazenados"
+            },
+            "leakage_current": {
+                "name": "Corrente de fuga"
             }
         },
         "switch": {

+ 6 - 0
custom_components/tuya_local/translations/ro.json

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Temperatură superioară"
+            },
+            "leakage_current": {
+                "name": "Curent de scurgere"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Zile stocate"
+            },
+            "leakage_current": {
+                "name": "Curent de scurgere"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Температура верха"
+            },
+            "leakage_current": {
+                "name": "Ток утечки"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Дни хранения"
+            },
+            "leakage_current": {
+                "name": "Ток утечки"
             }
         },
         "switch": {

+ 6 - 0
custom_components/tuya_local/translations/sv.json

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Övre temperatur"
+            },
+            "leakage_current": {
+                "name": "Läckström"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Dagar lagrade"
+            },
+            "leakage_current": {
+                "name": "Läckström"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "Температура верха"
+            },
+            "leakage_current": {
+                "name": "Струм витоку"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "Дни хранения"
+            },
+            "leakage_current": {
+                "name": "Струм витоку"
             }
         },
         "switch": {

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

@@ -531,6 +531,9 @@
             },
             "top_temperature": {
                 "name": "اوپر کا درجہ حرارت"
+            },
+            "leakage_current": {
+                "name": "لیکج کرنٹ"
             }
         },
         "select": {
@@ -1160,6 +1163,9 @@
             },
             "days_stored": {
                 "name": "محفوظ دن"
+            },
+            "leakage_current": {
+                "name": "لیکج کرنٹ"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "上温度"
+            },
+            "leakage_current": {
+                "name": "漏电电流"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "已储存天数"
+            },
+            "leakage_current": {
+                "name": "漏电电流"
             }
         },
         "switch": {

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

@@ -530,6 +530,9 @@
             },
             "top_temperature": {
                 "name": "頂部溫度"
+            },
+            "leakage_current": {
+                "name": "漏電電流"
             }
         },
         "select": {
@@ -1159,6 +1162,9 @@
             },
             "days_stored": {
                 "name": "儲存天數"
+            },
+            "leakage_current": {
+                "name": "漏電電流"
             }
         },
         "switch": {