iobroker.zendure-solarflow 0.1.0-alpha.2 → 1.0.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 +13 -0
- package/admin/build/index.css.map +1 -1
- package/admin/build/index.js +52 -29
- package/admin/build/index.js.map +4 -4
- package/build/main.js +9 -7
- package/build/main.js.map +2 -2
- package/build/services/adapterService.js +95 -50
- package/build/services/adapterService.js.map +2 -2
- package/build/services/mqttService.js +5 -5
- package/build/services/mqttService.js.map +2 -2
- package/build/services/webService.js +8 -7
- package/build/services/webService.js.map +3 -3
- package/io-package.json +40 -4
- package/package.json +8 -8
- package/admin/.watch/index.css +0 -270
- package/admin/.watch/index.js +0 -59658
package/build/main.js
CHANGED
|
@@ -41,7 +41,7 @@ class ZendureSolarflow extends utils.Adapter {
|
|
|
41
41
|
this.accessToken = void 0;
|
|
42
42
|
this.deviceList = [];
|
|
43
43
|
this.paths = void 0;
|
|
44
|
-
this.
|
|
44
|
+
this.interval = void 0;
|
|
45
45
|
this.on("ready", this.onReady.bind(this));
|
|
46
46
|
this.on("stateChange", this.onStateChange.bind(this));
|
|
47
47
|
this.on("unload", this.onUnload.bind(this));
|
|
@@ -63,7 +63,9 @@ class ZendureSolarflow extends utils.Adapter {
|
|
|
63
63
|
(_a2 = this.log) == null ? void 0 : _a2.error("Retrieving device failed!");
|
|
64
64
|
});
|
|
65
65
|
}).catch((error) => {
|
|
66
|
-
this.log.error(
|
|
66
|
+
this.log.error(
|
|
67
|
+
"Logon error at Zendure cloud service! Error: " + error.toString()
|
|
68
|
+
);
|
|
67
69
|
});
|
|
68
70
|
} else {
|
|
69
71
|
this.log.error("No Login Information provided!");
|
|
@@ -71,8 +73,8 @@ class ZendureSolarflow extends utils.Adapter {
|
|
|
71
73
|
}
|
|
72
74
|
onUnload(callback) {
|
|
73
75
|
try {
|
|
74
|
-
if (this.
|
|
75
|
-
this.
|
|
76
|
+
if (this.interval) {
|
|
77
|
+
this.clearInterval(this.interval);
|
|
76
78
|
}
|
|
77
79
|
callback();
|
|
78
80
|
} catch (e) {
|
|
@@ -80,8 +82,8 @@ class ZendureSolarflow extends utils.Adapter {
|
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
onStateChange(id, state) {
|
|
83
|
-
if (state) {
|
|
84
|
-
this.log.
|
|
85
|
+
if (state && !state.ack) {
|
|
86
|
+
this.log.debug(`state ${id} changed: ${state.val} (ack = ${state.ack})`);
|
|
85
87
|
if (id.includes("setOutputLimit") && state.val != void 0 && state.val != null) {
|
|
86
88
|
const splitted = id.split(".");
|
|
87
89
|
const productKey = splitted[2];
|
|
@@ -89,7 +91,7 @@ class ZendureSolarflow extends utils.Adapter {
|
|
|
89
91
|
(0, import_mqttService.setOutputLimit)(this, productKey, deviceKey, Number(state.val));
|
|
90
92
|
}
|
|
91
93
|
} else {
|
|
92
|
-
this.log.
|
|
94
|
+
this.log.debug(`state ${id} deleted`);
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
97
|
}
|
package/build/main.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/main.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\n/*\r\n * Created with @iobroker/create-adapter v2.5.0\r\n */\r\n\r\n// The adapter-core module gives you access to the core ioBroker functions\r\n// you need to create an adapter\r\nimport * as utils from \"@iobroker/adapter-core\";\r\nimport { connectMqttClient, setOutputLimit } from \"./services/mqttService\";\r\nimport { getDeviceList, login } from \"./services/webService\";\r\nimport { ISolarFlowDeviceDetails } from \"./models/ISolarFlowDeviceDetails\";\r\nimport { ISolarFlowPaths } from \"./models/ISolarFlowPaths\";\r\nimport { pathsGlobal } from \"./constants/paths\";\r\nimport { startCheckStatesTimer } from \"./services/adapterService\";\r\n\r\nexport class ZendureSolarflow extends utils.Adapter {\r\n public constructor(options: Partial<utils.AdapterOptions> = {}) {\r\n super({\r\n ...options,\r\n name: \"zendure-solarflow\",\r\n });\r\n this.on(\"ready\", this.onReady.bind(this));\r\n this.on(\"stateChange\", this.onStateChange.bind(this));\r\n this.on(\"unload\", this.onUnload.bind(this));\r\n }\r\n\r\n public accessToken: string | undefined = undefined; // Access Token for Zendure Rest API\r\n public deviceList: ISolarFlowDeviceDetails[] = [];\r\n public paths: ISolarFlowPaths | undefined = undefined;\r\n public
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,YAAuB;AACvB,yBAAkD;AAClD,wBAAqC;AAGrC,mBAA4B;AAC5B,4BAAsC;AAE/B,MAAM,yBAAyB,MAAM,QAAQ;AAAA,EAC3C,YAAY,UAAyC,CAAC,GAAG;AAC9D,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM;AAAA,IACR,CAAC;AAMH,SAAO,cAAkC;AACzC,SAAO,aAAwC,CAAC;AAChD,SAAO,QAAqC;AAC5C,SAAO,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\n/*\r\n * Created with @iobroker/create-adapter v2.5.0\r\n */\r\n\r\n// The adapter-core module gives you access to the core ioBroker functions\r\n// you need to create an adapter\r\nimport * as utils from \"@iobroker/adapter-core\";\r\nimport { connectMqttClient, setOutputLimit } from \"./services/mqttService\";\r\nimport { getDeviceList, login } from \"./services/webService\";\r\nimport { ISolarFlowDeviceDetails } from \"./models/ISolarFlowDeviceDetails\";\r\nimport { ISolarFlowPaths } from \"./models/ISolarFlowPaths\";\r\nimport { pathsGlobal } from \"./constants/paths\";\r\nimport { startCheckStatesTimer } from \"./services/adapterService\";\r\n\r\nexport class ZendureSolarflow extends utils.Adapter {\r\n public constructor(options: Partial<utils.AdapterOptions> = {}) {\r\n super({\r\n ...options,\r\n name: \"zendure-solarflow\",\r\n });\r\n this.on(\"ready\", this.onReady.bind(this));\r\n this.on(\"stateChange\", this.onStateChange.bind(this));\r\n this.on(\"unload\", this.onUnload.bind(this));\r\n }\r\n\r\n public accessToken: string | undefined = undefined; // Access Token for Zendure Rest API\r\n public deviceList: ISolarFlowDeviceDetails[] = [];\r\n public paths: ISolarFlowPaths | undefined = undefined;\r\n public interval: ioBroker.Interval | undefined = undefined;\r\n\r\n /**\r\n * Is called when databases are connected and adapter received configuration.\r\n */\r\n private async onReady(): Promise<void> {\r\n // Currently only global Zendure Server are supported!\r\n this.paths = pathsGlobal;\r\n\r\n // If Username and Password is provided, try to login and get the access token.\r\n if (this.config.userName && this.config.password) {\r\n login(this)\r\n ?.then((_accessToken: string) => {\r\n this.accessToken = _accessToken;\r\n\r\n // Try to get the device list\r\n getDeviceList(this)\r\n .then((result: ISolarFlowDeviceDetails[]) => {\r\n if (result) {\r\n // Device List found. Save in the adapter properties and connect to MQTT\r\n this.deviceList = result;\r\n connectMqttClient(this);\r\n startCheckStatesTimer(this);\r\n }\r\n })\r\n .catch(() => {\r\n this.log?.error(\"Retrieving device failed!\");\r\n });\r\n })\r\n .catch((error) => {\r\n this.log.error(\r\n \"Logon error at Zendure cloud service! Error: \" + error.toString(),\r\n );\r\n });\r\n } else {\r\n this.log.error(\"No Login Information provided!\");\r\n //this.stop?.();\r\n }\r\n }\r\n\r\n /**\r\n * Is called when adapter shuts down - callback has to be called under any circumstances!\r\n */\r\n private onUnload(callback: () => void): void {\r\n try {\r\n if (this.interval) {\r\n this.clearInterval(this.interval);\r\n }\r\n callback();\r\n } catch (e) {\r\n callback();\r\n }\r\n }\r\n\r\n /**\r\n * Is called if a subscribed state changes\r\n */\r\n private onStateChange(\r\n id: string,\r\n state: ioBroker.State | null | undefined,\r\n ): void {\r\n if (state && !state.ack) {\r\n // The state was changed\r\n this.log.debug(`state ${id} changed: ${state.val} (ack = ${state.ack})`);\r\n if (\r\n id.includes(\"setOutputLimit\") &&\r\n state.val != undefined &&\r\n state.val != null\r\n ) {\r\n const splitted = id.split(\".\");\r\n const productKey = splitted[2];\r\n const deviceKey = splitted[3];\r\n setOutputLimit(this, productKey, deviceKey, Number(state.val));\r\n }\r\n } else {\r\n // The state was deleted\r\n this.log.debug(`state ${id} deleted`);\r\n }\r\n }\r\n}\r\n\r\nif (require.main !== module) {\r\n // Export the constructor in compact mode\r\n module.exports = (options: Partial<utils.AdapterOptions> | undefined) =>\r\n new ZendureSolarflow(options);\r\n} else {\r\n // otherwise start the instance directly\r\n (() => new ZendureSolarflow())();\r\n}\r\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,YAAuB;AACvB,yBAAkD;AAClD,wBAAqC;AAGrC,mBAA4B;AAC5B,4BAAsC;AAE/B,MAAM,yBAAyB,MAAM,QAAQ;AAAA,EAC3C,YAAY,UAAyC,CAAC,GAAG;AAC9D,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM;AAAA,IACR,CAAC;AAMH,SAAO,cAAkC;AACzC,SAAO,aAAwC,CAAC;AAChD,SAAO,QAAqC;AAC5C,SAAO,WAA0C;AAR/C,SAAK,GAAG,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC;AACxC,SAAK,GAAG,eAAe,KAAK,cAAc,KAAK,IAAI,CAAC;AACpD,SAAK,GAAG,UAAU,KAAK,SAAS,KAAK,IAAI,CAAC;AAAA,EAC5C;AAAA,EAUA,MAAc,UAAyB;AAlCzC;AAoCI,SAAK,QAAQ;AAGb,QAAI,KAAK,OAAO,YAAY,KAAK,OAAO,UAAU;AAChD,yCAAM,IAAI,MAAV,mBACI,KAAK,CAAC,iBAAyB;AAC/B,aAAK,cAAc;AAGnB,6CAAc,IAAI,EACf,KAAK,CAAC,WAAsC;AAC3C,cAAI,QAAQ;AAEV,iBAAK,aAAa;AAClB,sDAAkB,IAAI;AACtB,6DAAsB,IAAI;AAAA,UAC5B;AAAA,QACF,CAAC,EACA,MAAM,MAAM;AAtDzB,cAAAA;AAuDc,WAAAA,MAAA,KAAK,QAAL,gBAAAA,IAAU,MAAM;AAAA,QAClB,CAAC;AAAA,MACL,GACC,MAAM,CAAC,UAAU;AAChB,aAAK,IAAI;AAAA,UACP,kDAAkD,MAAM,SAAS;AAAA,QACnE;AAAA,MACF;AAAA,IACJ,OAAO;AACL,WAAK,IAAI,MAAM,gCAAgC;AAAA,IAEjD;AAAA,EACF;AAAA,EAKQ,SAAS,UAA4B;AAC3C,QAAI;AACF,UAAI,KAAK,UAAU;AACjB,aAAK,cAAc,KAAK,QAAQ;AAAA,MAClC;AACA,eAAS;AAAA,IACX,SAAS,GAAP;AACA,eAAS;AAAA,IACX;AAAA,EACF;AAAA,EAKQ,cACN,IACA,OACM;AACN,QAAI,SAAS,CAAC,MAAM,KAAK;AAEvB,WAAK,IAAI,MAAM,SAAS,eAAe,MAAM,cAAc,MAAM,MAAM;AACvE,UACE,GAAG,SAAS,gBAAgB,KAC5B,MAAM,OAAO,UACb,MAAM,OAAO,MACb;AACA,cAAM,WAAW,GAAG,MAAM,GAAG;AAC7B,cAAM,aAAa,SAAS;AAC5B,cAAM,YAAY,SAAS;AAC3B,+CAAe,MAAM,YAAY,WAAW,OAAO,MAAM,GAAG,CAAC;AAAA,MAC/D;AAAA,IACF,OAAO;AAEL,WAAK,IAAI,MAAM,SAAS,YAAY;AAAA,IACtC;AAAA,EACF;AACF;AAEA,IAAI,QAAQ,SAAS,QAAQ;AAE3B,SAAO,UAAU,CAAC,YAChB,IAAI,iBAAiB,OAAO;AAChC,OAAO;AAEL,GAAC,MAAM,IAAI,iBAAiB,GAAG;AACjC;",
|
|
6
6
|
"names": ["_a"]
|
|
7
7
|
}
|
|
@@ -26,7 +26,43 @@ __export(adapterService_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(adapterService_exports);
|
|
27
27
|
var import_webService = require("./webService");
|
|
28
28
|
const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
29
|
-
|
|
29
|
+
productKey = productKey.replace(adapter.FORBIDDEN_CHARS, "");
|
|
30
|
+
deviceKey = deviceKey.replace(adapter.FORBIDDEN_CHARS, "");
|
|
31
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(productKey, {
|
|
32
|
+
type: "device",
|
|
33
|
+
common: {
|
|
34
|
+
name: { de: "Produkt " + productKey, en: "Product " + productKey }
|
|
35
|
+
},
|
|
36
|
+
native: {}
|
|
37
|
+
}));
|
|
38
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(productKey + "." + deviceKey, {
|
|
39
|
+
type: "channel",
|
|
40
|
+
common: {
|
|
41
|
+
name: { de: "Device Key " + deviceKey, en: "Device Key " + deviceKey }
|
|
42
|
+
},
|
|
43
|
+
native: {}
|
|
44
|
+
}));
|
|
45
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(productKey + "." + deviceKey + ".control", {
|
|
46
|
+
type: "channel",
|
|
47
|
+
common: {
|
|
48
|
+
name: {
|
|
49
|
+
de: "Steuerung Device " + deviceKey,
|
|
50
|
+
en: "Control Device " + deviceKey
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
native: {}
|
|
54
|
+
}));
|
|
55
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(productKey + "." + deviceKey + ".packData", {
|
|
56
|
+
type: "channel",
|
|
57
|
+
common: {
|
|
58
|
+
name: {
|
|
59
|
+
de: "Akku Packs",
|
|
60
|
+
en: "Battery packs"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
native: {}
|
|
64
|
+
}));
|
|
65
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
30
66
|
productKey + "." + deviceKey + ".lastUpdate",
|
|
31
67
|
{
|
|
32
68
|
type: "state",
|
|
@@ -36,12 +72,12 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
36
72
|
desc: "lastUpdate",
|
|
37
73
|
role: "value.time",
|
|
38
74
|
read: true,
|
|
39
|
-
write:
|
|
75
|
+
write: false
|
|
40
76
|
},
|
|
41
77
|
native: {}
|
|
42
78
|
}
|
|
43
79
|
));
|
|
44
|
-
await (adapter == null ? void 0 : adapter.
|
|
80
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
45
81
|
productKey + "." + deviceKey + ".electricLevel",
|
|
46
82
|
{
|
|
47
83
|
type: "state",
|
|
@@ -51,13 +87,13 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
51
87
|
desc: "electricLevel",
|
|
52
88
|
role: "value.battery",
|
|
53
89
|
read: true,
|
|
54
|
-
write:
|
|
90
|
+
write: false,
|
|
55
91
|
unit: "%"
|
|
56
92
|
},
|
|
57
93
|
native: {}
|
|
58
94
|
}
|
|
59
95
|
));
|
|
60
|
-
await (adapter == null ? void 0 : adapter.
|
|
96
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
61
97
|
productKey + "." + deviceKey + ".outputHomePower",
|
|
62
98
|
{
|
|
63
99
|
type: "state",
|
|
@@ -67,13 +103,13 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
67
103
|
desc: "outputHomePower",
|
|
68
104
|
role: "value.power",
|
|
69
105
|
read: true,
|
|
70
|
-
write:
|
|
106
|
+
write: false,
|
|
71
107
|
unit: "W"
|
|
72
108
|
},
|
|
73
109
|
native: {}
|
|
74
110
|
}
|
|
75
111
|
));
|
|
76
|
-
await (adapter == null ? void 0 : adapter.
|
|
112
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
77
113
|
productKey + "." + deviceKey + ".outputLimit",
|
|
78
114
|
{
|
|
79
115
|
type: "state",
|
|
@@ -83,13 +119,13 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
83
119
|
desc: "outputLimit",
|
|
84
120
|
role: "value.power",
|
|
85
121
|
read: true,
|
|
86
|
-
write:
|
|
122
|
+
write: false,
|
|
87
123
|
unit: "W"
|
|
88
124
|
},
|
|
89
125
|
native: {}
|
|
90
126
|
}
|
|
91
127
|
));
|
|
92
|
-
await (adapter == null ? void 0 : adapter.
|
|
128
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
93
129
|
productKey + "." + deviceKey + ".outputPackPower",
|
|
94
130
|
{
|
|
95
131
|
type: "state",
|
|
@@ -99,13 +135,13 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
99
135
|
desc: "outputPackPower",
|
|
100
136
|
role: "value.power",
|
|
101
137
|
read: true,
|
|
102
|
-
write:
|
|
138
|
+
write: false,
|
|
103
139
|
unit: "W"
|
|
104
140
|
},
|
|
105
141
|
native: {}
|
|
106
142
|
}
|
|
107
143
|
));
|
|
108
|
-
await (adapter == null ? void 0 : adapter.
|
|
144
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
109
145
|
productKey + "." + deviceKey + ".packInputPower",
|
|
110
146
|
{
|
|
111
147
|
type: "state",
|
|
@@ -115,13 +151,13 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
115
151
|
desc: "packInputPower",
|
|
116
152
|
role: "value.power",
|
|
117
153
|
read: true,
|
|
118
|
-
write:
|
|
154
|
+
write: false,
|
|
119
155
|
unit: "W"
|
|
120
156
|
},
|
|
121
157
|
native: {}
|
|
122
158
|
}
|
|
123
159
|
));
|
|
124
|
-
await (adapter == null ? void 0 : adapter.
|
|
160
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
125
161
|
productKey + "." + deviceKey + ".solarInputPower",
|
|
126
162
|
{
|
|
127
163
|
type: "state",
|
|
@@ -131,13 +167,13 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
131
167
|
desc: "solarInputPower",
|
|
132
168
|
role: "value.power.produced",
|
|
133
169
|
read: true,
|
|
134
|
-
write:
|
|
170
|
+
write: false,
|
|
135
171
|
unit: "W"
|
|
136
172
|
},
|
|
137
173
|
native: {}
|
|
138
174
|
}
|
|
139
175
|
));
|
|
140
|
-
await (adapter == null ? void 0 : adapter.
|
|
176
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
141
177
|
productKey + "." + deviceKey + ".remainInputTime",
|
|
142
178
|
{
|
|
143
179
|
type: "state",
|
|
@@ -147,12 +183,12 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
147
183
|
desc: "remainInputTime",
|
|
148
184
|
role: "value.interval",
|
|
149
185
|
read: true,
|
|
150
|
-
write:
|
|
186
|
+
write: false
|
|
151
187
|
},
|
|
152
188
|
native: {}
|
|
153
189
|
}
|
|
154
190
|
));
|
|
155
|
-
await (adapter == null ? void 0 : adapter.
|
|
191
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
156
192
|
productKey + "." + deviceKey + ".remainOutTime",
|
|
157
193
|
{
|
|
158
194
|
type: "state",
|
|
@@ -162,12 +198,12 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
162
198
|
desc: "remainOutTime",
|
|
163
199
|
role: "value.interval",
|
|
164
200
|
read: true,
|
|
165
|
-
write:
|
|
201
|
+
write: false
|
|
166
202
|
},
|
|
167
203
|
native: {}
|
|
168
204
|
}
|
|
169
205
|
));
|
|
170
|
-
await (adapter == null ? void 0 : adapter.
|
|
206
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
171
207
|
productKey + "." + deviceKey + ".socSet",
|
|
172
208
|
{
|
|
173
209
|
type: "state",
|
|
@@ -177,13 +213,13 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
177
213
|
desc: "socSet",
|
|
178
214
|
role: "value.battery",
|
|
179
215
|
read: true,
|
|
180
|
-
write:
|
|
216
|
+
write: false,
|
|
181
217
|
unit: "%"
|
|
182
218
|
},
|
|
183
219
|
native: {}
|
|
184
220
|
}
|
|
185
221
|
));
|
|
186
|
-
await (adapter == null ? void 0 : adapter.
|
|
222
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
187
223
|
productKey + "." + deviceKey + ".minSoc",
|
|
188
224
|
{
|
|
189
225
|
type: "state",
|
|
@@ -193,13 +229,13 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
193
229
|
desc: "minSoc",
|
|
194
230
|
role: "value.battery",
|
|
195
231
|
read: true,
|
|
196
|
-
write:
|
|
232
|
+
write: false,
|
|
197
233
|
unit: "%"
|
|
198
234
|
},
|
|
199
235
|
native: {}
|
|
200
236
|
}
|
|
201
237
|
));
|
|
202
|
-
await (adapter == null ? void 0 : adapter.
|
|
238
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(
|
|
203
239
|
productKey + "." + deviceKey + ".control.setOutputLimit",
|
|
204
240
|
{
|
|
205
241
|
type: "state",
|
|
@@ -226,8 +262,11 @@ const createSolarFlowStates = async (adapter, productKey, deviceKey) => {
|
|
|
226
262
|
const addOrUpdatePackData = async (adapter, productKey, deviceKey, packData) => {
|
|
227
263
|
await packData.forEach(async (x) => {
|
|
228
264
|
if (x.sn) {
|
|
229
|
-
const key = productKey + "." + deviceKey + ".packData." + x.sn
|
|
230
|
-
|
|
265
|
+
const key = (productKey + "." + deviceKey + ".packData." + x.sn).replace(
|
|
266
|
+
adapter.FORBIDDEN_CHARS,
|
|
267
|
+
""
|
|
268
|
+
);
|
|
269
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(key + ".sn", {
|
|
231
270
|
type: "state",
|
|
232
271
|
common: {
|
|
233
272
|
name: {
|
|
@@ -238,13 +277,13 @@ const addOrUpdatePackData = async (adapter, productKey, deviceKey, packData) =>
|
|
|
238
277
|
desc: "Serial ID",
|
|
239
278
|
role: "value",
|
|
240
279
|
read: true,
|
|
241
|
-
write:
|
|
280
|
+
write: false
|
|
242
281
|
},
|
|
243
282
|
native: {}
|
|
244
283
|
}));
|
|
245
|
-
await (adapter == null ? void 0 : adapter.setStateAsync(key + ".sn", x.sn,
|
|
284
|
+
await (adapter == null ? void 0 : adapter.setStateAsync(key + ".sn", x.sn, true));
|
|
246
285
|
if (x.socLevel) {
|
|
247
|
-
await (adapter == null ? void 0 : adapter.
|
|
286
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(key + ".socLevel", {
|
|
248
287
|
type: "state",
|
|
249
288
|
common: {
|
|
250
289
|
name: {
|
|
@@ -255,14 +294,14 @@ const addOrUpdatePackData = async (adapter, productKey, deviceKey, packData) =>
|
|
|
255
294
|
desc: "SOC Level",
|
|
256
295
|
role: "value",
|
|
257
296
|
read: true,
|
|
258
|
-
write:
|
|
297
|
+
write: false
|
|
259
298
|
},
|
|
260
299
|
native: {}
|
|
261
300
|
}));
|
|
262
|
-
await (adapter == null ? void 0 : adapter.setStateAsync(key + ".socLevel", x.socLevel,
|
|
301
|
+
await (adapter == null ? void 0 : adapter.setStateAsync(key + ".socLevel", x.socLevel, true));
|
|
263
302
|
}
|
|
264
303
|
if (x.maxTemp) {
|
|
265
|
-
await (adapter == null ? void 0 : adapter.
|
|
304
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(key + ".maxTemp", {
|
|
266
305
|
type: "state",
|
|
267
306
|
common: {
|
|
268
307
|
name: {
|
|
@@ -273,14 +312,18 @@ const addOrUpdatePackData = async (adapter, productKey, deviceKey, packData) =>
|
|
|
273
312
|
desc: "Max. Temp",
|
|
274
313
|
role: "value",
|
|
275
314
|
read: true,
|
|
276
|
-
write:
|
|
315
|
+
write: false
|
|
277
316
|
},
|
|
278
317
|
native: {}
|
|
279
318
|
}));
|
|
280
|
-
await (adapter == null ? void 0 : adapter.setStateAsync(
|
|
319
|
+
await (adapter == null ? void 0 : adapter.setStateAsync(
|
|
320
|
+
key + ".maxTemp",
|
|
321
|
+
x.maxTemp / 10 - 273.15,
|
|
322
|
+
true
|
|
323
|
+
));
|
|
281
324
|
}
|
|
282
325
|
if (x.minVol) {
|
|
283
|
-
await (adapter == null ? void 0 : adapter.
|
|
326
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(key + ".minVol", {
|
|
284
327
|
type: "state",
|
|
285
328
|
common: {
|
|
286
329
|
name: "minVol",
|
|
@@ -288,14 +331,14 @@ const addOrUpdatePackData = async (adapter, productKey, deviceKey, packData) =>
|
|
|
288
331
|
desc: "minVol",
|
|
289
332
|
role: "value",
|
|
290
333
|
read: true,
|
|
291
|
-
write:
|
|
334
|
+
write: false
|
|
292
335
|
},
|
|
293
336
|
native: {}
|
|
294
337
|
}));
|
|
295
|
-
await (adapter == null ? void 0 : adapter.setStateAsync(key + ".minVol", x.minVol / 100,
|
|
338
|
+
await (adapter == null ? void 0 : adapter.setStateAsync(key + ".minVol", x.minVol / 100, true));
|
|
296
339
|
}
|
|
297
340
|
if (x.maxVol) {
|
|
298
|
-
await (adapter == null ? void 0 : adapter.
|
|
341
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(key + ".maxVol", {
|
|
299
342
|
type: "state",
|
|
300
343
|
common: {
|
|
301
344
|
name: "maxVol",
|
|
@@ -303,14 +346,14 @@ const addOrUpdatePackData = async (adapter, productKey, deviceKey, packData) =>
|
|
|
303
346
|
desc: "maxVol",
|
|
304
347
|
role: "value",
|
|
305
348
|
read: true,
|
|
306
|
-
write:
|
|
349
|
+
write: false
|
|
307
350
|
},
|
|
308
351
|
native: {}
|
|
309
352
|
}));
|
|
310
|
-
await (adapter == null ? void 0 : adapter.setStateAsync(key + ".maxVol", x.maxVol / 100,
|
|
353
|
+
await (adapter == null ? void 0 : adapter.setStateAsync(key + ".maxVol", x.maxVol / 100, true));
|
|
311
354
|
}
|
|
312
355
|
if (x.totalVol) {
|
|
313
|
-
await (adapter == null ? void 0 : adapter.
|
|
356
|
+
await (adapter == null ? void 0 : adapter.extendObjectAsync(key + ".totalVol", {
|
|
314
357
|
type: "state",
|
|
315
358
|
common: {
|
|
316
359
|
name: "totalVol",
|
|
@@ -318,11 +361,15 @@ const addOrUpdatePackData = async (adapter, productKey, deviceKey, packData) =>
|
|
|
318
361
|
desc: "totalVol",
|
|
319
362
|
role: "value",
|
|
320
363
|
read: true,
|
|
321
|
-
write:
|
|
364
|
+
write: false
|
|
322
365
|
},
|
|
323
366
|
native: {}
|
|
324
367
|
}));
|
|
325
|
-
await (adapter == null ? void 0 : adapter.setStateAsync(
|
|
368
|
+
await (adapter == null ? void 0 : adapter.setStateAsync(
|
|
369
|
+
key + ".totalVol",
|
|
370
|
+
x.totalVol / 100,
|
|
371
|
+
true
|
|
372
|
+
));
|
|
326
373
|
}
|
|
327
374
|
}
|
|
328
375
|
});
|
|
@@ -334,10 +381,7 @@ const startCheckStatesTimer = async (adapter) => {
|
|
|
334
381
|
"packInputPower",
|
|
335
382
|
"solarInputPower"
|
|
336
383
|
];
|
|
337
|
-
|
|
338
|
-
adapter.timer = null;
|
|
339
|
-
}
|
|
340
|
-
adapter.timer = setTimeout(async () => {
|
|
384
|
+
adapter.interval = adapter.setInterval(async () => {
|
|
341
385
|
(0, import_webService.getDeviceList)(adapter).then((deviceList) => {
|
|
342
386
|
deviceList.forEach(async (device) => {
|
|
343
387
|
const lastUpdate = await (adapter == null ? void 0 : adapter.getStateAsync(
|
|
@@ -345,7 +389,7 @@ const startCheckStatesTimer = async (adapter) => {
|
|
|
345
389
|
));
|
|
346
390
|
const tenMinutesAgo = Date.now() / 1e3 - 10 * 60;
|
|
347
391
|
if (lastUpdate && lastUpdate.val && Number(lastUpdate.val) < tenMinutesAgo) {
|
|
348
|
-
adapter.log.
|
|
392
|
+
adapter.log.debug(
|
|
349
393
|
`Last update for deviceKey ${device.deviceKey} was at ${new Date(
|
|
350
394
|
Number(lastUpdate)
|
|
351
395
|
)}, checking for pseudo power values!`
|
|
@@ -354,19 +398,20 @@ const startCheckStatesTimer = async (adapter) => {
|
|
|
354
398
|
await (adapter == null ? void 0 : adapter.setStateAsync(
|
|
355
399
|
device.productKey + "." + device.deviceKey + "." + stateName,
|
|
356
400
|
0,
|
|
357
|
-
|
|
401
|
+
true
|
|
358
402
|
));
|
|
359
403
|
});
|
|
360
404
|
await (adapter == null ? void 0 : adapter.setStateAsync(
|
|
361
405
|
device.productKey + "." + device.deviceKey + ".electricLevel",
|
|
362
406
|
device.electricity,
|
|
363
|
-
|
|
407
|
+
true
|
|
364
408
|
));
|
|
365
409
|
}
|
|
366
410
|
});
|
|
367
411
|
}).catch(() => {
|
|
368
412
|
var _a;
|
|
369
413
|
(_a = adapter.log) == null ? void 0 : _a.error("Retrieving device failed!");
|
|
414
|
+
return null;
|
|
370
415
|
});
|
|
371
416
|
}, 5e4);
|
|
372
417
|
};
|
|
@@ -374,7 +419,7 @@ const updateSolarFlowState = async (adapter, productKey, deviceKey, state, val)
|
|
|
374
419
|
adapter == null ? void 0 : adapter.setStateAsync(
|
|
375
420
|
productKey + "." + deviceKey + "." + state,
|
|
376
421
|
val,
|
|
377
|
-
|
|
422
|
+
true
|
|
378
423
|
);
|
|
379
424
|
};
|
|
380
425
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/services/adapterService.ts"],
|
|
4
|
-
"sourcesContent": ["import { ZendureSolarflow } from \"../main\";\r\nimport { IPackData } from \"../models/IPackData\";\r\nimport { ISolarFlowDeviceDetails } from \"../models/ISolarFlowDeviceDetails\";\r\nimport { getDeviceList } from \"./webService\";\r\n\r\n/* eslint-disable @typescript-eslint/indent */\r\nexport const createSolarFlowStates = async (\r\n adapter: ZendureSolarflow,\r\n productKey: string,\r\n deviceKey: string,\r\n): Promise<void> => {\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"lastUpdate\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Letztes Update\", en: \"Last Update\" },\r\n type: \"number\",\r\n desc: \"lastUpdate\",\r\n role: \"value.time\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"electricLevel\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"SOC Gesamtsystem\", en: \"SOC of the system\" },\r\n type: \"number\",\r\n desc: \"electricLevel\",\r\n role: \"value.battery\",\r\n read: true,\r\n write: true,\r\n unit: \"%\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"outputHomePower\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Ausgangsleistung\", en: \"output power\" },\r\n type: \"number\",\r\n desc: \"outputHomePower\",\r\n role: \"value.power\",\r\n read: true,\r\n write: true,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"outputLimit\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Limit der Ausgangsleistung\", en: \"limit of output power\" },\r\n type: \"number\",\r\n desc: \"outputLimit\",\r\n role: \"value.power\",\r\n read: true,\r\n write: true,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"outputPackPower\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Ladeleistung zum Akku\", en: \"charge power\" },\r\n type: \"number\",\r\n desc: \"outputPackPower\",\r\n role: \"value.power\",\r\n read: true,\r\n write: true,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"packInputPower\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Entladeleistung zum Akku\", en: \"discharge power\" },\r\n type: \"number\",\r\n desc: \"packInputPower\",\r\n role: \"value.power\",\r\n read: true,\r\n write: true,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"solarInputPower\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Leistung der Solarmodule\", en: \"solar power\" },\r\n type: \"number\",\r\n desc: \"solarInputPower\",\r\n role: \"value.power.produced\",\r\n read: true,\r\n write: true,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"remainInputTime\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Erwartete Ladedauer\", en: \"remaining charge time\" },\r\n type: \"number\",\r\n desc: \"remainInputTime\",\r\n role: \"value.interval\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"remainOutTime\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Erwartete Entladedauer\", en: \"remaining discharge time\" },\r\n type: \"number\",\r\n desc: \"remainOutTime\",\r\n role: \"value.interval\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"socSet\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Max. SOC\", en: \"max. SOC\" },\r\n type: \"number\",\r\n desc: \"socSet\",\r\n role: \"value.battery\",\r\n read: true,\r\n write: true,\r\n unit: \"%\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"minSoc\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Min. SOC\", en: \"min. SOC\" },\r\n type: \"number\",\r\n desc: \"minSoc\",\r\n role: \"value.battery\",\r\n read: true,\r\n write: true,\r\n unit: \"%\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n // State zum Setzen des Output Limit\r\n await adapter?.setObjectNotExistsAsync(\r\n productKey + \".\" + deviceKey + \".control.\" + \"setOutputLimit\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"Einzustellende Ausgangsleistung\",\r\n en: \"Control of the output limit\",\r\n },\r\n type: \"number\",\r\n desc: \"setOutputLimit\",\r\n role: \"value.power\",\r\n read: true,\r\n write: true,\r\n min: 0,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n // Subscibe to State updates to listen to changes\r\n adapter?.subscribeStates(\r\n productKey + \".\" + deviceKey + \".control.\" + \"setOutputLimit\",\r\n );\r\n};\r\n\r\nexport const addOrUpdatePackData = async (\r\n adapter: ZendureSolarflow,\r\n productKey: string,\r\n deviceKey: string,\r\n packData: IPackData[],\r\n): Promise<void> => {\r\n await packData.forEach(async (x) => {\r\n // Daten nur verarbeiten wenn eine SN mitgesendet wird!\r\n if (x.sn) {\r\n // State f\u00FCr SN\r\n const key = productKey + \".\" + deviceKey + \".packData.\" + x.sn;\r\n await adapter?.setObjectNotExistsAsync(key + \".sn\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"Seriennummer\",\r\n en: \"Serial id\",\r\n },\r\n type: \"string\",\r\n desc: \"Serial ID\",\r\n role: \"value\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".sn\", x.sn, false);\r\n\r\n if (x.socLevel) {\r\n // State f\u00FCr socLevel\r\n await adapter?.setObjectNotExistsAsync(key + \".socLevel\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"SOC der Batterie\",\r\n en: \"soc of battery\",\r\n },\r\n type: \"number\",\r\n desc: \"SOC Level\",\r\n role: \"value\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".socLevel\", x.socLevel, false);\r\n }\r\n\r\n if (x.maxTemp) {\r\n // State f\u00FCr maxTemp\r\n await adapter?.setObjectNotExistsAsync(key + \".maxTemp\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"Max. Temperatur der Batterie\",\r\n en: \"max temp. of battery\",\r\n },\r\n type: \"number\",\r\n desc: \"Max. Temp\",\r\n role: \"value\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".maxTemp\", x.maxTemp / 100, false);\r\n }\r\n\r\n if (x.minVol) {\r\n await adapter?.setObjectNotExistsAsync(key + \".minVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"minVol\",\r\n type: \"number\",\r\n desc: \"minVol\",\r\n role: \"value\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".minVol\", x.minVol / 100, false);\r\n }\r\n\r\n if (x.maxVol) {\r\n await adapter?.setObjectNotExistsAsync(key + \".maxVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"maxVol\",\r\n type: \"number\",\r\n desc: \"maxVol\",\r\n role: \"value\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".maxVol\", x.maxVol / 100, false);\r\n }\r\n\r\n if (x.totalVol) {\r\n await adapter?.setObjectNotExistsAsync(key + \".totalVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"totalVol\",\r\n type: \"number\",\r\n desc: \"totalVol\",\r\n role: \"value\",\r\n read: true,\r\n write: true,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".totalVol\", x.totalVol / 100, false);\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport const startCheckStatesTimer = async (adapter: ZendureSolarflow): 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 \"packInputPower\",\r\n \"solarInputPower\",\r\n ];\r\n\r\n // Timer starten\r\n if (adapter && adapter.timer) {\r\n adapter.timer = null;\r\n }\r\n\r\n adapter.timer = setTimeout(async () => {\r\n getDeviceList(adapter)\r\n .then((deviceList: ISolarFlowDeviceDetails[]) => {\r\n deviceList.forEach(async (device: ISolarFlowDeviceDetails) => {\r\n const lastUpdate = await adapter?.getStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".lastUpdate\",\r\n );\r\n\r\n const tenMinutesAgo = Date.now() / 1000 - 10 * 60; // Ten minutes ago\r\n if (\r\n lastUpdate &&\r\n lastUpdate.val &&\r\n Number(lastUpdate.val) < tenMinutesAgo\r\n ) {\r\n adapter.log.info(\r\n `Last update for deviceKey ${device.deviceKey} 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?.setStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".\" + stateName,\r\n 0,\r\n false,\r\n );\r\n });\r\n\r\n // set electricLevel from deviceList\r\n await adapter?.setStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".electricLevel\",\r\n device.electricity,\r\n false,\r\n );\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n adapter.log?.error(\"Retrieving device failed!\");\r\n });\r\n }, 50000);\r\n};\r\n\r\nexport const updateSolarFlowState = async (\r\n adapter: ZendureSolarflow,\r\n productKey: string,\r\n deviceKey: string,\r\n state: string,\r\n val: number | string,\r\n): Promise<void> => {\r\n adapter?.setStateAsync(\r\n productKey + \".\" + deviceKey + \".\" + state,\r\n val,\r\n false,\r\n );\r\n};\r\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { ZendureSolarflow } from \"../main\";\r\nimport { IPackData } from \"../models/IPackData\";\r\nimport { ISolarFlowDeviceDetails } from \"../models/ISolarFlowDeviceDetails\";\r\nimport { getDeviceList } from \"./webService\";\r\n\r\n/* eslint-disable @typescript-eslint/indent */\r\nexport const createSolarFlowStates = async (\r\n adapter: ZendureSolarflow,\r\n productKey: string,\r\n deviceKey: string,\r\n): Promise<void> => {\r\n productKey = productKey.replace(adapter.FORBIDDEN_CHARS, \"\");\r\n deviceKey = deviceKey.replace(adapter.FORBIDDEN_CHARS, \"\");\r\n\r\n // Create device (e.g. the product type -> SolarFlow)\r\n await adapter?.extendObjectAsync(productKey, {\r\n type: \"device\",\r\n common: {\r\n name: { de: \"Produkt \" + productKey, en: \"Product \" + productKey },\r\n },\r\n native: {},\r\n });\r\n\r\n // Create channel (e.g. the device specific key)\r\n await adapter?.extendObjectAsync(productKey + \".\" + deviceKey, {\r\n type: \"channel\",\r\n common: {\r\n name: { de: \"Device Key \" + deviceKey, en: \"Device Key \" + deviceKey },\r\n },\r\n native: {},\r\n });\r\n\r\n // Create control folder\r\n await adapter?.extendObjectAsync(productKey + \".\" + deviceKey + \".control\", {\r\n type: \"channel\",\r\n common: {\r\n name: {\r\n de: \"Steuerung Device \" + deviceKey,\r\n en: \"Control Device \" + deviceKey,\r\n },\r\n },\r\n native: {},\r\n });\r\n\r\n // Create pack data folder\r\n await adapter?.extendObjectAsync(productKey + \".\" + deviceKey + \".packData\", {\r\n type: \"channel\",\r\n common: {\r\n name: {\r\n de: \"Akku Packs\",\r\n en: \"Battery packs\",\r\n },\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"lastUpdate\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Letztes Update\", en: \"Last Update\" },\r\n type: \"number\",\r\n desc: \"lastUpdate\",\r\n role: \"value.time\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"electricLevel\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"SOC Gesamtsystem\", en: \"SOC of the system\" },\r\n type: \"number\",\r\n desc: \"electricLevel\",\r\n role: \"value.battery\",\r\n read: true,\r\n write: false,\r\n unit: \"%\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"outputHomePower\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Ausgangsleistung\", en: \"output power\" },\r\n type: \"number\",\r\n desc: \"outputHomePower\",\r\n role: \"value.power\",\r\n read: true,\r\n write: false,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"outputLimit\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Limit der Ausgangsleistung\", en: \"limit of output power\" },\r\n type: \"number\",\r\n desc: \"outputLimit\",\r\n role: \"value.power\",\r\n read: true,\r\n write: false,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"outputPackPower\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Ladeleistung zum Akku\", en: \"charge power\" },\r\n type: \"number\",\r\n desc: \"outputPackPower\",\r\n role: \"value.power\",\r\n read: true,\r\n write: false,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"packInputPower\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Entladeleistung zum Akku\", en: \"discharge power\" },\r\n type: \"number\",\r\n desc: \"packInputPower\",\r\n role: \"value.power\",\r\n read: true,\r\n write: false,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"solarInputPower\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Leistung der Solarmodule\", en: \"solar power\" },\r\n type: \"number\",\r\n desc: \"solarInputPower\",\r\n role: \"value.power.produced\",\r\n read: true,\r\n write: false,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"remainInputTime\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Erwartete Ladedauer\", en: \"remaining charge time\" },\r\n type: \"number\",\r\n desc: \"remainInputTime\",\r\n role: \"value.interval\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"remainOutTime\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Erwartete Entladedauer\", en: \"remaining discharge time\" },\r\n type: \"number\",\r\n desc: \"remainOutTime\",\r\n role: \"value.interval\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"socSet\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Max. SOC\", en: \"max. SOC\" },\r\n type: \"number\",\r\n desc: \"socSet\",\r\n role: \"value.battery\",\r\n read: true,\r\n write: false,\r\n unit: \"%\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".\" + \"minSoc\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: { de: \"Min. SOC\", en: \"min. SOC\" },\r\n type: \"number\",\r\n desc: \"minSoc\",\r\n role: \"value.battery\",\r\n read: true,\r\n write: false,\r\n unit: \"%\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n // State zum Setzen des Output Limit\r\n await adapter?.extendObjectAsync(\r\n productKey + \".\" + deviceKey + \".control.\" + \"setOutputLimit\",\r\n {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"Einzustellende Ausgangsleistung\",\r\n en: \"Control of the output limit\",\r\n },\r\n type: \"number\",\r\n desc: \"setOutputLimit\",\r\n role: \"value.power\",\r\n read: true,\r\n write: true,\r\n min: 0,\r\n unit: \"W\",\r\n },\r\n native: {},\r\n },\r\n );\r\n\r\n // Subscibe to State updates to listen to changes\r\n adapter?.subscribeStates(\r\n productKey + \".\" + deviceKey + \".control.\" + \"setOutputLimit\",\r\n );\r\n};\r\n\r\nexport const addOrUpdatePackData = async (\r\n adapter: ZendureSolarflow,\r\n productKey: string,\r\n deviceKey: string,\r\n packData: IPackData[],\r\n): Promise<void> => {\r\n await packData.forEach(async (x) => {\r\n // Process data only with a serial id!\r\n if (x.sn) {\r\n // create a state for the serial id\r\n const key = (productKey + \".\" + deviceKey + \".packData.\" + x.sn).replace(\r\n adapter.FORBIDDEN_CHARS,\r\n \"\",\r\n );\r\n\r\n await adapter?.extendObjectAsync(key + \".sn\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"Seriennummer\",\r\n en: \"Serial id\",\r\n },\r\n type: \"string\",\r\n desc: \"Serial ID\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".sn\", x.sn, true);\r\n\r\n if (x.socLevel) {\r\n // State f\u00FCr socLevel\r\n await adapter?.extendObjectAsync(key + \".socLevel\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"SOC der Batterie\",\r\n en: \"soc of battery\",\r\n },\r\n type: \"number\",\r\n desc: \"SOC Level\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".socLevel\", x.socLevel, true);\r\n }\r\n\r\n if (x.maxTemp) {\r\n // State f\u00FCr maxTemp\r\n await adapter?.extendObjectAsync(key + \".maxTemp\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"Max. Temperatur der Batterie\",\r\n en: \"max temp. of battery\",\r\n },\r\n type: \"number\",\r\n desc: \"Max. Temp\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n // Convert Kelvin to Celsius\r\n await adapter?.setStateAsync(\r\n key + \".maxTemp\",\r\n x.maxTemp / 10 - 273.15,\r\n true,\r\n );\r\n }\r\n\r\n if (x.minVol) {\r\n await adapter?.extendObjectAsync(key + \".minVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"minVol\",\r\n type: \"number\",\r\n desc: \"minVol\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".minVol\", x.minVol / 100, true);\r\n }\r\n\r\n if (x.maxVol) {\r\n await adapter?.extendObjectAsync(key + \".maxVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"maxVol\",\r\n type: \"number\",\r\n desc: \"maxVol\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(key + \".maxVol\", x.maxVol / 100, true);\r\n }\r\n\r\n if (x.totalVol) {\r\n await adapter?.extendObjectAsync(key + \".totalVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"totalVol\",\r\n type: \"number\",\r\n desc: \"totalVol\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setStateAsync(\r\n key + \".totalVol\",\r\n x.totalVol / 100,\r\n true,\r\n );\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport const startCheckStatesTimer = 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 \"packInputPower\",\r\n \"solarInputPower\",\r\n ];\r\n\r\n adapter.interval = adapter.setInterval(async () => {\r\n getDeviceList(adapter)\r\n .then((deviceList: ISolarFlowDeviceDetails[]) => {\r\n deviceList.forEach(async (device: ISolarFlowDeviceDetails) => {\r\n const lastUpdate = await adapter?.getStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".lastUpdate\",\r\n );\r\n\r\n const tenMinutesAgo = Date.now() / 1000 - 10 * 60; // Ten minutes ago\r\n if (\r\n lastUpdate &&\r\n lastUpdate.val &&\r\n Number(lastUpdate.val) < tenMinutesAgo\r\n ) {\r\n adapter.log.debug(\r\n `Last update for deviceKey ${device.deviceKey} 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?.setStateAsync(\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 await adapter?.setStateAsync(\r\n device.productKey + \".\" + device.deviceKey + \".electricLevel\",\r\n device.electricity,\r\n true,\r\n );\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n adapter.log?.error(\"Retrieving device failed!\");\r\n return null;\r\n });\r\n }, 50000);\r\n};\r\n\r\nexport const updateSolarFlowState = async (\r\n adapter: ZendureSolarflow,\r\n productKey: string,\r\n deviceKey: string,\r\n state: string,\r\n val: number | string,\r\n): Promise<void> => {\r\n adapter?.setStateAsync(\r\n productKey + \".\" + deviceKey + \".\" + state,\r\n val,\r\n true,\r\n );\r\n};\r\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA8B;AAGvB,MAAM,wBAAwB,OACnC,SACA,YACA,cACkB;AAClB,eAAa,WAAW,QAAQ,QAAQ,iBAAiB,EAAE;AAC3D,cAAY,UAAU,QAAQ,QAAQ,iBAAiB,EAAE;AAGzD,SAAM,mCAAS,kBAAkB,YAAY;AAAA,IAC3C,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM,EAAE,IAAI,aAAa,YAAY,IAAI,aAAa,WAAW;AAAA,IACnE;AAAA,IACA,QAAQ,CAAC;AAAA,EACX;AAGA,SAAM,mCAAS,kBAAkB,aAAa,MAAM,WAAW;AAAA,IAC7D,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM,EAAE,IAAI,gBAAgB,WAAW,IAAI,gBAAgB,UAAU;AAAA,IACvE;AAAA,IACA,QAAQ,CAAC;AAAA,EACX;AAGA,SAAM,mCAAS,kBAAkB,aAAa,MAAM,YAAY,YAAY;AAAA,IAC1E,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,IAAI,sBAAsB;AAAA,QAC1B,IAAI,oBAAoB;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,QAAQ,CAAC;AAAA,EACX;AAGA,SAAM,mCAAS,kBAAkB,aAAa,MAAM,YAAY,aAAa;AAAA,IAC3E,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,QAAQ,CAAC;AAAA,EACX;AAEA,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,kBAAkB,IAAI,cAAc;AAAA,QAChD,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,oBAAoB,IAAI,oBAAoB;AAAA,QACxD,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,oBAAoB,IAAI,eAAe;AAAA,QACnD,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,8BAA8B,IAAI,wBAAwB;AAAA,QACtE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,yBAAyB,IAAI,eAAe;AAAA,QACxD,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,4BAA4B,IAAI,kBAAkB;AAAA,QAC9D,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,4BAA4B,IAAI,cAAc;AAAA,QAC1D,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,uBAAuB,IAAI,wBAAwB;AAAA,QAC/D,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,0BAA0B,IAAI,2BAA2B;AAAA,QACrE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,YAAY,IAAI,WAAW;AAAA,QACvC,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAGF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM,EAAE,IAAI,YAAY,IAAI,WAAW;AAAA,QACvC,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAIF,SAAM,mCAAS;AAAA,IACb,aAAa,MAAM,YAAY;AAAA,IAC/B;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,QACL,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,CAAC;AAAA,IACX;AAAA;AAIF,qCAAS;AAAA,IACP,aAAa,MAAM,YAAY;AAAA;AAEnC;AAEO,MAAM,sBAAsB,OACjC,SACA,YACA,WACA,aACkB;AAClB,QAAM,SAAS,QAAQ,OAAO,MAAM;AAElC,QAAI,EAAE,IAAI;AAER,YAAM,OAAO,aAAa,MAAM,YAAY,eAAe,EAAE,IAAI;AAAA,QAC/D,QAAQ;AAAA,QACR;AAAA,MACF;AAEA,aAAM,mCAAS,kBAAkB,MAAM,OAAO;AAAA,QAC5C,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,MAAM;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,UACN;AAAA,UACA,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,OAAO;AAAA,QACT;AAAA,QACA,QAAQ,CAAC;AAAA,MACX;AAEA,aAAM,mCAAS,cAAc,MAAM,OAAO,EAAE,IAAI;AAEhD,UAAI,EAAE,UAAU;AAEd,eAAM,mCAAS,kBAAkB,MAAM,aAAa;AAAA,UAClD,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,MAAM;AAAA,cACJ,IAAI;AAAA,cACJ,IAAI;AAAA,YACN;AAAA,YACA,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO;AAAA,UACT;AAAA,UACA,QAAQ,CAAC;AAAA,QACX;AAEA,eAAM,mCAAS,cAAc,MAAM,aAAa,EAAE,UAAU;AAAA,MAC9D;AAEA,UAAI,EAAE,SAAS;AAEb,eAAM,mCAAS,kBAAkB,MAAM,YAAY;AAAA,UACjD,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,MAAM;AAAA,cACJ,IAAI;AAAA,cACJ,IAAI;AAAA,YACN;AAAA,YACA,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO;AAAA,UACT;AAAA,UACA,QAAQ,CAAC;AAAA,QACX;AAGA,eAAM,mCAAS;AAAA,UACb,MAAM;AAAA,UACN,EAAE,UAAU,KAAK;AAAA,UACjB;AAAA;AAAA,MAEJ;AAEA,UAAI,EAAE,QAAQ;AACZ,eAAM,mCAAS,kBAAkB,MAAM,WAAW;AAAA,UAChD,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO;AAAA,UACT;AAAA,UACA,QAAQ,CAAC;AAAA,QACX;AAEA,eAAM,mCAAS,cAAc,MAAM,WAAW,EAAE,SAAS,KAAK;AAAA,MAChE;AAEA,UAAI,EAAE,QAAQ;AACZ,eAAM,mCAAS,kBAAkB,MAAM,WAAW;AAAA,UAChD,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO;AAAA,UACT;AAAA,UACA,QAAQ,CAAC;AAAA,QACX;AAEA,eAAM,mCAAS,cAAc,MAAM,WAAW,EAAE,SAAS,KAAK;AAAA,MAChE;AAEA,UAAI,EAAE,UAAU;AACd,eAAM,mCAAS,kBAAkB,MAAM,aAAa;AAAA,UAClD,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO;AAAA,UACT;AAAA,UACA,QAAQ,CAAC;AAAA,QACX;AAEA,eAAM,mCAAS;AAAA,UACb,MAAM;AAAA,UACN,EAAE,WAAW;AAAA,UACb;AAAA;AAAA,MAEJ;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,MAAM,wBAAwB,OACnC,YACkB;AAElB,QAAM,gBAA0B;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,UAAQ,WAAW,QAAQ,YAAY,YAAY;AACjD,yCAAc,OAAO,EAClB,KAAK,CAAC,eAA0C;AAC/C,iBAAW,QAAQ,OAAO,WAAoC;AAC5D,cAAM,aAAa,OAAM,mCAAS;AAAA,UAChC,OAAO,aAAa,MAAM,OAAO,YAAY;AAAA;AAG/C,cAAM,gBAAgB,KAAK,IAAI,IAAI,MAAO,KAAK;AAC/C,YACE,cACA,WAAW,OACX,OAAO,WAAW,GAAG,IAAI,eACzB;AACA,kBAAQ,IAAI;AAAA,YACV,6BAA6B,OAAO,oBAAoB,IAAI;AAAA,cAC1D,OAAO,UAAU;AAAA,YACnB;AAAA,UACF;AAEA,gBAAM,cAAc,QAAQ,OAAO,cAAsB;AACvD,mBAAM,mCAAS;AAAA,cACb,OAAO,aAAa,MAAM,OAAO,YAAY,MAAM;AAAA,cACnD;AAAA,cACA;AAAA;AAAA,UAEJ,CAAC;AAGD,iBAAM,mCAAS;AAAA,YACb,OAAO,aAAa,MAAM,OAAO,YAAY;AAAA,YAC7C,OAAO;AAAA,YACP;AAAA;AAAA,QAEJ;AAAA,MACF,CAAC;AAAA,IACH,CAAC,EACA,MAAM,MAAM;AAtcnB;AAucQ,oBAAQ,QAAR,mBAAa,MAAM;AACnB,aAAO;AAAA,IACT,CAAC;AAAA,EACL,GAAG,GAAK;AACV;AAEO,MAAM,uBAAuB,OAClC,SACA,YACA,WACA,OACA,QACkB;AAClB,qCAAS;AAAA,IACP,aAAa,MAAM,YAAY,MAAM;AAAA,IACrC;AAAA,IACA;AAAA;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -42,7 +42,7 @@ const onSubscribe = (error) => {
|
|
|
42
42
|
if (error) {
|
|
43
43
|
adapter == null ? void 0 : adapter.log.error("Subscription to MQTT failed! Error: " + error);
|
|
44
44
|
} else {
|
|
45
|
-
adapter == null ? void 0 : adapter.log.
|
|
45
|
+
adapter == null ? void 0 : adapter.log.debug("Subscription successful!");
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
const onMessage = async (topic, message) => {
|
|
@@ -183,12 +183,12 @@ const setOutputLimit = async (adapter2, productKey, deviceKey, limit) => {
|
|
|
183
183
|
}
|
|
184
184
|
const topic = `iot/${productKey}/${deviceKey}/properties/write`;
|
|
185
185
|
const outputlimit = { properties: { outputLimit: limit } };
|
|
186
|
-
adapter2.log.
|
|
186
|
+
adapter2.log.debug(
|
|
187
187
|
`Setting Output Limit for device key ${deviceKey} to ${limit}!`
|
|
188
188
|
);
|
|
189
189
|
client == null ? void 0 : client.publish(topic, JSON.stringify(outputlimit));
|
|
190
190
|
} else {
|
|
191
|
-
adapter2.log.
|
|
191
|
+
adapter2.log.debug(
|
|
192
192
|
`Output Limit for device key ${deviceKey} is already at ${limit}!`
|
|
193
193
|
);
|
|
194
194
|
}
|
|
@@ -224,9 +224,9 @@ const connectMqttClient = (_adapter) => {
|
|
|
224
224
|
);
|
|
225
225
|
const reportTopic = `/${device.productKey}/${device.deviceKey}/properties/report`;
|
|
226
226
|
const iotTopic = `iot/${device.productKey}/${device.deviceKey}/#`;
|
|
227
|
-
adapter.log.
|
|
227
|
+
adapter.log.debug(`Subscribing to MQTT Topic: ${reportTopic}`);
|
|
228
228
|
client == null ? void 0 : client.subscribe(reportTopic, onSubscribe);
|
|
229
|
-
adapter.log.
|
|
229
|
+
adapter.log.debug(`Subscribing to MQTT Topic: ${iotTopic}`);
|
|
230
230
|
client == null ? void 0 : client.subscribe(iotTopic, onSubscribe);
|
|
231
231
|
}
|
|
232
232
|
});
|