iobroker.zendure-solarflow 2.0.3 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +12 -1
  2. package/admin/build/index.js +35 -35
  3. package/admin/build/index.js.map +2 -2
  4. package/build/constants/constants.js +41 -0
  5. package/build/constants/constants.js.map +7 -0
  6. package/build/helpers/helpers.js +84 -96
  7. package/build/helpers/helpers.js.map +2 -2
  8. package/build/main.js +108 -180
  9. package/build/main.js.map +2 -2
  10. package/build/models/IDeviceAutomationPayload.js.map +1 -1
  11. package/build/models/{IPack2Device.js → IDevicePack.js} +3 -3
  12. package/build/models/IDevicePack.js.map +7 -0
  13. package/build/models/{ISolarFlowDeviceDetails.js → IHaDeviceListData.js} +3 -3
  14. package/build/models/IHaDeviceListData.js.map +7 -0
  15. package/build/models/{ISolarflowDevRegisterResponse.js → IZenHaDeviceDetails.js} +3 -3
  16. package/build/models/IZenHaDeviceDetails.js.map +7 -0
  17. package/build/models/{ISolarFlowPaths.js → IZenHaMqttData.js} +3 -3
  18. package/build/models/IZenHaMqttData.js.map +7 -0
  19. package/build/models/deviceModels/Ace1500.js +77 -0
  20. package/build/models/deviceModels/Ace1500.js.map +7 -0
  21. package/build/models/deviceModels/Aio2400.js +121 -0
  22. package/build/models/deviceModels/Aio2400.js.map +7 -0
  23. package/build/models/deviceModels/Hyper2000.js +200 -0
  24. package/build/models/deviceModels/Hyper2000.js.map +7 -0
  25. package/build/models/deviceModels/Sf2400Ac.js +146 -0
  26. package/build/models/deviceModels/Sf2400Ac.js.map +7 -0
  27. package/build/models/deviceModels/Sf800.js +144 -0
  28. package/build/models/deviceModels/Sf800.js.map +7 -0
  29. package/build/models/deviceModels/SfHub1200.js +179 -0
  30. package/build/models/deviceModels/SfHub1200.js.map +7 -0
  31. package/build/models/deviceModels/SfHub2000.js +177 -0
  32. package/build/models/deviceModels/SfHub2000.js.map +7 -0
  33. package/build/models/deviceModels/ZenHaDevice.js +1093 -0
  34. package/build/models/deviceModels/ZenHaDevice.js.map +7 -0
  35. package/build/services/jobSchedule.js +19 -58
  36. package/build/services/jobSchedule.js.map +2 -2
  37. package/build/services/mqttCloudZenService.js +79 -0
  38. package/build/services/mqttCloudZenService.js.map +7 -0
  39. package/build/services/mqttLocalService.js +70 -0
  40. package/build/services/mqttLocalService.js.map +7 -0
  41. package/build/services/mqttSharedService.js +432 -0
  42. package/build/services/mqttSharedService.js.map +7 -0
  43. package/build/services/zenWebService.js +84 -0
  44. package/build/services/zenWebService.js.map +7 -0
  45. package/io-package.json +83 -40
  46. package/package.json +1 -1
  47. package/build/constants/paths.js +0 -52
  48. package/build/constants/paths.js.map +0 -7
  49. package/build/helpers/createSolarFlowLocalStates.js +0 -113
  50. package/build/helpers/createSolarFlowLocalStates.js.map +0 -7
  51. package/build/helpers/createSolarFlowStates.js +0 -196
  52. package/build/helpers/createSolarFlowStates.js.map +0 -7
  53. package/build/models/IPack2Device.js.map +0 -7
  54. package/build/models/ISolarFlowDeviceDetails.js.map +0 -7
  55. package/build/models/ISolarFlowPaths.js.map +0 -7
  56. package/build/models/ISolarflowDevRegisterResponse.js.map +0 -7
  57. package/build/services/adapterService.js +0 -142
  58. package/build/services/adapterService.js.map +0 -7
  59. package/build/services/calculationService.js +0 -350
  60. package/build/services/calculationService.js.map +0 -7
  61. package/build/services/fallbackMqttService.js +0 -461
  62. package/build/services/fallbackMqttService.js.map +0 -7
  63. package/build/services/fallbackWebService.js +0 -80
  64. package/build/services/fallbackWebService.js.map +0 -7
  65. package/build/services/mqttService.js +0 -1545
  66. package/build/services/mqttService.js.map +0 -7
  67. package/build/services/webService.js +0 -119
  68. package/build/services/webService.js.map +0 -7
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "zendure-solarflow",
4
- "version": "2.0.3",
4
+ "version": "3.0.0-alpha.2",
5
5
  "news": {
6
+ "3.0.0-alpha.2": {
7
+ "en": "Breaking Change: Change authentication to \"authentication cloud key\". You can generate a key in the official zendure app\nRemoved fallback server\nRefactor a lot of code",
8
+ "de": "Veränderung: Ändern Sie die Authentifizierung auf \"Authentifizierungs-Cloud-Taste\". Sie können einen Schlüssel in der offiziellen Zendure-App generieren\nEntfernen von Fallback-Server\nRefactor eine Menge Code",
9
+ "ru": "Переломные изменения: Измените аутентификацию на «облачный ключ аутентификации». Вы можете создать ключ в официальном приложении zendure\nУдаленный сервер Fallback\nРефактор много кода",
10
+ "pt": "Quebrar a Mudança: Alterar autenticação para \"chave de nuvem de autenticação\". Você pode gerar uma chave no aplicativo oficial zendure\nServidor de reserva removido\nRefactorar um monte de código",
11
+ "nl": "Verandering doorbreken: Authenticatie wijzigen naar \"authentication cloud key.\" U kunt een sleutel genereren in de officiële zindure app\nTerugvalserver verwijderd\nRefactor veel code",
12
+ "fr": "Briser le changement : Changez l'authentification en \"clé de nuage d'authentification\". Vous pouvez générer une clé dans l'application officielle zendure\nServeur de repli supprimé\nRefactor beaucoup de code",
13
+ "it": "Cambiamento di rottura: Modificare l'autenticazione a \"chiave cloud di autenticazione\". È possibile generare una chiave nell'app ufficiale zendure\nServer di failback rimosso\nRefactor un sacco di codice",
14
+ "es": "Cambio de ruptura: Cambiar la autenticación a \"la clave de nube de autenticación\". Usted puede generar una clave en la aplicación oficial de zendure\nServidor de retroceso eliminado\nRefactor mucho código",
15
+ "pl": "Łamanie zmian: Zmień uwierzytelnianie na \"klucz do uwierzytelniania w chmurze\". Możesz wygenerować klucz w oficjalnej aplikacji Zabb\nUsunięto serwer awaryjny\nZmień dużo kodu",
16
+ "uk": "Зміна несправностей: Зміна автентифікації на \"автентифікаційний ключ хмари\". Ви можете генерувати ключ в офіційному додатку zendure\nВидалити резервний сервер\nРефактор багато коду",
17
+ "zh-cn": "中断更改 : 认证改为\"认证云密钥\". 您可以在正式 Zendure app 中生成密钥\n删除后退服务器\n重构很多代码"
18
+ },
19
+ "2.0.4": {
20
+ "en": "Fix creation of control states on new Hyper 2000 v3\nUpdates dependencies",
21
+ "de": "Behebung der Erstellung von Steuerungszuständen auf dem neuen Hyper 2000 v3\nAktualisiert Abhängigkeiten",
22
+ "ru": "Исправлена создания состояний управления на новом Hyper 2000 v3\nОбновлены зависимости",
23
+ "pt": "Correção da criação de estados de controle no novo Hyper 2000 v3\nAtualiza dependências",
24
+ "nl": "Oplossing voor het aanmaken van bedieningstoestanden op nieuwe Hyper 2000 v3\nWerk dependencies bij",
25
+ "fr": "Corriger la création des états de contrôle sur le nouveau Hyper 2000 v3\nMise à jour des dépendances",
26
+ "it": "Correzione della creazione degli stati di controllo su Hyper 2000 v3\nAggiornamento delle dipendenze",
27
+ "es": "Corregir la creación de estados de control en el nuevo Hyper 2000 v3.\nActualización de dependencias",
28
+ "pl": "Napraw utworzenie stanów kontrolnych w nowym Hyper 2000 v3\nAktualizacja zależności",
29
+ "uk": "Виправлення створення станів управління на новому Hyper 2000 v3.\nОновлення залежностей",
30
+ "zh-cn": "修复在新的Hyper 2000 v3上创建控制状态\n更新依赖项"
31
+ },
6
32
  "2.0.3": {
7
33
  "en": "Added 'B3Dxda' as new Hyper 2000 productKey. Removed parameter 'upTime' and 'pullTime' from 'setDeviceAutomationInOutLimit'. TEST: Use 'setDeviceAutomationInOutLimit' to let HUB1200/HUB2000 charge with connected ACE 1500",
8
34
  "de": "B3Dxda' als neuer Hyper 2000 productKey hinzugefügt. Parameter 'upTime' und 'pullTime' aus 'setDeviceAutomationInOutLimit' entfernt. TEST: Verwenden Sie 'setDeviceAutomationInOutLimit', um HUB1200/HUB2000 mit angeschlossenem ACE 1500 laden zu lassen.",
@@ -54,45 +80,6 @@
54
80
  "pl": "Łamanie zmian: Dodaj parametr sterowania 'setDeviceAutomationInOutLimit', który emuluje tryb inteligentnego dopasowywania Zhamb. Ponieważ pojawiły się obawy, że w pamięci flash zostaną zapisane granice ustawień, zalecam stosowanie automatyzacji tego urządzenia zamiast 'setInputLimit' / 'setOutputLimit'. Możesz użyć wartości ujemnych do ładowania i dodatnich do podawania.",
55
81
  "uk": "Зміна несправностей: Додавання параметра керування «setDeviceAutomationInOutLimit», який визначає режим Smart Matching Zendure. З тих пір, як було занепокоєння, що обмеження налаштування будуть зберігатися в флеш-пам'яті, я рекомендую використовувати цей пристрій автоматизації замість 'setInputLimit'/'setOutputLimit' відтепер. Ви можете використовувати негативні значення для зарядки та позитиву для живлення.",
56
82
  "zh-cn": "中断更改 : 添加模拟 Zendure 智能匹配模式的控制参数“ set DeviceAutomation InOutLimit ” 。 由于有人担心设定限制会存储在闪存中,我建议从现在开始使用这个设备自动化,而不是“setInputLimit”/“setOutputLimit”. 可以使用负值充电,正值用于饲料输入."
57
- },
58
- "2.0.0-alpha.0": {
59
- "en": "Breaking Change: Add control parameter 'setDeviceAutomation' which emulates Zendure's Smart Matching mode. Since there were concerns that setting limits would be stored in the flash memory, I recommend using this device automation instead of 'setInputLimit'/'setOutputLimit' from now on. You can use negative values for charging and positive for feed in.",
60
- "de": "Veränderung: Fügen Sie den Steuerparameter 'setDeviceAutomation' hinzu, der den Smart Matching-Modus von Zendure emuliert. Da Bedenken bestehen, dass Einstellgrenzen im Flash-Speicher gespeichert werden würden, empfehle ich die Verwendung dieser Geräteautomatisierung anstelle von 'setInputLimit'/'setOutputLimit' von jetzt an. Sie können negative Werte für das Laden und positiv für das Einspeisen verwenden.",
61
- "ru": "Переломные изменения: Добавьте параметр управления «setDeviceAutomation», который эмулирует режим Smart Matching от Zendure. Поскольку были опасения, что установление ограничений будет храниться во флэш-памяти, я рекомендую использовать эту автоматизацию устройства вместо «setInputLimit» / «setOutputLimit». Вы можете использовать отрицательные значения для зарядки и положительные для подачи.",
62
- "pt": "Quebrar a Mudança: Adicionar parâmetro de controle 'setDeviceAutomation' que emula o modo Smart Matching da Zendure. Como havia preocupações de que a definição de limites seria armazenada na memória flash, eu recomendo usar esta automação do dispositivo em vez de 'setInputLimit'/'setOutputLimit' a partir de agora. Você pode usar valores negativos para carregar e positivos para alimentação.",
63
- "nl": "Verandering doorbreken: Voeg controleparameter 'setDeviceAutomation' toe die Zendure's Smart Matching-modus emuleert. Aangezien er bezorgdheid was dat het instellen van limieten in het flashgeheugen zou worden opgeslagen, raad ik aan om deze apparaatautomatisering te gebruiken in plaats van 'setInputLimit'/'setOutputLimit' vanaf nu. U kunt negatieve waarden gebruiken voor het opladen en positief voor voer in.",
64
- "fr": "Briser le changement : Ajouter le paramètre de contrôle 'setDeviceAutomation' qui émule le mode Smart Matching de Zendure. Étant donné qu'il y avait des inquiétudes quant au stockage des limites de réglage dans la mémoire flash, je recommande d'utiliser cette automatisation au lieu de 'setInputLimit'/'setOutputLimit' à partir de maintenant. Vous pouvez utiliser des valeurs négatives pour la charge et positives pour l'alimentation.",
65
- "it": "Cambiamento di rottura: Aggiungi il parametro di controllo 'setDeviceAutomation' che emula la modalità Smart Matching di Zendure. Poiché ci sono state preoccupazioni che i limiti di impostazione sarebbero stati memorizzati nella memoria flash, consiglio di utilizzare questo dispositivo di automazione invece di 'setInputLimit'/'setOutputLimit' da ora in poi. È possibile utilizzare valori negativi per la ricarica e positivo per il feed in.",
66
- "es": "Cambio de ruptura: Añadir parámetro de control 'setDeviceAutomation' que emula el modo Smart Matching de Zendure. Dado que había preocupaciones de que los límites de configuración se almacenarían en la memoria flash, recomiendo usar esta automatización de dispositivos en lugar de 'setInputLimit'/'setOutputLimit' de ahora en adelante. Puede utilizar valores negativos para cargar y positivos para alimentarse.",
67
- "pl": "Łamanie zmian: Dodaj parametr sterowania 'setDeviceAutomation', który emuluje tryb Smart Matching Zabada. Ponieważ pojawiły się obawy, że w pamięci flash zostaną zapisane granice ustawień, zalecam stosowanie automatyzacji tego urządzenia zamiast 'setInputLimit' / 'setOutputLimit'. Możesz użyć wartości ujemnych do ładowania i dodatnich do podawania.",
68
- "uk": "Зміна несправностей: Додавання параметра керування «setDeviceAutomation», який визначає режим Smart Matching Zendure. З тих пір, як було занепокоєння, що обмеження налаштування будуть зберігатися в флеш-пам'яті, я рекомендую використовувати цей пристрій автоматизації замість 'setInputLimit'/'setOutputLimit' відтепер. Ви можете використовувати негативні значення для зарядки та позитиву для живлення.",
69
- "zh-cn": "中断更改 : 添加模拟 Zendure 智能匹配模式的控制参数“ setDeviceAutomation ” 。 由于有人担心设定限制会存储在闪存中,我建议从现在开始使用这个设备自动化,而不是“setInputLimit”/“setOutputLimit”. 可以使用负值充电,正值用于饲料输入."
70
- },
71
- "1.15.4": {
72
- "en": "Add smart mode control parameter for more devices",
73
- "de": "Smart-Mode-Control-Parameter für mehr Geräte hinzufügen",
74
- "ru": "Добавьте параметр управления умным режимом для большего количества устройств",
75
- "pt": "Adicionar parâmetro de controle de modo inteligente para mais dispositivos",
76
- "nl": "Smart mode control parameter voor meer apparaten toevoegen",
77
- "fr": "Ajouter le paramètre de contrôle du mode intelligent pour plus de périphériques",
78
- "it": "Aggiungi il parametro di controllo della modalità intelligente per più dispositivi",
79
- "es": "Añadir parámetro de control de modo inteligente para más dispositivos",
80
- "pl": "Dodaj inteligentny parametr sterowania trybem dla większej liczby urządzeń",
81
- "uk": "Додавання параметра керування смарт-режимом для більших пристроїв",
82
- "zh-cn": "为更多设备添加智能模式控制参数"
83
- },
84
- "1.15.3": {
85
- "en": "Match case sensitive product key for SF 2400 AC and SF 800 in settings if local mode is used\nAdd sensor and control of \"SmartMode\"",
86
- "de": "Passender Case sensitiver Produktschlüssel für SF 2400 AC und SF 800 in Einstellungen, wenn der lokale Modus verwendet wird\nSensor und Steuerung von \"SmartMode\" hinzufügen",
87
- "ru": "Ключ для SF 2400 AC и SF 800 в настройках, если используется локальный режим\nДобавить сенсор и управление «SmartMode»",
88
- "pt": "Chave de produto sensível à caixa para SF 2400 AC e SF 800 em configurações se o modo local for usado\nAdicionar sensor e controle de \"SmartMode\"",
89
- "nl": "Match hoofdlettergevoelige productsleutel voor SF 2400 AC en SF 800 in instellingen als lokale modus wordt gebruikt\nVoeg sensor en bediening van \"SmartMode\" toe",
90
- "fr": "Clé de produit sensible à la casse pour SF 2400 AC et SF 800 dans les paramètres si le mode local est utilisé\nAjouter le capteur et le contrôle de \"SmartMode\"",
91
- "it": "Chiave di prodotto sensibile caso di corrispondenza per SF 2400 AC e SF 800 nelle impostazioni se la modalità locale viene utilizzata\nAggiungi sensore e controllo di \"SmartMode\"",
92
- "es": "Clave de producto sensible de caso de coincidencia para SF 2400 AC y SF 800 en ajustes si se utiliza el modo local\nAñadir sensor y control de \"SmartMode\"",
93
- "pl": "Klucz produktu wrażliwego na dopasowanie dla SF 2400 AC i SF 800 w ustawieniach w trybie lokalnym\nDodaj czujnik i sterowanie \"SmartMode\"",
94
- "uk": "У разі використання чутливого продукту для SF 2400 AC та SF 800 у налаштуваннях, якщо використовується локальний режим\nДодати датчик і контроль \"SmartMode\"",
95
- "zh-cn": "如果使用本地模式, 匹配 SF 2400 AC 和 SF 800 的大小写敏感产品密钥\n添加“ SmartMode” 的传感器和控制"
96
83
  }
97
84
  },
98
85
  "titleLang": {
@@ -157,11 +144,67 @@
157
144
  {
158
145
  "admin": ">=7.4.10"
159
146
  }
147
+ ],
148
+ "messages": [
149
+ {
150
+ "condition": {
151
+ "operand": "and",
152
+ "rules": [
153
+ "oldVersion<3.0.0",
154
+ "newVersion>=3.0.0"
155
+ ]
156
+ },
157
+ "title": {
158
+ "en": "Important notice!",
159
+ "de": "Wichtiger Hinweis!",
160
+ "ru": "Важное замечание!",
161
+ "pt": "Notícia importante!",
162
+ "nl": "Belangrijke mededeling!",
163
+ "fr": "Avis important!",
164
+ "it": "Avviso IMPORTANTE!",
165
+ "es": "Noticia importante!",
166
+ "pl": "Ważna uwaga!",
167
+ "zh-cn": "重要通知!"
168
+ },
169
+ "text": {
170
+ "en": "BREAKING CHANGE. <br> Changed authentication with username/password to 'cloud authentication key'. You have to generate a key in the official zendure app!<br>'Fallback server' is no longer supported and removed in this version!",
171
+ "de": "ÄNDERUNG. <br> Die Authentifizierung mit Benutzername/Passwort wurde auf 'Cloud-Authentifizierungsschlüssel' geändert. Sie müssen einen Schlüssel in der offiziellen Zendure-App generieren!<br>'Fallback Server' wird nicht mehr unterstützt und in dieser Version entfernt!",
172
+ "ru": "ИЗМЕНЕНИЕ. <br> Заменена аутентификация с помощью имени пользователя/пароля на \"ключ облачной аутентификации\". Вы должны сгенерировать ключ в официальном приложении zendure!<br> \"Fallback server\" больше не поддерживается и удален в этой версии!",
173
+ "pt": "MUDANÇA DE RUPTURA. <br> Alterada a autenticação com nome de usuário/senha para 'chave de autenticação na nuvem'. Você precisa gerar uma chave no aplicativo oficial do zendure!<br>'Servidor de fallback' não é mais suportado e foi removido nesta versão!",
174
+ "nl": "BREAKING WIJZIGING. <br> Verandering van authenticatie met gebruikersnaam/wachtwoord naar 'cloud authenticatie sleutel'. Je moet een sleutel genereren in de officiële zendure app!<br>'Fallback server' wordt niet langer ondersteund en verwijderd in deze versie!",
175
+ "fr": "BREAKING CHANGE. <br>Changement de l'authentification par nom d'utilisateur/mot de passe en 'clé d'authentification cloud'. Vous devez générer une clé dans l'application officielle de zendure!<br>Le 'Fallback server' n'est plus supporté et supprimé dans cette version !",
176
+ "it": "MODIFICA DI ROTTURA. <br> Cambiata l'autenticazione con nome utente/password in 'chiave di autenticazione cloud'. È necessario generare una chiave nell'app ufficiale di zendure!<br> Il 'Fallback server' non è più supportato e viene rimosso in questa versione!",
177
+ "es": "CAMBIO DE ÚLTIMA HORA. <br> Cambiada la autenticación con nombre de usuario/contraseña a 'clave de autenticación en la nube'. Usted tiene que generar una clave en la aplicación oficial zendure!<br>'Fallback server' ya no es compatible y eliminado en esta versión!",
178
+ "pl": "PRZEŁOMOWA ZMIANA. <br> Zmieniono uwierzytelnianie za pomocą nazwy użytkownika/hasła na \"klucz uwierzytelniania w chmurze\". Musisz wygenerować klucz w oficjalnej aplikacji zendure!<br>\"Serwer awaryjny\" nie jest już obsługiwany i został usunięty w tej wersji!",
179
+ "uk": "ЗМІНА, ЩО РУЙНУЄ. <br> Змінено автентифікацію за допомогою імені користувача/пароля на \"хмарний ключ автентифікації\". Ви повинні згенерувати ключ в офіційному додатку zendure! <br>\"Резервний сервер\" більше не підтримується і вилучений у цій версії!",
180
+ "zh-cn": "BREAKING CHANGE. <br> Changed authentication with username/password to 'cloud authentication key'. You have to generate a key in the official zendure app!<br>'Fallback server' is no longer supported and removed in this version!"
181
+ },
182
+ "link": "https://github.com/nograx/ioBroker.zendure-solarflow/blob/main/README.md",
183
+ "level": "warn",
184
+ "linkText": {
185
+ "en": "Readme",
186
+ "de": "Liesmich",
187
+ "ru": "Прочти меня",
188
+ "pt": "Leia-me",
189
+ "nl": "Leesmij",
190
+ "fr": "Lisez-moi",
191
+ "it": "Leggimi",
192
+ "es": "Léame",
193
+ "pl": "Readme",
194
+ "zh-cn": "自述文件"
195
+ },
196
+ "buttons": [
197
+ "agree",
198
+ "cancel"
199
+ ]
200
+ }
160
201
  ]
161
202
  },
162
203
  "native": {
163
204
  "userName": "",
164
205
  "password": "",
206
+ "connectionMode": "authKey",
207
+ "authorizationCloudKey": "",
165
208
  "server": "global",
166
209
  "useCalculation": false,
167
210
  "useLowVoltageBlock": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.zendure-solarflow",
3
- "version": "2.0.3",
3
+ "version": "3.0.0-alpha.2",
4
4
  "description": "zendure-solarflow",
5
5
  "author": {
6
6
  "name": "Peter",
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var paths_exports = {};
20
- __export(paths_exports, {
21
- pathsEu: () => pathsEu,
22
- pathsGlobal: () => pathsGlobal
23
- });
24
- module.exports = __toCommonJS(paths_exports);
25
- const hostname = `app.zendure.tech`;
26
- const versionGlobal = `v2`;
27
- const versionEu = `eu`;
28
- const solarFlowDevRegisterPath = `developer/api/apply`;
29
- const solarFlowTokenPath = `auth/app/token`;
30
- const solarFlowDeviceListPath = `productModule/device/queryDeviceListByConsumerId`;
31
- const pathsGlobal = {
32
- solarFlowDevRegisterUrl: `https://${hostname}/${versionGlobal}/${solarFlowDevRegisterPath}`,
33
- solarFlowTokenUrl: `https://${hostname}/${versionGlobal}/${solarFlowTokenPath}`,
34
- solarFlowQueryDeviceListUrl: `https://${hostname}/${versionGlobal}/${solarFlowDeviceListPath}`,
35
- mqttUrl: "mq.zen-iot.com",
36
- mqttPort: 1883,
37
- mqttPassword: "b0sjUENneTZPWnhk"
38
- };
39
- const pathsEu = {
40
- solarFlowDevRegisterUrl: `https://${hostname}/${versionEu}/${solarFlowDevRegisterPath}`,
41
- solarFlowTokenUrl: `https://${hostname}/${versionEu}/${solarFlowTokenPath}`,
42
- solarFlowQueryDeviceListUrl: `https://${hostname}/${versionEu}/${solarFlowDeviceListPath}`,
43
- mqttUrl: "mqtteu.zen-iot.com",
44
- mqttPort: 1883,
45
- mqttPassword: "SDZzJGo5Q3ROYTBO"
46
- };
47
- // Annotate the CommonJS export names for ESM import in node:
48
- 0 && (module.exports = {
49
- pathsEu,
50
- pathsGlobal
51
- });
52
- //# sourceMappingURL=paths.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/constants/paths.ts"],
4
- "sourcesContent": ["import { ISolarFlowPaths } from \"../models/ISolarFlowPaths\";\r\n\r\n/* eslint-disable @typescript-eslint/indent */\r\nconst hostname = `app.zendure.tech`;\r\nconst versionGlobal = `v2`;\r\nconst versionEu = `eu`; // currently not used! Only the global server is ready at the moment\r\n\r\nconst solarFlowDevRegisterPath = `developer/api/apply`;\r\nconst solarFlowTokenPath = `auth/app/token`;\r\nconst solarFlowDeviceListPath = `productModule/device/queryDeviceListByConsumerId`;\r\n\r\nexport const pathsGlobal: ISolarFlowPaths = {\r\n solarFlowDevRegisterUrl: `https://${hostname}/${versionGlobal}/${solarFlowDevRegisterPath}`,\r\n solarFlowTokenUrl: `https://${hostname}/${versionGlobal}/${solarFlowTokenPath}`,\r\n solarFlowQueryDeviceListUrl: `https://${hostname}/${versionGlobal}/${solarFlowDeviceListPath}`,\r\n mqttUrl: \"mq.zen-iot.com\",\r\n mqttPort: 1883,\r\n mqttPassword: \"b0sjUENneTZPWnhk\",\r\n};\r\n\r\nexport const pathsEu: ISolarFlowPaths = {\r\n solarFlowDevRegisterUrl: `https://${hostname}/${versionEu}/${solarFlowDevRegisterPath}`,\r\n solarFlowTokenUrl: `https://${hostname}/${versionEu}/${solarFlowTokenPath}`,\r\n solarFlowQueryDeviceListUrl: `https://${hostname}/${versionEu}/${solarFlowDeviceListPath}`,\r\n mqttUrl: \"mqtteu.zen-iot.com\",\r\n mqttPort: 1883,\r\n mqttPassword: \"SDZzJGo5Q3ROYTBO\",\r\n};\r\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,MAAM,WAAW;AACjB,MAAM,gBAAgB;AACtB,MAAM,YAAY;AAElB,MAAM,2BAA2B;AACjC,MAAM,qBAAqB;AAC3B,MAAM,0BAA0B;AAEzB,MAAM,cAA+B;AAAA,EAC1C,yBAAyB,WAAW,QAAQ,IAAI,aAAa,IAAI,wBAAwB;AAAA,EACzF,mBAAmB,WAAW,QAAQ,IAAI,aAAa,IAAI,kBAAkB;AAAA,EAC7E,6BAA6B,WAAW,QAAQ,IAAI,aAAa,IAAI,uBAAuB;AAAA,EAC5F,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAChB;AAEO,MAAM,UAA2B;AAAA,EACtC,yBAAyB,WAAW,QAAQ,IAAI,SAAS,IAAI,wBAAwB;AAAA,EACrF,mBAAmB,WAAW,QAAQ,IAAI,SAAS,IAAI,kBAAkB;AAAA,EACzE,6BAA6B,WAAW,QAAQ,IAAI,SAAS,IAAI,uBAAuB;AAAA,EACxF,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAChB;",
6
- "names": []
7
- }
@@ -1,113 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var createSolarFlowLocalStates_exports = {};
20
- __export(createSolarFlowLocalStates_exports, {
21
- createSolarFlowLocalStates: () => createSolarFlowLocalStates
22
- });
23
- module.exports = __toCommonJS(createSolarFlowLocalStates_exports);
24
- var import_createCalculationStates = require("./createCalculationStates");
25
- var import_createControlStates = require("./createControlStates");
26
- var import_createSolarFlowStates = require("./createSolarFlowStates");
27
- var import_helpers = require("./helpers");
28
- const createSolarFlowLocalStates = async (adapter, productKey, deviceKey) => {
29
- productKey = productKey.replace(adapter.FORBIDDEN_CHARS, "");
30
- deviceKey = deviceKey.replace(adapter.FORBIDDEN_CHARS, "");
31
- const productName = (0, import_helpers.getProductNameFromProductKey)(productKey);
32
- if (productName == "") {
33
- adapter.log.error(
34
- `[createSolarFlowLocalStates] Unknown product (${productKey}/${deviceKey}). We cannot create control states! Please contact the developer!`
35
- );
36
- return;
37
- }
38
- adapter.log.debug(
39
- `[createSolarFlowLocalStates] Creating or updating SolarFlow states for ${productName} (${productKey}/${deviceKey}).`
40
- );
41
- await (adapter == null ? void 0 : adapter.extendObject(productKey, {
42
- type: "device",
43
- common: {
44
- name: {
45
- de: `${productName} (${productKey})`,
46
- en: `${productName} (${productKey})`
47
- }
48
- },
49
- native: {}
50
- }));
51
- await (adapter == null ? void 0 : adapter.extendObject(productKey + "." + deviceKey, {
52
- type: "channel",
53
- common: {
54
- name: {
55
- de: `Device Key ${deviceKey}`,
56
- en: `Device Key ${deviceKey}`
57
- }
58
- },
59
- native: {}
60
- }));
61
- if (productName == null ? void 0 : productName.toLowerCase().includes("smart plug")) {
62
- await (adapter == null ? void 0 : adapter.extendObject(`${productKey}.${deviceKey}.packData`, {
63
- type: "channel",
64
- common: {
65
- name: {
66
- de: "Batterie Packs",
67
- en: "Battery packs"
68
- }
69
- },
70
- native: {}
71
- }));
72
- }
73
- const states = (0, import_createSolarFlowStates.getStateDefinition)(productName);
74
- states.forEach(async (state) => {
75
- await (adapter == null ? void 0 : adapter.extendObject(`${productKey}.${deviceKey}.${state.title}`, {
76
- type: "state",
77
- common: {
78
- name: {
79
- de: state.nameDe,
80
- en: state.nameEn
81
- },
82
- type: state.type,
83
- desc: state.title,
84
- role: state.role,
85
- read: true,
86
- write: false,
87
- unit: state.unit,
88
- states: state.states
89
- },
90
- native: {}
91
- }));
92
- });
93
- await (0, import_createControlStates.createControlStates)(adapter, productKey, deviceKey, productName);
94
- if (adapter.config.useCalculation) {
95
- await (adapter == null ? void 0 : adapter.extendObject(`${productKey}.${deviceKey}.calculations`, {
96
- type: "channel",
97
- common: {
98
- name: {
99
- de: "Berechnungen f\xFCr Ger\xE4t " + deviceKey,
100
- en: "Calculations for Device " + deviceKey
101
- }
102
- },
103
- native: {}
104
- }));
105
- await (0, import_createCalculationStates.createCalculationStates)(adapter, productKey, deviceKey);
106
- } else {
107
- }
108
- };
109
- // Annotate the CommonJS export names for ESM import in node:
110
- 0 && (module.exports = {
111
- createSolarFlowLocalStates
112
- });
113
- //# sourceMappingURL=createSolarFlowLocalStates.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/helpers/createSolarFlowLocalStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\n\nimport { ZendureSolarflow } from \"../main\";\nimport { ISolarflowState } from \"../models/ISolarflowState\";\nimport { createCalculationStates } from \"./createCalculationStates\";\nimport { createControlStates } from \"./createControlStates\";\nimport { getStateDefinition } from \"./createSolarFlowStates\";\nimport { getProductNameFromProductKey } from \"./helpers\";\n//import { deleteCalculationStates } from \"./deleteCalculationStates\";\n\nexport const createSolarFlowLocalStates = async (\n adapter: ZendureSolarflow,\n productKey: string,\n deviceKey: string\n): Promise<void> => {\n productKey = productKey.replace(adapter.FORBIDDEN_CHARS, \"\");\n deviceKey = deviceKey.replace(adapter.FORBIDDEN_CHARS, \"\");\n\n const productName = getProductNameFromProductKey(productKey);\n\n if (productName == \"\") {\n adapter.log.error(\n `[createSolarFlowLocalStates] Unknown product (${productKey}/${deviceKey}). We cannot create control states! Please contact the developer!`\n );\n return;\n }\n\n adapter.log.debug(\n `[createSolarFlowLocalStates] Creating or updating SolarFlow states for ${productName} (${productKey}/${deviceKey}).`\n );\n\n // Create device (e.g. the product type -> SolarFlow)\n await adapter?.extendObject(productKey, {\n type: \"device\",\n common: {\n name: {\n de: `${productName} (${productKey})`,\n en: `${productName} (${productKey})`,\n },\n },\n native: {},\n });\n\n // Create channel (e.g. the device specific key)\n await adapter?.extendObject(productKey + \".\" + deviceKey, {\n type: \"channel\",\n common: {\n name: {\n de: `Device Key ${deviceKey}`,\n en: `Device Key ${deviceKey}`,\n },\n },\n native: {},\n });\n\n // Create pack data folder\n if (productName?.toLowerCase().includes(\"smart plug\")) {\n await adapter?.extendObject(`${productKey}.${deviceKey}.packData`, {\n type: \"channel\",\n common: {\n name: {\n de: \"Batterie Packs\",\n en: \"Battery packs\",\n },\n },\n native: {},\n });\n }\n\n const states = getStateDefinition(productName);\n\n states.forEach(async (state: ISolarflowState) => {\n await adapter?.extendObject(`${productKey}.${deviceKey}.${state.title}`, {\n type: \"state\",\n common: {\n name: {\n de: state.nameDe,\n en: state.nameEn,\n },\n type: state.type,\n desc: state.title,\n role: state.role,\n read: true,\n write: false,\n unit: state.unit,\n states: state.states,\n },\n native: {},\n });\n });\n\n // Create control states\n await createControlStates(adapter, productKey, deviceKey, productName);\n\n if (adapter.config.useCalculation) {\n // Create calculations folder\n await adapter?.extendObject(`${productKey}.${deviceKey}.calculations`, {\n type: \"channel\",\n common: {\n name: {\n de: \"Berechnungen f\u00FCr Ger\u00E4t \" + deviceKey,\n en: \"Calculations for Device \" + deviceKey,\n },\n },\n native: {},\n });\n\n await createCalculationStates(adapter, productKey, deviceKey);\n } else {\n //await deleteCalculationStates(adapter, productKey, deviceKey);\n }\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,qCAAwC;AACxC,iCAAoC;AACpC,mCAAmC;AACnC,qBAA6C;AAGtC,MAAM,6BAA6B,OACxC,SACA,YACA,cACkB;AAClB,eAAa,WAAW,QAAQ,QAAQ,iBAAiB,EAAE;AAC3D,cAAY,UAAU,QAAQ,QAAQ,iBAAiB,EAAE;AAEzD,QAAM,kBAAc,6CAA6B,UAAU;AAE3D,MAAI,eAAe,IAAI;AACrB,YAAQ,IAAI;AAAA,MACV,iDAAiD,UAAU,IAAI,SAAS;AAAA,IAC1E;AACA;AAAA,EACF;AAEA,UAAQ,IAAI;AAAA,IACV,0EAA0E,WAAW,KAAK,UAAU,IAAI,SAAS;AAAA,EACnH;AAGA,SAAM,mCAAS,aAAa,YAAY;AAAA,IACtC,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,IAAI,GAAG,WAAW,KAAK,UAAU;AAAA,QACjC,IAAI,GAAG,WAAW,KAAK,UAAU;AAAA,MACnC;AAAA,IACF;AAAA,IACA,QAAQ,CAAC;AAAA,EACX;AAGA,SAAM,mCAAS,aAAa,aAAa,MAAM,WAAW;AAAA,IACxD,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,IAAI,cAAc,SAAS;AAAA,QAC3B,IAAI,cAAc,SAAS;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,QAAQ,CAAC;AAAA,EACX;AAGA,MAAI,2CAAa,cAAc,SAAS,eAAe;AACrD,WAAM,mCAAS,aAAa,GAAG,UAAU,IAAI,SAAS,aAAa;AAAA,MACjE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN;AAAA,MACF;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA,EACF;AAEA,QAAM,aAAS,iDAAmB,WAAW;AAE7C,SAAO,QAAQ,OAAO,UAA2B;AAC/C,WAAM,mCAAS,aAAa,GAAG,UAAU,IAAI,SAAS,IAAI,MAAM,KAAK,IAAI;AAAA,MACvE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,IAAI,MAAM;AAAA,UACV,IAAI,MAAM;AAAA,QACZ;AAAA,QACA,MAAM,MAAM;AAAA,QACZ,MAAM,MAAM;AAAA,QACZ,MAAM,MAAM;AAAA,QACZ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM,MAAM;AAAA,QACZ,QAAQ,MAAM;AAAA,MAChB;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA,EACF,CAAC;AAGD,YAAM,gDAAoB,SAAS,YAAY,WAAW,WAAW;AAErE,MAAI,QAAQ,OAAO,gBAAgB;AAEjC,WAAM,mCAAS,aAAa,GAAG,UAAU,IAAI,SAAS,iBAAiB;AAAA,MACrE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,IAAI,kCAA4B;AAAA,UAChC,IAAI,6BAA6B;AAAA,QACnC;AAAA,MACF;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAEA,cAAM,wDAAwB,SAAS,YAAY,SAAS;AAAA,EAC9D,OAAO;AAAA,EAEP;AACF;",
6
- "names": []
7
- }
@@ -1,196 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var createSolarFlowStates_exports = {};
20
- __export(createSolarFlowStates_exports, {
21
- createSolarFlowStates: () => createSolarFlowStates,
22
- getStateDefinition: () => getStateDefinition
23
- });
24
- module.exports = __toCommonJS(createSolarFlowStates_exports);
25
- var import_ac2400States = require("../constants/ac2400States");
26
- var import_aceStates = require("../constants/aceStates");
27
- var import_aioStates = require("../constants/aioStates");
28
- var import_hubStates = require("../constants/hubStates");
29
- var import_hyperStates = require("../constants/hyperStates");
30
- var import_solarflow800ProStates = require("../constants/solarflow800ProStates");
31
- var import_solarflow800States = require("../constants/solarflow800States");
32
- var import_adapterService = require("../services/adapterService");
33
- var import_createCalculationStates = require("./createCalculationStates");
34
- var import_createControlStates = require("./createControlStates");
35
- const getStateDefinition = (productName) => {
36
- switch (productName.toLocaleLowerCase()) {
37
- case "hyper 2000":
38
- return import_hyperStates.hyperStates;
39
- case "solarflow 800":
40
- return import_solarflow800States.solarflow800States;
41
- case "solarflow2.0":
42
- return import_hubStates.hubStates;
43
- case "solarflow hub 2000":
44
- return import_hubStates.hubStates;
45
- case "solarflow aio zy":
46
- return import_aioStates.aioStates;
47
- case "ace 1500":
48
- return import_aceStates.aceStates;
49
- case "solarflow 800 pro":
50
- return import_solarflow800ProStates.solarflow800ProStates;
51
- case "solarflow 2400 ac":
52
- return import_ac2400States.ac2400States;
53
- default:
54
- return [];
55
- }
56
- };
57
- const createSolarFlowStates = async (adapter, device) => {
58
- const productKey = device.productKey.replace(adapter.FORBIDDEN_CHARS, "");
59
- const deviceKey = device.deviceKey.replace(adapter.FORBIDDEN_CHARS, "");
60
- if (device.productKey == "s3Xk4x") {
61
- adapter.log.debug(`[createSolarFlowStates] Smart Plug not supported.`);
62
- return;
63
- }
64
- adapter.log.debug(
65
- `[createSolarFlowStates] Creating or updating SolarFlow states for ${device.productName} (${productKey}/${deviceKey}) and name '${device.name}'.`
66
- );
67
- await (adapter == null ? void 0 : adapter.extendObject(productKey, {
68
- type: "device",
69
- common: {
70
- name: {
71
- de: `${device.productName} (${productKey})`,
72
- en: `${device.productName} (${productKey})`
73
- }
74
- },
75
- native: {}
76
- }));
77
- await (adapter == null ? void 0 : adapter.extendObject(productKey + "." + deviceKey, {
78
- type: "channel",
79
- common: {
80
- name: {
81
- de: `${device.name} (${deviceKey})`,
82
- en: `${device.name} (${deviceKey})`
83
- }
84
- },
85
- native: {}
86
- }));
87
- if (!device.productName.toLocaleLowerCase().includes("smart plug")) {
88
- await (adapter == null ? void 0 : adapter.extendObject(`${productKey}.${deviceKey}.packData`, {
89
- type: "channel",
90
- common: {
91
- name: {
92
- de: "Batterie Packs",
93
- en: "Battery packs"
94
- }
95
- },
96
- native: {}
97
- }));
98
- }
99
- const states = getStateDefinition(device.productName);
100
- if (states.length == 0) {
101
- adapter.log.error(
102
- `[createSolarFlowLocalStates] Unknown product (${device.productName}). We cannot create control states! Please contact the developer!`
103
- );
104
- return;
105
- }
106
- states.forEach(async (state) => {
107
- await (adapter == null ? void 0 : adapter.extendObject(`${productKey}.${deviceKey}.${state.title}`, {
108
- type: "state",
109
- common: {
110
- name: {
111
- de: state.nameDe,
112
- en: state.nameEn
113
- },
114
- type: state.type,
115
- desc: state.title,
116
- role: state.role,
117
- read: true,
118
- write: false,
119
- unit: state.unit,
120
- states: state.states
121
- },
122
- native: {}
123
- }));
124
- });
125
- if (device.electricity && !device.productName.toLocaleLowerCase().includes("smart plug")) {
126
- await (0, import_adapterService.updateSolarFlowState)(
127
- adapter,
128
- device.productKey,
129
- device.deviceKey,
130
- "electricLevel",
131
- device.electricity
132
- );
133
- }
134
- if (device.snNumber) {
135
- await (0, import_adapterService.updateSolarFlowState)(
136
- adapter,
137
- productKey,
138
- deviceKey,
139
- "snNumber",
140
- device.snNumber.toString()
141
- );
142
- }
143
- if ((device.productName.toLocaleLowerCase() == "solarflow hub 2000" || device.productName.toLocaleLowerCase() == "solarflow2.0") && device._connectedWithAce != null && device._connectedWithAce != void 0) {
144
- await (0, import_adapterService.updateSolarFlowState)(
145
- adapter,
146
- device.productKey,
147
- device.deviceKey,
148
- "connectedWithAce",
149
- device._connectedWithAce
150
- );
151
- }
152
- await (0, import_adapterService.updateSolarFlowState)(
153
- adapter,
154
- productKey,
155
- deviceKey,
156
- "productName",
157
- device.productName
158
- );
159
- await (0, import_adapterService.updateSolarFlowState)(
160
- adapter,
161
- productKey,
162
- deviceKey,
163
- "wifiState",
164
- device.wifiStatus ? "Connected" : "Disconnected"
165
- );
166
- if (!device.productName.toLocaleLowerCase().includes("smart plug")) {
167
- if (!adapter.config.useFallbackService) {
168
- await (0, import_createControlStates.createControlStates)(
169
- adapter,
170
- productKey,
171
- deviceKey,
172
- device.productName
173
- );
174
- }
175
- if (adapter.config.useCalculation) {
176
- await (adapter == null ? void 0 : adapter.extendObject(`${productKey}.${deviceKey}.calculations`, {
177
- type: "channel",
178
- common: {
179
- name: {
180
- de: "Berechnungen f\xFCr Ger\xE4t " + deviceKey,
181
- en: "Calculations for Device " + deviceKey
182
- }
183
- },
184
- native: {}
185
- }));
186
- await (0, import_createCalculationStates.createCalculationStates)(adapter, productKey, deviceKey);
187
- } else {
188
- }
189
- }
190
- };
191
- // Annotate the CommonJS export names for ESM import in node:
192
- 0 && (module.exports = {
193
- createSolarFlowStates,
194
- getStateDefinition
195
- });
196
- //# sourceMappingURL=createSolarFlowStates.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/helpers/createSolarFlowStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\n\r\nimport { ac2400States } from \"../constants/ac2400States\";\r\nimport { aceStates } from \"../constants/aceStates\";\r\nimport { aioStates } from \"../constants/aioStates\";\r\nimport { hubStates } from \"../constants/hubStates\";\r\nimport { hyperStates } from \"../constants/hyperStates\";\r\nimport { solarflow800ProStates } from \"../constants/solarflow800ProStates\";\r\nimport { solarflow800States } from \"../constants/solarflow800States\";\r\nimport { ZendureSolarflow } from \"../main\";\r\nimport { ISolarFlowDeviceDetails } from \"../models/ISolarFlowDeviceDetails\";\r\nimport { ISolarflowState } from \"../models/ISolarflowState\";\r\nimport { updateSolarFlowState } from \"../services/adapterService\";\r\nimport { createCalculationStates } from \"./createCalculationStates\";\r\nimport { createControlStates } from \"./createControlStates\";\r\n//import { deleteCalculationStates } from \"./deleteCalculationStates\";\r\n\r\nexport const getStateDefinition = (productName: string): ISolarflowState[] => {\r\n switch (productName.toLocaleLowerCase()) {\r\n case \"hyper 2000\":\r\n return hyperStates;\r\n case \"solarflow 800\":\r\n return solarflow800States;\r\n case \"solarflow2.0\":\r\n return hubStates;\r\n case \"solarflow hub 2000\":\r\n return hubStates;\r\n case \"solarflow aio zy\":\r\n return aioStates;\r\n case \"ace 1500\":\r\n return aceStates;\r\n case \"solarflow 800 pro\":\r\n return solarflow800ProStates;\r\n case \"solarflow 2400 ac\":\r\n return ac2400States;\r\n default:\r\n return [];\r\n }\r\n};\r\n\r\nexport const createSolarFlowStates = async (\r\n adapter: ZendureSolarflow,\r\n device: ISolarFlowDeviceDetails\r\n): Promise<void> => {\r\n const productKey = device.productKey.replace(adapter.FORBIDDEN_CHARS, \"\");\r\n const deviceKey = device.deviceKey.replace(adapter.FORBIDDEN_CHARS, \"\");\r\n\r\n if (\r\n device.productKey ==\r\n \"s3Xk4x\" /* && adapter && adapter.userId && device.id */\r\n ) {\r\n adapter.log.debug(`[createSolarFlowStates] Smart Plug not supported.`);\r\n return;\r\n // productKey = adapter.userId;\r\n // deviceKey = device.id.toString();\r\n }\r\n\r\n adapter.log.debug(\r\n `[createSolarFlowStates] Creating or updating SolarFlow states for ${device.productName} (${productKey}/${deviceKey}) and name '${device.name}'.`\r\n );\r\n\r\n // Create device (e.g. the product type -> SolarFlow)\r\n await adapter?.extendObject(productKey, {\r\n type: \"device\",\r\n common: {\r\n name: {\r\n de: `${device.productName} (${productKey})`,\r\n en: `${device.productName} (${productKey})`,\r\n },\r\n },\r\n native: {},\r\n });\r\n\r\n // Create channel (e.g. the device specific key)\r\n await adapter?.extendObject(productKey + \".\" + deviceKey, {\r\n type: \"channel\",\r\n common: {\r\n name: {\r\n de: `${device.name} (${deviceKey})`,\r\n en: `${device.name} (${deviceKey})`,\r\n },\r\n },\r\n native: {},\r\n });\r\n\r\n // Create pack data folder\r\n if (!device.productName.toLocaleLowerCase().includes(\"smart plug\")) {\r\n await adapter?.extendObject(`${productKey}.${deviceKey}.packData`, {\r\n type: \"channel\",\r\n common: {\r\n name: {\r\n de: \"Batterie Packs\",\r\n en: \"Battery packs\",\r\n },\r\n },\r\n native: {},\r\n });\r\n }\r\n\r\n const states = getStateDefinition(device.productName);\r\n\r\n if (states.length == 0) {\r\n adapter.log.error(\r\n `[createSolarFlowLocalStates] Unknown product (${device.productName}). We cannot create control states! Please contact the developer!`\r\n );\r\n return;\r\n }\r\n\r\n states.forEach(async (state: ISolarflowState) => {\r\n await adapter?.extendObject(`${productKey}.${deviceKey}.${state.title}`, {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: state.nameDe,\r\n en: state.nameEn,\r\n },\r\n type: state.type,\r\n desc: state.title,\r\n role: state.role,\r\n read: true,\r\n write: false,\r\n unit: state.unit,\r\n states: state.states,\r\n },\r\n native: {},\r\n });\r\n });\r\n\r\n // Set SOC from device\r\n if (\r\n device.electricity &&\r\n !device.productName.toLocaleLowerCase().includes(\"smart plug\")\r\n ) {\r\n await updateSolarFlowState(\r\n adapter,\r\n device.productKey,\r\n device.deviceKey,\r\n \"electricLevel\",\r\n device.electricity\r\n );\r\n }\r\n\r\n // Set sn number from device\r\n if (device.snNumber) {\r\n await updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"snNumber\",\r\n device.snNumber.toString()\r\n );\r\n }\r\n\r\n // Set the ACE connection info if is solarflow hub device\r\n if (\r\n (device.productName.toLocaleLowerCase() == \"solarflow hub 2000\" ||\r\n device.productName.toLocaleLowerCase() == \"solarflow2.0\") &&\r\n device._connectedWithAce != null &&\r\n device._connectedWithAce != undefined\r\n ) {\r\n await updateSolarFlowState(\r\n adapter,\r\n device.productKey,\r\n device.deviceKey,\r\n \"connectedWithAce\",\r\n device._connectedWithAce\r\n );\r\n }\r\n\r\n // Set product name from device\r\n await updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"productName\",\r\n device.productName\r\n );\r\n\r\n // Set wifi state from device\r\n await updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"wifiState\",\r\n device.wifiStatus ? \"Connected\" : \"Disconnected\"\r\n );\r\n\r\n if (!device.productName.toLocaleLowerCase().includes(\"smart plug\")) {\r\n // Create control states only when using App MQTT servers - and not the fallback one!\r\n if (!adapter.config.useFallbackService) {\r\n await createControlStates(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n device.productName\r\n );\r\n }\r\n\r\n if (adapter.config.useCalculation) {\r\n // Create calculations folder\r\n await adapter?.extendObject(`${productKey}.${deviceKey}.calculations`, {\r\n type: \"channel\",\r\n common: {\r\n name: {\r\n de: \"Berechnungen f\u00FCr Ger\u00E4t \" + deviceKey,\r\n en: \"Calculations for Device \" + deviceKey,\r\n },\r\n },\r\n native: {},\r\n });\r\n\r\n await createCalculationStates(adapter, productKey, deviceKey);\r\n } else {\r\n //await deleteCalculationStates(adapter, productKey, deviceKey);\r\n }\r\n }\r\n};\r\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/models/IPack2Device.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nexport interface IPack2Device {\n deviceKey: string;\n packSn: string;\n type: string;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/models/ISolarFlowDeviceDetails.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\nexport interface ISolarFlowDeviceDetails {\r\n _connectedWithAce?: boolean;\r\n batteryCode?: string;\r\n bindId?: number;\r\n bindStatus?: number;\r\n bindType?: number;\r\n blueState?: boolean;\r\n deviceKey: string;\r\n electricity?: number; // SOC\r\n fourGStatus?: boolean;\r\n id?: number;\r\n input?: boolean;\r\n inputPower?: number;\r\n isShareFlag?: string;\r\n isSwitch?: boolean;\r\n name?: string; // SolarFlow\r\n networkType?: number;\r\n onlineFlag?: string;\r\n output?: boolean;\r\n outputPower?: number;\r\n packList?: ISolarFlowDeviceDetails[];\r\n parallelMode?: number;\r\n productId?: number;\r\n productKey: string;\r\n productName: string;\r\n productType?: number;\r\n remainOutTime?: number;\r\n seriesMode?: number;\r\n slowChargePower?: number;\r\n snNumber?: string;\r\n standard?: string;\r\n temperature?: number;\r\n temperatureUnit?: number;\r\n upgradeStatus?: unknown;\r\n upgradeStatusDes?: string;\r\n upsMode?: boolean;\r\n url?: string;\r\n wifiStatus?: boolean;\r\n}\r\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/models/ISolarFlowPaths.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\nexport interface ISolarFlowPaths {\r\n solarFlowDevRegisterUrl: string;\r\n solarFlowTokenUrl: string;\r\n solarFlowQueryDeviceListUrl: string;\r\n mqttUrl: string;\r\n mqttPort: number;\r\n mqttPassword: string;\r\n}\r\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/models/ISolarflowDevRegisterResponse.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\nexport interface ISolarFlowDevRegisterResponse {\r\n code: number;\r\n success: boolean;\r\n data: ISolarFlowDevRegisterData;\r\n msg: string;\r\n}\r\n\r\nexport interface ISolarFlowDevRegisterData {\r\n appKey: string;\r\n secret: string;\r\n mqttUrl: string;\r\n port: number;\r\n}\r\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
- "names": []
7
- }