homebridge-solaxcloud-api 2.3.3 → 2.4.1
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/CHANGELOG.md +150 -131
- package/LICENSE +175 -175
- package/README.md +1 -0
- package/config.sample +15 -15
- package/config.schema.json +113 -106
- package/dist/batteryAccessory.d.ts +70 -70
- package/dist/batteryAccessory.d.ts.map +1 -1
- package/dist/batteryAccessory.js +124 -123
- package/dist/batteryAccessory.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/lightSensorAccessory.d.ts +34 -34
- package/dist/lightSensorAccessory.js +58 -58
- package/dist/motionAccessory.d.ts +53 -53
- package/dist/motionAccessory.js +93 -93
- package/dist/outletAccessory.d.ts +104 -100
- package/dist/outletAccessory.d.ts.map +1 -1
- package/dist/outletAccessory.js +196 -187
- package/dist/outletAccessory.js.map +1 -1
- package/dist/platform.d.ts +67 -56
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +320 -265
- package/dist/platform.js.map +1 -1
- package/dist/platformAccessory.d.ts +70 -70
- package/dist/platformAccessory.js +102 -102
- package/dist/platformInverter.d.ts +180 -176
- package/dist/platformInverter.d.ts.map +1 -1
- package/dist/platformInverter.js +348 -343
- package/dist/platformInverter.js.map +1 -1
- package/dist/platformMeters.d.ts +68 -68
- package/dist/platformMeters.js +2 -2
- package/dist/settings.d.ts +8 -8
- package/dist/settings.js +11 -11
- package/dist/solaxcloudfetch.d.ts +1 -1
- package/dist/solaxcloudfetch.js +21 -21
- package/dist/solaxcloudfetch.js.map +1 -1
- package/dist/statistics.d.ts +36 -36
- package/dist/statistics.js +88 -88
- package/dist/util.d.ts +23 -23
- package/dist/util.js +42 -42
- package/package.json +55 -54
- package/test/batteryAccessory.test.ts +16 -0
- package/test/helpers.ts +36 -0
- package/test/lightSensorAccessory.test.ts +28 -0
- package/test/motionAccessory.test.ts +36 -0
- package/test/outletAccessory.test.ts +75 -0
- package/test/platformAccessory.test.ts +24 -0
- package/test/platformConfig.test.ts +188 -0
- package/test/platformTotalizer.test.ts +97 -0
- package/config.json +0 -16
- package/dist/solaxcloudapi.d.ts +0 -163
- package/dist/solaxcloudapi.d.ts.map +0 -1
- package/dist/solaxcloudapi.js +0 -226
- package/dist/solaxcloudapi.js.map +0 -1
- package/test/solaxcloudapi.test.ts +0 -164
|
@@ -1,177 +1,181 @@
|
|
|
1
|
-
import { AccessoryPlugin, API, Logging, PlatformConfig } from 'homebridge';
|
|
2
|
-
/**
|
|
3
|
-
* Inverter brand.
|
|
4
|
-
*/
|
|
5
|
-
export declare const INVERTER_BRAND: {
|
|
6
|
-
SOLAX: number;
|
|
7
|
-
QCELLS: number;
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Standard names for accessories.
|
|
11
|
-
*/
|
|
12
|
-
export declare const ACCESSORY_KEYS: {
|
|
13
|
-
pv: string;
|
|
14
|
-
inverterToBattery: string;
|
|
15
|
-
inverterFromBattery: string;
|
|
16
|
-
inverterAC: string;
|
|
17
|
-
inverterToGrid: string;
|
|
18
|
-
inverterToHouse: string;
|
|
19
|
-
gridToHouse: string;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* SolaxCloudAPIPlatformInverter.
|
|
23
|
-
* This class is the main constructor for your inverter accessories
|
|
24
|
-
* to be used by Homebridge.
|
|
25
|
-
*/
|
|
26
|
-
export declare class SolaxCloudAPIPlatformInverter {
|
|
27
|
-
private readonly log;
|
|
28
|
-
private readonly config;
|
|
29
|
-
private readonly api;
|
|
30
|
-
/**
|
|
31
|
-
* Inverter
|
|
32
|
-
*/
|
|
33
|
-
private
|
|
34
|
-
/**
|
|
35
|
-
* Inverter
|
|
36
|
-
|
|
37
|
-
private
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
**/
|
|
41
|
-
private
|
|
42
|
-
/**
|
|
43
|
-
*
|
|
44
|
-
|
|
45
|
-
private
|
|
46
|
-
/**
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
private
|
|
50
|
-
/**
|
|
51
|
-
*
|
|
52
|
-
*/
|
|
53
|
-
private
|
|
54
|
-
/**
|
|
55
|
-
*
|
|
56
|
-
*/
|
|
57
|
-
private
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
*/
|
|
61
|
-
private
|
|
62
|
-
/**
|
|
63
|
-
*
|
|
64
|
-
*/
|
|
65
|
-
private
|
|
66
|
-
/**
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
*
|
|
74
|
-
*/
|
|
75
|
-
private
|
|
76
|
-
/**
|
|
77
|
-
* Ambient light sensors for
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
*
|
|
90
|
-
* @param
|
|
91
|
-
* @param
|
|
92
|
-
* @param
|
|
93
|
-
* @param
|
|
94
|
-
* @param
|
|
95
|
-
* @
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
*
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
*
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
*
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
*
|
|
131
|
-
*/
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
*
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
*
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
*
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
*
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
*
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
*
|
|
164
|
-
*/
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
*
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
*
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
1
|
+
import { AccessoryPlugin, API, Logging, PlatformConfig } from 'homebridge';
|
|
2
|
+
/**
|
|
3
|
+
* Inverter brand.
|
|
4
|
+
*/
|
|
5
|
+
export declare const INVERTER_BRAND: {
|
|
6
|
+
SOLAX: number;
|
|
7
|
+
QCELLS: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Standard names for accessories.
|
|
11
|
+
*/
|
|
12
|
+
export declare const ACCESSORY_KEYS: {
|
|
13
|
+
pv: string;
|
|
14
|
+
inverterToBattery: string;
|
|
15
|
+
inverterFromBattery: string;
|
|
16
|
+
inverterAC: string;
|
|
17
|
+
inverterToGrid: string;
|
|
18
|
+
inverterToHouse: string;
|
|
19
|
+
gridToHouse: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* SolaxCloudAPIPlatformInverter.
|
|
23
|
+
* This class is the main constructor for your inverter accessories
|
|
24
|
+
* to be used by Homebridge.
|
|
25
|
+
*/
|
|
26
|
+
export declare class SolaxCloudAPIPlatformInverter {
|
|
27
|
+
private readonly log;
|
|
28
|
+
private readonly config;
|
|
29
|
+
private readonly api;
|
|
30
|
+
/**
|
|
31
|
+
* Inverter name.
|
|
32
|
+
*/
|
|
33
|
+
private name;
|
|
34
|
+
/**
|
|
35
|
+
* Inverter serial number.
|
|
36
|
+
**/
|
|
37
|
+
private sn;
|
|
38
|
+
/**
|
|
39
|
+
* Whether this inverter has a battery.
|
|
40
|
+
**/
|
|
41
|
+
private batteryInstalled;
|
|
42
|
+
/**
|
|
43
|
+
* Size of window for statistical smoothing operations.
|
|
44
|
+
*/
|
|
45
|
+
private smoothingWindow;
|
|
46
|
+
/**
|
|
47
|
+
* API for retrieving data from Solax cloud.
|
|
48
|
+
*/
|
|
49
|
+
private solaxCloudAPI?;
|
|
50
|
+
/**
|
|
51
|
+
* Inverter brand name.
|
|
52
|
+
*/
|
|
53
|
+
private brandName;
|
|
54
|
+
/**
|
|
55
|
+
* Whether this inverter is a virtual accessory.
|
|
56
|
+
*/
|
|
57
|
+
private virtual;
|
|
58
|
+
/**
|
|
59
|
+
* Virtual motion sensor triggered by data updates from Solax Cloud.
|
|
60
|
+
*/
|
|
61
|
+
private motionUpdate;
|
|
62
|
+
/**
|
|
63
|
+
* Battery information for this inverter gathered from Solax Cloud.
|
|
64
|
+
*/
|
|
65
|
+
private battery;
|
|
66
|
+
/**
|
|
67
|
+
* Outlets with raw data gathered from Solax Cloud.
|
|
68
|
+
*/
|
|
69
|
+
private rawOutlets;
|
|
70
|
+
/**
|
|
71
|
+
* Smooth data outlets.
|
|
72
|
+
* These outlets present smoothed values based on the raw data figures to
|
|
73
|
+
* prevent events like the temporary passage of a cloud to directly affect values.
|
|
74
|
+
*/
|
|
75
|
+
private smoothOutlets;
|
|
76
|
+
/**
|
|
77
|
+
* Ambient light sensors for Power Consumption (pure Home App config).
|
|
78
|
+
*/
|
|
79
|
+
private rawLightSensors;
|
|
80
|
+
/**
|
|
81
|
+
* Ambient light sensors for smooth power consumption lights.
|
|
82
|
+
* These lights present smoothed values based on the raw data figures to
|
|
83
|
+
* prevent events like the temporary passage of a cloud to directly affect values.
|
|
84
|
+
*/
|
|
85
|
+
private smoothLightSensors;
|
|
86
|
+
/** Array with all accessories */
|
|
87
|
+
private solaxAccessories;
|
|
88
|
+
/**
|
|
89
|
+
* Platform inverter constructor.
|
|
90
|
+
* @param log
|
|
91
|
+
* @param config
|
|
92
|
+
* @param api
|
|
93
|
+
* @param brand
|
|
94
|
+
* @param tokenId
|
|
95
|
+
* @param sn
|
|
96
|
+
* @param name
|
|
97
|
+
* @param hasBattery
|
|
98
|
+
* @param smoothingWindow
|
|
99
|
+
* @returns
|
|
100
|
+
*/
|
|
101
|
+
constructor(log: Logging, config: PlatformConfig, api: API, brand: number, tokenId: string, sn: string, name: string, hasBattery: boolean, smoothingWindow: number, virtual?: boolean, brandName?: string);
|
|
102
|
+
/**
|
|
103
|
+
* Gets the inverter brand name.
|
|
104
|
+
* @param {number} brand Inverter brand type.
|
|
105
|
+
* @returns Inverter brand name.
|
|
106
|
+
*/
|
|
107
|
+
static getInverterBrandName(brand: number): string;
|
|
108
|
+
/**
|
|
109
|
+
* Update all platform accessory status based on the values read from the API.
|
|
110
|
+
* @param {SolaxCloudAPIResponse} apiData API data from Solax Cloud.
|
|
111
|
+
*/
|
|
112
|
+
private updateAccessories;
|
|
113
|
+
/**
|
|
114
|
+
* Sets the battery charge state for this inverter.
|
|
115
|
+
* @param {number} state The desired battery charge state.
|
|
116
|
+
*/
|
|
117
|
+
setBatteryChargeState(state: number): void;
|
|
118
|
+
/**
|
|
119
|
+
* Gets the battery charge state for this inverter.
|
|
120
|
+
* @returns {number} Battery charge state.
|
|
121
|
+
*/
|
|
122
|
+
getBatteryChargeState(): number;
|
|
123
|
+
/**
|
|
124
|
+
* Sets the current battery level for this inverter.
|
|
125
|
+
* @param {number} percentage Battery level to set (percentage).
|
|
126
|
+
*/
|
|
127
|
+
setBatteryLevel(percentage: number): void;
|
|
128
|
+
/**
|
|
129
|
+
* Gets the current battery level for this inverter.
|
|
130
|
+
* @returns {number} The current battery level (percentage).
|
|
131
|
+
*/
|
|
132
|
+
getBatteryLevel(): number;
|
|
133
|
+
/**
|
|
134
|
+
* Sets virtual update motion detector to true to notify of new data update.
|
|
135
|
+
*/
|
|
136
|
+
setMotionUpdate(): void;
|
|
137
|
+
/**
|
|
138
|
+
* Gets raw accessory power for this inverter.
|
|
139
|
+
* @param {string} key Accessory key.
|
|
140
|
+
* @returns {number} Power consumptions for this accessory.
|
|
141
|
+
*/
|
|
142
|
+
getRawPower(key: string): number;
|
|
143
|
+
/**
|
|
144
|
+
* Sets raw accessory power for this inverter.
|
|
145
|
+
* @param {string} key Accessory key.
|
|
146
|
+
* @param {number} power Power to set (in Watt).
|
|
147
|
+
*/
|
|
148
|
+
setRawPower(key: string, power: number): void;
|
|
149
|
+
/**
|
|
150
|
+
* Gets raw accessory energy for this inverter.
|
|
151
|
+
* @param {string} key Accessory key.
|
|
152
|
+
* @returns {number} The energy consumption for the desired acessory (in Wh).
|
|
153
|
+
*/
|
|
154
|
+
getRawEnergy(key: string): number;
|
|
155
|
+
/**
|
|
156
|
+
* Sets raw accessory energy for this inverter.
|
|
157
|
+
* @param {string} key Accessory key.
|
|
158
|
+
* @param {number} energy Energy consumption to set (in Wh).
|
|
159
|
+
*/
|
|
160
|
+
setRawEnergy(key: string, energy: number): void;
|
|
161
|
+
/**
|
|
162
|
+
* Sets smooth accessory power from raw accessory power for this inverter.
|
|
163
|
+
* @param {string} key Accessory key.
|
|
164
|
+
*/
|
|
165
|
+
setSmoothPower(key: string): void;
|
|
166
|
+
/**
|
|
167
|
+
* Update data from this inverter by using the Solax Cloud API
|
|
168
|
+
*/
|
|
169
|
+
updateInverterDataFromCloud(): void;
|
|
170
|
+
/**
|
|
171
|
+
* Returns whether this inverter has a battery installed.
|
|
172
|
+
* @returns {boolean} Whether this inverter battery has a battery installed.
|
|
173
|
+
*/
|
|
174
|
+
hasBattery(): boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Get array with full list of accessories for this inverter.
|
|
177
|
+
* @returns {AccessoryPlugin[]} Array of accessories for this inverter.
|
|
178
|
+
*/
|
|
179
|
+
getAccessories(): AccessoryPlugin[];
|
|
180
|
+
}
|
|
177
181
|
//# sourceMappingURL=platformInverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformInverter.d.ts","sourceRoot":"","sources":["../src/platformInverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAY3E;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAQ1B,CAAC;AA4BF;;;;GAIG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAE1B;;OAEG;IACH,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"platformInverter.d.ts","sourceRoot":"","sources":["../src/platformInverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAY3E;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAQ1B,CAAC;AA4BF;;;;GAIG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAE1B;;OAEG;IACH,OAAO,CAAC,IAAI,CAAS;IAErB;;QAEI;IACJ,OAAO,CAAC,EAAE,CAAS;IAEnB;;QAEI;IACJ,OAAO,CAAC,gBAAgB,CAAU;IAElC;;OAEG;IACH,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC;;OAEG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,OAAO,CAAU;IAEzB;;OAEG;IACH,OAAO,CAAC,YAAY,CAAwB;IAE5C;;OAEG;IACH,OAAO,CAAC,OAAO,CAAyB;IAExC;;OAEG;IACH,OAAO,CAAC,UAAU,CAAwB;IAE1C;;;;QAII;IACJ,OAAO,CAAC,aAAa,CAAwB;IAE7C;;QAEI;IACJ,OAAO,CAAC,eAAe,CAA6B;IAEpD;;;;QAII;IACJ,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,iCAAiC;IACjC,OAAO,CAAC,gBAAgB,CAAyB;IAEjD;;;;;;;;;;;;QAYI;gBACS,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EACzD,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAC1C,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EACjC,eAAe,EAAE,MAAM,EACvB,OAAO,UAAQ,EACf,SAAS,SAA4D;IAqLvE;;;;OAIG;WACW,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IASzD;;;QAGI;IACJ,OAAO,CAAC,iBAAiB;IAuCzB;;;OAGG;IACI,qBAAqB,CAAC,KAAK,EAAE,MAAM;IAI1C;;;OAGG;IACI,qBAAqB,IAAI,MAAM;IAItC;;;OAGG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM;IAIzC;;;OAGG;IACI,eAAe,IAAI,MAAM;IAIhC;;OAEG;IACI,eAAe;IAItB;;;;OAIG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIvC;;;;OAIG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQ7C;;;;OAIG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxC;;;;OAIG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAI/C;;;OAGG;IACI,cAAc,CAAC,GAAG,EAAE,MAAM;IAUjC;;OAEG;IACI,2BAA2B;IAwBlC;;;OAGG;IACI,UAAU,IAAI,OAAO;IAI5B;;;OAGG;IACI,cAAc,IAAI,eAAe,EAAE;CAI3C"}
|