iobroker.zendure-solarflow 2.0.3 → 2.0.4

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.
package/README.md CHANGED
@@ -63,6 +63,11 @@ You will be logged out of the official iOS or Android App after logging in with
63
63
  Credits goes to https://github.com/reinhard-brandstaedter/solarflow which helped a lot with the knowledge about the MQTT server from Zendure! Thanks!
64
64
 
65
65
  ## Changelog
66
+ ### 2.0.4 (2025-09-12)
67
+
68
+ - Fix creation of control states on new Hyper 2000 v3
69
+ - Updates dependencies
70
+
66
71
  ### 2.0.3 (2025-09-09)
67
72
 
68
73
  - Added 'B3Dxda' as new Hyper 2000 productKey
@@ -32,6 +32,7 @@ var import_solarflow800States = require("../constants/solarflow800States");
32
32
  var import_adapterService = require("../services/adapterService");
33
33
  var import_createCalculationStates = require("./createCalculationStates");
34
34
  var import_createControlStates = require("./createControlStates");
35
+ var import_helpers = require("./helpers");
35
36
  const getStateDefinition = (productName) => {
36
37
  switch (productName.toLocaleLowerCase()) {
37
38
  case "hyper 2000":
@@ -57,6 +58,7 @@ const getStateDefinition = (productName) => {
57
58
  const createSolarFlowStates = async (adapter, device) => {
58
59
  const productKey = device.productKey.replace(adapter.FORBIDDEN_CHARS, "");
59
60
  const deviceKey = device.deviceKey.replace(adapter.FORBIDDEN_CHARS, "");
61
+ const productName = (0, import_helpers.getProductNameFromProductKey)(productKey);
60
62
  if (device.productKey == "s3Xk4x") {
61
63
  adapter.log.debug(`[createSolarFlowStates] Smart Plug not supported.`);
62
64
  return;
@@ -96,10 +98,10 @@ const createSolarFlowStates = async (adapter, device) => {
96
98
  native: {}
97
99
  }));
98
100
  }
99
- const states = getStateDefinition(device.productName);
101
+ const states = getStateDefinition(productName);
100
102
  if (states.length == 0) {
101
103
  adapter.log.error(
102
- `[createSolarFlowLocalStates] Unknown product (${device.productName}). We cannot create control states! Please contact the developer!`
104
+ `[createSolarFlowLocalStates] Unknown product (${device.productKey}/'${device.productName}'). We cannot create control states! Please contact the developer!`
103
105
  );
104
106
  return;
105
107
  }
@@ -165,12 +167,7 @@ const createSolarFlowStates = async (adapter, device) => {
165
167
  );
166
168
  if (!device.productName.toLocaleLowerCase().includes("smart plug")) {
167
169
  if (!adapter.config.useFallbackService) {
168
- await (0, import_createControlStates.createControlStates)(
169
- adapter,
170
- productKey,
171
- deviceKey,
172
- device.productName
173
- );
170
+ await (0, import_createControlStates.createControlStates)(adapter, productKey, deviceKey, productName);
174
171
  }
175
172
  if (adapter.config.useCalculation) {
176
173
  await (adapter == null ? void 0 : adapter.extendObject(`${productKey}.${deviceKey}.calculations`, {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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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",
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\nimport { getProductNameFromProductKey } from \"./helpers\";\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 const productName = getProductNameFromProductKey(productKey);\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(productName);\r\n\r\n if (states.length == 0) {\r\n adapter.log.error(\r\n `[createSolarFlowLocalStates] Unknown product (${device.productKey}/'${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(adapter, productKey, deviceKey, productName);\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
6
  "names": []
7
7
  }
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "zendure-solarflow",
4
- "version": "2.0.3",
4
+ "version": "2.0.4",
5
5
  "news": {
6
+ "2.0.4": {
7
+ "en": "Fix creation of control states on new Hyper 2000 v3\nUpdates dependencies",
8
+ "de": "Behebung der Erstellung von Steuerungszuständen auf dem neuen Hyper 2000 v3\nAktualisiert Abhängigkeiten",
9
+ "ru": "Исправлена создания состояний управления на новом Hyper 2000 v3\nОбновлены зависимости",
10
+ "pt": "Correção da criação de estados de controle no novo Hyper 2000 v3\nAtualiza dependências",
11
+ "nl": "Oplossing voor het aanmaken van bedieningstoestanden op nieuwe Hyper 2000 v3\nWerk dependencies bij",
12
+ "fr": "Corriger la création des états de contrôle sur le nouveau Hyper 2000 v3\nMise à jour des dépendances",
13
+ "it": "Correzione della creazione degli stati di controllo su Hyper 2000 v3\nAggiornamento delle dipendenze",
14
+ "es": "Corregir la creación de estados de control en el nuevo Hyper 2000 v3.\nActualización de dependencias",
15
+ "pl": "Napraw utworzenie stanów kontrolnych w nowym Hyper 2000 v3\nAktualizacja zależności",
16
+ "uk": "Виправлення створення станів управління на новому Hyper 2000 v3.\nОновлення залежностей",
17
+ "zh-cn": "修复在新的Hyper 2000 v3上创建控制状态\n更新依赖项"
18
+ },
6
19
  "2.0.3": {
7
20
  "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
21
  "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.",
@@ -80,19 +93,6 @@
80
93
  "pl": "Dodaj inteligentny parametr sterowania trybem dla większej liczby urządzeń",
81
94
  "uk": "Додавання параметра керування смарт-режимом для більших пристроїв",
82
95
  "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
96
  }
97
97
  },
98
98
  "titleLang": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.zendure-solarflow",
3
- "version": "2.0.3",
3
+ "version": "2.0.4",
4
4
  "description": "zendure-solarflow",
5
5
  "author": {
6
6
  "name": "Peter",