homebridge-solaxcloud-api 2.5.6 → 2.5.7-beta.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/CHANGELOG.md +11 -0
- package/README.md +8 -0
- package/config.schema.json +1 -1
- package/dist/platform.d.ts +35 -3
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +98 -6
- package/dist/platform.js.map +1 -1
- package/dist/platformAccessory.d.ts +4 -0
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +6 -0
- package/dist/platformAccessory.js.map +1 -1
- package/package.json +1 -1
- package/test/platformMigration.test.ts +192 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [v2.5.7-beta.0] - 2026-11-01
|
|
6
|
+
### Changed
|
|
7
|
+
* Migrated the plugin from Homebridge's static platform model to the supported dynamic platform model.
|
|
8
|
+
* Preserved the legacy HAP UUID formula and existing Matter UUIDs so cached accessories can be reclaimed without re-pairing either bridge.
|
|
9
|
+
* Preserved qualified platform identifiers during cache reconciliation.
|
|
10
|
+
* Changed configuration to one platform block; users with multiple blocks must merge their inverters into one shared `inverters` array before upgrading.
|
|
11
|
+
### Fixed
|
|
12
|
+
* Allowed Homebridge 2.4 to associate restored Matter electrical sensors with the active Solax platform instead of removing them as orphans.
|
|
13
|
+
### Safety
|
|
14
|
+
* Retained unclaimed cached HAP accessories during the beta migration instead of deleting them automatically.
|
|
15
|
+
|
|
5
16
|
## [v2.5.6] - 2026-10-30
|
|
6
17
|
### Fixed
|
|
7
18
|
* Shortened smoothed Matter sensor serials from `-matter-smooth-` to `-matter-sm-` so every generated serial stays within Matter's 32-character limit.
|
package/README.md
CHANGED
|
@@ -72,6 +72,14 @@ Minimal platform configuration is depicted by the example configuration file bel
|
|
|
72
72
|
]
|
|
73
73
|
}
|
|
74
74
|
```
|
|
75
|
+
|
|
76
|
+
> **Upgrading to v2.5.7 beta:** only one `SolaxCloudAPI` platform block is
|
|
77
|
+
> supported. If your configuration contains multiple blocks, merge every
|
|
78
|
+
> inverter into the single `inverters` array before upgrading. Settings such
|
|
79
|
+
> as `pollingFrequency`, `smoothMeters`, `smoothingMethod`,
|
|
80
|
+
> `pureHomeApp`, and `enableHistory` are shared by all inverters in that
|
|
81
|
+
> block. Existing HAP and Matter accessory identities are preserved.
|
|
82
|
+
|
|
75
83
|
Configuration parameters are described on the table below:
|
|
76
84
|
|
|
77
85
|
| **Parameter** | **Type** | **Description** | **Default** | **Mandatory?** |
|
package/config.schema.json
CHANGED
package/dist/platform.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { API, DynamicPlatformPlugin, Logging, MatterAccessory, PlatformAccessory, PlatformConfig } from 'homebridge';
|
|
2
2
|
import { SolaxCloudAPIPlatformInverter } from './platformInverter.js';
|
|
3
3
|
/**
|
|
4
4
|
* SolaxCloudAPIPlatform.
|
|
5
5
|
* This class is the main constructor for your plugin, this is where you should
|
|
6
6
|
* parse the user config and discover/register accessories with Homebridge.
|
|
7
7
|
*/
|
|
8
|
-
export declare class SolaxCloudAPIPlatform implements
|
|
8
|
+
export declare class SolaxCloudAPIPlatform implements DynamicPlatformPlugin {
|
|
9
9
|
private readonly log;
|
|
10
10
|
private readonly config;
|
|
11
11
|
private readonly api;
|
|
12
|
+
/** HAP accessories restored by Homebridge for this dynamic platform. */
|
|
13
|
+
private cachedAccessories;
|
|
14
|
+
/** Matter accessories restored by Homebridge for this dynamic platform. */
|
|
15
|
+
private cachedMatterAccessories;
|
|
12
16
|
/**
|
|
13
17
|
* Number of periods to use for data smoothing.
|
|
14
18
|
*/
|
|
@@ -29,6 +33,16 @@ export declare class SolaxCloudAPIPlatform implements StaticPlatformPlugin {
|
|
|
29
33
|
* @returns
|
|
30
34
|
*/
|
|
31
35
|
constructor(log: Logging, config: PlatformConfig, api: API);
|
|
36
|
+
/**
|
|
37
|
+
* Tracks a HAP accessory restored from Homebridge's dynamic-platform cache.
|
|
38
|
+
*/
|
|
39
|
+
configureAccessory(accessory: PlatformAccessory): void;
|
|
40
|
+
/**
|
|
41
|
+
* Tracks a Matter accessory restored from Homebridge's Matter cache.
|
|
42
|
+
* Re-registration by the owning outlet uses the same UUID and attaches to the
|
|
43
|
+
* restored endpoint without changing the controller-visible identity.
|
|
44
|
+
*/
|
|
45
|
+
configureMatterAccessory(accessory: MatterAccessory): void;
|
|
32
46
|
/**
|
|
33
47
|
* Check whether object implements interface InverterConfig and brand has a valid entry.
|
|
34
48
|
* @param obj Any object.
|
|
@@ -63,6 +77,24 @@ export declare class SolaxCloudAPIPlatform implements StaticPlatformPlugin {
|
|
|
63
77
|
* @returns {boolean} Whether the config is valid.
|
|
64
78
|
*/
|
|
65
79
|
private checkConfig;
|
|
66
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Returns the complete legacy accessory inventory produced by the configured
|
|
82
|
+
* inverters. Keeping these wrappers preserves their services and update logic
|
|
83
|
+
* while the platform migrates ownership to Homebridge's dynamic cache.
|
|
84
|
+
*/
|
|
85
|
+
private getAccessories;
|
|
86
|
+
/**
|
|
87
|
+
* Reconciles the configured inventory with Homebridge's cached dynamic
|
|
88
|
+
* accessories while preserving the exact UUID formula used by the old static
|
|
89
|
+
* platform loader.
|
|
90
|
+
*/
|
|
91
|
+
private reconcileAccessories;
|
|
92
|
+
/** Reproduces Homebridge's legacy static-platform UUID seed exactly. */
|
|
93
|
+
private getLegacyUuid;
|
|
94
|
+
/**
|
|
95
|
+
* Replaces serialized services with the live wrapper services and handlers.
|
|
96
|
+
* The PlatformAccessory object and UUID remain unchanged.
|
|
97
|
+
*/
|
|
98
|
+
private configurePlatformAccessory;
|
|
67
99
|
}
|
|
68
100
|
//# sourceMappingURL=platform.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,GAAG,EACH,qBAAqB,EACrB,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,cAAc,EAGf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,6BAA6B,EAAkB,MAAM,uBAAuB,CAAC;AAsDtF;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,qBAAqB;IACjE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAE1B,wEAAwE;IACxE,OAAO,CAAC,iBAAiB,CAAwC;IAEjE,2EAA2E;IAC3E,OAAO,CAAC,uBAAuB,CAAsC;IAErE;;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;IA6D3D;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAItD;;;;OAIG;IACH,wBAAwB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAI1D;;;;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;IA4HnB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAuD5B,wEAAwE;IACxE,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CA4BnC"}
|
package/dist/platform.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Util } from './util.js';
|
|
2
2
|
import { SolaxCloudAPIPlatformInverter, ACCESSORY_KEYS } from './platformInverter.js';
|
|
3
|
+
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
3
4
|
/**
|
|
4
5
|
* Valid inverter brands (Solax, QCells)
|
|
5
6
|
*/
|
|
@@ -41,6 +42,10 @@ export class SolaxCloudAPIPlatform {
|
|
|
41
42
|
log;
|
|
42
43
|
config;
|
|
43
44
|
api;
|
|
45
|
+
/** HAP accessories restored by Homebridge for this dynamic platform. */
|
|
46
|
+
cachedAccessories = new Map();
|
|
47
|
+
/** Matter accessories restored by Homebridge for this dynamic platform. */
|
|
48
|
+
cachedMatterAccessories = new Map();
|
|
44
49
|
/**
|
|
45
50
|
* Number of periods to use for data smoothing.
|
|
46
51
|
*/
|
|
@@ -102,8 +107,23 @@ export class SolaxCloudAPIPlatform {
|
|
|
102
107
|
// When this event is fired it means Homebridge has created all accessories.
|
|
103
108
|
this.api.on("didFinishLaunching" /* APIEvent.DID_FINISH_LAUNCHING */, () => {
|
|
104
109
|
this.log.debug('Executed didFinishLaunching callback');
|
|
110
|
+
this.reconcileAccessories();
|
|
105
111
|
});
|
|
106
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Tracks a HAP accessory restored from Homebridge's dynamic-platform cache.
|
|
115
|
+
*/
|
|
116
|
+
configureAccessory(accessory) {
|
|
117
|
+
this.cachedAccessories.set(accessory.UUID, accessory);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Tracks a Matter accessory restored from Homebridge's Matter cache.
|
|
121
|
+
* Re-registration by the owning outlet uses the same UUID and attaches to the
|
|
122
|
+
* restored endpoint without changing the controller-visible identity.
|
|
123
|
+
*/
|
|
124
|
+
configureMatterAccessory(accessory) {
|
|
125
|
+
this.cachedMatterAccessories.set(accessory.UUID, accessory);
|
|
126
|
+
}
|
|
107
127
|
/**
|
|
108
128
|
* Check whether object implements interface InverterConfig and brand has a valid entry.
|
|
109
129
|
* @param obj Any object.
|
|
@@ -305,12 +325,12 @@ export class SolaxCloudAPIPlatform {
|
|
|
305
325
|
this.log.info(`Config check: final config is ${JSON.stringify(config)}`);
|
|
306
326
|
return result;
|
|
307
327
|
}
|
|
308
|
-
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
328
|
+
/**
|
|
329
|
+
* Returns the complete legacy accessory inventory produced by the configured
|
|
330
|
+
* inverters. Keeping these wrappers preserves their services and update logic
|
|
331
|
+
* while the platform migrates ownership to Homebridge's dynamic cache.
|
|
312
332
|
*/
|
|
313
|
-
|
|
333
|
+
getAccessories() {
|
|
314
334
|
const accessories = [];
|
|
315
335
|
// loop over inverters and add accessories
|
|
316
336
|
this.inverters.forEach(inverter => accessories.push(...inverter.getAccessories()));
|
|
@@ -318,7 +338,79 @@ export class SolaxCloudAPIPlatform {
|
|
|
318
338
|
if (this.inverters.length > 1) {
|
|
319
339
|
accessories.push(...this.allInverters.getAccessories());
|
|
320
340
|
}
|
|
321
|
-
|
|
341
|
+
return accessories;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Reconciles the configured inventory with Homebridge's cached dynamic
|
|
345
|
+
* accessories while preserving the exact UUID formula used by the old static
|
|
346
|
+
* platform loader.
|
|
347
|
+
*/
|
|
348
|
+
reconcileAccessories() {
|
|
349
|
+
const newAccessories = [];
|
|
350
|
+
const restoredAccessories = [];
|
|
351
|
+
for (const legacyAccessory of this.getAccessories()) {
|
|
352
|
+
const accessory = legacyAccessory;
|
|
353
|
+
const displayName = accessory.getDisplayName();
|
|
354
|
+
const uuid = this.getLegacyUuid(accessory);
|
|
355
|
+
let platformAccessory = this.cachedAccessories.get(uuid);
|
|
356
|
+
if (platformAccessory) {
|
|
357
|
+
restoredAccessories.push(platformAccessory);
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
platformAccessory = new this.api.platformAccessory(displayName, uuid);
|
|
361
|
+
newAccessories.push(platformAccessory);
|
|
362
|
+
}
|
|
363
|
+
this.configurePlatformAccessory(platformAccessory, accessory);
|
|
364
|
+
}
|
|
365
|
+
if (newAccessories.length > 0) {
|
|
366
|
+
this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, newAccessories);
|
|
367
|
+
}
|
|
368
|
+
if (restoredAccessories.length > 0) {
|
|
369
|
+
this.api.updatePlatformAccessories(restoredAccessories);
|
|
370
|
+
}
|
|
371
|
+
const expectedUUIDs = new Set(this.getAccessories().map(accessory => this.getLegacyUuid(accessory)));
|
|
372
|
+
const retainedHapOrphans = [...this.cachedAccessories.values()]
|
|
373
|
+
.filter(accessory => !expectedUUIDs.has(accessory.UUID));
|
|
374
|
+
if (retainedHapOrphans.length > 0) {
|
|
375
|
+
this.log.warn(`Retaining ${retainedHapOrphans.length} unclaimed cached HAP ` +
|
|
376
|
+
`accessor${retainedHapOrphans.length === 1 ? 'y' : 'ies'} during the beta migration.`);
|
|
377
|
+
}
|
|
378
|
+
if (this.cachedMatterAccessories.size > 0) {
|
|
379
|
+
this.log.debug(`Restored ${this.cachedMatterAccessories.size} cached Matter ` +
|
|
380
|
+
`accessor${this.cachedMatterAccessories.size === 1 ? 'y' : 'ies'} for plugin re-registration.`);
|
|
381
|
+
}
|
|
382
|
+
this.log.info(`Dynamic platform reconciliation complete: ${restoredAccessories.length} restored, ` +
|
|
383
|
+
`${newAccessories.length} registered.`);
|
|
384
|
+
}
|
|
385
|
+
/** Reproduces Homebridge's legacy static-platform UUID seed exactly. */
|
|
386
|
+
getLegacyUuid(accessory) {
|
|
387
|
+
return this.api.hap.uuid.generate(`${this.config.platform}:${accessory.uuid_base || accessory.getDisplayName()}`);
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Replaces serialized services with the live wrapper services and handlers.
|
|
391
|
+
* The PlatformAccessory object and UUID remain unchanged.
|
|
392
|
+
*/
|
|
393
|
+
configurePlatformAccessory(platformAccessory, legacyAccessory) {
|
|
394
|
+
const informationType = this.api.hap.Service.AccessoryInformation;
|
|
395
|
+
const informationService = platformAccessory.getService(informationType);
|
|
396
|
+
for (const service of [...platformAccessory.services]) {
|
|
397
|
+
if (service.UUID !== informationType.UUID) {
|
|
398
|
+
platformAccessory.removeService(service);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
for (const service of legacyAccessory.getServices().filter((service) => !!service)) {
|
|
402
|
+
if (service.UUID === informationType.UUID) {
|
|
403
|
+
informationService?.replaceCharacteristicsFromService(service);
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
platformAccessory.addService(service);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
if (platformAccessory.displayName !== legacyAccessory.getDisplayName()) {
|
|
410
|
+
platformAccessory.updateDisplayName(legacyAccessory.getDisplayName());
|
|
411
|
+
}
|
|
412
|
+
platformAccessory.removeAllListeners('identify');
|
|
413
|
+
platformAccessory.on('identify', () => legacyAccessory.identify());
|
|
322
414
|
}
|
|
323
415
|
}
|
|
324
416
|
//# sourceMappingURL=platform.js.map
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,10 @@ export declare class SolaxPlatformAccessory implements AccessoryPlugin {
|
|
|
70
70
|
*/
|
|
71
71
|
setSerial(serial: string): void;
|
|
72
72
|
identify(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Gets the display name used by the legacy static-platform UUID formula.
|
|
75
|
+
*/
|
|
76
|
+
getDisplayName(): string;
|
|
73
77
|
getServices(): Service[];
|
|
74
78
|
}
|
|
75
79
|
//# sourceMappingURL=platformAccessory.d.ts.map
|
|
@@ -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,GAAG,EAAE,MAAM,YAAY,CAAC;AAWpE;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvC;;OAEG;IACH,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAEnC;;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,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAmCxG;;;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,QAAQ,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAWpE;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvC;;OAEG;IACH,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAEnC;;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,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAmCxG;;;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,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACI,cAAc,IAAI,MAAM;IAQ/B,WAAW,IAAI,OAAO,EAAE;CAIzB"}
|
|
@@ -120,6 +120,12 @@ export class SolaxPlatformAccessory {
|
|
|
120
120
|
identify() {
|
|
121
121
|
this.log.info(`${this.name}: Identify (true serial=${this.trueSerialNumber}, serial=${this.serialNumber})`);
|
|
122
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Gets the display name used by the legacy static-platform UUID formula.
|
|
125
|
+
*/
|
|
126
|
+
getDisplayName() {
|
|
127
|
+
return this.displayName;
|
|
128
|
+
}
|
|
123
129
|
/*
|
|
124
130
|
* This method is called directly after creation of this instance.
|
|
125
131
|
* It should return all services which should be added to the accessory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platformAccessory.js","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"displayName": "Homebridge Solax Cloud API",
|
|
4
4
|
"name": "homebridge-solaxcloud-api",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"version": "2.5.
|
|
6
|
+
"version": "2.5.7-beta.0",
|
|
7
7
|
"description": "Integrates solar production info using public Solax/QCells Cloud API into Homebridge accessories.",
|
|
8
8
|
"license": "Apache-2.0",
|
|
9
9
|
"repository": {
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import {
|
|
2
|
+
API,
|
|
3
|
+
APIEvent,
|
|
4
|
+
Logging,
|
|
5
|
+
PlatformConfig,
|
|
6
|
+
} from 'homebridge';
|
|
7
|
+
import type { MatterAccessory, MatterAPI, PlatformAccessory } from 'homebridge';
|
|
8
|
+
import { PlatformAccessory as RuntimePlatformAccessory } from '../node_modules/homebridge/dist/platformAccessory.js';
|
|
9
|
+
|
|
10
|
+
import assert from 'assert';
|
|
11
|
+
|
|
12
|
+
import { SolaxOutletAccessory } from '../src/outletAccessory.js';
|
|
13
|
+
import { SolaxCloudAPIPlatform } from '../src/platform.js';
|
|
14
|
+
import { SolaxCloudAPIPlatformInverter } from '../src/platformInverter.js';
|
|
15
|
+
import { createApi, createLog, createMatterApi } from './helpers.js';
|
|
16
|
+
|
|
17
|
+
interface MigrationHarness {
|
|
18
|
+
api: API;
|
|
19
|
+
finishLaunching: () => void;
|
|
20
|
+
registrations: PlatformAccessory[][];
|
|
21
|
+
updates: PlatformAccessory[][];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
class MigrationTestPlatform extends SolaxCloudAPIPlatform {
|
|
25
|
+
protected createPlatformInverter(
|
|
26
|
+
log: Logging,
|
|
27
|
+
_config: PlatformConfig,
|
|
28
|
+
api: API,
|
|
29
|
+
_brand: number,
|
|
30
|
+
_tokenId: string,
|
|
31
|
+
_sn: string,
|
|
32
|
+
_name: string,
|
|
33
|
+
_hasBattery: boolean,
|
|
34
|
+
_smoothingWindow: number,
|
|
35
|
+
): SolaxCloudAPIPlatformInverter {
|
|
36
|
+
const displayName = _config.migrationDisplayName ?? 'Renamed Outlet';
|
|
37
|
+
const uuidBase = _config.migrationUuidBase ?? 'Original Outlet';
|
|
38
|
+
const outlet = new SolaxOutletAccessory(
|
|
39
|
+
log,
|
|
40
|
+
api,
|
|
41
|
+
displayName,
|
|
42
|
+
'outlet-test',
|
|
43
|
+
'Test Model',
|
|
44
|
+
false,
|
|
45
|
+
uuidBase,
|
|
46
|
+
api.matter ? {
|
|
47
|
+
displayName: `${displayName} sensor`,
|
|
48
|
+
serialNumber: 'outlet-test',
|
|
49
|
+
supportsEnergy: false,
|
|
50
|
+
} : undefined,
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
getAccessories: () => [outlet],
|
|
55
|
+
hasBattery: () => false,
|
|
56
|
+
} as unknown as SolaxCloudAPIPlatformInverter;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
protected async fetchDataPeriodically(): Promise<void> {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function createMigrationHarness(matter?: MatterAPI): MigrationHarness {
|
|
65
|
+
const api = createApi(matter);
|
|
66
|
+
const registrations: PlatformAccessory[][] = [];
|
|
67
|
+
const updates: PlatformAccessory[][] = [];
|
|
68
|
+
const finishLaunchingListeners: Array<() => void> = [];
|
|
69
|
+
|
|
70
|
+
api.platformAccessory = RuntimePlatformAccessory;
|
|
71
|
+
api.on = (event, listener) => {
|
|
72
|
+
if (event === APIEvent.DID_FINISH_LAUNCHING) {
|
|
73
|
+
finishLaunchingListeners.push(listener);
|
|
74
|
+
}
|
|
75
|
+
return api;
|
|
76
|
+
};
|
|
77
|
+
api.registerPlatformAccessories = (
|
|
78
|
+
_pluginIdentifier,
|
|
79
|
+
_platformName,
|
|
80
|
+
accessories,
|
|
81
|
+
) => registrations.push(accessories);
|
|
82
|
+
api.updatePlatformAccessories = accessories => updates.push(accessories);
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
api,
|
|
86
|
+
finishLaunching: () => finishLaunchingListeners.forEach(listener => listener()),
|
|
87
|
+
registrations,
|
|
88
|
+
updates,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function createConfig(overrides: Partial<PlatformConfig> = {}): PlatformConfig {
|
|
93
|
+
return {
|
|
94
|
+
platform: 'SolaxCloudAPI',
|
|
95
|
+
pollingFrequency: 300,
|
|
96
|
+
smoothMeters: false,
|
|
97
|
+
enableHistory: false,
|
|
98
|
+
inverters: [{
|
|
99
|
+
brand: 'solax',
|
|
100
|
+
tokenId: '20200722185111234567890',
|
|
101
|
+
name: 'Test inverter',
|
|
102
|
+
sn: 'ABCDEFGHIJ',
|
|
103
|
+
hasBattery: false,
|
|
104
|
+
}],
|
|
105
|
+
...overrides,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
describe('SolaxCloudAPIPlatform dynamic migration', () => {
|
|
110
|
+
it('registers the first dynamic accessory with the legacy static-platform UUID', () => {
|
|
111
|
+
const harness = createMigrationHarness();
|
|
112
|
+
|
|
113
|
+
new MigrationTestPlatform(createLog(), createConfig(), harness.api);
|
|
114
|
+
harness.finishLaunching();
|
|
115
|
+
|
|
116
|
+
assert.equal(harness.registrations.length, 1);
|
|
117
|
+
assert.equal(harness.registrations[0].length, 1);
|
|
118
|
+
assert.equal(
|
|
119
|
+
harness.registrations[0][0].UUID,
|
|
120
|
+
harness.api.hap.uuid.generate('SolaxCloudAPI:Original Outlet'),
|
|
121
|
+
);
|
|
122
|
+
assert.equal(harness.updates.length, 0);
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('preserves a qualified legacy platform identifier in the HAP UUID seed', () => {
|
|
126
|
+
const harness = createMigrationHarness();
|
|
127
|
+
|
|
128
|
+
new MigrationTestPlatform(createLog(), createConfig({
|
|
129
|
+
platform: 'homebridge-solaxcloud-api.SolaxCloudAPI',
|
|
130
|
+
}), harness.api);
|
|
131
|
+
harness.finishLaunching();
|
|
132
|
+
|
|
133
|
+
assert.equal(
|
|
134
|
+
harness.registrations[0][0].UUID,
|
|
135
|
+
harness.api.hap.uuid.generate(
|
|
136
|
+
'homebridge-solaxcloud-api.SolaxCloudAPI:Original Outlet',
|
|
137
|
+
),
|
|
138
|
+
);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
it('reuses and refreshes the same cached PlatformAccessory on restart', () => {
|
|
142
|
+
const firstRun = createMigrationHarness();
|
|
143
|
+
new MigrationTestPlatform(createLog(), createConfig(), firstRun.api);
|
|
144
|
+
firstRun.finishLaunching();
|
|
145
|
+
const cachedAccessory = firstRun.registrations[0][0];
|
|
146
|
+
|
|
147
|
+
const secondRun = createMigrationHarness();
|
|
148
|
+
const platform = new MigrationTestPlatform(createLog(), createConfig(), secondRun.api);
|
|
149
|
+
platform.configureAccessory(cachedAccessory);
|
|
150
|
+
secondRun.finishLaunching();
|
|
151
|
+
|
|
152
|
+
assert.equal(secondRun.registrations.length, 0);
|
|
153
|
+
assert.equal(secondRun.updates.length, 1);
|
|
154
|
+
assert.strictEqual(secondRun.updates[0][0], cachedAccessory);
|
|
155
|
+
assert.equal(cachedAccessory.displayName, 'Renamed Outlet');
|
|
156
|
+
assert.ok(cachedAccessory.services.some(service => service.displayName === 'Renamed Outlet'));
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
it('does not unregister an unclaimed cached HAP accessory during the beta migration', () => {
|
|
160
|
+
const harness = createMigrationHarness();
|
|
161
|
+
const platform = new MigrationTestPlatform(createLog(), createConfig(), harness.api);
|
|
162
|
+
const orphan = new RuntimePlatformAccessory(
|
|
163
|
+
'Previous Accessory',
|
|
164
|
+
harness.api.hap.uuid.generate('SolaxCloudAPI:Previous Accessory'),
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
platform.configureAccessory(orphan);
|
|
168
|
+
harness.finishLaunching();
|
|
169
|
+
|
|
170
|
+
assert.equal(harness.registrations.length, 1);
|
|
171
|
+
assert.equal(harness.updates.length, 0);
|
|
172
|
+
assert.equal(orphan.displayName, 'Previous Accessory');
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it('re-registers the same Matter UUID after Homebridge restores it', () => {
|
|
176
|
+
const matter = createMatterApi();
|
|
177
|
+
const harness = createMigrationHarness(matter.api);
|
|
178
|
+
const platform = new MigrationTestPlatform(createLog(), createConfig(), harness.api);
|
|
179
|
+
const registered = matter.registrations[0][0];
|
|
180
|
+
const restored = { ...registered } as MatterAccessory;
|
|
181
|
+
|
|
182
|
+
platform.configureMatterAccessory(restored);
|
|
183
|
+
harness.finishLaunching();
|
|
184
|
+
|
|
185
|
+
assert.equal(matter.registrations.length, 1);
|
|
186
|
+
assert.equal(registered.UUID, restored.UUID);
|
|
187
|
+
assert.equal(
|
|
188
|
+
registered.UUID,
|
|
189
|
+
harness.api.hap.uuid.generate('outlet-test-matter-power'),
|
|
190
|
+
);
|
|
191
|
+
});
|
|
192
|
+
});
|