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.
Files changed (55) hide show
  1. package/CHANGELOG.md +150 -131
  2. package/LICENSE +175 -175
  3. package/README.md +1 -0
  4. package/config.sample +15 -15
  5. package/config.schema.json +113 -106
  6. package/dist/batteryAccessory.d.ts +70 -70
  7. package/dist/batteryAccessory.d.ts.map +1 -1
  8. package/dist/batteryAccessory.js +124 -123
  9. package/dist/batteryAccessory.js.map +1 -1
  10. package/dist/index.d.ts +6 -6
  11. package/dist/index.js +6 -6
  12. package/dist/lightSensorAccessory.d.ts +34 -34
  13. package/dist/lightSensorAccessory.js +58 -58
  14. package/dist/motionAccessory.d.ts +53 -53
  15. package/dist/motionAccessory.js +93 -93
  16. package/dist/outletAccessory.d.ts +104 -100
  17. package/dist/outletAccessory.d.ts.map +1 -1
  18. package/dist/outletAccessory.js +196 -187
  19. package/dist/outletAccessory.js.map +1 -1
  20. package/dist/platform.d.ts +67 -56
  21. package/dist/platform.d.ts.map +1 -1
  22. package/dist/platform.js +320 -265
  23. package/dist/platform.js.map +1 -1
  24. package/dist/platformAccessory.d.ts +70 -70
  25. package/dist/platformAccessory.js +102 -102
  26. package/dist/platformInverter.d.ts +180 -176
  27. package/dist/platformInverter.d.ts.map +1 -1
  28. package/dist/platformInverter.js +348 -343
  29. package/dist/platformInverter.js.map +1 -1
  30. package/dist/platformMeters.d.ts +68 -68
  31. package/dist/platformMeters.js +2 -2
  32. package/dist/settings.d.ts +8 -8
  33. package/dist/settings.js +11 -11
  34. package/dist/solaxcloudfetch.d.ts +1 -1
  35. package/dist/solaxcloudfetch.js +21 -21
  36. package/dist/solaxcloudfetch.js.map +1 -1
  37. package/dist/statistics.d.ts +36 -36
  38. package/dist/statistics.js +88 -88
  39. package/dist/util.d.ts +23 -23
  40. package/dist/util.js +42 -42
  41. package/package.json +55 -54
  42. package/test/batteryAccessory.test.ts +16 -0
  43. package/test/helpers.ts +36 -0
  44. package/test/lightSensorAccessory.test.ts +28 -0
  45. package/test/motionAccessory.test.ts +36 -0
  46. package/test/outletAccessory.test.ts +75 -0
  47. package/test/platformAccessory.test.ts +24 -0
  48. package/test/platformConfig.test.ts +188 -0
  49. package/test/platformTotalizer.test.ts +97 -0
  50. package/config.json +0 -16
  51. package/dist/solaxcloudapi.d.ts +0 -163
  52. package/dist/solaxcloudapi.d.ts.map +0 -1
  53. package/dist/solaxcloudapi.js +0 -226
  54. package/dist/solaxcloudapi.js.map +0 -1
  55. package/test/solaxcloudapi.test.ts +0 -164
@@ -1,57 +1,68 @@
1
- import { AccessoryPlugin, API, StaticPlatformPlugin, Logging, PlatformConfig } from 'homebridge';
2
- /**
3
- * SolaxCloudAPIPlatform.
4
- * This class is the main constructor for your plugin, this is where you should
5
- * parse the user config and discover/register accessories with Homebridge.
6
- */
7
- export declare class SolaxCloudAPIPlatform implements StaticPlatformPlugin {
8
- private readonly log;
9
- private readonly config;
10
- private readonly api;
11
- /**
12
- * Number of periods to use for data smoothing.
13
- */
14
- private smoothingWindow;
15
- /**
16
- * Array of inverters.
17
- */
18
- private inverters;
19
- /**
20
- * Inverter totalizer.
21
- **/
22
- private allInverters;
23
- /**
24
- * Platform constructor.
25
- * @param log
26
- * @param config
27
- * @param api
28
- * @returns
29
- */
30
- constructor(log: Logging, config: PlatformConfig, api: API);
31
- /**
32
- * Check whether object implements interface InverterConfig and brand has a valid entry.
33
- * @param obj Any object.
34
- * @returns Whether object implements interface InverterConfig.
35
- */
36
- private static isInverterConfig;
37
- /**
38
- * Update data for virtual inverter totalizer based on individual inverter data.
39
- */
40
- private updateAllInvertersData;
41
- /**
42
- * Sleeps for a number of milliseconds.
43
- * @param millis {number} The number of milliseconds to sleep.
44
- */
45
- private sleep;
46
- /**
47
- * Periodically retrieves inverter data from Solax Cloud API using configured tokenID and SN.
48
- */
49
- private fetchDataPeriodically;
50
- /**
51
- * Checks platform config validity and sets defaults whenever needed.
52
- * @returns {boolean} Whether the config is valid.
53
- */
54
- private checkConfig;
55
- accessories(callback: (foundAccessories: AccessoryPlugin[]) => void): void;
56
- }
1
+ import { AccessoryPlugin, API, StaticPlatformPlugin, Logging, PlatformConfig } from 'homebridge';
2
+ import { SolaxCloudAPIPlatformInverter } from './platformInverter';
3
+ /**
4
+ * SolaxCloudAPIPlatform.
5
+ * This class is the main constructor for your plugin, this is where you should
6
+ * parse the user config and discover/register accessories with Homebridge.
7
+ */
8
+ export declare class SolaxCloudAPIPlatform implements StaticPlatformPlugin {
9
+ private readonly log;
10
+ private readonly config;
11
+ private readonly api;
12
+ /**
13
+ * Number of periods to use for data smoothing.
14
+ */
15
+ private smoothingWindow;
16
+ /**
17
+ * Array of inverters.
18
+ */
19
+ private inverters;
20
+ /**
21
+ * Inverter totalizer.
22
+ **/
23
+ private allInverters;
24
+ /**
25
+ * Platform constructor.
26
+ * @param log
27
+ * @param config
28
+ * @param api
29
+ * @returns
30
+ */
31
+ constructor(log: Logging, config: PlatformConfig, api: API);
32
+ /**
33
+ * Check whether object implements interface InverterConfig and brand has a valid entry.
34
+ * @param obj Any object.
35
+ * @returns Whether object implements interface InverterConfig.
36
+ */
37
+ private static isInverterConfig;
38
+ /**
39
+ * Gets an inverter brand display name from config.
40
+ * @param brand Inverter brand from config.
41
+ * @returns Inverter brand display name.
42
+ */
43
+ private static getInverterBrandDisplayName;
44
+ /**
45
+ * Creates an inverter instance. Separated for focused unit tests.
46
+ */
47
+ protected createPlatformInverter(log: Logging, config: PlatformConfig, api: API, brand: number, tokenId: string, sn: string, name: string, hasBattery: boolean, smoothingWindow: number, virtual?: boolean, brandName?: string): SolaxCloudAPIPlatformInverter;
48
+ /**
49
+ * Update data for virtual inverter totalizer based on individual inverter data.
50
+ */
51
+ private updateAllInvertersData;
52
+ /**
53
+ * Sleeps for a number of milliseconds.
54
+ * @param millis {number} The number of milliseconds to sleep.
55
+ */
56
+ private sleep;
57
+ /**
58
+ * Periodically retrieves inverter data from Solax Cloud API using configured tokenID and SN.
59
+ */
60
+ protected fetchDataPeriodically(): Promise<void>;
61
+ /**
62
+ * Checks platform config validity and sets defaults whenever needed.
63
+ * @returns {boolean} Whether the config is valid.
64
+ */
65
+ private checkConfig;
66
+ accessories(callback: (foundAccessories: AccessoryPlugin[]) => void): void;
67
+ }
57
68
  //# sourceMappingURL=platform.d.ts.map
@@ -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;AAkD3G;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,oBAAoB;IAChE,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,eAAe,CAAK;IAE5B;;OAEG;IACH,OAAO,CAAC,SAAS,CAAuC;IAExD;;QAEI;IACJ,OAAO,CAAC,YAAY,CAAiC;IAErD;;;;;;OAMG;gBACU,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG;IAuD3D;;;;OAIG;IAEH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmC9B;;;OAGG;YACW,KAAK;IAInB;;OAEG;YACW,qBAAqB;IAoBnC;;;OAGG;IACH,OAAO,CAAC,WAAW;IA2GnB,WAAW,CAAC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,KAAK,IAAI,GAAG,IAAI;CAa3E"}
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;AAG3G,OAAO,EAAE,6BAA6B,EAAkB,MAAM,oBAAoB,CAAC;AAoDnF;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,oBAAoB;IAChE,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,eAAe,CAAK;IAE5B;;OAEG;IACH,OAAO,CAAC,SAAS,CAAuC;IAExD;;QAEI;IACJ,OAAO,CAAC,YAAY,CAAiC;IAErD;;;;;;OAMG;gBACU,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG;IA4D3D;;;;OAIG;IAEH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAU/B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAW1C;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAC7E,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,CAAC,EAAE,MAAM,GAAG,6BAA6B;IAIpD;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmC9B;;;OAGG;YACW,KAAK;IAInB;;OAEG;cACa,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBtD;;;OAGG;IACH,OAAO,CAAC,WAAW;IAiInB,WAAW,CAAC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,KAAK,IAAI,GAAG,IAAI;CAa3E"}