iobroker.zendure-solarflow 1.15.0 → 1.15.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.
- package/README.md +9 -0
- package/admin/build/index.js +1 -1
- package/admin/build/index.js.map +2 -2
- package/build/constants/solarflow800ProStates.js +16 -0
- package/build/constants/solarflow800ProStates.js.map +2 -2
- package/build/models/ISolarFlowMqttProperties.js.map +2 -2
- package/build/services/jobSchedule.js +2 -1
- package/build/services/jobSchedule.js.map +2 -2
- package/build/services/mqttService.js +75 -31
- package/build/services/mqttService.js.map +2 -2
- package/io-package.json +27 -27
- package/package.json +1 -1
|
@@ -83,6 +83,22 @@ const solarflow800ProStates = import_sharedStates.sharedStates.concat([
|
|
|
83
83
|
role: "value.power",
|
|
84
84
|
unit: "W"
|
|
85
85
|
},
|
|
86
|
+
{
|
|
87
|
+
title: "pvPower3",
|
|
88
|
+
nameDe: "Leistung PV 3",
|
|
89
|
+
nameEn: "solar power channel 3",
|
|
90
|
+
type: "number",
|
|
91
|
+
role: "value.power",
|
|
92
|
+
unit: "W"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
title: "pvPower4",
|
|
96
|
+
nameDe: "Leistung PV 4",
|
|
97
|
+
nameEn: "solar power channel 4",
|
|
98
|
+
type: "number",
|
|
99
|
+
role: "value.power",
|
|
100
|
+
unit: "W"
|
|
101
|
+
},
|
|
86
102
|
{
|
|
87
103
|
title: "acMode",
|
|
88
104
|
nameDe: "AC Modus",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/constants/solarflow800ProStates.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\nimport { sharedStates } from \"./sharedStates\";\n\nexport const solarflow800ProStates: ISolarflowState[] = sharedStates.concat([\n {\n title: \"hyperTmp\",\n nameDe: \"Temperatur des Solarflow 800\",\n nameEn: \"Temperature of Solarflow 800\",\n type: \"number\",\n role: \"value.temperature\",\n unit: \"\u00B0C\",\n },\n {\n title: \"inverseMaxPower\",\n nameDe: \"Maximal akzeptabler Eingang des PV-Mikrowechselrichters\",\n nameEn: \"highest acceptable input power\",\n type: \"number\",\n role: \"value.power\",\n unit: \"W\",\n },\n {\n title: \"pass\",\n nameDe: \"Bypass an/aus\",\n nameEn: \"Bypass on/off\",\n type: \"boolean\",\n role: \"value\",\n },\n {\n title: \"autoRecover\",\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n role: \"value\",\n },\n {\n title: \"passMode\",\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"string\",\n role: \"value\",\n },\n {\n title: \"pvBrand\",\n nameDe: \"Wechselrichter Hersteller\",\n nameEn: \"brand of inverter\",\n type: \"string\",\n role: \"value\",\n },\n {\n title: \"outputHomePower\",\n nameDe: \"Ausgangsleistung\",\n nameEn: \"output power\",\n type: \"number\",\n role: \"value.power\",\n unit: \"W\",\n },\n {\n title: \"outputLimit\",\n nameDe: \"Limit der Ausgangsleistung\",\n nameEn: \"limit of output power\",\n type: \"number\",\n role: \"value.power\",\n unit: \"W\",\n },\n {\n title: \"acMode\",\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n role: \"value\",\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n]);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,0BAA6B;AAEtB,MAAM,wBAA2C,iCAAa,OAAO;AAAA,EAC1E;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AACF,CAAC;",
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\nimport { sharedStates } from \"./sharedStates\";\n\nexport const solarflow800ProStates: ISolarflowState[] = sharedStates.concat([\n {\n title: \"hyperTmp\",\n nameDe: \"Temperatur des Solarflow 800\",\n nameEn: \"Temperature of Solarflow 800\",\n type: \"number\",\n role: \"value.temperature\",\n unit: \"\u00B0C\",\n },\n {\n title: \"inverseMaxPower\",\n nameDe: \"Maximal akzeptabler Eingang des PV-Mikrowechselrichters\",\n nameEn: \"highest acceptable input power\",\n type: \"number\",\n role: \"value.power\",\n unit: \"W\",\n },\n {\n title: \"pass\",\n nameDe: \"Bypass an/aus\",\n nameEn: \"Bypass on/off\",\n type: \"boolean\",\n role: \"value\",\n },\n {\n title: \"autoRecover\",\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n role: \"value\",\n },\n {\n title: \"passMode\",\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"string\",\n role: \"value\",\n },\n {\n title: \"pvBrand\",\n nameDe: \"Wechselrichter Hersteller\",\n nameEn: \"brand of inverter\",\n type: \"string\",\n role: \"value\",\n },\n {\n title: \"outputHomePower\",\n nameDe: \"Ausgangsleistung\",\n nameEn: \"output power\",\n type: \"number\",\n role: \"value.power\",\n unit: \"W\",\n },\n {\n title: \"outputLimit\",\n nameDe: \"Limit der Ausgangsleistung\",\n nameEn: \"limit of output power\",\n type: \"number\",\n role: \"value.power\",\n unit: \"W\",\n },\n {\n title: \"pvPower3\",\n nameDe: \"Leistung PV 3\",\n nameEn: \"solar power channel 3\",\n type: \"number\",\n role: \"value.power\",\n unit: \"W\",\n },\n {\n title: \"pvPower4\",\n nameDe: \"Leistung PV 4\",\n nameEn: \"solar power channel 4\",\n type: \"number\",\n role: \"value.power\",\n unit: \"W\",\n },\n {\n title: \"acMode\",\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n role: \"value\",\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,0BAA6B;AAEtB,MAAM,wBAA2C,iCAAa,OAAO;AAAA,EAC1E;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AACF,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/models/ISolarFlowMqttProperties.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\nimport { IPackData } from \"./IPackData\";\r\n\r\nexport interface IMqttData {\r\n timestamp?: number;\r\n properties?: ISolarFlowMqttProperties;\r\n packData?: IPackData[];\r\n power?: number;\r\n}\r\n\r\nexport interface ISolarFlowMqttProperties {\r\n electricLevel?: number;\r\n packData?: IPackData[];\r\n packState?: number;\r\n pass?: number;\r\n passMode?: number;\r\n autoRecover?: number;\r\n outputHomePower?: number;\r\n outputLimit?: number;\r\n buzzerSwitch?: number;\r\n outputPackPower?: number;\r\n packInputPower?: number;\r\n solarInputPower?: number;\r\n pvPower1?: number;\r\n pvPower2?: number;\r\n solarPower1?: number;\r\n solarPower2?: number;\r\n remainOutTime?: number;\r\n remainInputTime?: number;\r\n socSet?: number;\r\n minSoc?: number;\r\n pvBrand?: number;\r\n inverseMaxPower?: number;\r\n wifiState?: number;\r\n hubState?: number;\r\n sn?: string;\r\n inputLimit?: number;\r\n gridInputPower?: number;\r\n acOutputPower?: number;\r\n acSwitch?: number;\r\n dcSwitch?: number;\r\n dcOutputPower?: number;\r\n packNum?: number;\r\n gridPower?: number;\r\n energyPower?: number;\r\n batteryElectric?: number;\r\n acMode?: number;\r\n hyperTmp?: number;\r\n autoModel?: number;\r\n heatState?: number;\r\n // ambientLightNess\r\n // ambientLightColor\r\n // ambientLightMode\r\n // ambientSwitch\r\n // lowTemperature\r\n // solarInputPowerCycle\r\n // solarInputPowerCycle2\r\n // electricLevelCycle\r\n\r\n // autoHeat\r\n //\r\n // loraInvState\r\n // loraModuleState\r\n // invOutputPower\r\n // masterSoftVersion: 4112\r\n // inputMode\r\n // blueOta\r\n}\r\n\r\nexport const knownMqttProps = [\r\n \"electricLevel\",\r\n \"packData\",\r\n \"packState\",\r\n \"pass\",\r\n \"passMode\",\r\n \"autoRecover\",\r\n \"outputHomePower\",\r\n \"outputLimit\",\r\n \"buzzerSwitch\",\r\n \"outputPackPower\",\r\n \"packInputPower\",\r\n \"solarInputPower\",\r\n \"pvPower1\",\r\n \"pvPower2\",\r\n \"solarPower1\",\r\n \"solarPower2\",\r\n \"remainOutTime\",\r\n \"remainInputTime\",\r\n \"socSet\",\r\n \"minSoc\",\r\n \"pvBrand\",\r\n \"inverseMaxPower\",\r\n \"wifiState\",\r\n \"hubState\",\r\n \"sn\",\r\n \"inputLimit\",\r\n \"gridInputPower\",\r\n \"acOutputPower\",\r\n \"acSwitch\",\r\n \"dcSwitch\",\r\n \"autoModel\",\r\n \"dcOutputPower\",\r\n \"packNum\",\r\n \"gridPower\",\r\n \"energyPower\",\r\n \"batteryElectric\",\r\n \"acMode\",\r\n \"hyperTmp\",\r\n \"autoModel\",\r\n \"heatState\",\r\n];\r\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\nimport { IPackData } from \"./IPackData\";\r\n\r\nexport interface IMqttData {\r\n timestamp?: number;\r\n properties?: ISolarFlowMqttProperties;\r\n packData?: IPackData[];\r\n power?: number;\r\n}\r\n\r\nexport interface ISolarFlowMqttProperties {\r\n electricLevel?: number;\r\n packData?: IPackData[];\r\n packState?: number;\r\n pass?: number;\r\n passMode?: number;\r\n autoRecover?: number;\r\n outputHomePower?: number;\r\n outputLimit?: number;\r\n buzzerSwitch?: number;\r\n outputPackPower?: number;\r\n packInputPower?: number;\r\n solarInputPower?: number;\r\n pvPower1?: number;\r\n pvPower2?: number;\r\n solarPower1?: number;\r\n solarPower2?: number;\r\n solarPower3?: number;\r\n solarPower4?: number;\r\n remainOutTime?: number;\r\n remainInputTime?: number;\r\n socSet?: number;\r\n minSoc?: number;\r\n pvBrand?: number;\r\n inverseMaxPower?: number;\r\n wifiState?: number;\r\n hubState?: number;\r\n sn?: string;\r\n inputLimit?: number;\r\n gridInputPower?: number;\r\n acOutputPower?: number;\r\n acSwitch?: number;\r\n dcSwitch?: number;\r\n dcOutputPower?: number;\r\n packNum?: number;\r\n gridPower?: number;\r\n energyPower?: number;\r\n batteryElectric?: number;\r\n acMode?: number;\r\n hyperTmp?: number;\r\n autoModel?: number;\r\n heatState?: number;\r\n // ambientLightNess\r\n // ambientLightColor\r\n // ambientLightMode\r\n // ambientSwitch\r\n // lowTemperature\r\n // solarInputPowerCycle\r\n // solarInputPowerCycle2\r\n // electricLevelCycle\r\n\r\n // autoHeat\r\n //\r\n // loraInvState\r\n // loraModuleState\r\n // invOutputPower\r\n // masterSoftVersion: 4112\r\n // inputMode\r\n // blueOta\r\n}\r\n\r\nexport const knownMqttProps = [\r\n \"electricLevel\",\r\n \"packData\",\r\n \"packState\",\r\n \"pass\",\r\n \"passMode\",\r\n \"autoRecover\",\r\n \"outputHomePower\",\r\n \"outputLimit\",\r\n \"buzzerSwitch\",\r\n \"outputPackPower\",\r\n \"packInputPower\",\r\n \"solarInputPower\",\r\n \"pvPower1\",\r\n \"pvPower2\",\r\n \"solarPower1\",\r\n \"solarPower2\",\r\n \"remainOutTime\",\r\n \"remainInputTime\",\r\n \"socSet\",\r\n \"minSoc\",\r\n \"pvBrand\",\r\n \"inverseMaxPower\",\r\n \"wifiState\",\r\n \"hubState\",\r\n \"sn\",\r\n \"inputLimit\",\r\n \"gridInputPower\",\r\n \"acOutputPower\",\r\n \"acSwitch\",\r\n \"dcSwitch\",\r\n \"autoModel\",\r\n \"dcOutputPower\",\r\n \"packNum\",\r\n \"gridPower\",\r\n \"energyPower\",\r\n \"batteryElectric\",\r\n \"acMode\",\r\n \"hyperTmp\",\r\n \"autoModel\",\r\n \"heatState\",\r\n];\r\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuEO,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -100,7 +100,8 @@ const startCheckStatesAndConnectionJob = async (adapter) => {
|
|
|
100
100
|
"outputPackPower",
|
|
101
101
|
"gridInputPower",
|
|
102
102
|
"packInputPower",
|
|
103
|
-
"solarInputPower"
|
|
103
|
+
"solarInputPower",
|
|
104
|
+
"packPower"
|
|
104
105
|
];
|
|
105
106
|
let refreshAccessTokenNeeded = false;
|
|
106
107
|
adapter.log.debug(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/services/jobSchedule.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\nimport { scheduleJob } from \"node-schedule\";\r\nimport { ZendureSolarflow } from \"../main\";\r\nimport { ISolarFlowDeviceDetails } from \"../models/ISolarFlowDeviceDetails\";\r\nimport { calculateEnergy, resetTodaysValues } from \"./calculationService\";\r\n\r\nexport const startRefreshAccessTokenTimerJob = async (\r\n adapter: ZendureSolarflow\r\n): Promise<void> => {\r\n // Restart adapter every 3 hours\r\n adapter.refreshAccessTokenInterval = adapter.setInterval(\r\n async () => {\r\n adapter.log.info(\r\n `Refresh Access Token - Adapter will restart in 20 seconds!`\r\n );\r\n\r\n await adapter.delay(20 * 1000);\r\n adapter.restart();\r\n },\r\n 3 * 60 * 60 * 1000\r\n );\r\n};\r\n\r\nexport const startResetValuesJob = async (\r\n adapter: ZendureSolarflow\r\n): Promise<void> => {\r\n adapter.resetValuesJob = scheduleJob(\"5 0 0 * * *\", () => {\r\n // Reset Values\r\n resetTodaysValues(adapter);\r\n });\r\n};\r\n\r\nexport const startCalculationJob = async (\r\n adapter: ZendureSolarflow\r\n): Promise<void> => {\r\n adapter.calculationJob = scheduleJob(\"*/30 * * * * *\", () => {\r\n if (adapter.config.server == \"local\") {\r\n if (\r\n adapter.config.localDevice1ProductKey &&\r\n adapter.config.localDevice1DeviceKey\r\n ) {\r\n calculateEnergy(\r\n adapter,\r\n adapter.config.localDevice1ProductKey,\r\n adapter.config.localDevice1DeviceKey\r\n );\r\n }\r\n\r\n if (\r\n adapter.config.localDevice2ProductKey &&\r\n adapter.config.localDevice2DeviceKey\r\n ) {\r\n calculateEnergy(\r\n adapter,\r\n adapter.config.localDevice2ProductKey,\r\n adapter.config.localDevice2DeviceKey\r\n );\r\n }\r\n\r\n if (\r\n adapter.config.localDevice3ProductKey &&\r\n adapter.config.localDevice3DeviceKey\r\n ) {\r\n calculateEnergy(\r\n adapter,\r\n adapter.config.localDevice3ProductKey,\r\n adapter.config.localDevice3DeviceKey\r\n );\r\n }\r\n\r\n if (\r\n adapter.config.localDevice4ProductKey &&\r\n adapter.config.localDevice4DeviceKey\r\n ) {\r\n calculateEnergy(\r\n adapter,\r\n adapter.config.localDevice4ProductKey,\r\n adapter.config.localDevice4DeviceKey\r\n );\r\n }\r\n } else {\r\n adapter.deviceList.forEach((device) => {\r\n if (device.productKey != \"s3Xk4x\") {\r\n calculateEnergy(adapter, device.productKey, device.deviceKey);\r\n\r\n // Check if connected with ACE, then calculate also for ACE device\r\n if (device.packList && device.packList.length > 0) {\r\n device.packList.forEach(async (subDevice) => {\r\n if (subDevice.productName.toLocaleLowerCase() == \"ace 1500\") {\r\n calculateEnergy(\r\n adapter,\r\n subDevice.productKey,\r\n subDevice.deviceKey\r\n );\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n};\r\n\r\nexport const startCheckStatesAndConnectionJob = async (\r\n adapter: ZendureSolarflow\r\n): Promise<void> => {\r\n // Check for states that has no updates in the last 5 minutes and set them to 0\r\n const statesToReset: string[] = [\r\n \"outputHomePower\",\r\n \"outputPackPower\",\r\n \"gridInputPower\",\r\n \"packInputPower\",\r\n \"solarInputPower\",\r\n ];\r\n\r\n let refreshAccessTokenNeeded = false;\r\n\r\n adapter.log.debug(\r\n `[checkStatesJob] Starting check of states and connection!`\r\n );\r\n\r\n adapter.checkStatesJob = scheduleJob(\"*/5 * * * *\", async () => {\r\n adapter.deviceList.forEach(async (device: ISolarFlowDeviceDetails) => {\r\n if (refreshAccessTokenNeeded) {\r\n return;\r\n }\r\n\r\n const lastUpdate = await adapter?.getStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".lastUpdate\"\r\n );\r\n\r\n const wifiState = await adapter?.getStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".wifiState\"\r\n );\r\n\r\n const fiveMinutesAgo = (Date.now() / 1000 - 5 * 60) * 1000; // Five minutes ago\r\n const tenMinutesAgo = (Date.now() / 1000 - 10 * 60) * 1000; // Ten minutes ago\r\n\r\n if (\r\n lastUpdate &&\r\n lastUpdate.val &&\r\n Number(lastUpdate.val) < fiveMinutesAgo &&\r\n wifiState?.val == \"Connected\"\r\n ) {\r\n adapter.log.warn(\r\n `[checkStatesJob] Last update for deviceKey ${\r\n device.deviceKey\r\n } was at ${new Date(\r\n Number(lastUpdate)\r\n )}, device seems to be online - so maybe connection is broken - restart adapter in 20 seconds!`\r\n );\r\n\r\n await adapter.delay(20 * 1000);\r\n adapter.restart();\r\n\r\n // set marker, so we discontinue the forEach Loop because of reconnect!\r\n refreshAccessTokenNeeded = true;\r\n }\r\n\r\n if (\r\n lastUpdate &&\r\n lastUpdate.val &&\r\n Number(lastUpdate.val) < tenMinutesAgo &&\r\n !refreshAccessTokenNeeded\r\n ) {\r\n adapter.log.debug(\r\n `[checkStatesJob] Last update for deviceKey ${\r\n device.deviceKey\r\n } was at ${new Date(\r\n Number(lastUpdate)\r\n )}, checking for pseudo power values!`\r\n );\r\n // State was not updated in the last 10 minutes... set states to 0\r\n await statesToReset.forEach(async (stateName: string) => {\r\n await adapter?.setState(\r\n device.productKey + \".\" + device.deviceKey + \".\" + stateName,\r\n 0,\r\n true\r\n );\r\n });\r\n\r\n // set electricLevel from deviceList\r\n if (device.electricity) {\r\n await adapter?.setState(\r\n device.productKey + \".\" + device.deviceKey + \".electricLevel\",\r\n device.electricity,\r\n true\r\n );\r\n }\r\n }\r\n });\r\n });\r\n};\r\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,2BAA4B;AAG5B,gCAAmD;AAE5C,MAAM,kCAAkC,OAC7C,YACkB;AAElB,UAAQ,6BAA6B,QAAQ;AAAA,IAC3C,YAAY;AACV,cAAQ,IAAI;AAAA,QACV;AAAA,MACF;AAEA,YAAM,QAAQ,MAAM,KAAK,GAAI;AAC7B,cAAQ,QAAQ;AAAA,IAClB;AAAA,IACA,IAAI,KAAK,KAAK;AAAA,EAChB;AACF;AAEO,MAAM,sBAAsB,OACjC,YACkB;AAClB,UAAQ,qBAAiB,kCAAY,eAAe,MAAM;AAExD,qDAAkB,OAAO;AAAA,EAC3B,CAAC;AACH;AAEO,MAAM,sBAAsB,OACjC,YACkB;AAClB,UAAQ,qBAAiB,kCAAY,kBAAkB,MAAM;AAC3D,QAAI,QAAQ,OAAO,UAAU,SAAS;AACpC,UACE,QAAQ,OAAO,0BACf,QAAQ,OAAO,uBACf;AACA;AAAA,UACE;AAAA,UACA,QAAQ,OAAO;AAAA,UACf,QAAQ,OAAO;AAAA,QACjB;AAAA,MACF;AAEA,UACE,QAAQ,OAAO,0BACf,QAAQ,OAAO,uBACf;AACA;AAAA,UACE;AAAA,UACA,QAAQ,OAAO;AAAA,UACf,QAAQ,OAAO;AAAA,QACjB;AAAA,MACF;AAEA,UACE,QAAQ,OAAO,0BACf,QAAQ,OAAO,uBACf;AACA;AAAA,UACE;AAAA,UACA,QAAQ,OAAO;AAAA,UACf,QAAQ,OAAO;AAAA,QACjB;AAAA,MACF;AAEA,UACE,QAAQ,OAAO,0BACf,QAAQ,OAAO,uBACf;AACA;AAAA,UACE;AAAA,UACA,QAAQ,OAAO;AAAA,UACf,QAAQ,OAAO;AAAA,QACjB;AAAA,MACF;AAAA,IACF,OAAO;AACL,cAAQ,WAAW,QAAQ,CAAC,WAAW;AACrC,YAAI,OAAO,cAAc,UAAU;AACjC,yDAAgB,SAAS,OAAO,YAAY,OAAO,SAAS;AAG5D,cAAI,OAAO,YAAY,OAAO,SAAS,SAAS,GAAG;AACjD,mBAAO,SAAS,QAAQ,OAAO,cAAc;AAC3C,kBAAI,UAAU,YAAY,kBAAkB,KAAK,YAAY;AAC3D;AAAA,kBACE;AAAA,kBACA,UAAU;AAAA,kBACV,UAAU;AAAA,gBACZ;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEO,MAAM,mCAAmC,OAC9C,YACkB;AAElB,QAAM,gBAA0B;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,MAAI,2BAA2B;AAE/B,UAAQ,IAAI;AAAA,IACV;AAAA,EACF;AAEA,UAAQ,qBAAiB,kCAAY,eAAe,YAAY;AAC9D,YAAQ,WAAW,QAAQ,OAAO,WAAoC;AACpE,UAAI,0BAA0B;AAC5B;AAAA,MACF;AAEA,YAAM,aAAa,OAAM,mCAAS;AAAA,QAChC,OAAO,aAAa,MAAM,OAAO,YAAY;AAAA;AAG/C,YAAM,YAAY,OAAM,mCAAS;AAAA,QAC/B,OAAO,aAAa,MAAM,OAAO,YAAY;AAAA;AAG/C,YAAM,kBAAkB,KAAK,IAAI,IAAI,MAAO,IAAI,MAAM;AACtD,YAAM,iBAAiB,KAAK,IAAI,IAAI,MAAO,KAAK,MAAM;AAEtD,UACE,cACA,WAAW,OACX,OAAO,WAAW,GAAG,IAAI,mBACzB,uCAAW,QAAO,aAClB;AACA,gBAAQ,IAAI;AAAA,UACV,8CACE,OAAO,SACT,WAAW,IAAI;AAAA,YACb,OAAO,UAAU;AAAA,UACnB,CAAC;AAAA,QACH;AAEA,cAAM,QAAQ,MAAM,KAAK,GAAI;AAC7B,gBAAQ,QAAQ;AAGhB,mCAA2B;AAAA,MAC7B;AAEA,UACE,cACA,WAAW,OACX,OAAO,WAAW,GAAG,IAAI,iBACzB,CAAC,0BACD;AACA,gBAAQ,IAAI;AAAA,UACV,8CACE,OAAO,SACT,WAAW,IAAI;AAAA,YACb,OAAO,UAAU;AAAA,UACnB,CAAC;AAAA,QACH;AAEA,cAAM,cAAc,QAAQ,OAAO,cAAsB;AACvD,iBAAM,mCAAS;AAAA,YACb,OAAO,aAAa,MAAM,OAAO,YAAY,MAAM;AAAA,YACnD;AAAA,YACA;AAAA;AAAA,QAEJ,CAAC;AAGD,YAAI,OAAO,aAAa;AACtB,iBAAM,mCAAS;AAAA,YACb,OAAO,aAAa,MAAM,OAAO,YAAY;AAAA,YAC7C,OAAO;AAAA,YACP;AAAA;AAAA,QAEJ;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;",
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\nimport { scheduleJob } from \"node-schedule\";\r\nimport { ZendureSolarflow } from \"../main\";\r\nimport { ISolarFlowDeviceDetails } from \"../models/ISolarFlowDeviceDetails\";\r\nimport { calculateEnergy, resetTodaysValues } from \"./calculationService\";\r\n\r\nexport const startRefreshAccessTokenTimerJob = async (\r\n adapter: ZendureSolarflow\r\n): Promise<void> => {\r\n // Restart adapter every 3 hours\r\n adapter.refreshAccessTokenInterval = adapter.setInterval(\r\n async () => {\r\n adapter.log.info(\r\n `Refresh Access Token - Adapter will restart in 20 seconds!`\r\n );\r\n\r\n await adapter.delay(20 * 1000);\r\n adapter.restart();\r\n },\r\n 3 * 60 * 60 * 1000\r\n );\r\n};\r\n\r\nexport const startResetValuesJob = async (\r\n adapter: ZendureSolarflow\r\n): Promise<void> => {\r\n adapter.resetValuesJob = scheduleJob(\"5 0 0 * * *\", () => {\r\n // Reset Values\r\n resetTodaysValues(adapter);\r\n });\r\n};\r\n\r\nexport const startCalculationJob = async (\r\n adapter: ZendureSolarflow\r\n): Promise<void> => {\r\n adapter.calculationJob = scheduleJob(\"*/30 * * * * *\", () => {\r\n if (adapter.config.server == \"local\") {\r\n if (\r\n adapter.config.localDevice1ProductKey &&\r\n adapter.config.localDevice1DeviceKey\r\n ) {\r\n calculateEnergy(\r\n adapter,\r\n adapter.config.localDevice1ProductKey,\r\n adapter.config.localDevice1DeviceKey\r\n );\r\n }\r\n\r\n if (\r\n adapter.config.localDevice2ProductKey &&\r\n adapter.config.localDevice2DeviceKey\r\n ) {\r\n calculateEnergy(\r\n adapter,\r\n adapter.config.localDevice2ProductKey,\r\n adapter.config.localDevice2DeviceKey\r\n );\r\n }\r\n\r\n if (\r\n adapter.config.localDevice3ProductKey &&\r\n adapter.config.localDevice3DeviceKey\r\n ) {\r\n calculateEnergy(\r\n adapter,\r\n adapter.config.localDevice3ProductKey,\r\n adapter.config.localDevice3DeviceKey\r\n );\r\n }\r\n\r\n if (\r\n adapter.config.localDevice4ProductKey &&\r\n adapter.config.localDevice4DeviceKey\r\n ) {\r\n calculateEnergy(\r\n adapter,\r\n adapter.config.localDevice4ProductKey,\r\n adapter.config.localDevice4DeviceKey\r\n );\r\n }\r\n } else {\r\n adapter.deviceList.forEach((device) => {\r\n if (device.productKey != \"s3Xk4x\") {\r\n calculateEnergy(adapter, device.productKey, device.deviceKey);\r\n\r\n // Check if connected with ACE, then calculate also for ACE device\r\n if (device.packList && device.packList.length > 0) {\r\n device.packList.forEach(async (subDevice) => {\r\n if (subDevice.productName.toLocaleLowerCase() == \"ace 1500\") {\r\n calculateEnergy(\r\n adapter,\r\n subDevice.productKey,\r\n subDevice.deviceKey\r\n );\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n};\r\n\r\nexport const startCheckStatesAndConnectionJob = async (\r\n adapter: ZendureSolarflow\r\n): Promise<void> => {\r\n // Check for states that has no updates in the last 5 minutes and set them to 0\r\n const statesToReset: string[] = [\r\n \"outputHomePower\",\r\n \"outputPackPower\",\r\n \"gridInputPower\",\r\n \"packInputPower\",\r\n \"solarInputPower\",\r\n \"packPower\",\r\n ];\r\n\r\n let refreshAccessTokenNeeded = false;\r\n\r\n adapter.log.debug(\r\n `[checkStatesJob] Starting check of states and connection!`\r\n );\r\n\r\n adapter.checkStatesJob = scheduleJob(\"*/5 * * * *\", async () => {\r\n adapter.deviceList.forEach(async (device: ISolarFlowDeviceDetails) => {\r\n if (refreshAccessTokenNeeded) {\r\n return;\r\n }\r\n\r\n const lastUpdate = await adapter?.getStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".lastUpdate\"\r\n );\r\n\r\n const wifiState = await adapter?.getStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".wifiState\"\r\n );\r\n\r\n const fiveMinutesAgo = (Date.now() / 1000 - 5 * 60) * 1000; // Five minutes ago\r\n const tenMinutesAgo = (Date.now() / 1000 - 10 * 60) * 1000; // Ten minutes ago\r\n\r\n if (\r\n lastUpdate &&\r\n lastUpdate.val &&\r\n Number(lastUpdate.val) < fiveMinutesAgo &&\r\n wifiState?.val == \"Connected\"\r\n ) {\r\n adapter.log.warn(\r\n `[checkStatesJob] Last update for deviceKey ${\r\n device.deviceKey\r\n } was at ${new Date(\r\n Number(lastUpdate)\r\n )}, device seems to be online - so maybe connection is broken - restart adapter in 20 seconds!`\r\n );\r\n\r\n await adapter.delay(20 * 1000);\r\n adapter.restart();\r\n\r\n // set marker, so we discontinue the forEach Loop because of reconnect!\r\n refreshAccessTokenNeeded = true;\r\n }\r\n\r\n if (\r\n lastUpdate &&\r\n lastUpdate.val &&\r\n Number(lastUpdate.val) < tenMinutesAgo &&\r\n !refreshAccessTokenNeeded\r\n ) {\r\n adapter.log.debug(\r\n `[checkStatesJob] Last update for deviceKey ${\r\n device.deviceKey\r\n } was at ${new Date(\r\n Number(lastUpdate)\r\n )}, checking for pseudo power values!`\r\n );\r\n // State was not updated in the last 10 minutes... set states to 0\r\n await statesToReset.forEach(async (stateName: string) => {\r\n await adapter?.setState(\r\n device.productKey + \".\" + device.deviceKey + \".\" + stateName,\r\n 0,\r\n true\r\n );\r\n });\r\n\r\n // set electricLevel from deviceList\r\n if (device.electricity) {\r\n await adapter?.setState(\r\n device.productKey + \".\" + device.deviceKey + \".electricLevel\",\r\n device.electricity,\r\n true\r\n );\r\n }\r\n }\r\n });\r\n });\r\n};\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -288,7 +288,7 @@ const addOrUpdatePackData = async (productKey, deviceKey, packData, isSolarFlow)
|
|
|
288
288
|
}
|
|
289
289
|
};
|
|
290
290
|
const onMessage = async (topic, message) => {
|
|
291
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa;
|
|
291
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya;
|
|
292
292
|
if (adapter) {
|
|
293
293
|
if (topic.toLowerCase().includes("loginOut/force")) {
|
|
294
294
|
}
|
|
@@ -501,10 +501,23 @@ const onMessage = async (topic, message) => {
|
|
|
501
501
|
"packPower",
|
|
502
502
|
obj.properties.outputPackPower
|
|
503
503
|
);
|
|
504
|
+
} else if (((_L = obj.properties) == null ? void 0 : _L.outputPackPower) == 0) {
|
|
505
|
+
const packInputPower = await (adapter == null ? void 0 : adapter.getStateAsync(
|
|
506
|
+
productKey + "." + deviceKey + ".packInputPower"
|
|
507
|
+
));
|
|
508
|
+
if ((packInputPower == null ? void 0 : packInputPower.val) == 0) {
|
|
509
|
+
(0, import_adapterService.updateSolarFlowState)(
|
|
510
|
+
adapter,
|
|
511
|
+
productKey,
|
|
512
|
+
deviceKey,
|
|
513
|
+
"packPower",
|
|
514
|
+
-Math.abs(obj.properties.outputPackPower)
|
|
515
|
+
);
|
|
516
|
+
}
|
|
504
517
|
}
|
|
505
518
|
(0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "packInputPower", 0);
|
|
506
519
|
}
|
|
507
|
-
if (((
|
|
520
|
+
if (((_M = obj.properties) == null ? void 0 : _M.packInputPower) != null && ((_N = obj.properties) == null ? void 0 : _N.packInputPower) != void 0) {
|
|
508
521
|
(0, import_adapterService.updateSolarFlowState)(
|
|
509
522
|
adapter,
|
|
510
523
|
productKey,
|
|
@@ -512,7 +525,7 @@ const onMessage = async (topic, message) => {
|
|
|
512
525
|
"packInputPower",
|
|
513
526
|
obj.properties.packInputPower
|
|
514
527
|
);
|
|
515
|
-
if (((
|
|
528
|
+
if (((_O = obj.properties) == null ? void 0 : _O.packInputPower) > 0) {
|
|
516
529
|
(0, import_adapterService.updateSolarFlowState)(
|
|
517
530
|
adapter,
|
|
518
531
|
productKey,
|
|
@@ -520,6 +533,19 @@ const onMessage = async (topic, message) => {
|
|
|
520
533
|
"packPower",
|
|
521
534
|
-Math.abs(obj.properties.packInputPower)
|
|
522
535
|
);
|
|
536
|
+
} else if (((_P = obj.properties) == null ? void 0 : _P.packInputPower) == 0) {
|
|
537
|
+
const outputPackPower = await (adapter == null ? void 0 : adapter.getStateAsync(
|
|
538
|
+
productKey + "." + deviceKey + ".outputPackPower"
|
|
539
|
+
));
|
|
540
|
+
if ((outputPackPower == null ? void 0 : outputPackPower.val) == 0) {
|
|
541
|
+
(0, import_adapterService.updateSolarFlowState)(
|
|
542
|
+
adapter,
|
|
543
|
+
productKey,
|
|
544
|
+
deviceKey,
|
|
545
|
+
"packPower",
|
|
546
|
+
-Math.abs(obj.properties.packInputPower)
|
|
547
|
+
);
|
|
548
|
+
}
|
|
523
549
|
}
|
|
524
550
|
(0, import_adapterService.updateSolarFlowState)(
|
|
525
551
|
adapter,
|
|
@@ -529,7 +555,7 @@ const onMessage = async (topic, message) => {
|
|
|
529
555
|
0
|
|
530
556
|
);
|
|
531
557
|
}
|
|
532
|
-
if (((
|
|
558
|
+
if (((_Q = obj.properties) == null ? void 0 : _Q.solarInputPower) != null && ((_R = obj.properties) == null ? void 0 : _R.solarInputPower) != void 0) {
|
|
533
559
|
(0, import_adapterService.updateSolarFlowState)(
|
|
534
560
|
adapter,
|
|
535
561
|
productKey,
|
|
@@ -538,7 +564,7 @@ const onMessage = async (topic, message) => {
|
|
|
538
564
|
obj.properties.solarInputPower
|
|
539
565
|
);
|
|
540
566
|
}
|
|
541
|
-
if (((
|
|
567
|
+
if (((_S = obj.properties) == null ? void 0 : _S.pvPower1) != null && ((_T = obj.properties) == null ? void 0 : _T.pvPower1) != void 0) {
|
|
542
568
|
(0, import_adapterService.updateSolarFlowState)(
|
|
543
569
|
adapter,
|
|
544
570
|
productKey,
|
|
@@ -548,7 +574,7 @@ const onMessage = async (topic, message) => {
|
|
|
548
574
|
obj.properties.pvPower1
|
|
549
575
|
);
|
|
550
576
|
}
|
|
551
|
-
if (((
|
|
577
|
+
if (((_U = obj.properties) == null ? void 0 : _U.pvPower2) != null && ((_V = obj.properties) == null ? void 0 : _V.pvPower2) != void 0) {
|
|
552
578
|
(0, import_adapterService.updateSolarFlowState)(
|
|
553
579
|
adapter,
|
|
554
580
|
productKey,
|
|
@@ -558,7 +584,7 @@ const onMessage = async (topic, message) => {
|
|
|
558
584
|
obj.properties.pvPower2
|
|
559
585
|
);
|
|
560
586
|
}
|
|
561
|
-
if (((
|
|
587
|
+
if (((_W = obj.properties) == null ? void 0 : _W.solarPower1) != null && ((_X = obj.properties) == null ? void 0 : _X.solarPower1) != void 0) {
|
|
562
588
|
(0, import_adapterService.updateSolarFlowState)(
|
|
563
589
|
adapter,
|
|
564
590
|
productKey,
|
|
@@ -567,7 +593,7 @@ const onMessage = async (topic, message) => {
|
|
|
567
593
|
obj.properties.solarPower1
|
|
568
594
|
);
|
|
569
595
|
}
|
|
570
|
-
if (((
|
|
596
|
+
if (((_Y = obj.properties) == null ? void 0 : _Y.solarPower2) != null && ((_Z = obj.properties) == null ? void 0 : _Z.solarPower2) != void 0) {
|
|
571
597
|
(0, import_adapterService.updateSolarFlowState)(
|
|
572
598
|
adapter,
|
|
573
599
|
productKey,
|
|
@@ -576,7 +602,25 @@ const onMessage = async (topic, message) => {
|
|
|
576
602
|
obj.properties.solarPower2
|
|
577
603
|
);
|
|
578
604
|
}
|
|
579
|
-
if (((
|
|
605
|
+
if (((__ = obj.properties) == null ? void 0 : __.solarPower3) != null && ((_$ = obj.properties) == null ? void 0 : _$.solarPower3) != void 0) {
|
|
606
|
+
(0, import_adapterService.updateSolarFlowState)(
|
|
607
|
+
adapter,
|
|
608
|
+
productKey,
|
|
609
|
+
deviceKey,
|
|
610
|
+
"pvPower3",
|
|
611
|
+
obj.properties.solarPower3
|
|
612
|
+
);
|
|
613
|
+
}
|
|
614
|
+
if (((_aa = obj.properties) == null ? void 0 : _aa.solarPower4) != null && ((_ba = obj.properties) == null ? void 0 : _ba.solarPower4) != void 0) {
|
|
615
|
+
(0, import_adapterService.updateSolarFlowState)(
|
|
616
|
+
adapter,
|
|
617
|
+
productKey,
|
|
618
|
+
deviceKey,
|
|
619
|
+
"pvPower4",
|
|
620
|
+
obj.properties.solarPower4
|
|
621
|
+
);
|
|
622
|
+
}
|
|
623
|
+
if (((_ca = obj.properties) == null ? void 0 : _ca.remainOutTime) != null && ((_da = obj.properties) == null ? void 0 : _da.remainOutTime) != void 0) {
|
|
580
624
|
(0, import_adapterService.updateSolarFlowState)(
|
|
581
625
|
adapter,
|
|
582
626
|
productKey,
|
|
@@ -585,7 +629,7 @@ const onMessage = async (topic, message) => {
|
|
|
585
629
|
obj.properties.remainOutTime
|
|
586
630
|
);
|
|
587
631
|
}
|
|
588
|
-
if (((
|
|
632
|
+
if (((_ea = obj.properties) == null ? void 0 : _ea.remainInputTime) != null && ((_fa = obj.properties) == null ? void 0 : _fa.remainInputTime) != void 0) {
|
|
589
633
|
(0, import_adapterService.updateSolarFlowState)(
|
|
590
634
|
adapter,
|
|
591
635
|
productKey,
|
|
@@ -594,7 +638,7 @@ const onMessage = async (topic, message) => {
|
|
|
594
638
|
obj.properties.remainInputTime
|
|
595
639
|
);
|
|
596
640
|
}
|
|
597
|
-
if (((
|
|
641
|
+
if (((_ga = obj.properties) == null ? void 0 : _ga.socSet) != null && ((_ha = obj.properties) == null ? void 0 : _ha.socSet) != void 0) {
|
|
598
642
|
(0, import_adapterService.updateSolarFlowState)(
|
|
599
643
|
adapter,
|
|
600
644
|
productKey,
|
|
@@ -610,7 +654,7 @@ const onMessage = async (topic, message) => {
|
|
|
610
654
|
Number(obj.properties.socSet) / 10
|
|
611
655
|
);
|
|
612
656
|
}
|
|
613
|
-
if (((
|
|
657
|
+
if (((_ia = obj.properties) == null ? void 0 : _ia.minSoc) != null && ((_ja = obj.properties) == null ? void 0 : _ja.minSoc) != void 0) {
|
|
614
658
|
(0, import_adapterService.updateSolarFlowState)(
|
|
615
659
|
adapter,
|
|
616
660
|
productKey,
|
|
@@ -626,7 +670,7 @@ const onMessage = async (topic, message) => {
|
|
|
626
670
|
Number(obj.properties.minSoc) / 10
|
|
627
671
|
);
|
|
628
672
|
}
|
|
629
|
-
if (((
|
|
673
|
+
if (((_ka = obj.properties) == null ? void 0 : _ka.inputLimit) != null && ((_la = obj.properties) == null ? void 0 : _la.inputLimit) != void 0) {
|
|
630
674
|
(0, import_adapterService.updateSolarFlowState)(
|
|
631
675
|
adapter,
|
|
632
676
|
productKey,
|
|
@@ -634,7 +678,7 @@ const onMessage = async (topic, message) => {
|
|
|
634
678
|
"inputLimit",
|
|
635
679
|
obj.properties.inputLimit
|
|
636
680
|
);
|
|
637
|
-
if (((
|
|
681
|
+
if (((_ma = productName == null ? void 0 : productName.val) == null ? void 0 : _ma.toString().toLowerCase().includes("solarflow")) || ((_na = productName == null ? void 0 : productName.val) == null ? void 0 : _na.toString().toLowerCase().includes("ace")) || ((_oa = productName == null ? void 0 : productName.val) == null ? void 0 : _oa.toString().toLowerCase().includes("hyper"))) {
|
|
638
682
|
(0, import_adapterService.updateSolarFlowControlState)(
|
|
639
683
|
adapter,
|
|
640
684
|
productKey,
|
|
@@ -644,7 +688,7 @@ const onMessage = async (topic, message) => {
|
|
|
644
688
|
);
|
|
645
689
|
}
|
|
646
690
|
}
|
|
647
|
-
if (((
|
|
691
|
+
if (((_pa = obj.properties) == null ? void 0 : _pa.gridInputPower) != null && ((_qa = obj.properties) == null ? void 0 : _qa.gridInputPower) != void 0) {
|
|
648
692
|
(0, import_adapterService.updateSolarFlowState)(
|
|
649
693
|
adapter,
|
|
650
694
|
productKey,
|
|
@@ -653,7 +697,7 @@ const onMessage = async (topic, message) => {
|
|
|
653
697
|
obj.properties.gridInputPower
|
|
654
698
|
);
|
|
655
699
|
}
|
|
656
|
-
if (((
|
|
700
|
+
if (((_ra = obj.properties) == null ? void 0 : _ra.acMode) != null && ((_sa = obj.properties) == null ? void 0 : _sa.acMode) != void 0) {
|
|
657
701
|
(0, import_adapterService.updateSolarFlowState)(
|
|
658
702
|
adapter,
|
|
659
703
|
productKey,
|
|
@@ -669,7 +713,7 @@ const onMessage = async (topic, message) => {
|
|
|
669
713
|
obj.properties.acMode
|
|
670
714
|
);
|
|
671
715
|
}
|
|
672
|
-
if (((
|
|
716
|
+
if (((_ta = obj.properties) == null ? void 0 : _ta.hyperTmp) != null && ((_ua = obj.properties) == null ? void 0 : _ua.hyperTmp) != void 0) {
|
|
673
717
|
(0, import_adapterService.updateSolarFlowState)(
|
|
674
718
|
adapter,
|
|
675
719
|
productKey,
|
|
@@ -678,7 +722,7 @@ const onMessage = async (topic, message) => {
|
|
|
678
722
|
obj.properties.hyperTmp / 10 - 273.15
|
|
679
723
|
);
|
|
680
724
|
}
|
|
681
|
-
if (((
|
|
725
|
+
if (((_va = obj.properties) == null ? void 0 : _va.acOutputPower) != null && ((_wa = obj.properties) == null ? void 0 : _wa.acOutputPower) != void 0) {
|
|
682
726
|
(0, import_adapterService.updateSolarFlowState)(
|
|
683
727
|
adapter,
|
|
684
728
|
productKey,
|
|
@@ -687,7 +731,7 @@ const onMessage = async (topic, message) => {
|
|
|
687
731
|
obj.properties.acOutputPower
|
|
688
732
|
);
|
|
689
733
|
}
|
|
690
|
-
if (((
|
|
734
|
+
if (((_xa = obj.properties) == null ? void 0 : _xa.gridPower) != null && ((_ya = obj.properties) == null ? void 0 : _ya.gridPower) != void 0) {
|
|
691
735
|
(0, import_adapterService.updateSolarFlowState)(
|
|
692
736
|
adapter,
|
|
693
737
|
productKey,
|
|
@@ -696,8 +740,8 @@ const onMessage = async (topic, message) => {
|
|
|
696
740
|
obj.properties.gridPower
|
|
697
741
|
);
|
|
698
742
|
}
|
|
699
|
-
if (((
|
|
700
|
-
const value = ((
|
|
743
|
+
if (((_za = obj.properties) == null ? void 0 : _za.acSwitch) != null && ((_Aa = obj.properties) == null ? void 0 : _Aa.acSwitch) != void 0) {
|
|
744
|
+
const value = ((_Ba = obj.properties) == null ? void 0 : _Ba.acSwitch) == 0 ? false : true;
|
|
701
745
|
(0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "acSwitch", value);
|
|
702
746
|
(0, import_adapterService.updateSolarFlowControlState)(
|
|
703
747
|
adapter,
|
|
@@ -707,8 +751,8 @@ const onMessage = async (topic, message) => {
|
|
|
707
751
|
value
|
|
708
752
|
);
|
|
709
753
|
}
|
|
710
|
-
if (((
|
|
711
|
-
const value = ((
|
|
754
|
+
if (((_Ca = obj.properties) == null ? void 0 : _Ca.dcSwitch) != null && ((_Da = obj.properties) == null ? void 0 : _Da.dcSwitch) != void 0) {
|
|
755
|
+
const value = ((_Ea = obj.properties) == null ? void 0 : _Ea.dcSwitch) == 0 ? false : true;
|
|
712
756
|
(0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "dcSwitch", value);
|
|
713
757
|
(0, import_adapterService.updateSolarFlowControlState)(
|
|
714
758
|
adapter,
|
|
@@ -718,7 +762,7 @@ const onMessage = async (topic, message) => {
|
|
|
718
762
|
value
|
|
719
763
|
);
|
|
720
764
|
}
|
|
721
|
-
if (((
|
|
765
|
+
if (((_Fa = obj.properties) == null ? void 0 : _Fa.dcOutputPower) != null && ((_Ga = obj.properties) == null ? void 0 : _Ga.dcOutputPower) != void 0) {
|
|
722
766
|
(0, import_adapterService.updateSolarFlowState)(
|
|
723
767
|
adapter,
|
|
724
768
|
productKey,
|
|
@@ -727,11 +771,11 @@ const onMessage = async (topic, message) => {
|
|
|
727
771
|
obj.properties.dcOutputPower
|
|
728
772
|
);
|
|
729
773
|
}
|
|
730
|
-
if (((
|
|
731
|
-
const value = ((
|
|
774
|
+
if (((_Ha = obj.properties) == null ? void 0 : _Ha.pvBrand) != null && ((_Ia = obj.properties) == null ? void 0 : _Ia.pvBrand) != void 0) {
|
|
775
|
+
const value = ((_Ja = obj.properties) == null ? void 0 : _Ja.pvBrand) == 0 ? "Others" : ((_Ka = obj.properties) == null ? void 0 : _Ka.pvBrand) == 1 ? "Hoymiles" : ((_La = obj.properties) == null ? void 0 : _La.pvBrand) == 2 ? "Enphase" : ((_Ma = obj.properties) == null ? void 0 : _Ma.pvBrand) == 3 ? "APSystems" : ((_Na = obj.properties) == null ? void 0 : _Na.pvBrand) == 4 ? "Anker" : ((_Oa = obj.properties) == null ? void 0 : _Oa.pvBrand) == 5 ? "Deye" : ((_Pa = obj.properties) == null ? void 0 : _Pa.pvBrand) == 6 ? "Bosswerk" : "Unknown";
|
|
732
776
|
(0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "pvBrand", value);
|
|
733
777
|
}
|
|
734
|
-
if (((
|
|
778
|
+
if (((_Qa = obj.properties) == null ? void 0 : _Qa.inverseMaxPower) != null && ((_Ra = obj.properties) == null ? void 0 : _Ra.inverseMaxPower) != void 0) {
|
|
735
779
|
(0, import_adapterService.updateSolarFlowState)(
|
|
736
780
|
adapter,
|
|
737
781
|
productKey,
|
|
@@ -740,7 +784,7 @@ const onMessage = async (topic, message) => {
|
|
|
740
784
|
obj.properties.inverseMaxPower
|
|
741
785
|
);
|
|
742
786
|
}
|
|
743
|
-
if (((
|
|
787
|
+
if (((_Sa = obj.properties) == null ? void 0 : _Sa.wifiState) != null && ((_Ta = obj.properties) == null ? void 0 : _Ta.wifiState) != void 0) {
|
|
744
788
|
(0, import_adapterService.updateSolarFlowState)(
|
|
745
789
|
adapter,
|
|
746
790
|
productKey,
|
|
@@ -749,7 +793,7 @@ const onMessage = async (topic, message) => {
|
|
|
749
793
|
obj.properties.wifiState == 1 ? "Connected" : "Disconnected"
|
|
750
794
|
);
|
|
751
795
|
}
|
|
752
|
-
if (((
|
|
796
|
+
if (((_Ua = obj.properties) == null ? void 0 : _Ua.packNum) != null && ((_Va = obj.properties) == null ? void 0 : _Va.packNum) != void 0) {
|
|
753
797
|
(0, import_adapterService.updateSolarFlowState)(
|
|
754
798
|
adapter,
|
|
755
799
|
productKey,
|
|
@@ -758,7 +802,7 @@ const onMessage = async (topic, message) => {
|
|
|
758
802
|
obj.properties.packNum
|
|
759
803
|
);
|
|
760
804
|
}
|
|
761
|
-
if (((
|
|
805
|
+
if (((_Wa = obj.properties) == null ? void 0 : _Wa.hubState) != null && ((_Xa = obj.properties) == null ? void 0 : _Xa.hubState) != void 0) {
|
|
762
806
|
(0, import_adapterService.updateSolarFlowState)(
|
|
763
807
|
adapter,
|
|
764
808
|
productKey,
|
|
@@ -778,7 +822,7 @@ const onMessage = async (topic, message) => {
|
|
|
778
822
|
addOrUpdatePackData(productKey, deviceKey, obj.packData, isSolarFlow);
|
|
779
823
|
}
|
|
780
824
|
if (obj.properties && adapter.log.level == "debug") {
|
|
781
|
-
const _productName = (
|
|
825
|
+
const _productName = (_Ya = productName == null ? void 0 : productName.val) == null ? void 0 : _Ya.toString();
|
|
782
826
|
if (_productName) {
|
|
783
827
|
const states = (0, import_createSolarFlowStates.getStateDefinition)(_productName);
|
|
784
828
|
let found = false;
|