homebridge-solaxcloud-api 1.4.1-beta.0 → 1.4.3
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 +4 -4
- package/dist/motionAccessory.d.ts +24 -3
- package/dist/motionAccessory.d.ts.map +1 -1
- package/dist/motionAccessory.js +26 -4
- package/dist/motionAccessory.js.map +1 -1
- package/dist/outletAccessory.d.ts +11 -2
- package/dist/outletAccessory.d.ts.map +1 -1
- package/dist/outletAccessory.js +14 -10
- package/dist/outletAccessory.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +7 -12
- package/dist/platform.js.map +1 -1
- package/dist/platformAccessory.d.ts +38 -9
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +27 -7
- package/dist/platformAccessory.js.map +1 -1
- package/dist/util.d.ts +18 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +35 -0
- package/dist/util.js.map +1 -0
- package/images/homebridge-ui.png +0 -0
- package/images/plugin-outlet-consumption.png +0 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
<table>
|
|
2
|
+
<table cellspacing="0" cellpadding="0">
|
|
3
3
|
<tr>
|
|
4
4
|
<td align="center"><img src="https://github.com/homebridge/branding/raw/master/logos/homebridge-wordmark-logo-vertical.png" width="150"></td>
|
|
5
5
|
<td align="center"><img src="https://www.solaxpower.com/wp-content/uploads/2020/03/weblogo5.png" width="300"></td>
|
|
@@ -73,7 +73,7 @@ This will allow some important non-standard characteristics to be visible (like
|
|
|
73
73
|
|
|
74
74
|
# Automation
|
|
75
75
|
|
|
76
|
-
Automation can be achieved with the help of the virtual
|
|
76
|
+
Automation can be achieved with the help of the virtual **Update** motion sensor that was specifically tailored for this effect. This motion sensor will be triggered whenever data gets updated from the Solax Cloud API (according to what is defined on the `pollingFrequency` configuration setting).
|
|
77
77
|
|
|
78
78
|

|
|
79
79
|
|
|
@@ -81,12 +81,12 @@ Motion is detected by the **Update** motion sensor whenever there is newly fetch
|
|
|
81
81
|
|
|
82
82
|
## Automation example
|
|
83
83
|
|
|
84
|
-
As an automation example...
|
|
84
|
+
Since automations are probably going to be dependent on the non-standard characteristic from the virtual outlets, these can be created by using the Eve App. As an automation example...
|
|
85
85
|
|
|
86
86
|
# TO DO
|
|
87
87
|
|
|
88
88
|
Next planned plugin releases should include:
|
|
89
89
|
|
|
90
90
|
- [X] **Inverter AC** to include Yield Energy
|
|
91
|
-
- [
|
|
91
|
+
- [X] Consumption history through the [fakegato-history](https://github.com/simont77/fakegato-history) module
|
|
92
92
|
- [ ] Accessories for battery state and consumptions (do not have one available)
|
|
@@ -5,19 +5,30 @@ import { SolaxPlatformAccessory } from './platformAccessory';
|
|
|
5
5
|
/**
|
|
6
6
|
* Solax Motion Accessory.
|
|
7
7
|
* Virtual motion sensor triggered whenever new data is fetched from Solax Cloud.
|
|
8
|
-
* Sensor will automatically clear itself after MOTION_TIMEOUT seconds (5 seconds).
|
|
8
|
+
* Sensor will automatically clear itself after MOTION_TIMEOUT seconds (defaults to 5 seconds).
|
|
9
9
|
*/
|
|
10
10
|
export declare class SolaxMotionAccessory extends SolaxPlatformAccessory implements AccessoryPlugin {
|
|
11
|
+
/**
|
|
12
|
+
* Homekit Motion Service for this accessory.
|
|
13
|
+
*/
|
|
11
14
|
private readonly motionService;
|
|
12
15
|
/**
|
|
13
16
|
* Whether motion is detected (Solax Cloud data updated).
|
|
14
17
|
*/
|
|
15
18
|
private motion;
|
|
16
19
|
/**
|
|
17
|
-
*
|
|
20
|
+
* Interval before clearing motion (in seconds).
|
|
18
21
|
*/
|
|
19
22
|
private motionTimeout;
|
|
20
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Solax virtual motion sensor class constructor.
|
|
25
|
+
* @param {SolaxCloudApiPlatform} platform The API Platform for Solax Cloud.
|
|
26
|
+
* @param {Logging} log The platform logging for homebridge.
|
|
27
|
+
* @param {string} name The accessory name.
|
|
28
|
+
* @param {string} serial "Real-world" serial number for this accessory.
|
|
29
|
+
* @param {string} model Accessory model.
|
|
30
|
+
*/
|
|
31
|
+
constructor(platform: SolaxCloudAPIPlatform, log: Logging, name: string, serial: string, model: string);
|
|
21
32
|
sleep: typeof import("timers/promises").setTimeout;
|
|
22
33
|
/**
|
|
23
34
|
* Gets the motion sensor state Characteristic.
|
|
@@ -29,6 +40,16 @@ export declare class SolaxMotionAccessory extends SolaxPlatformAccessory impleme
|
|
|
29
40
|
* @param {boolean} motion Whether motion was detected.
|
|
30
41
|
*/
|
|
31
42
|
setState(motion: boolean): void;
|
|
43
|
+
/**
|
|
44
|
+
* Sets the motion timeout.
|
|
45
|
+
* @param {number} timeout Number of seconds before clearing motion.
|
|
46
|
+
*/
|
|
47
|
+
setMotionTimeout(timeout: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* Gets the motion timeout.
|
|
50
|
+
* @return {number} Number of seconds before clearing motion.
|
|
51
|
+
*/
|
|
52
|
+
getMotionTimeout(): number;
|
|
32
53
|
getServices(): Service[];
|
|
33
54
|
}
|
|
34
55
|
//# sourceMappingURL=motionAccessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motionAccessory.d.ts","sourceRoot":"","sources":["../src/motionAccessory.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAI1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAO7D;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,eAAe;IAEzF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;OAEG;IACH,OAAO,CAAC,aAAa,CAA0B;
|
|
1
|
+
{"version":3,"file":"motionAccessory.d.ts","sourceRoot":"","sources":["../src/motionAccessory.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAI1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAO7D;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,eAAe;IAEzF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB;;OAEG;IACH,OAAO,CAAC,aAAa,CAA0B;IAE/C;;;;;;;OAOG;gBACS,QAAQ,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAetG,KAAK,8CAA8B;IAEnC;;;OAGG;IACI,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAM1D;;;OAGG;IACI,QAAQ,CAAC,MAAM,EAAE,OAAO;IAe/B;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAIhC;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAQ1B,WAAW,IAAI,OAAO,EAAE;CAOzB"}
|
package/dist/motionAccessory.js
CHANGED
|
@@ -13,17 +13,25 @@ const MOTION_TIMEOUT = 5;
|
|
|
13
13
|
/**
|
|
14
14
|
* Solax Motion Accessory.
|
|
15
15
|
* Virtual motion sensor triggered whenever new data is fetched from Solax Cloud.
|
|
16
|
-
* Sensor will automatically clear itself after MOTION_TIMEOUT seconds (5 seconds).
|
|
16
|
+
* Sensor will automatically clear itself after MOTION_TIMEOUT seconds (defaults to 5 seconds).
|
|
17
17
|
*/
|
|
18
18
|
class SolaxMotionAccessory extends platformAccessory_1.SolaxPlatformAccessory {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Solax virtual motion sensor class constructor.
|
|
21
|
+
* @param {SolaxCloudApiPlatform} platform The API Platform for Solax Cloud.
|
|
22
|
+
* @param {Logging} log The platform logging for homebridge.
|
|
23
|
+
* @param {string} name The accessory name.
|
|
24
|
+
* @param {string} serial "Real-world" serial number for this accessory.
|
|
25
|
+
* @param {string} model Accessory model.
|
|
26
|
+
*/
|
|
27
|
+
constructor(platform, log, name, serial, model) {
|
|
28
|
+
super(platform, log, name, serial, model);
|
|
21
29
|
/**
|
|
22
30
|
* Whether motion is detected (Solax Cloud data updated).
|
|
23
31
|
*/
|
|
24
32
|
this.motion = false;
|
|
25
33
|
/**
|
|
26
|
-
*
|
|
34
|
+
* Interval before clearing motion (in seconds).
|
|
27
35
|
*/
|
|
28
36
|
this.motionTimeout = MOTION_TIMEOUT;
|
|
29
37
|
this.sleep = util_1.default.promisify(setTimeout);
|
|
@@ -58,6 +66,20 @@ class SolaxMotionAccessory extends platformAccessory_1.SolaxPlatformAccessory {
|
|
|
58
66
|
this.sleep(this.motionTimeout * 1000).then(() => this.setState(false));
|
|
59
67
|
}
|
|
60
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets the motion timeout.
|
|
71
|
+
* @param {number} timeout Number of seconds before clearing motion.
|
|
72
|
+
*/
|
|
73
|
+
setMotionTimeout(timeout) {
|
|
74
|
+
this.motionTimeout = timeout;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Gets the motion timeout.
|
|
78
|
+
* @return {number} Number of seconds before clearing motion.
|
|
79
|
+
*/
|
|
80
|
+
getMotionTimeout() {
|
|
81
|
+
return this.motionTimeout;
|
|
82
|
+
}
|
|
61
83
|
/*
|
|
62
84
|
* This method is called directly after creation of this instance.
|
|
63
85
|
* It should return all services which should be added to the accessory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motionAccessory.js","sourceRoot":"","sources":["../src/motionAccessory.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AAGxB,2DAA6D;AAE7D;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,0CAAsB;
|
|
1
|
+
{"version":3,"file":"motionAccessory.js","sourceRoot":"","sources":["../src/motionAccessory.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AAGxB,2DAA6D;AAE7D;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,0CAAsB;IAiB9D;;;;;;;OAOG;IACH,YAAY,QAA+B,EAAE,GAAY,EAAE,IAAY,EAAE,MAAc,EAAE,KAAa;QACpG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAnB5C;;WAEG;QACK,WAAM,GAAG,KAAK,CAAC;QAEvB;;WAEG;QACK,kBAAa,GAAW,cAAc,CAAC;QAyB/C,UAAK,GAAG,cAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAZjC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAElC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAExD,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa;aACf,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;aACpD,EAAE,kBAAmC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAElE,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,YAAY,CAAC,CAAC;IAC/C,CAAC;IAID;;;OAGG;IACI,QAAQ,CAAC,QAAmC;QACjD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,uBAAuB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAElE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,MAAe;QAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,uBAAuB,MAAM,GAAG,CAAC,CAAC;QAE7D,IAAI,CAAC,aAAa;aACf,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;aACtE,WAAW,CAAC,MAAM,CAAC,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,4BAA4B;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;SACxE;IACH,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,OAAe;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,OAAO;YACL,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,aAAa;SACnB,CAAC;IACJ,CAAC;CAEF;AAlGD,oDAkGC"}
|
|
@@ -23,7 +23,15 @@ export declare class SolaxOutletAccessory extends SolaxPlatformAccessory impleme
|
|
|
23
23
|
* Elgato Eve fake history service for energy and status.
|
|
24
24
|
*/
|
|
25
25
|
private readonly loggingService;
|
|
26
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Solax virtual outlet class constructor.
|
|
28
|
+
* @param {SolaxCloudApiPlatform} platform The API Platform for Solax Cloud.
|
|
29
|
+
* @param {Logging} log The platform logging for homebridge.
|
|
30
|
+
* @param {string} name The accessory name.
|
|
31
|
+
* @param {string} serial "Real world" serial number for this accessory.
|
|
32
|
+
* @param {string} model Accessory model.
|
|
33
|
+
*/
|
|
34
|
+
constructor(platform: SolaxCloudAPIPlatform, log: Logging, name: string, serial: string, model: string);
|
|
27
35
|
/**
|
|
28
36
|
* Sets a characteristic value for a sepecific characteristic.
|
|
29
37
|
* @param {string} charName The characteristic name.
|
|
@@ -44,7 +52,8 @@ export declare class SolaxOutletAccessory extends SolaxPlatformAccessory impleme
|
|
|
44
52
|
getTotalEnergyConsumption(callback: CharacteristicGetCallback): void;
|
|
45
53
|
/**
|
|
46
54
|
* Sets the total energy consumption.
|
|
47
|
-
* @param {number} totalEnergyConsumption The total energy consumption to set.
|
|
55
|
+
* @param {number} totalEnergyConsumption The total energy consumption to set.
|
|
56
|
+
*/
|
|
48
57
|
setTotalEnergyConsumption(totalEnergyConsumption: number): void;
|
|
49
58
|
/**
|
|
50
59
|
* Gets the outlet state Characteristic based on its consumed power.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outletAccessory.d.ts","sourceRoot":"","sources":["../src/outletAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,yBAAyB,EAAkB,MAAM,YAAY,CAAC;AAE1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAI7D;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,eAAe;IAEzF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAK;IAE7B;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAAO;IAErC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;
|
|
1
|
+
{"version":3,"file":"outletAccessory.d.ts","sourceRoot":"","sources":["../src/outletAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,yBAAyB,EAAkB,MAAM,YAAY,CAAC;AAE1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAI7D;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,eAAe;IAEzF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAK;IAE7B;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAAO;IAErC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IAExD;;;;;;;OAOG;gBACS,QAAQ,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IA8BtG;;;;OAIG;IACI,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAS7D;;OAEG;IACI,mBAAmB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMrE;;wEAEoE;IAC7D,mBAAmB,CAAC,gBAAgB,EAAE,MAAM;IAYnD;;OAEG;IACI,yBAAyB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAM3E;;;OAGG;IACI,yBAAyB,CAAC,sBAAsB,EAAE,MAAM;IAQ/D;;;OAGG;IACI,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAU1D,WAAW,IAAI,OAAO,EAAE;CAQzB"}
|
package/dist/outletAccessory.js
CHANGED
|
@@ -8,9 +8,16 @@ const platformAccessory_1 = require("./platformAccessory");
|
|
|
8
8
|
* Outlet use is inferred from a positive power comsumption.
|
|
9
9
|
*/
|
|
10
10
|
class SolaxOutletAccessory extends platformAccessory_1.SolaxPlatformAccessory {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Solax virtual outlet class constructor.
|
|
13
|
+
* @param {SolaxCloudApiPlatform} platform The API Platform for Solax Cloud.
|
|
14
|
+
* @param {Logging} log The platform logging for homebridge.
|
|
15
|
+
* @param {string} name The accessory name.
|
|
16
|
+
* @param {string} serial "Real world" serial number for this accessory.
|
|
17
|
+
* @param {string} model Accessory model.
|
|
18
|
+
*/
|
|
19
|
+
constructor(platform, log, name, serial, model) {
|
|
20
|
+
super(platform, log, name, serial, model);
|
|
14
21
|
/**
|
|
15
22
|
* Current power reading in Watt.
|
|
16
23
|
*/
|
|
@@ -33,11 +40,8 @@ class SolaxOutletAccessory extends platformAccessory_1.SolaxPlatformAccessory {
|
|
|
33
40
|
// total consumption
|
|
34
41
|
this.outletService.getCharacteristic(this.platform.eve.Characteristics.TotalConsumption)
|
|
35
42
|
.on("get" /* GET */, this.getTotalEnergyConsumption.bind(this));
|
|
36
|
-
// reset
|
|
37
|
-
//this.powerMeterService.addOptionalCharacteristic(this.platform.eve.Characteristics.ResetTotal);
|
|
38
43
|
// history logging services
|
|
39
|
-
this.loggingService = new this.platform.eveService('energy', this, { storage: 'fs' });
|
|
40
|
-
//this.services.push(this.loggingService);
|
|
44
|
+
this.loggingService = new this.platform.eveService('energy', this, { storage: 'fs', log: this.log });
|
|
41
45
|
log.info(`Outlet "${name}" created!`);
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
@@ -68,7 +72,7 @@ class SolaxOutletAccessory extends platformAccessory_1.SolaxPlatformAccessory {
|
|
|
68
72
|
this.setCharacteristicValue(this.platform.eve.Characteristics.CurrentConsumption, this.powerConsumption);
|
|
69
73
|
// add entries to history
|
|
70
74
|
this.loggingService.
|
|
71
|
-
addEntry({ time: Math.round(new Date().valueOf() / 1000), power: this.powerConsumption
|
|
75
|
+
addEntry({ time: Math.round(new Date().valueOf() / 1000), power: this.powerConsumption });
|
|
72
76
|
}
|
|
73
77
|
/**
|
|
74
78
|
* Gets the total energy consumpion.
|
|
@@ -76,11 +80,11 @@ class SolaxOutletAccessory extends platformAccessory_1.SolaxPlatformAccessory {
|
|
|
76
80
|
getTotalEnergyConsumption(callback) {
|
|
77
81
|
this.log.debug(`${this.name}: GET Total Energy (energy=${this.totalEnergyConsumption}kWh)`);
|
|
78
82
|
callback(null, this.totalEnergyConsumption);
|
|
79
|
-
//this.log.debug(JSON.stringify(this.energyHistoryService));
|
|
80
83
|
}
|
|
81
84
|
/**
|
|
82
85
|
* Sets the total energy consumption.
|
|
83
|
-
* @param {number} totalEnergyConsumption The total energy consumption to set.
|
|
86
|
+
* @param {number} totalEnergyConsumption The total energy consumption to set.
|
|
87
|
+
*/
|
|
84
88
|
setTotalEnergyConsumption(totalEnergyConsumption) {
|
|
85
89
|
this.log.debug(`${this.name}: SET Total Energy (energy=${totalEnergyConsumption}kWh)`);
|
|
86
90
|
this.totalEnergyConsumption = totalEnergyConsumption;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outletAccessory.js","sourceRoot":"","sources":["../src/outletAccessory.ts"],"names":[],"mappings":";;;AAGA,2DAA6D;AAI7D;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,0CAAsB;IAsB9D
|
|
1
|
+
{"version":3,"file":"outletAccessory.js","sourceRoot":"","sources":["../src/outletAccessory.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAY,MAAM,YAAY,CAAC;AAE3G,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAcxC;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,oBAAoB;IAChE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,SAAgB,GAAG,EAAE,GAAG,CAAC;IAEzB,SAAgB,GAAG,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,QAAQ,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,OAAO,CAAyB;IAExC;;MAEE;IACF,OAAO,CAAC,QAAQ,CAAwB;IAExC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAwB;IAEhD;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAAwB;IAEpD;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAwB;IAErD;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAwB;IAEjD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAwB;IAE5C;;;;;;OAMG;gBACU,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAY,MAAM,YAAY,CAAC;AAE3G,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAcxC;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,oBAAoB;IAChE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,SAAgB,GAAG,EAAE,GAAG,CAAC;IAEzB,SAAgB,GAAG,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,QAAQ,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,OAAO,CAAyB;IAExC;;MAEE;IACF,OAAO,CAAC,QAAQ,CAAwB;IAExC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAwB;IAEhD;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAAwB;IAEpD;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAAwB;IAErD;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAwB;IAEjD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAwB;IAE5C;;;;;;OAMG;gBACU,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG;IAyD3D,KAAK,8CAA8B;IAEnC;;OAEG;YACW,qBAAqB;IAyCnC,WAAW,CAAC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,KAAK,IAAI,GAAG,IAAI;CAK3E"}
|
package/dist/platform.js
CHANGED
|
@@ -48,20 +48,21 @@ class SolaxCloudAPIPlatform {
|
|
|
48
48
|
this.apiData = this.solaxCloudAPI.getAPIData();
|
|
49
49
|
this.log.debug(`apiData = ${JSON.stringify(this.apiData)}`);
|
|
50
50
|
const inverterSN = this.apiData.result.inverterSN.toLowerCase();
|
|
51
|
+
const inverterModel = solaxcloudapi_1.SolaxCloudAPI.getInverterType(this.apiData.result.inverterType);
|
|
51
52
|
// setup outlet accessories
|
|
52
53
|
this.outletPV =
|
|
53
|
-
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} PV`, `pv-${inverterSN}
|
|
54
|
+
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} PV`, `pv-${inverterSN}`, inverterModel);
|
|
54
55
|
this.outletInverterAC =
|
|
55
|
-
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} Inverter AC`, `inv-ac-${inverterSN}
|
|
56
|
+
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} Inverter AC`, `inv-ac-${inverterSN}`, inverterModel);
|
|
56
57
|
this.outletInverterToGrid =
|
|
57
|
-
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} Inverter to Grid`, `inv-grid-${inverterSN}
|
|
58
|
+
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} Inverter to Grid`, `inv-grid-${inverterSN}`, inverterModel);
|
|
58
59
|
this.outletInverterToHouse =
|
|
59
|
-
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} Inverter to House`, `inv-house-${inverterSN}
|
|
60
|
+
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} Inverter to House`, `inv-house-${inverterSN}`, inverterModel);
|
|
60
61
|
this.outletGridToHouse =
|
|
61
|
-
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} Grid to House`, `grid-house-${inverterSN}
|
|
62
|
+
new outletAccessory_1.SolaxOutletAccessory(this, this.log, `${this.config.name} Grid to House`, `grid-house-${inverterSN}`, inverterModel);
|
|
62
63
|
// setup update motion sensor
|
|
63
64
|
this.motionUpdate =
|
|
64
|
-
new motionAccessory_1.SolaxMotionAccessory(this, this.log, `${this.config.name} Update`, `update-${inverterSN}
|
|
65
|
+
new motionAccessory_1.SolaxMotionAccessory(this, this.log, `${this.config.name} Update`, `update-${inverterSN}`, inverterModel);
|
|
65
66
|
// start data fetching
|
|
66
67
|
this.fetchDataPeriodically();
|
|
67
68
|
this.log.debug('Finished initializing platform.'),
|
|
@@ -81,19 +82,13 @@ class SolaxCloudAPIPlatform {
|
|
|
81
82
|
this.log.debug(`Retrieved inverter status: ${JSON.stringify(this.apiData.result)}`);
|
|
82
83
|
// update outlets
|
|
83
84
|
this.outletPV.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getPVPower(this.apiData.result));
|
|
84
|
-
this.outletPV.setModel(solaxcloudapi_1.SolaxCloudAPI.getInverterType(this.apiData.result.inverterType));
|
|
85
85
|
this.outletInverterAC.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getInverterACPower(this.apiData.result));
|
|
86
86
|
this.outletInverterAC.setTotalEnergyConsumption(solaxcloudapi_1.SolaxCloudAPI.getYieldTotal(this.apiData.result));
|
|
87
|
-
this.outletInverterAC.setModel(solaxcloudapi_1.SolaxCloudAPI.getInverterType(this.apiData.result.inverterType));
|
|
88
87
|
this.outletInverterToGrid.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToGrid(this.apiData.result));
|
|
89
|
-
this.outletInverterToGrid.setModel(solaxcloudapi_1.SolaxCloudAPI.getInverterType(this.apiData.result.inverterType));
|
|
90
88
|
this.outletInverterToHouse.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getInverterPowerToHouse(this.apiData.result));
|
|
91
|
-
this.outletInverterToHouse.setModel(solaxcloudapi_1.SolaxCloudAPI.getInverterType(this.apiData.result.inverterType));
|
|
92
89
|
this.outletGridToHouse.setPowerConsumption(solaxcloudapi_1.SolaxCloudAPI.getGridPowerToHouse(this.apiData.result));
|
|
93
|
-
this.outletGridToHouse.setModel(solaxcloudapi_1.SolaxCloudAPI.getInverterType(this.apiData.result.inverterType));
|
|
94
90
|
// update motion sensor
|
|
95
91
|
this.motionUpdate.setState(true);
|
|
96
|
-
this.motionUpdate.setModel(solaxcloudapi_1.SolaxCloudAPI.getInverterType(this.apiData.result.inverterType));
|
|
97
92
|
}
|
|
98
93
|
else {
|
|
99
94
|
throw new Error(this.apiData.exception);
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";;;;;;AAEA,mDAAiD;AACjD,wEAAwC;AAExC,uDAAyD;AAEzD,gDAAwB;AAExB,mDAAuE;AACvE,uDAAyD;AAEzD;;GAEG;AACH,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;;;GAIG;AACH,MAAa,qBAAqB;IAyChC;;;;;;OAMG;IACH,YAAa,GAAY,EAAE,MAAsB,EAAE,GAAQ;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,47 @@
|
|
|
1
1
|
import { Service, AccessoryPlugin, Logging } from 'homebridge';
|
|
2
2
|
import { SolaxCloudAPIPlatform } from './platform';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Solax Cloud generic platform accessory.
|
|
5
|
+
* Handles basic info: accessory name, manufacturer (Solax), inverter model and serial number.
|
|
6
6
|
*/
|
|
7
7
|
export declare class SolaxPlatformAccessory implements AccessoryPlugin {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
readonly
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Accessory platform.
|
|
10
|
+
*/
|
|
11
|
+
protected readonly platform: SolaxCloudAPIPlatform;
|
|
12
|
+
/**
|
|
13
|
+
* Accessory logging.
|
|
14
|
+
*/
|
|
15
|
+
protected readonly log: Logging;
|
|
16
|
+
/**
|
|
17
|
+
* Accessory name.
|
|
18
|
+
*/
|
|
19
|
+
protected readonly name: string;
|
|
20
|
+
/**
|
|
21
|
+
* Acessory display name.
|
|
22
|
+
*/
|
|
23
|
+
protected readonly displayName: string;
|
|
24
|
+
/**
|
|
25
|
+
* Accessory serial number (string from 64 bit hash)
|
|
26
|
+
*/
|
|
27
|
+
protected serialNumber: string;
|
|
28
|
+
/**
|
|
29
|
+
* Accessory model.
|
|
30
|
+
*/
|
|
31
|
+
protected model: string;
|
|
32
|
+
/**
|
|
33
|
+
* Accessory HomeKit information service.
|
|
34
|
+
*/
|
|
14
35
|
protected readonly informationService: Service;
|
|
15
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Virtual accessory main class constructor.
|
|
38
|
+
* @param {SolaxCloudApiPlatform} platform The API Platform for Solax Cloud.
|
|
39
|
+
* @param {Logging} log The platform logging for homebridge.
|
|
40
|
+
* @param {string} name The accessory name.
|
|
41
|
+
* @param {string} serial "Real-world" serial number for this accessory.
|
|
42
|
+
* @param {string} model Accessory model.
|
|
43
|
+
*/
|
|
44
|
+
constructor(platform: SolaxCloudAPIPlatform, log: Logging, name: string, serialNumber: string, model: string);
|
|
16
45
|
/**
|
|
17
46
|
* Handle requests to get the current value of the "Model" characteristic.
|
|
18
47
|
* @returns {string} The model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AASnD;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,KAAK,SAAoB;IAEnC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAE/C;;;;;;;OAOG;gBACS,QAAQ,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IA+B5G;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAMzB;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM;IAQ7B;;;OAGG;IACI,SAAS,IAAI,MAAM;IAM1B;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM;IAW/B,WAAW,IAAI,OAAO,EAAE;CAMzB"}
|
|
@@ -4,20 +4,39 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SolaxPlatformAccessory = void 0;
|
|
7
|
-
const
|
|
7
|
+
const util_1 = require("./util");
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const string_hash_64_1 = __importDefault(require("string-hash-64"));
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
11
|
+
const plugin = require('../package.json');
|
|
8
12
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
13
|
+
* Solax Cloud generic platform accessory.
|
|
14
|
+
* Handles basic info: accessory name, manufacturer (Solax), inverter model and serial number.
|
|
11
15
|
*/
|
|
12
16
|
class SolaxPlatformAccessory {
|
|
13
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Virtual accessory main class constructor.
|
|
19
|
+
* @param {SolaxCloudApiPlatform} platform The API Platform for Solax Cloud.
|
|
20
|
+
* @param {Logging} log The platform logging for homebridge.
|
|
21
|
+
* @param {string} name The accessory name.
|
|
22
|
+
* @param {string} serial "Real-world" serial number for this accessory.
|
|
23
|
+
* @param {string} model Accessory model.
|
|
24
|
+
*/
|
|
25
|
+
constructor(platform, log, name, serialNumber, model) {
|
|
26
|
+
/**
|
|
27
|
+
* Accessory model.
|
|
28
|
+
*/
|
|
14
29
|
this.model = 'Solax inverter';
|
|
15
30
|
this.platform = platform;
|
|
16
31
|
this.log = log;
|
|
32
|
+
// name
|
|
17
33
|
this.name = name;
|
|
34
|
+
// display name
|
|
18
35
|
this.displayName = name;
|
|
19
|
-
|
|
20
|
-
|
|
36
|
+
// hash "real-world" serial and hostname to 64 bit hex string
|
|
37
|
+
this.serialNumber = (0, string_hash_64_1.default)(`${serialNumber}-${os_1.default.hostname()}`).toString(16);
|
|
38
|
+
// remove non-standard chars from model name
|
|
39
|
+
this.model = util_1.Util.normalizeName(model);
|
|
21
40
|
const hap = this.platform.api.hap;
|
|
22
41
|
// information service
|
|
23
42
|
this.informationService =
|
|
@@ -25,7 +44,8 @@ class SolaxPlatformAccessory {
|
|
|
25
44
|
.setCharacteristic(hap.Characteristic.Name, this.name)
|
|
26
45
|
.setCharacteristic(hap.Characteristic.Manufacturer, 'Solax')
|
|
27
46
|
.setCharacteristic(hap.Characteristic.FirmwareRevision, plugin.version)
|
|
28
|
-
.setCharacteristic(hap.Characteristic.SerialNumber, this.serialNumber)
|
|
47
|
+
.setCharacteristic(hap.Characteristic.SerialNumber, this.serialNumber)
|
|
48
|
+
.setCharacteristic(hap.Characteristic.Model, this.model);
|
|
29
49
|
this.informationService.getCharacteristic(hap.Characteristic.SerialNumber).onGet(this.getSerial.bind(this));
|
|
30
50
|
this.informationService.getCharacteristic(hap.Characteristic.Model).onGet(this.getModel.bind(this));
|
|
31
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility class.
|
|
3
|
+
*/
|
|
4
|
+
export declare class Util {
|
|
5
|
+
/**
|
|
6
|
+
* Calculates 32 bit hash from a string.
|
|
7
|
+
* @param s {string} String to calculate 32 bit hash from.
|
|
8
|
+
* @returns {number} The 32 bit hash from the string.
|
|
9
|
+
*/
|
|
10
|
+
static hash32(s: string): number;
|
|
11
|
+
/**
|
|
12
|
+
* Removes non-standard alphanumeric characters from string.
|
|
13
|
+
* @param {string} s The original string.
|
|
14
|
+
* @returns {string} Resulting string without any non-standard chars.
|
|
15
|
+
*/
|
|
16
|
+
static normalizeName(s: string): string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,IAAI;IAEf;;;;OAIG;WACW,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAiBvC;;;;OAIG;WACW,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAI/C"}
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Util = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Utility class.
|
|
6
|
+
*/
|
|
7
|
+
class Util {
|
|
8
|
+
/**
|
|
9
|
+
* Calculates 32 bit hash from a string.
|
|
10
|
+
* @param s {string} String to calculate 32 bit hash from.
|
|
11
|
+
* @returns {number} The 32 bit hash from the string.
|
|
12
|
+
*/
|
|
13
|
+
static hash32(s) {
|
|
14
|
+
let hash = 0;
|
|
15
|
+
if (s.length === 0) {
|
|
16
|
+
return hash;
|
|
17
|
+
}
|
|
18
|
+
for (let i = 0; i < s.length; i++) {
|
|
19
|
+
const chr = s.charCodeAt(i);
|
|
20
|
+
hash = ((hash << 5) - hash) + chr;
|
|
21
|
+
hash |= 0; // Convert to 32bit integer
|
|
22
|
+
}
|
|
23
|
+
return hash;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Removes non-standard alphanumeric characters from string.
|
|
27
|
+
* @param {string} s The original string.
|
|
28
|
+
* @returns {string} Resulting string without any non-standard chars.
|
|
29
|
+
*/
|
|
30
|
+
static normalizeName(s) {
|
|
31
|
+
return s.replace(/[^-_ a-zA-Z0-9]/gi, '');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.Util = Util;
|
|
35
|
+
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AACA;;GAEG;AACH,MAAa,IAAI;IAEf;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,CAAS;QAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;YAClC,IAAI,IAAI,CAAC,CAAC,CAAC,2BAA2B;SACvC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,CAAS;QACnC,OAAO,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;CAEF;AAjCD,oBAiCC"}
|
package/images/homebridge-ui.png
CHANGED
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"private": false,
|
|
3
3
|
"displayName": "Homebridge Solax Cloud API",
|
|
4
4
|
"name": "homebridge-solaxcloud-api",
|
|
5
|
-
"version": "1.4.
|
|
5
|
+
"version": "1.4.3",
|
|
6
6
|
"description": "Integrates solar production info using public Solax Cloud API into Homebrigde acessories.",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"repository": {
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"jshint": "^2.13.1",
|
|
35
35
|
"sync-fetch": "^0.3.1",
|
|
36
|
+
"string-hash-64": "^1.0.3",
|
|
36
37
|
"homebridge-lib": "^5.1.21",
|
|
37
38
|
"fakegato-history": "^0.6.2"
|
|
38
39
|
},
|