homebridge-solaxcloud-api 2.5.3 → 2.5.5

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 CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [v2.5.5] - 2026-10-29
6
+ ### Changed
7
+ * Assigned Matter electrical sensors their own `-matter` serial namespace instead of reusing legacy `pureHomeApp` light-sensor serials. Existing Matter sensors from v2.5.4 will be recreated once to prevent cross-mode cache collisions.
8
+
9
+ ## [v2.5.4] - 2026-10-29
10
+ ### Changed
11
+ * Moved Matter electrical sensor ownership into each outlet accessory.
12
+ * Kept legacy HAP light sensors exclusive to the `pureHomeApp` fallback when Matter is unavailable.
13
+ ### Fixed
14
+ * Propagated raw and smoothed outlet power updates directly to their corresponding Matter electrical sensors.
15
+ * Avoided publishing battery Matter sensors when the inverter has no battery.
16
+
5
17
  ## [v2.5.3] - 2026-10-28
6
18
  ### Changed
7
19
  * Renamed smoothed outlets and power sensors from `… (smooth)` to the HomeKit-compatible `… Smooth` convention.
@@ -1,15 +1,11 @@
1
1
  import { AccessoryPlugin, API, CharacteristicGetCallback, Logging, Service } from 'homebridge';
2
2
  import { SolaxPlatformAccessory } from './platformAccessory.js';
3
3
  /**
4
- * Solax Power Sensor Accessory (Upgraded to Matter).
5
- * Exposes power consumption directly to Apple Home Energy via Matter,
6
- * or falls back to a virtual light sensor for older HAP setups.
4
+ * Solax legacy light sensor accessory.
5
+ * Exposes power as ambient light for the pure Home app option.
7
6
  */
8
7
  export declare class SolaxLightSensorAccessory extends SolaxPlatformAccessory implements AccessoryPlugin {
9
- private readonly lightService?;
10
- private readonly matterApi?;
11
- private readonly matterUuid?;
12
- private readonly matterRegistration?;
8
+ private readonly lightService;
13
9
  private readonly published;
14
10
  private currentPowerW;
15
11
  /**
@@ -20,7 +16,7 @@ export declare class SolaxLightSensorAccessory extends SolaxPlatformAccessory im
20
16
  * @param {string} serial "Real world" serial number for this accessory.
21
17
  * @param {string} model Accessory model.
22
18
  */
23
- constructor(log: Logging, api: API, name: string, serial: string, model: string, supportsEnergy?: boolean, published?: boolean, uuidBase?: string);
19
+ constructor(log: Logging, api: API, name: string, serial: string, model: string, published?: boolean, uuidBase?: string);
24
20
  /**
25
21
  * Gets the current power consumption in Watts.
26
22
  */
@@ -30,13 +26,6 @@ export declare class SolaxLightSensorAccessory extends SolaxPlatformAccessory im
30
26
  * @param {number} power The power consumption value to set (previously lux).
31
27
  */
32
28
  setAmbientLightLevel(power: number): void;
33
- /**
34
- * Sets cumulative generated energy in Watt-hours.
35
- * @param {number} energyWh The cumulative generated energy in Watt-hours.
36
- */
37
- setTotalEnergyConsumption(energyWh: number): void;
38
- isMatterAccessory(): boolean;
39
- private updateMatterState;
40
29
  getServices(): Service[];
41
30
  }
42
31
  //# sourceMappingURL=lightSensorAccessory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lightSensorAccessory.d.ts","sourceRoot":"","sources":["../src/lightSensorAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,GAAG,EAEH,yBAAyB,EACzB,OAAO,EAGP,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGhE;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,sBAAuB,YAAW,eAAe;IAC9F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAmB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,aAAa,CAAK;IAE1B;;;;;;;OAOG;gBAED,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,cAAc,UAAQ,EACtB,SAAS,UAAO,EAChB,QAAQ,CAAC,EAAE,MAAM;IA4DnB;;OAEG;IACI,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMtE;;;OAGG;IACI,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAczC;;;OAGG;IACI,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAejD,iBAAiB,IAAI,OAAO;IAInC,OAAO,CAAC,iBAAiB;IAsBzB,WAAW,IAAI,OAAO,EAAE;CAMzB"}
1
+ {"version":3,"file":"lightSensorAccessory.d.ts","sourceRoot":"","sources":["../src/lightSensorAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,GAAG,EAEH,yBAAyB,EACzB,OAAO,EACP,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,sBAAuB,YAAW,eAAe;IAC9F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,aAAa,CAAK;IAE1B;;;;;;;OAOG;gBAED,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,UAAO,EAChB,QAAQ,CAAC,EAAE,MAAM;IAqBnB;;OAEG;IACI,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMtE;;;OAGG;IACI,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAWzC,WAAW,IAAI,OAAO,EAAE;CAMzB"}
@@ -1,15 +1,10 @@
1
1
  import { SolaxPlatformAccessory } from './platformAccessory.js';
2
- import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
3
2
  /**
4
- * Solax Power Sensor Accessory (Upgraded to Matter).
5
- * Exposes power consumption directly to Apple Home Energy via Matter,
6
- * or falls back to a virtual light sensor for older HAP setups.
3
+ * Solax legacy light sensor accessory.
4
+ * Exposes power as ambient light for the pure Home app option.
7
5
  */
8
6
  export class SolaxLightSensorAccessory extends SolaxPlatformAccessory {
9
7
  lightService;
10
- matterApi;
11
- matterUuid;
12
- matterRegistration;
13
8
  published;
14
9
  currentPowerW = 0;
15
10
  /**
@@ -20,54 +15,19 @@ export class SolaxLightSensorAccessory extends SolaxPlatformAccessory {
20
15
  * @param {string} serial "Real world" serial number for this accessory.
21
16
  * @param {string} model Accessory model.
22
17
  */
23
- constructor(log, api, name, serial, model, supportsEnergy = false, published = true, uuidBase) {
18
+ constructor(log, api, name, serial, model, published = true, uuidBase) {
24
19
  super(log, api, name, serial, model, uuidBase);
25
20
  this.log.debug(`Creating power sensor "${this.name}"`);
26
21
  this.published = published;
27
22
  if (!published) {
28
- return;
29
- }
30
- this.matterApi = this.api.matter;
31
- if (this.matterApi) {
32
- this.matterUuid = this.api.hap.uuid.generate(serial + '-matter-power');
33
- const clusters = {
34
- electricalPowerMeasurement: {
35
- activePower: 0,
36
- },
37
- };
38
- if (supportsEnergy) {
39
- clusters.electricalEnergyMeasurement = {
40
- cumulativeEnergyExported: { energy: 0 },
41
- };
42
- }
43
- const matterAccessory = {
44
- displayName: name,
45
- UUID: this.matterUuid,
46
- deviceType: this.matterApi.deviceTypes.ElectricalSensor,
47
- serialNumber: serial,
48
- manufacturer: 'Solax',
49
- model,
50
- context: {},
51
- clusters,
52
- };
53
- this.matterRegistration = this.matterApi
54
- .registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [matterAccessory])
55
- .then(() => {
56
- log.info(`Matter Electrical Sensor (Watts) "${name}" created!`);
57
- return true;
58
- })
59
- .catch(error => {
60
- log.error(`Failed to register Matter accessory "${name}": ${error}`);
61
- return false;
62
- });
63
- }
64
- else {
65
23
  this.lightService = new this.api.hap.Service.LightSensor(name);
66
- this.lightService
67
- .getCharacteristic(this.api.hap.Characteristic.CurrentAmbientLightLevel)
68
- .on("get" /* CharacteristicEventTypes.GET */, this.getAmbientLightLevel.bind(this));
69
- log.info(`Light sensor (watts reader) "${name}" created!`);
24
+ return;
70
25
  }
26
+ this.lightService = new this.api.hap.Service.LightSensor(name);
27
+ this.lightService
28
+ .getCharacteristic(this.api.hap.Characteristic.CurrentAmbientLightLevel)
29
+ .on("get" /* CharacteristicEventTypes.GET */, this.getAmbientLightLevel.bind(this));
30
+ log.info(`Light sensor (watts reader) "${name}" created!`);
71
31
  }
72
32
  /**
73
33
  * Gets the current power consumption in Watts.
@@ -83,51 +43,14 @@ export class SolaxLightSensorAccessory extends SolaxPlatformAccessory {
83
43
  setAmbientLightLevel(power) {
84
44
  this.log.debug(`${this.name}: SET Power (W=${power})`);
85
45
  this.currentPowerW = power;
86
- if (this.matterApi && this.matterUuid) {
87
- this.updateMatterState(this.matterApi.clusterNames.ElectricalPowerMeasurement, { activePower: Math.round(power * 1000) });
88
- }
89
- else if (this.lightService) {
90
- this.lightService.updateCharacteristic(this.api.hap.Characteristic.CurrentAmbientLightLevel, Math.max(0.1, power));
91
- }
92
- }
93
- /**
94
- * Sets cumulative generated energy in Watt-hours.
95
- * @param {number} energyWh The cumulative generated energy in Watt-hours.
96
- */
97
- setTotalEnergyConsumption(energyWh) {
98
- if (!this.matterApi || !this.matterUuid) {
99
- return;
100
- }
101
- this.updateMatterState(this.matterApi.clusterNames.ElectricalEnergyMeasurement, {
102
- cumulativeEnergyExported: {
103
- energy: Math.round(energyWh * 1000),
104
- },
105
- });
106
- }
107
- isMatterAccessory() {
108
- return Boolean(this.matterApi);
109
- }
110
- updateMatterState(cluster, attributes) {
111
- if (!this.matterApi || !this.matterUuid || !this.matterRegistration) {
112
- return;
113
- }
114
- void this.matterRegistration
115
- .then(registered => {
116
- if (!registered) {
117
- return;
118
- }
119
- return this.matterApi.updateAccessoryState(this.matterUuid, cluster, attributes);
120
- })
121
- .catch(error => {
122
- this.log.error(`Failed to update Matter accessory "${this.name}": ${error}`);
123
- });
46
+ this.lightService.updateCharacteristic(this.api.hap.Characteristic.CurrentAmbientLightLevel, Math.max(0.1, power));
124
47
  }
125
48
  /*
126
49
  * This method is called directly after creation of this instance.
127
50
  * It should return all services which should be added to the accessory.
128
51
  */
129
52
  getServices() {
130
- if (!this.published || this.matterApi) {
53
+ if (!this.published) {
131
54
  return [this.informationService];
132
55
  }
133
56
  return [this.informationService, this.lightService];
@@ -1 +1 @@
1
- {"version":3,"file":"lightSensorAccessory.js","sourceRoot":"","sources":["../src/lightSensorAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lightSensorAccessory.js","sourceRoot":"","sources":["../src/lightSensorAccessory.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,sBAAsB;IAClD,YAAY,CAAU;IACtB,SAAS,CAAU;IAC5B,aAAa,GAAG,CAAC,CAAC;IAE1B;;;;;;;OAOG;IACH,YACE,GAAY,EACZ,GAAQ,EACR,IAAY,EACZ,MAAc,EACd,KAAa,EACb,SAAS,GAAG,IAAI,EAChB,QAAiB;QAEjB,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE/C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE/D,IAAI,CAAC,YAAY;aACd,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,wBAAwB,CAAC;aACvE,EAAE,2CAA+B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1E,GAAG,CAAC,IAAI,CAAC,gCAAgC,IAAI,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,QAAmC;QAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAE1E,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACI,oBAAoB,CAAC,KAAa;QACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,kBAAkB,KAAK,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,wBAAwB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACrH,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,CAAE,IAAI,CAAC,kBAAkB,CAAE,CAAC;QACrC,CAAC;QACD,OAAO,CAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAE,CAAC;IACxD,CAAC;CACF"}
@@ -1,11 +1,22 @@
1
1
  import { Service, AccessoryPlugin, Logging, CharacteristicGetCallback, API } from 'homebridge';
2
2
  import { SolaxPlatformAccessory } from './platformAccessory.js';
3
+ export interface MatterPowerSensorOptions {
4
+ displayName: string;
5
+ serialNumber: string;
6
+ supportsEnergy?: boolean;
7
+ }
3
8
  /**
4
9
  * Solax Outlet Accessory.
5
10
  * Virtual outlet used to monitor and measure both power and total energy consumption from Solax devices.
6
11
  * Outlet use is inferred from a positive power comsumption.
7
12
  */
8
13
  export declare class SolaxOutletAccessory extends SolaxPlatformAccessory implements AccessoryPlugin {
14
+ /** Matter API used to publish the outlet's native electrical sensor. */
15
+ private readonly matterApi?;
16
+ /** Stable UUID for the outlet's native Matter electrical sensor. */
17
+ private readonly matterUuid?;
18
+ /** Resolves after the native Matter electrical sensor registration finishes. */
19
+ private readonly matterRegistration?;
9
20
  /**
10
21
  * Eve Homekit types helper
11
22
  * */
@@ -50,7 +61,7 @@ export declare class SolaxOutletAccessory extends SolaxPlatformAccessory impleme
50
61
  * @param {string} serial "Real world" serial number for this accessory.
51
62
  * @param {string} model Accessory model.
52
63
  */
53
- constructor(log: Logging, api: API, name: string, serial: string, model: string, enableHistory?: boolean, uuidBase?: string);
64
+ constructor(log: Logging, api: API, name: string, serial: string, model: string, enableHistory?: boolean, uuidBase?: string, matterSensor?: MatterPowerSensorOptions);
54
65
  /**
55
66
  * Adds new power entry to series array of power values.
56
67
  * @param {number} powerConsumption Power value to add (in Watts).
@@ -95,6 +106,7 @@ export declare class SolaxOutletAccessory extends SolaxPlatformAccessory impleme
95
106
  * @param {number} totalEnergyConsumption The total energy consumption to set.
96
107
  */
97
108
  setTotalEnergyConsumption(totalEnergyConsumption: number): void;
109
+ private updateMatterState;
98
110
  /**
99
111
  * Gets the outlet state Characteristic based on its consumed power.
100
112
  * @param {CharacteristicGetCallback} callback The callback.
@@ -1 +1 @@
1
- {"version":3,"file":"outletAccessory.d.ts","sourceRoot":"","sources":["../src/outletAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAkB,yBAAyB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAE/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AA8BhE;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,eAAe;IAEzF;;SAEK;IACL,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAW;IAEvC;;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,CAAC,CAAyB;IAEzD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAE5C;;OAEG;IACH,OAAO,CAAC,OAAO,CAAK;IAEpB;;;;;;;OAOG;gBACS,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,UAAO,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqCxH;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;;;;OAKG;IACI,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAwC5E;;;OAGG;IACI,wBAAwB,IAAI,MAAM;IAIzC;;OAEG;IACI,mBAAmB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMrE;;wEAEoE;IAC7D,mBAAmB,CAAC,gBAAgB,EAAE,MAAM;IAgBnD;;;OAGG;IACI,8BAA8B,IAAI,MAAM;IAI/C;;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;CAUzB"}
1
+ {"version":3,"file":"outletAccessory.d.ts","sourceRoot":"","sources":["../src/outletAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EACf,OAAO,EAEP,yBAAyB,EACzB,GAAG,EAGJ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AA0BhE,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAOD;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,sBAAuB,YAAW,eAAe;IAEzF,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;IAEvC,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IAErC,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAmB;IAEvD;;SAEK;IACL,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAW;IAEvC;;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,CAAC,CAAyB;IAEzD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAE5C;;OAEG;IACH,OAAO,CAAC,OAAO,CAAK;IAEpB;;;;;;;OAOG;gBAED,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,aAAa,UAAO,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,wBAAwB;IA8EzC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;;;;OAKG;IACI,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAwC5E;;;OAGG;IACI,wBAAwB,IAAI,MAAM;IAIzC;;OAEG;IACI,mBAAmB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMrE;;wEAEoE;IAC7D,mBAAmB,CAAC,gBAAgB,EAAE,MAAM;IAuBnD;;;OAGG;IACI,8BAA8B,IAAI,MAAM;IAI/C;;OAEG;IACI,yBAAyB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAM3E;;;OAGG;IACI,yBAAyB,CAAC,sBAAsB,EAAE,MAAM;IAmB/D,OAAO,CAAC,iBAAiB;IAkBzB;;;OAGG;IACI,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAU1D,WAAW,IAAI,OAAO,EAAE;CAUzB"}
@@ -1,4 +1,5 @@
1
1
  import { SolaxPlatformAccessory } from './platformAccessory.js';
2
+ import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
2
3
  import { Statistics } from './statistics.js';
3
4
  import fakegato from 'fakegato-history';
4
5
  import { createRequire } from 'module';
@@ -14,6 +15,12 @@ const MAX_POWER_SERIES_SIZE = 1024;
14
15
  * Outlet use is inferred from a positive power comsumption.
15
16
  */
16
17
  export class SolaxOutletAccessory extends SolaxPlatformAccessory {
18
+ /** Matter API used to publish the outlet's native electrical sensor. */
19
+ matterApi;
20
+ /** Stable UUID for the outlet's native Matter electrical sensor. */
21
+ matterUuid;
22
+ /** Resolves after the native Matter electrical sensor registration finishes. */
23
+ matterRegistration;
17
24
  /**
18
25
  * Eve Homekit types helper
19
26
  * */
@@ -58,7 +65,7 @@ export class SolaxOutletAccessory extends SolaxPlatformAccessory {
58
65
  * @param {string} serial "Real world" serial number for this accessory.
59
66
  * @param {string} model Accessory model.
60
67
  */
61
- constructor(log, api, name, serial, model, enableHistory = true, uuidBase) {
68
+ constructor(log, api, name, serial, model, enableHistory = true, uuidBase, matterSensor) {
62
69
  super(log, api, name, serial, model, uuidBase);
63
70
  this.log.debug(`Creating outlet "${this.name}"`);
64
71
  this.enableHistory = enableHistory;
@@ -82,6 +89,40 @@ export class SolaxOutletAccessory extends SolaxPlatformAccessory {
82
89
  this.eveService = fakegato(this.api);
83
90
  this.loggingService = new this.eveService('energy', this, { storage: 'fs', log: this.log, disableRepeatLastData: true });
84
91
  }
92
+ this.matterApi = this.api.matter;
93
+ if (this.matterApi && matterSensor) {
94
+ this.matterUuid = this.api.hap.uuid.generate(matterSensor.serialNumber + '-matter-power');
95
+ const clusters = {
96
+ electricalPowerMeasurement: {
97
+ activePower: 0,
98
+ },
99
+ };
100
+ if (matterSensor.supportsEnergy) {
101
+ clusters.electricalEnergyMeasurement = {
102
+ cumulativeEnergyExported: { energy: 0 },
103
+ };
104
+ }
105
+ const matterAccessory = {
106
+ displayName: matterSensor.displayName,
107
+ UUID: this.matterUuid,
108
+ deviceType: this.matterApi.deviceTypes.ElectricalSensor,
109
+ serialNumber: matterSensor.serialNumber,
110
+ manufacturer: 'Solax',
111
+ model,
112
+ context: {},
113
+ clusters,
114
+ };
115
+ this.matterRegistration = this.matterApi
116
+ .registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [matterAccessory])
117
+ .then(() => {
118
+ log.info(`Matter Electrical Sensor (Watts) "${matterSensor.displayName}" created!`);
119
+ return true;
120
+ })
121
+ .catch(error => {
122
+ log.error(`Failed to register Matter accessory "${matterSensor.displayName}": ${error}`);
123
+ return false;
124
+ });
125
+ }
85
126
  log.info(`Outlet "${name}" created!`);
86
127
  }
87
128
  /**
@@ -165,6 +206,9 @@ export class SolaxOutletAccessory extends SolaxPlatformAccessory {
165
206
  }
166
207
  // add new value to power series
167
208
  this.addPowerEntry(this.powerConsumption);
209
+ if (this.matterApi) {
210
+ this.updateMatterState(this.matterApi.clusterNames.ElectricalPowerMeasurement, { activePower: Math.round(this.powerConsumption * 1000) });
211
+ }
168
212
  }
169
213
  /**
170
214
  * Gets the total energy consumption value for this outlet.
@@ -188,6 +232,28 @@ export class SolaxOutletAccessory extends SolaxPlatformAccessory {
188
232
  this.log.debug(`${this.name}: SET Total Energy (energy=${totalEnergyConsumption}kWh)`);
189
233
  this.totalEnergyConsumption = totalEnergyConsumption;
190
234
  this.outletService.getCharacteristic(this.eve.Characteristics.TotalConsumption).updateValue(this.totalEnergyConsumption);
235
+ if (this.matterApi) {
236
+ this.updateMatterState(this.matterApi.clusterNames.ElectricalEnergyMeasurement, {
237
+ cumulativeEnergyExported: {
238
+ energy: Math.round(totalEnergyConsumption * 1000),
239
+ },
240
+ });
241
+ }
242
+ }
243
+ updateMatterState(cluster, attributes) {
244
+ if (!this.matterApi || !this.matterUuid || !this.matterRegistration) {
245
+ return;
246
+ }
247
+ void this.matterRegistration
248
+ .then(registered => {
249
+ if (!registered) {
250
+ return;
251
+ }
252
+ return this.matterApi.updateAccessoryState(this.matterUuid, cluster, attributes);
253
+ })
254
+ .catch(error => {
255
+ this.log.error(`Failed to update Matter accessory for outlet "${this.name}": ${error}`);
256
+ });
191
257
  }
192
258
  /**
193
259
  * Gets the outlet state Characteristic based on its consumed power.
@@ -1 +1 @@
1
- {"version":3,"file":"outletAccessory.js","sourceRoot":"","sources":["../src/outletAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outletAccessory.js","sourceRoot":"","sources":["../src/outletAccessory.ts"],"names":[],"mappings":"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"}
@@ -10,13 +10,13 @@ export declare const INVERTER_BRAND: {
10
10
  * Standard names for accessories.
11
11
  */
12
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;
13
+ readonly pv: "pv";
14
+ readonly inverterToBattery: "inverterToBattery";
15
+ readonly inverterFromBattery: "inverterFromBattery";
16
+ readonly inverterAC: "inverterAC";
17
+ readonly inverterToGrid: "inverterToGrid";
18
+ readonly inverterToHouse: "inverterToHouse";
19
+ readonly gridToHouse: "gridToHouse";
20
20
  };
21
21
  /**
22
22
  * SolaxCloudAPIPlatformInverter.
@@ -55,11 +55,8 @@ export declare class SolaxCloudAPIPlatformInverter {
55
55
  * Whether this inverter is a virtual accessory.
56
56
  */
57
57
  private virtual;
58
- /**
59
- * Whether power meters are exposed as Matter electrical sensors or legacy
60
- * HomeKit ambient light sensors.
61
- */
62
- private readonly useNativePowerSensors;
58
+ /** Whether legacy ambient-light power sensors are enabled for pure Home. */
59
+ private readonly useLegacyLightSensors;
63
60
  /**
64
61
  * Virtual motion sensor triggered by data updates from Solax Cloud.
65
62
  */
@@ -110,6 +107,7 @@ export declare class SolaxCloudAPIPlatformInverter {
110
107
  * @returns Inverter brand name.
111
108
  */
112
109
  static getInverterBrandName(brand: number): string;
110
+ private getMatterSensorOptions;
113
111
  /**
114
112
  * Update all platform accessory status based on the values read from the API.
115
113
  * @param {SolaxCloudAPIResponse} apiData API data from Solax Cloud.
@@ -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;AAgB3E;;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,CAAsB;IAE5C;;OAEG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,OAAO,CAAU;IAEzB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAU;IAEhD;;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;IA4MvE;;;;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;IAQ/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;CAK3C"}
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;AAgB3E;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAG1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAQjB,CAAC;AA4BX;;;;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,CAAsB;IAE5C;;OAEG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,OAAO,CAAU;IAEzB,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAU;IAEhD;;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;IAqNvE;;;;OAIG;WACW,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IASzD,OAAO,CAAC,sBAAsB;IAe9B;;;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;IAK/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"}
@@ -85,11 +85,8 @@ export class SolaxCloudAPIPlatformInverter {
85
85
  * Whether this inverter is a virtual accessory.
86
86
  */
87
87
  virtual;
88
- /**
89
- * Whether power meters are exposed as Matter electrical sensors or legacy
90
- * HomeKit ambient light sensors.
91
- */
92
- useNativePowerSensors;
88
+ /** Whether legacy ambient-light power sensors are enabled for pure Home. */
89
+ useLegacyLightSensors;
93
90
  /**
94
91
  * Virtual motion sensor triggered by data updates from Solax Cloud.
95
92
  */
@@ -143,7 +140,7 @@ export class SolaxCloudAPIPlatformInverter {
143
140
  this.name = name;
144
141
  this.brandName = brandName;
145
142
  this.virtual = virtual;
146
- this.useNativePowerSensors = Boolean(this.api.matter) || this.config.pureHomeApp === true;
143
+ this.useLegacyLightSensors = !this.api.matter && this.config.pureHomeApp === true;
147
144
  this.smoothingWindow = smoothingWindow;
148
145
  this.batteryInstalled = hasBattery;
149
146
  this.log.info(`Initialing acessories for inverter "${name}" (SN="${sn}") from ${this.brandName}...`);
@@ -170,13 +167,13 @@ export class SolaxCloudAPIPlatformInverter {
170
167
  }
171
168
  // setup raw outlet accessories
172
169
  this.rawOutlets = {
173
- pv: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv}`, `${ACCESSORY_SERIAL_PREFIXES.pv}-${this.sn}`, inverterModel, this.config.enableHistory),
174
- inverterFromBattery: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery}`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-${this.sn}`, inverterModel, this.config.enableHistory),
175
- inverterToBattery: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-${this.sn}`, inverterModel, this.config.enableHistory),
176
- inverterAC: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC}`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-${this.sn}`, inverterModel, this.config.enableHistory),
177
- inverterToGrid: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-${this.sn}`, inverterModel, this.config.enableHistory),
178
- inverterToHouse: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-${this.sn}`, inverterModel, this.config.enableHistory),
179
- gridToHouse: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse}`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-${this.sn}`, inverterModel, this.config.enableHistory),
170
+ pv: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv}`, `${ACCESSORY_SERIAL_PREFIXES.pv}-${this.sn}`, inverterModel, this.config.enableHistory, undefined, this.getMatterSensorOptions(ACCESSORY_KEYS.pv)),
171
+ inverterFromBattery: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery}`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-${this.sn}`, inverterModel, this.config.enableHistory, undefined, this.batteryInstalled ? this.getMatterSensorOptions(ACCESSORY_KEYS.inverterFromBattery) : undefined),
172
+ inverterToBattery: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-${this.sn}`, inverterModel, this.config.enableHistory, undefined, this.batteryInstalled ? this.getMatterSensorOptions(ACCESSORY_KEYS.inverterToBattery) : undefined),
173
+ inverterAC: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC}`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-${this.sn}`, inverterModel, this.config.enableHistory, undefined, this.getMatterSensorOptions(ACCESSORY_KEYS.inverterAC, false, true)),
174
+ inverterToGrid: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-${this.sn}`, inverterModel, this.config.enableHistory, undefined, this.getMatterSensorOptions(ACCESSORY_KEYS.inverterToGrid)),
175
+ inverterToHouse: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse}`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-${this.sn}`, inverterModel, this.config.enableHistory, undefined, this.getMatterSensorOptions(ACCESSORY_KEYS.inverterToHouse)),
176
+ gridToHouse: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse}`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-${this.sn}`, inverterModel, this.config.enableHistory, undefined, this.getMatterSensorOptions(ACCESSORY_KEYS.gridToHouse)),
180
177
  };
181
178
  // setup update motion sensor
182
179
  this.motionUpdate =
@@ -189,15 +186,13 @@ export class SolaxCloudAPIPlatformInverter {
189
186
  this.battery = new SolaxBatteryAccessory(this.log, this.api, `${this.name} Battery`, `bat-${this.sn}`, inverterModel);
190
187
  this.solaxAccessories.push(this.battery, this.rawOutlets.inverterFromBattery, this.rawOutlets.inverterToBattery);
191
188
  }
192
- // Matter electrical sensors take precedence. Without Matter, pureHomeApp
193
- // retains the legacy ambient-light-sensor fallback.
194
- if (this.useNativePowerSensors) {
189
+ if (this.useLegacyLightSensors) {
195
190
  // add raw power sensors
196
191
  this.rawLightSensors = {
197
192
  pv: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} sensor`, `${ACCESSORY_SERIAL_PREFIXES.pv}-light-${this.sn}`, inverterModel),
198
- inverterFromBattery: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-light-${this.sn}`, inverterModel, false, this.batteryInstalled),
199
- inverterToBattery: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-light-${this.sn}`, inverterModel, false, this.batteryInstalled),
200
- inverterAC: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-light-${this.sn}`, inverterModel, true),
193
+ inverterFromBattery: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-light-${this.sn}`, inverterModel, this.batteryInstalled),
194
+ inverterToBattery: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-light-${this.sn}`, inverterModel, this.batteryInstalled),
195
+ inverterAC: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-light-${this.sn}`, inverterModel),
201
196
  inverterToGrid: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-light-${this.sn}`, inverterModel),
202
197
  inverterToHouse: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-light-${this.sn}`, inverterModel),
203
198
  gridToHouse: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-light-${this.sn}`, inverterModel),
@@ -209,13 +204,13 @@ export class SolaxCloudAPIPlatformInverter {
209
204
  if (this.config.smoothMeters) {
210
205
  // add smooth power sensors
211
206
  this.smoothLightSensors = {
212
- pv: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.pv}-light-smooth-${this.sn}`, inverterModel, false, true, `${this.name} ${ACCESSORY_NAMES.pv} sensor (smooth)`),
213
- inverterFromBattery: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-light-smooth-${this.sn}`, inverterModel, false, this.batteryInstalled, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} sensor (smooth)`),
214
- inverterToBattery: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-light-smooth-${this.sn}`, inverterModel, false, this.batteryInstalled, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} sensor (smooth)`),
215
- inverterAC: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-light-smooth-${this.sn}`, inverterModel, false, true, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor (smooth)`),
216
- inverterToGrid: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-light-smooth-${this.sn}`, inverterModel, false, true, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor (smooth)`),
217
- inverterToHouse: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-light-smooth-${this.sn}`, inverterModel, false, true, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor (smooth)`),
218
- gridToHouse: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-light-smooth-${this.sn}`, inverterModel, false, true, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor (smooth)`),
207
+ pv: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.pv}-light-smooth-${this.sn}`, inverterModel, true, `${this.name} ${ACCESSORY_NAMES.pv} sensor (smooth)`),
208
+ inverterFromBattery: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-light-smooth-${this.sn}`, inverterModel, this.batteryInstalled, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} sensor (smooth)`),
209
+ inverterToBattery: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-light-smooth-${this.sn}`, inverterModel, this.batteryInstalled, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} sensor (smooth)`),
210
+ inverterAC: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-light-smooth-${this.sn}`, inverterModel, true, `${this.name} ${ACCESSORY_NAMES.inverterAC} sensor (smooth)`),
211
+ inverterToGrid: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-light-smooth-${this.sn}`, inverterModel, true, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} sensor (smooth)`),
212
+ inverterToHouse: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-light-smooth-${this.sn}`, inverterModel, true, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} sensor (smooth)`),
213
+ gridToHouse: new SolaxLightSensorAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor Smooth`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-light-smooth-${this.sn}`, inverterModel, true, `${this.name} ${ACCESSORY_NAMES.gridToHouse} sensor (smooth)`),
219
214
  };
220
215
  this.solaxAccessories.push(this.smoothLightSensors.pv, this.smoothLightSensors.inverterAC, this.smoothLightSensors.inverterToGrid, this.smoothLightSensors.inverterToHouse, this.smoothLightSensors.gridToHouse);
221
216
  if (this.batteryInstalled) {
@@ -226,13 +221,13 @@ export class SolaxCloudAPIPlatformInverter {
226
221
  if (this.config.smoothMeters) {
227
222
  // Smooth outlets remain available alongside Matter electrical sensors.
228
223
  this.smoothOutlets = {
229
- pv: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.pv}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.pv} (smooth)`),
230
- inverterFromBattery: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} (smooth)`),
231
- inverterToBattery: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} (smooth)`),
232
- inverterAC: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterAC} (smooth)`),
233
- inverterToGrid: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} (smooth)`),
234
- inverterToHouse: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} (smooth)`),
235
- gridToHouse: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.gridToHouse} (smooth)`),
224
+ pv: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.pv} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.pv}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.pv} (smooth)`, this.getMatterSensorOptions(ACCESSORY_KEYS.pv, true)),
225
+ inverterFromBattery: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterFromBattery}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterFromBattery} (smooth)`, this.batteryInstalled ? this.getMatterSensorOptions(ACCESSORY_KEYS.inverterFromBattery, true) : undefined),
226
+ inverterToBattery: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToBattery}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterToBattery} (smooth)`, this.batteryInstalled ? this.getMatterSensorOptions(ACCESSORY_KEYS.inverterToBattery, true) : undefined),
227
+ inverterAC: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterAC} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterAC}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterAC} (smooth)`, this.getMatterSensorOptions(ACCESSORY_KEYS.inverterAC, true)),
228
+ inverterToGrid: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToGrid}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterToGrid} (smooth)`, this.getMatterSensorOptions(ACCESSORY_KEYS.inverterToGrid, true)),
229
+ inverterToHouse: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.inverterToHouse}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.inverterToHouse} (smooth)`, this.getMatterSensorOptions(ACCESSORY_KEYS.inverterToHouse, true)),
230
+ gridToHouse: new SolaxOutletAccessory(this.log, this.api, `${this.name} ${ACCESSORY_NAMES.gridToHouse} Smooth`, `${ACCESSORY_SERIAL_PREFIXES.gridToHouse}-smooth-${this.sn}`, inverterModel, this.config.enableHistory, `${this.name} ${ACCESSORY_NAMES.gridToHouse} (smooth)`, this.getMatterSensorOptions(ACCESSORY_KEYS.gridToHouse, true)),
236
231
  };
237
232
  this.solaxAccessories.push(this.smoothOutlets.pv, this.smoothOutlets.inverterAC, this.smoothOutlets.inverterToGrid, this.smoothOutlets.inverterToHouse, this.smoothOutlets.gridToHouse);
238
233
  if (this.batteryInstalled) {
@@ -253,6 +248,15 @@ export class SolaxCloudAPIPlatformInverter {
253
248
  return 'Solax';
254
249
  }
255
250
  }
251
+ getMatterSensorOptions(key, smooth = false, supportsEnergy = false) {
252
+ const smoothSuffix = smooth ? ' Smooth' : '';
253
+ const serialSmoothSegment = smooth ? '-smooth' : '';
254
+ return {
255
+ displayName: `${this.name} ${ACCESSORY_NAMES[key]} sensor${smoothSuffix}`,
256
+ serialNumber: `${ACCESSORY_SERIAL_PREFIXES[key]}-matter${serialSmoothSegment}-${this.sn}`,
257
+ supportsEnergy,
258
+ };
259
+ }
256
260
  /**
257
261
  * Update all platform accessory status based on the values read from the API.
258
262
  * @param {SolaxCloudAPIResponse} apiData API data from Solax Cloud.
@@ -342,7 +346,7 @@ export class SolaxCloudAPIPlatformInverter {
342
346
  */
343
347
  setRawPower(key, power) {
344
348
  this.rawOutlets[key].setPowerConsumption(power);
345
- if (this.useNativePowerSensors) {
349
+ if (this.useLegacyLightSensors) {
346
350
  this.rawLightSensors[key].setAmbientLightLevel(power);
347
351
  }
348
352
  }
@@ -361,9 +365,6 @@ export class SolaxCloudAPIPlatformInverter {
361
365
  */
362
366
  setRawEnergy(key, energy) {
363
367
  this.rawOutlets[key].setTotalEnergyConsumption(energy);
364
- if (this.useNativePowerSensors) {
365
- this.rawLightSensors[key].setTotalEnergyConsumption(energy);
366
- }
367
368
  }
368
369
  /**
369
370
  * Sets smooth accessory power from raw accessory power for this inverter.
@@ -371,7 +372,7 @@ export class SolaxCloudAPIPlatformInverter {
371
372
  */
372
373
  setSmoothPower(key) {
373
374
  const smoothPower = this.rawOutlets[key].getSmoothPowerConsumption(this.config.smoothingMethod, this.smoothingWindow);
374
- if (this.useNativePowerSensors) {
375
+ if (this.useLegacyLightSensors) {
375
376
  this.smoothLightSensors[key].setAmbientLightLevel(smoothPower);
376
377
  }
377
378
  this.smoothOutlets[key].setPowerConsumption(smoothPower);
@@ -412,7 +413,7 @@ export class SolaxCloudAPIPlatformInverter {
412
413
  * @returns {AccessoryPlugin[]} Array of accessories for this inverter.
413
414
  */
414
415
  getAccessories() {
415
- return this.solaxAccessories.filter(accessory => !(accessory instanceof SolaxLightSensorAccessory && accessory.isMatterAccessory()));
416
+ return this.solaxAccessories;
416
417
  }
417
418
  }
418
419
  //# sourceMappingURL=platformInverter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platformInverter.js","sourceRoot":"","sources":["../src/platformInverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platformInverter.js","sourceRoot":"","sources":["../src/platformInverter.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.3",
6
+ "version": "2.5.5",
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": {
@@ -24,10 +24,9 @@ describe('SolaxLightSensorAccessory', () => {
24
24
  const sensor = new SolaxLightSensorAccessory(createLog(), createApi(), 'Light sensor', 'light-1', 'Model');
25
25
 
26
26
  assert.equal(sensor.getServices().length, 2);
27
- assert.equal(sensor.isMatterAccessory(), false);
28
27
  });
29
28
 
30
- it('registers and updates a Matter electrical sensor', async () => {
29
+ it('remains a HAP light sensor when a Matter API is available', () => {
31
30
  const matter = createMatterApi();
32
31
  const sensor = new SolaxLightSensorAccessory(
33
32
  createLog(),
@@ -35,39 +34,9 @@ describe('SolaxLightSensorAccessory', () => {
35
34
  'Power sensor',
36
35
  'power-1',
37
36
  'Model',
38
- true,
39
37
  );
40
38
 
41
- assert.equal(sensor.getServices().length, 1);
42
- assert.equal(sensor.isMatterAccessory(), true);
43
- assert.equal(matter.registrations.length, 1);
44
-
45
- const accessory = matter.registrations[0][0];
46
- assert.equal(accessory.deviceType, matter.api.deviceTypes.ElectricalSensor);
47
- assert.deepEqual(accessory.clusters, {
48
- electricalPowerMeasurement: { activePower: 0 },
49
- electricalEnergyMeasurement: {
50
- cumulativeEnergyExported: { energy: 0 },
51
- },
52
- });
53
-
54
- sensor.setAmbientLightLevel(123.456);
55
- sensor.setTotalEnergyConsumption(12.345);
56
- await new Promise(resolve => setImmediate(resolve));
57
-
58
- assert.deepEqual(matter.updates, [
59
- {
60
- uuid: accessory.UUID,
61
- cluster: 'electricalPowerMeasurement',
62
- attributes: { activePower: 123456 },
63
- },
64
- {
65
- uuid: accessory.UUID,
66
- cluster: 'electricalEnergyMeasurement',
67
- attributes: {
68
- cumulativeEnergyExported: { energy: 12345 },
69
- },
70
- },
71
- ]);
39
+ assert.equal(sensor.getServices().length, 2);
40
+ assert.equal(matter.registrations.length, 0);
72
41
  });
73
42
  });
@@ -1,6 +1,6 @@
1
1
  import assert from 'assert';
2
2
  import { SolaxOutletAccessory } from '../src/outletAccessory.js';
3
- import { createApi, createLog } from './helpers.js';
3
+ import { createApi, createLog, createMatterApi } from './helpers.js';
4
4
 
5
5
  describe('SolaxOutletAccessory', () => {
6
6
  function withOutlet(test: (outlet: SolaxOutletAccessory) => void): void {
@@ -72,4 +72,54 @@ describe('SolaxOutletAccessory', () => {
72
72
  assert.equal(outlet.getPowerConsumptionValue(), 42);
73
73
  assert.equal(outlet.getServices().length, 2);
74
74
  });
75
+
76
+ it('owns and updates its Matter electrical sensor', async () => {
77
+ const matter = createMatterApi();
78
+ const outlet = new SolaxOutletAccessory(
79
+ createLog(),
80
+ createApi(matter.api),
81
+ 'Outlet',
82
+ 'outlet-1',
83
+ 'Model',
84
+ false,
85
+ undefined,
86
+ {
87
+ displayName: 'Outlet sensor',
88
+ serialNumber: 'outlet-matter-1',
89
+ supportsEnergy: true,
90
+ },
91
+ );
92
+
93
+ assert.equal(matter.registrations.length, 1);
94
+
95
+ const accessory = matter.registrations[0][0];
96
+ assert.equal(accessory.displayName, 'Outlet sensor');
97
+ assert.equal(accessory.serialNumber, 'outlet-matter-1');
98
+ assert.equal(accessory.deviceType, matter.api.deviceTypes.ElectricalSensor);
99
+ assert.deepEqual(accessory.clusters, {
100
+ electricalPowerMeasurement: { activePower: 0 },
101
+ electricalEnergyMeasurement: {
102
+ cumulativeEnergyExported: { energy: 0 },
103
+ },
104
+ });
105
+
106
+ outlet.setPowerConsumption(123.456);
107
+ outlet.setTotalEnergyConsumption(12.345);
108
+ await new Promise(resolve => setImmediate(resolve));
109
+
110
+ assert.deepEqual(matter.updates, [
111
+ {
112
+ uuid: accessory.UUID,
113
+ cluster: 'electricalPowerMeasurement',
114
+ attributes: { activePower: 123456 },
115
+ },
116
+ {
117
+ uuid: accessory.UUID,
118
+ cluster: 'electricalEnergyMeasurement',
119
+ attributes: {
120
+ cumulativeEnergyExported: { energy: 12345 },
121
+ },
122
+ },
123
+ ]);
124
+ });
75
125
  });
@@ -3,6 +3,7 @@ import { API, Logging, PlatformConfig } from 'homebridge';
3
3
  import assert from 'assert';
4
4
 
5
5
  import { SolaxOutletAccessory } from '../src/outletAccessory.js';
6
+ import { SolaxLightSensorAccessory } from '../src/lightSensorAccessory.js';
6
7
  import { SolaxCloudAPIPlatform } from '../src/platform.js';
7
8
  import { SolaxCloudAPIPlatformInverter } from '../src/platformInverter.js';
8
9
  import { createApi, createLog, createMatterApi } from './helpers.js';
@@ -102,20 +103,25 @@ describe('SolaxCloudAPIPlatform totalizer inverter creation', () => {
102
103
  );
103
104
 
104
105
  assert.equal(matter.registrations.length, 10);
105
- const smoothMatterSensors = matter.registrations
106
- .flat()
107
- .filter(accessory => accessory.serialNumber.includes('-light-smooth-'));
106
+ const matterSensors = matter.registrations.flat();
107
+ const smoothMatterSensors = matterSensors
108
+ .filter(accessory => accessory.serialNumber.includes('-matter-smooth-'));
108
109
 
109
110
  assert.equal(smoothMatterSensors.length, 5);
110
111
  smoothMatterSensors.forEach(accessory => assert.match(accessory.displayName, / sensor Smooth$/));
112
+ matterSensors.forEach(accessory => {
113
+ assert.match(accessory.serialNumber, /-matter(?:-smooth)?-/);
114
+ assert.doesNotMatch(accessory.serialNumber, /-light(?:-smooth)?-/);
115
+ });
111
116
 
112
- // Matter sensors are additive: raw and smooth outlets remain published.
117
+ // Each outlet owns its Matter sensor; no light-sensor accessory is published.
113
118
  const outlets = inverter.getAccessories().filter(
114
119
  (accessory): accessory is SolaxOutletAccessory => accessory instanceof SolaxOutletAccessory,
115
120
  );
116
121
 
117
122
  assert.equal(inverter.getAccessories().length, 11);
118
123
  assert.equal(outlets.length, 10);
124
+ assert.equal(inverter.getAccessories().some(accessory => accessory instanceof SolaxLightSensorAccessory), false);
119
125
 
120
126
  inverter.setRawPower('inverterAC', 123.456);
121
127
  inverter.setSmoothPower('inverterAC');
@@ -151,6 +157,34 @@ describe('SolaxCloudAPIPlatform totalizer inverter creation', () => {
151
157
  );
152
158
 
153
159
  assert.equal(inverter.getAccessories().length, 11);
160
+ assert.equal(inverter.getAccessories().filter(accessory => accessory instanceof SolaxLightSensorAccessory).length, 5);
161
+ });
162
+
163
+ it('uses Matter outlets instead of pureHomeApp light sensors when both are configured', () => {
164
+ const matter = createMatterApi();
165
+ const config = {
166
+ enableHistory: false,
167
+ pureHomeApp: true,
168
+ smoothMeters: false,
169
+ smoothingMethod: 'sma',
170
+ } as PlatformConfig;
171
+
172
+ const inverter = new SolaxCloudAPIPlatformInverter(
173
+ createLog(),
174
+ config,
175
+ createApi(matter.api),
176
+ 0,
177
+ '',
178
+ 'virtual',
179
+ 'Virtual inverter',
180
+ false,
181
+ 3,
182
+ true,
183
+ );
184
+
185
+ assert.equal(matter.registrations.length, 5);
186
+ assert.equal(inverter.getAccessories().length, 6);
187
+ assert.equal(inverter.getAccessories().some(accessory => accessory instanceof SolaxLightSensorAccessory), false);
154
188
  });
155
189
 
156
190
  it('renames smooth HAP accessories without changing their Homebridge UUID bases', () => {