homebridge-enphase-envoy 10.2.7-beta.1 → 10.2.7-beta.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/index.js +31 -34
- package/package.json +1 -1
- package/src/digestauth.js +2 -6
- package/src/envoydevice.js +2024 -1907
- package/src/functions.js +1 -1
package/index.js
CHANGED
|
@@ -91,41 +91,38 @@ class EnvoyPlatform {
|
|
|
91
91
|
|
|
92
92
|
try {
|
|
93
93
|
const url = envoyFirmware7xxTokenGenerationMode > 0 ? `https://${host}` : `http://${host}`;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
await impulseGenerator.state(false);
|
|
116
|
-
await envoyDevice.startStopImpulseGenerator(true);
|
|
117
|
-
}
|
|
118
|
-
} catch (error) {
|
|
119
|
-
if (logLevel.error) log.error(`Device: ${host} ${accessoryName}, Start impulse generator error: ${error}, retrying.`);
|
|
94
|
+
|
|
95
|
+
// create impulse generator
|
|
96
|
+
const impulseGenerator = new ImpulseGenerator()
|
|
97
|
+
.on('start', async () => {
|
|
98
|
+
try {
|
|
99
|
+
const envoyDevice = new EnvoyDevice(api, log, url, deviceName, device, envoyIdFile, envoyTokenFile, prefDir, energyMeterHistoryFileName)
|
|
100
|
+
.on('devInfo', (info) => logLevel.devInfo && log.info(info))
|
|
101
|
+
.on('success', (msg) => logLevel.success && log.success(`Device: ${host} ${deviceName}, ${msg}`))
|
|
102
|
+
.on('info', (msg) => logLevel.info && log.info(`Device: ${host} ${deviceName}, ${msg}`))
|
|
103
|
+
.on('debug', (msg, data) => logLevel.debug && log.info(`Device: ${host} ${deviceName}, debug: ${data ? `${msg} ${JSON.stringify(data, null, 2)}` : msg}`))
|
|
104
|
+
.on('warn', (msg) => logLevel.warn && log.warn(`Device: ${host} ${deviceName}, ${msg}`))
|
|
105
|
+
.on('error', (msg) => logLevel.error && log.error(`Device: ${host} ${deviceName}, ${msg}`));
|
|
106
|
+
|
|
107
|
+
const accessory = await envoyDevice.start();
|
|
108
|
+
if (accessory) {
|
|
109
|
+
api.publishExternalAccessories(PluginName, accessory);
|
|
110
|
+
if (logLevel.success) log.success(`Device: ${host} ${deviceName}, Published as external accessory.`);
|
|
111
|
+
|
|
112
|
+
await impulseGenerator.state(false);
|
|
113
|
+
await envoyDevice.startStopImpulseGenerator(true);
|
|
120
114
|
}
|
|
121
|
-
})
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
115
|
+
} catch (error) {
|
|
116
|
+
if (logLevel.error) log.error(`Device: ${host} ${deviceName}, Start impulse generator error: ${error}, retrying.`);
|
|
117
|
+
}
|
|
118
|
+
})
|
|
119
|
+
.on('state', state => {
|
|
120
|
+
if (logLevel.debug) log.info(`Device: ${host} ${deviceName}, Start impulse generator ${state ? 'started' : 'stopped'}.`);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// start impulse generator
|
|
124
|
+
await impulseGenerator.state(true, [{ name: 'start', sampling: 120000 }]);
|
|
125
|
+
|
|
129
126
|
} catch (error) {
|
|
130
127
|
if (logLevel.error) log.error(`Device: ${host} ${deviceName}, Did finish launching error: ${error}`);
|
|
131
128
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"private": false,
|
|
3
3
|
"displayName": "Enphase Envoy",
|
|
4
4
|
"name": "homebridge-enphase-envoy",
|
|
5
|
-
"version": "10.2.7-beta.
|
|
5
|
+
"version": "10.2.7-beta.2",
|
|
6
6
|
"description": "Homebridge p7ugin for Photovoltaic Energy System manufactured by Enphase.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "grzegorz914",
|
package/src/digestauth.js
CHANGED
|
@@ -16,14 +16,10 @@ class DigestAuth {
|
|
|
16
16
|
return await axios.request(url, options);
|
|
17
17
|
} catch (error) {
|
|
18
18
|
const resError = error.response;
|
|
19
|
-
if (!resError || resError.status !== 401) {
|
|
20
|
-
throw new Error(`Digest authentication response error: ${resError ? resError.status : 'Unknown error'}`);
|
|
21
|
-
}
|
|
19
|
+
if (!resError || resError.status !== 401) throw new Error(`Digest authentication response error: ${resError ? resError.status : 'Unknown error'}`);
|
|
22
20
|
|
|
23
21
|
const resHeaders = resError.headers["www-authenticate"];
|
|
24
|
-
if (!resHeaders || !resHeaders.includes('nonce')) {
|
|
25
|
-
throw new Error(`Digest authentication headers error: ${resHeaders || 'Header not found'}`);
|
|
26
|
-
}
|
|
22
|
+
if (!resHeaders || !resHeaders.includes('nonce')) throw new Error(`Digest authentication headers error: ${resHeaders || 'Header not found'}`);
|
|
27
23
|
|
|
28
24
|
try {
|
|
29
25
|
const authDetails = {};
|