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

feat(devices): add support for Oscal PowerMax 6000 portable power station

- Added YAML configuration for the Oscal PowerMax 6000 portable power station
- Updated translations across multiple languages to include "discharging" state

Issue #3507
Jason Rumney 6 месяцев назад
Родитель
Сommit
c6d5e0b57c
24 измененных файлов с 576 добавлено и 0 удалено
  1. 1 0
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 553 0
      custom_components/tuya_local/devices/oscal_powermax6000_portablepower.yaml
  4. 1 0
      custom_components/tuya_local/translations/bg.json
  5. 1 0
      custom_components/tuya_local/translations/ca.json
  6. 1 0
      custom_components/tuya_local/translations/cz.json
  7. 1 0
      custom_components/tuya_local/translations/de.json
  8. 1 0
      custom_components/tuya_local/translations/el.json
  9. 1 0
      custom_components/tuya_local/translations/en.json
  10. 1 0
      custom_components/tuya_local/translations/es.json
  11. 1 0
      custom_components/tuya_local/translations/fr.json
  12. 1 0
      custom_components/tuya_local/translations/hu.json
  13. 1 0
      custom_components/tuya_local/translations/id.json
  14. 1 0
      custom_components/tuya_local/translations/it.json
  15. 1 0
      custom_components/tuya_local/translations/ja.json
  16. 1 0
      custom_components/tuya_local/translations/no-NB.json
  17. 1 0
      custom_components/tuya_local/translations/pl.json
  18. 1 0
      custom_components/tuya_local/translations/pt-BR.json
  19. 1 0
      custom_components/tuya_local/translations/pt-PT.json
  20. 1 0
      custom_components/tuya_local/translations/ru.json
  21. 1 0
      custom_components/tuya_local/translations/uk.json
  22. 1 0
      custom_components/tuya_local/translations/ur.json
  23. 1 0
      custom_components/tuya_local/translations/zh-Hans.json
  24. 1 0
      custom_components/tuya_local/translations/zh-Hant.json

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -1014,3 +1014,4 @@ Further device support has been made with the assistance of users. Please consid
 - [fender4645](https://github.com/fender4645) for contributing support for Heonofly Smart Wood ceiling fan with lights.
 - [JakubMadro](https://github.com/JakubMadro) for contributing support for EARU PC473 3-phase energy monitor.
 - [jlg78fr](https://github.com/jlg78fr) for assisting with support for Unistyle WT-04W water timer.
+- [KoenVanduffel](https://github.com/KoenVanduffel) for assisting with support for Oscal PowerMax 6000 portable power station.

+ 1 - 0
DEVICES.md

@@ -530,6 +530,7 @@
 - MakeSkyBlue MPPT solar battery charger
 - Nine 32A EV charger
 - Noeifevo Q21W EV charger
+- Oscal PowerMax 6000 portable power station
 - Parkside PLGS 2012 A1 smart charger for powertools
 - SEVR X1 EV charger
 - Tary TA-AC380/22 EV charger

+ 553 - 0
custom_components/tuya_local/devices/oscal_powermax6000_portablepower.yaml

@@ -0,0 +1,553 @@
+name: Portable power station
+products:
+  - id: 38dwmljaokq3yclf
+    manufacturer: Oscal
+    model: PowerMax 6000
+entities:
+  - entity: sensor
+    class: battery
+    dps:
+      - id: 1
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+      - id: 112
+        type: integer
+        optional: true
+        name: power_packs
+  - entity: switch
+    name: AC power
+    dps:
+      - id: 6
+        type: boolean
+        name: switch
+      - id: 102
+        type: string
+        name: sw_version
+  - entity: switch
+    name: DC power
+    dps:
+      - id: 7
+        type: boolean
+        name: switch
+  - entity: select
+    name: Light
+    icon: "mdi:led"
+    dps:
+      - id: 9
+        type: string
+        name: option
+        mapping:
+          - dps_val: "off"
+            value: "Off"
+          - dps_val: bright
+            value: Dim
+          - dps_val: high_bright
+            value: Bright
+          - dps_val: sos
+            value: Emergency
+          - dps_val: breath
+            value: Pulse
+          - dps_val: flash
+            value: Flash
+  - entity: sensor
+    class: temperature
+    name: Battery temperature
+    category: diagnostic
+    dps:
+      - id: 10
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 24
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: switch
+    translation_key: keytone
+    category: config
+    dps:
+      - id: 12
+        type: boolean
+        name: switch
+  - entity: switch
+    name: USB
+    dps:
+      - id: 19
+        type: boolean
+        name: switch
+  - entity: select
+    translation_key: temperature_unit
+    category: config
+    dps:
+      - id: 24
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: celsius
+          - dps_val: f
+            value: fahrenheit
+  - entity: switch
+    name: Beep
+    category: config
+    dps:
+      - id: 25
+        type: boolean
+        name: switch
+  - entity: sensor
+    class: duration
+    name: Generation time
+    category: diagnostic
+    dps:
+      - id: 37
+        type: integer
+        name: sensor
+        unit: h
+        class: measurement
+  - entity: switch
+    name: Notifications
+    category: config
+    dps:
+      - id: 101
+        type: boolean
+        name: switch
+  - entity: sensor
+    name: Total input
+    class: power
+    category: diagnostic
+    dps:
+      - id: 103
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: sensor
+    name: Total output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 104
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: sensor
+    name: AC output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 105
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: number
+    name: Charge limit
+    category: config
+    icon: "mdi:battery-charging-90"
+    dps:
+      - id: 106
+        type: integer
+        name: value
+        unit: "%"
+        range:
+          min: 70
+          max: 100
+  - entity: number
+    name: Discharge limit
+    category: config
+    icon: "mdi:battery-20"
+    dps:
+      - id: 107
+        type: integer
+        name: value
+        unit: "%"
+        range:
+          min: 0
+          max: 30
+  - entity: sensor
+    name: Estimated battery life
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 108
+        type: integer
+        name: sensor
+        unit: d
+  - entity: select
+    name: Display timeout
+    icon: "mdi:television-ambient-light"
+    translation_key: timer
+    category: config
+    dps:
+      - id: 109
+        type: string
+        name: option
+        mapping:
+          - dps_val: "1min"
+            value: "1m"
+          - dps_val: "5min"
+            value: "5m"
+          - dps_val: "10min"
+            value: "10m"
+          - dps_val: "30min"
+            value: "30m"
+          - dps_val: "never_close"
+            value: "cancel"
+  - entity: sensor
+    class: enum
+    translation_key: status
+    category: diagnostic
+    dps:
+      - id: 110
+        type: string
+        name: sensor
+        mapping:
+          - dps_val: "1"
+            value: charging
+          - dps_val: "2"
+            value: discharging
+          - dps_val: "0"
+            value: standby
+  - entity: sensor
+    name: AC input
+    class: power
+    category: diagnostic
+    dps:
+      - id: 111
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: sensor
+    name: Solar input
+    class: power
+    category: diagnostic
+    dps:
+      - id: 113
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: switch
+    name: Slow charge
+    category: config
+    icon: "mdi:battery-charging"
+    dps:
+      - id: 114
+        type: boolean
+        name: switch
+  - entity: sensor
+    name: DC output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 116
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: sensor
+    name: USB output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 117
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: text
+    name: Emergency message
+    category: config
+    icon: "mdi:dots-horizontal"
+    dps:
+      - id: 118
+        type: string
+        name: value
+        range:
+          min: 0
+          max: 255
+  - entity: sensor
+    name: Pack 1
+    class: battery
+    category: diagnostic
+    dps:
+      - id: 120
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+      - id: 119
+        type: integer
+        optional: true
+        name: pack_id
+  - entity: sensor
+    name: Pack 1 temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 121
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 24
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: sensor
+    name: Pack 1 output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 122
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: sensor
+    name: Pack 2
+    class: battery
+    category: diagnostic
+    dps:
+      - id: 124
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+  - entity: sensor
+    name: Pack 2 temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 125
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 24
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: sensor
+    name: Pack 2 output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 126
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: sensor
+    translation_key: time_remaining
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 127
+        type: integer
+        name: sensor
+        unit: min
+        class: measurement
+  - entity: number
+    name: Slow charge
+    category: config
+    class: power
+    dps:
+      - id: 128
+        type: integer
+        optional: true
+        name: value
+        unit: W
+        range:
+          min: 100
+          max: 1200
+        mapping:
+          - step: 100
+  - entity: sensor
+    name: Pack 3
+    class: battery
+    category: diagnostic
+    dps:
+      - id: 129
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+      - id: 115
+        type: integer
+        optional: true
+        name: pack_id
+  - entity: sensor
+    name: Pack 3 temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 130
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 24
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: sensor
+    name: Pack 3 output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 131
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: sensor
+    name: Pack 4
+    class: battery
+    category: diagnostic
+    dps:
+      - id: 133
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+      - id: 132
+        type: integer
+        optional: true
+        name: pack_id
+  - entity: sensor
+    name: Pack 4 temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 134
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 24
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: sensor
+    name: Pack 4 output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 135
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: sensor
+    name: Pack 5
+    class: battery
+    category: diagnostic
+    dps:
+      - id: 137
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+      - id: 136
+        type: integer
+        optional: true
+        name: pack_id
+  - entity: sensor
+    name: Pack 3 temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 138
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 24
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: sensor
+    name: Pack 3 output
+    class: power
+    category: diagnostic
+    dps:
+      - id: 141
+        type: integer
+        name: sensor
+        unit: W
+        class: measurement
+  - entity: select
+    name: AC timer
+    class: timer
+    category: config
+    dps:
+      - id: 139
+        type: string
+        name: option
+        mapping:
+          - dps_val: never_close
+            value: cancel
+          - dps_val: "30min"
+            value: "30m"
+          - dps_val: "1hour"
+            value: "1h"
+          - dps_val: "2hour"
+            value: "2h"
+          - dps_val: "4hour"
+            value: "4h"
+          - dps_val: "6hour"
+            value: "6h"
+          - dps_val: "12hour"
+            value: "12h"
+          - dps_val: "24hour"
+            value: "24h"
+  - entity: select
+    class: timer
+    category: config
+    dps:
+      - id: 140
+        type: string
+        name: option
+        mapping:
+          - dps_val: never_close
+            value: cancel
+          - dps_val: "30min"
+            value: "30m"
+          - dps_val: "1hour"
+            value: "1h"
+          - dps_val: "2hour"
+            value: "2h"
+          - dps_val: "4hour"
+            value: "4h"
+          - dps_val: "6hour"
+            value: "6h"
+          - dps_val: "12hour"
+            value: "12h"
+          - dps_val: "24hour"
+            value: "24h"

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

@@ -668,6 +668,7 @@
                     "plugged_in": "Включен",
                     "fault_unplugged": "Неизправен (изключен)",
                     "charging": "Зарежда се",
+                    "discharging": "Разреждане",
                     "waiting": "Изчакване",
                     "charged": "Зареден",
                     "fault": "Неизправен",

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

@@ -369,6 +369,7 @@
                     "plugged_in": "Connectat",
                     "fault_unplugged": "Errada (desconnectat)",
                     "charging": "Carregant",
+                    "discharging": "Descàrrega",
                     "waiting": "Esperant",
                     "charged": "Carregat",
                     "fault": "Fallada",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Zapojeno",
                     "fault_unplugged": "Chyba (Odpojeno)",
                     "charging": "Nabíjení",
+                    "discharging": "Vybíjení",
                     "waiting": "Čekání",
                     "charged": "Nabitý",
                     "fault": "Chyba",

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

@@ -666,6 +666,7 @@
                     "plugged_in": "Angeschlossen",
                     "fault_unplugged": "Fehler (nicht angeschlossen)",
                     "charging": "Laden",
+                    "discharging": "Entladen",
                     "waiting": "Warten",
                     "charged": "Geladen",
                     "fault": "Fehler",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Συνδεδεμένο",
                     "fault_unplugged": "Σφάλμα (αποσυνδεδεμένο)",
                     "charging": "Φόρτιση",
+                    "discharging": "Εκφόρτιση",
                     "waiting": "Αναμονή",
                     "charged": "Φορτισμένο",
                     "fault": "Σφάλμα",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Plugged in",
                     "fault_unplugged": "Fault (unplugged)",
                     "charging": "Charging",
+                    "discharging": "Discharging",
                     "waiting": "Waiting",
                     "charged": "Charged",
                     "fault": "Fault",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Conectado",
                     "fault_unplugged": "Error (desconectado)",
                     "charging": "Cargando",
+                    "discharging": "Descargando",
                     "waiting": "Esperando",
                     "charged": "Cargado",
                     "fault": "Error",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Branché",
                     "fault_unplugged": "Défaut (débranché)",
                     "charging": "En charge",
+                    "discharging": "En décharge",
                     "waiting": "En attente",
                     "charged": "Chargé",
                     "fault": "Défaut",

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

@@ -668,6 +668,7 @@
                     "plugged_in": "Csatlakoztatva",
                     "fault_unplugged": "Hiba (nincs csatlakoztatva)",
                     "charging": "Töltés",
+                    "discharging": "Kisütés",
                     "waiting": "Várakozás",
                     "charged": "Töltve",
                     "fault": "Hiba",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Terhubung",
                     "fault_unplugged": "Kesalahan (tidak terhubung)",
                     "charging": "Mengisi daya",
+                    "discharging": "Mengeluarkan daya",
                     "waiting": "Menunggu",
                     "charged": "Terisi",
                     "fault": "Kesalahan",

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

@@ -668,6 +668,7 @@
                     "plugged_in": "Collegato",
                     "fault_unplugged": "Guasto (scollegato)",
                     "charging": "In carica",
+                    "discharging": "In scarica",
                     "waiting": "In attesa",
                     "charged": "Carica completa",
                     "fault": "Guasto",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "プラグイン",
                     "fault_unplugged": "故障(プラグインされていない)",
                     "charging": "充電中",
+                    "discharging": "放電中",
                     "waiting": "待機中",
                     "charged": "充電済み",
                     "fault": "故障",

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

@@ -668,6 +668,7 @@
                     "plugged_in": "Tilkoblet",
                     "fault_unplugged": "Feil (frakoblet)",
                     "charging": "Lading",
+                    "discharging": "Utladning",
                     "waiting": "Venter",
                     "charged": "Ladet",
                     "fault": "Feil",

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

@@ -668,6 +668,7 @@
                     "plugged_in": "Podłączony",
                     "fault_unplugged": "Usterka (odłączony)",
                     "charging": "Ładowanie",
+                    "discharging": "Rozładowywanie",
                     "waiting": "Oczekiwanie",
                     "charged": "Naładowany",
                     "fault": "Usterka",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Conectado",
                     "fault_unplugged": "Falha (desconectado)",
                     "charging": "Carregando",
+                    "discharging": "Descarregando",
                     "waiting": "Aguardando",
                     "charged": "Carregado",
                     "fault": "Falha",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Conectado",
                     "fault_unplugged": "Falha (desconectado)",
                     "charging": "Carregando",
+                    "discharging": "Descarregando",
                     "waiting": "Aguardando",
                     "charged": "Carregado",
                     "fault": "Falha",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "Подключено",
                     "fault_unplugged": "Ошибка (отключено)",
                     "charging": "Зарядка",
+                    "discharging": "Разрядка",
                     "waiting": "Ожидание",
                     "charged": "Заряжено",
                     "fault": "Ошибка",

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

@@ -670,6 +670,7 @@
                     "plugged_in": "Підключений",
                     "fault_unplugged": "Помилка (відключено)",
                     "charging": "Заряджається",
+                    "discharging": "Розряджається",
                     "waiting": "Очікування",
                     "charged": "Заряджено",
                     "fault": "Помилка",

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

@@ -670,6 +670,7 @@
                     "plugged_in": "پلگ ان",
                     "fault_unplugged": "خراب ہے، پلگ ان نہیں ہے",
                     "charging": "چارجنگ",
+                    "discharging": "ڈسچارجنگ",
                     "waiting": "انتظار",
                     "charged": "چارج ہوگیا",
                     "fault": "خراب",

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

@@ -667,6 +667,7 @@
                     "plugged_in": "已插入",
                     "fault_unplugged": "故障未插入",
                     "charging": "充电中",
+                    "discharging": "放电中",
                     "waiting": "等待中",
                     "charged": "已充满",
                     "fault": "故障",

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

@@ -668,6 +668,7 @@
                     "plugged_in": "已插入",
                     "fault_unplugged": "故障(未插入)",
                     "charging": "充電中",
+                    "discharging": "放電中",
                     "waiting": "等待中",
                     "charged": "已充滿",
                     "fault": "故障",