myenergi-api 1.0.3 → 2.0.0
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/dist/MyEnergi.d.ts +1 -1
- package/dist/MyEnergi.js +132 -70
- package/dist/models/Zappi.d.ts +2 -1
- package/package.json +11 -10
package/dist/MyEnergi.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { Zappi } from "./models/Zappi";
|
|
|
5
5
|
export declare class MyEnergi {
|
|
6
6
|
private _config;
|
|
7
7
|
private _digest;
|
|
8
|
-
constructor(username: string, password: string);
|
|
8
|
+
constructor(username: string, password: string, apiBaseUrl?: string);
|
|
9
9
|
getStatusAll(): Promise<any>;
|
|
10
10
|
getStatusZappiAll(): Promise<Zappi[]>;
|
|
11
11
|
getStatusZappi(serialNumber: string): Promise<Zappi | null>;
|
package/dist/MyEnergi.js
CHANGED
|
@@ -13,7 +13,7 @@ exports.MyEnergi = void 0;
|
|
|
13
13
|
const Digest_1 = require("./Digest");
|
|
14
14
|
const Types_1 = require("./models/Types");
|
|
15
15
|
class MyEnergi {
|
|
16
|
-
constructor(username, password) {
|
|
16
|
+
constructor(username, password, apiBaseUrl) {
|
|
17
17
|
this._config = {
|
|
18
18
|
username: "",
|
|
19
19
|
password: "",
|
|
@@ -30,138 +30,200 @@ class MyEnergi {
|
|
|
30
30
|
};
|
|
31
31
|
this._config.username = username;
|
|
32
32
|
this._config.password = password;
|
|
33
|
+
if (apiBaseUrl)
|
|
34
|
+
this._config.base_url = apiBaseUrl;
|
|
33
35
|
this._digest = new Digest_1.Digest(this._config.base_url, this._config.username, this._config.password);
|
|
34
36
|
}
|
|
35
37
|
getStatusAll() {
|
|
36
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
try {
|
|
40
|
+
const data = yield this._digest.get(this._config.status_url);
|
|
41
|
+
const jsonData = JSON.parse(data);
|
|
42
|
+
return jsonData;
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
40
47
|
});
|
|
41
48
|
}
|
|
42
49
|
getStatusZappiAll() {
|
|
43
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
try {
|
|
52
|
+
const data = yield this._digest.get(this._config.zappi_url);
|
|
53
|
+
const jsonData = JSON.parse(data);
|
|
54
|
+
if (jsonData.zappi)
|
|
55
|
+
return Object.assign([], jsonData.zappi);
|
|
56
|
+
else
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
49
60
|
return [];
|
|
61
|
+
}
|
|
50
62
|
});
|
|
51
63
|
}
|
|
52
64
|
getStatusZappi(serialNumber) {
|
|
53
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
try {
|
|
67
|
+
const data = yield this._digest.get(this._config.zappi_url);
|
|
68
|
+
const jsonData = JSON.parse(data);
|
|
69
|
+
if (jsonData.zappi) {
|
|
70
|
+
const zappi = Object.assign([], jsonData.zappi).find((zappi) => {
|
|
71
|
+
return zappi.sno == serialNumber;
|
|
72
|
+
});
|
|
73
|
+
if (zappi)
|
|
74
|
+
return Object.assign({}, zappi);
|
|
75
|
+
else
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
62
78
|
else
|
|
63
79
|
return null;
|
|
64
80
|
}
|
|
65
|
-
|
|
81
|
+
catch (error) {
|
|
66
82
|
return null;
|
|
83
|
+
}
|
|
67
84
|
});
|
|
68
85
|
}
|
|
69
86
|
setZappiChargeMode(serialNo, chargeMode) {
|
|
70
87
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
88
|
+
try {
|
|
89
|
+
const url = `${this._config.zappi_mode_url}${serialNo}-${chargeMode}-0-0-0000`;
|
|
90
|
+
const data = yield this._digest.get(url);
|
|
91
|
+
const jsonData = JSON.parse(data);
|
|
92
|
+
return jsonData;
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
return {};
|
|
96
|
+
}
|
|
75
97
|
});
|
|
76
98
|
}
|
|
77
99
|
setZappiBoostMode(serialNo, boostMode, kwh = 0, completeTime = "0000") {
|
|
78
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
101
|
+
try {
|
|
102
|
+
if (boostMode === Types_1.ZappiBoostMode.Stop) {
|
|
103
|
+
kwh = 0;
|
|
104
|
+
completeTime = "0000";
|
|
105
|
+
}
|
|
106
|
+
const url = `${this._config.zappi_mode_url}${serialNo}-0-${boostMode}-${kwh}-${completeTime}`;
|
|
107
|
+
const data = yield this._digest.get(url);
|
|
108
|
+
const jsonData = JSON.parse(data);
|
|
109
|
+
return jsonData;
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
return {};
|
|
113
|
+
}
|
|
87
114
|
});
|
|
88
115
|
}
|
|
89
116
|
setZappiGreenLevel(serialNo, percentage) {
|
|
90
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
118
|
+
try {
|
|
119
|
+
const url = `${this._config.zappi_min_green_url}${serialNo}-${percentage}`;
|
|
120
|
+
const data = yield this._digest.get(url);
|
|
121
|
+
const jsonData = JSON.parse(data);
|
|
122
|
+
return jsonData;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
return {};
|
|
126
|
+
}
|
|
95
127
|
});
|
|
96
128
|
}
|
|
97
129
|
getStatusEddiAll() {
|
|
98
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
131
|
+
try {
|
|
132
|
+
const data = yield this._digest.get(this._config.eddi_url);
|
|
133
|
+
const jsonData = JSON.parse(data);
|
|
134
|
+
if (jsonData.eddi)
|
|
135
|
+
return Object.assign([], jsonData.eddi);
|
|
136
|
+
else
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
104
140
|
return [];
|
|
141
|
+
}
|
|
105
142
|
});
|
|
106
143
|
}
|
|
107
144
|
getStatusEddi(serialNumber) {
|
|
108
145
|
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
146
|
+
try {
|
|
147
|
+
const data = yield this._digest.get(this._config.eddi_url);
|
|
148
|
+
const jsonData = JSON.parse(data);
|
|
149
|
+
if (jsonData.eddi) {
|
|
150
|
+
const eddi = Object.assign([], jsonData.eddi).find((eddi) => {
|
|
151
|
+
return eddi.sno == serialNumber;
|
|
152
|
+
});
|
|
153
|
+
if (eddi)
|
|
154
|
+
return Object.assign({}, eddi);
|
|
155
|
+
else
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
117
158
|
else
|
|
118
159
|
return null;
|
|
119
160
|
}
|
|
120
|
-
|
|
161
|
+
catch (error) {
|
|
121
162
|
return null;
|
|
163
|
+
}
|
|
122
164
|
});
|
|
123
165
|
}
|
|
124
166
|
setEddiMode(serialNo, mode) {
|
|
125
167
|
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
168
|
+
try {
|
|
169
|
+
const url = `${this._config.eddi_mode_url}${serialNo}-${mode}`;
|
|
170
|
+
const data = yield this._digest.get(url);
|
|
171
|
+
const jsonData = JSON.parse(data);
|
|
172
|
+
return jsonData;
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
return {};
|
|
176
|
+
}
|
|
130
177
|
});
|
|
131
178
|
}
|
|
132
179
|
setEddiBoost(serialNo, boost, minutes = 0) {
|
|
133
180
|
return __awaiter(this, void 0, void 0, function* () {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
181
|
+
try {
|
|
182
|
+
const url = `${this._config.eddi_boost_url}${serialNo}-${boost}-${minutes}`;
|
|
183
|
+
const data = yield this._digest.get(url);
|
|
184
|
+
const jsonData = JSON.parse(data);
|
|
185
|
+
return jsonData;
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
return {};
|
|
189
|
+
}
|
|
138
190
|
});
|
|
139
191
|
}
|
|
140
192
|
getStatusHarviAll() {
|
|
141
193
|
return __awaiter(this, void 0, void 0, function* () {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
194
|
+
try {
|
|
195
|
+
const data = yield this._digest.get(this._config.harvi_url);
|
|
196
|
+
const jsonData = JSON.parse(data);
|
|
197
|
+
if (jsonData.harvi)
|
|
198
|
+
return Object.assign([], jsonData.harvi);
|
|
199
|
+
else
|
|
200
|
+
return [];
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
147
203
|
return [];
|
|
204
|
+
}
|
|
148
205
|
});
|
|
149
206
|
}
|
|
150
207
|
getStatusHarvi(serialNumber) {
|
|
151
208
|
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
209
|
+
try {
|
|
210
|
+
const data = yield this._digest.get(this._config.harvi_url);
|
|
211
|
+
const jsonData = JSON.parse(data);
|
|
212
|
+
if (jsonData.harvi) {
|
|
213
|
+
const harvi = Object.assign([], jsonData.harvi).find((harvi) => {
|
|
214
|
+
return harvi.sno == serialNumber;
|
|
215
|
+
});
|
|
216
|
+
if (harvi)
|
|
217
|
+
return Object.assign({}, harvi);
|
|
218
|
+
else
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
160
221
|
else
|
|
161
222
|
return null;
|
|
162
223
|
}
|
|
163
|
-
|
|
224
|
+
catch (error) {
|
|
164
225
|
return null;
|
|
226
|
+
}
|
|
165
227
|
});
|
|
166
228
|
}
|
|
167
229
|
}
|
package/dist/models/Zappi.d.ts
CHANGED
|
@@ -31,8 +31,8 @@ export interface Zappi {
|
|
|
31
31
|
lck: number;
|
|
32
32
|
pst: string;
|
|
33
33
|
bsm: number;
|
|
34
|
-
bst: number;
|
|
35
34
|
bss: number;
|
|
35
|
+
bst: number;
|
|
36
36
|
sbh: number;
|
|
37
37
|
sbk: number;
|
|
38
38
|
sbm: number;
|
|
@@ -40,6 +40,7 @@ export interface Zappi {
|
|
|
40
40
|
tbk: number;
|
|
41
41
|
tbm: number;
|
|
42
42
|
zmo: number;
|
|
43
|
+
zsh: number;
|
|
43
44
|
rdc: number;
|
|
44
45
|
rac: number;
|
|
45
46
|
rrac: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myenergi-api",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "NodeJS implementation of MyEnergi API for controlling Zappi, Eddi and other MyEnergi products",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
|
-
"test": "
|
|
12
|
+
"test": "jest --runInBand --config jestconfig.json",
|
|
13
13
|
"format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
14
14
|
"lint": "tslint -p tsconfig.json",
|
|
15
15
|
"prepare": "tsc",
|
|
@@ -35,15 +35,16 @@
|
|
|
35
35
|
"homepage": "https://github.com/bisand/myenergi-api#readme",
|
|
36
36
|
"dependencies": {},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@types/
|
|
38
|
+
"@jest/test-sequencer": "^28.1.1",
|
|
39
|
+
"@types/jest": "^28.1.3",
|
|
40
40
|
"@types/node": "^16.11.12",
|
|
41
|
-
"dotenv": "^16.0.
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"prettier": "^2.
|
|
45
|
-
"ts-
|
|
41
|
+
"dotenv": "^16.0.2",
|
|
42
|
+
"jest": "^28.1.3",
|
|
43
|
+
"nock": "^13.2.9",
|
|
44
|
+
"prettier": "^2.7.1",
|
|
45
|
+
"ts-jest": "^28.0.8",
|
|
46
|
+
"ts-node": "^10.9.1",
|
|
46
47
|
"tslint": "^6.1.3",
|
|
47
|
-
"typescript": "^4.
|
|
48
|
+
"typescript": "^4.8.3"
|
|
48
49
|
}
|
|
49
50
|
}
|