@enyo-energy/sunspec-sdk 0.0.33 → 0.0.35

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.
@@ -11,19 +11,6 @@ const enyo_meter_appliance_js_1 = require("@enyo-energy/energy-app-sdk/dist/type
11
11
  const enyo_battery_appliance_js_1 = require("@enyo-energy/energy-app-sdk/dist/types/enyo-battery-appliance.js");
12
12
  // TODO: Remove once added to @enyo-energy/energy-app-sdk EnyoDataBusMessageEnum
13
13
  exports.ENYO_DATA_BUS_SET_INVERTER_FEED_IN_LIMIT_V1 = 'SetInverterFeedInLimitV1';
14
- /**
15
- * Extract battery discharge power from MPPT data.
16
- * Returns the discharge power in Watts (positive value), or 0 if no discharge.
17
- */
18
- function extractBatteryDischargePowerFromMPPT(mpptDataList) {
19
- let dischargePowerW = 0;
20
- for (const mppt of mpptDataList) {
21
- if (mppt.stringId === 'StDisCha 4' && mppt.dcPower !== undefined && mppt.dcPower > 0) {
22
- dischargePowerW += mppt.dcPower;
23
- }
24
- }
25
- return dischargePowerW;
26
- }
27
14
  /**
28
15
  * Base abstract class for all Sunspec devices
29
16
  */
@@ -177,6 +164,7 @@ class SunspecInverter extends BaseSunspecDevice {
177
164
  serialNumber: commonData?.serialNumber,
178
165
  modelName: commonData?.model,
179
166
  vendorName: commonData?.manufacturer,
167
+ modbus: { unitId: this.unitId },
180
168
  },
181
169
  inverter: {
182
170
  dcStrings: this.mapDcStringToApplianceMetadata(this.mapMPPTToStrings(mpptDataList)),
@@ -219,12 +207,9 @@ class SunspecInverter extends BaseSunspecDevice {
219
207
  const mpptDataList = await this.sunspecClient.readAllMPPTData();
220
208
  const inverterSettings = await this.sunspecClient.readInverterSettings();
221
209
  const dcStrings = this.mapMPPTToStrings(mpptDataList);
222
- // Calculate battery discharge power to subtract from AC power
223
- const batteryDischargePowerW = extractBatteryDischargePowerFromMPPT(mpptDataList);
224
210
  if (inverterData) {
225
- const totalAcPowerW = inverterData.acPower || 0;
226
- const purePvPowerW = Math.max(0, totalAcPowerW - batteryDischargePowerW);
227
- console.log(`Got Battery Discharge power ${batteryDischargePowerW} and Inverter Power W ${totalAcPowerW} with pure PV Power ${purePvPowerW}`);
211
+ const pvPowerW = dcStrings.reduce((sum, s) => sum + (s.powerW || 0), 0);
212
+ console.log(`Got PV Power from DC strings: ${pvPowerW}W`);
228
213
  const inverterMessage = {
229
214
  id: (0, node_crypto_1.randomUUID)(),
230
215
  message: enyo_data_bus_value_js_1.EnyoDataBusMessageEnum.InverterValuesUpdateV1,
@@ -235,7 +220,7 @@ class SunspecInverter extends BaseSunspecDevice {
235
220
  timestampIso: timestamp.toISOString(),
236
221
  resolution,
237
222
  data: {
238
- pvPowerW: purePvPowerW,
223
+ pvPowerW,
239
224
  activePowerLimitationW: inverterSettings?.WMax,
240
225
  state: this.mapOperatingState(inverterData.operatingState),
241
226
  voltageL1: inverterData.voltageAN || 0,
@@ -429,6 +414,7 @@ class SunspecBattery extends BaseSunspecDevice {
429
414
  serialNumber: commonData?.serialNumber,
430
415
  modelName: commonData?.model,
431
416
  vendorName: commonData?.manufacturer,
417
+ modbus: { unitId: this.unitId },
432
418
  },
433
419
  battery: {
434
420
  connectedToApplianceId: inverterApplianceId,
@@ -917,6 +903,7 @@ class SunspecMeter extends BaseSunspecDevice {
917
903
  serialNumber: commonData?.serialNumber,
918
904
  modelName: commonData?.model,
919
905
  vendorName: commonData?.manufacturer,
906
+ modbus: { unitId: this.unitId },
920
907
  },
921
908
  topology: {
922
909
  features: [enyo_appliance_js_1.EnyoApplianceTopologyFeatureEnum.IntermediateOfPrimaryMeter]
@@ -9,7 +9,7 @@ exports.getSdkVersion = getSdkVersion;
9
9
  /**
10
10
  * Current version of the enyo Energy App SDK.
11
11
  */
12
- exports.SDK_VERSION = '0.0.33';
12
+ exports.SDK_VERSION = '0.0.35';
13
13
  /**
14
14
  * Gets the current SDK version.
15
15
  * @returns The semantic version string of the SDK
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * Current version of the enyo Energy App SDK.
7
7
  */
8
- export declare const SDK_VERSION = "0.0.33";
8
+ export declare const SDK_VERSION = "0.0.35";
9
9
  /**
10
10
  * Gets the current SDK version.
11
11
  * @returns The semantic version string of the SDK
@@ -8,19 +8,6 @@ import { EnyoMeterApplianceAvailableFeaturesEnum } from "@enyo-energy/energy-app
8
8
  import { EnyoBatteryFeature, EnyoBatteryStorageMode } from "@enyo-energy/energy-app-sdk/dist/types/enyo-battery-appliance.js";
9
9
  // TODO: Remove once added to @enyo-energy/energy-app-sdk EnyoDataBusMessageEnum
10
10
  export const ENYO_DATA_BUS_SET_INVERTER_FEED_IN_LIMIT_V1 = 'SetInverterFeedInLimitV1';
11
- /**
12
- * Extract battery discharge power from MPPT data.
13
- * Returns the discharge power in Watts (positive value), or 0 if no discharge.
14
- */
15
- function extractBatteryDischargePowerFromMPPT(mpptDataList) {
16
- let dischargePowerW = 0;
17
- for (const mppt of mpptDataList) {
18
- if (mppt.stringId === 'StDisCha 4' && mppt.dcPower !== undefined && mppt.dcPower > 0) {
19
- dischargePowerW += mppt.dcPower;
20
- }
21
- }
22
- return dischargePowerW;
23
- }
24
11
  /**
25
12
  * Base abstract class for all Sunspec devices
26
13
  */
@@ -173,6 +160,7 @@ export class SunspecInverter extends BaseSunspecDevice {
173
160
  serialNumber: commonData?.serialNumber,
174
161
  modelName: commonData?.model,
175
162
  vendorName: commonData?.manufacturer,
163
+ modbus: { unitId: this.unitId },
176
164
  },
177
165
  inverter: {
178
166
  dcStrings: this.mapDcStringToApplianceMetadata(this.mapMPPTToStrings(mpptDataList)),
@@ -215,12 +203,9 @@ export class SunspecInverter extends BaseSunspecDevice {
215
203
  const mpptDataList = await this.sunspecClient.readAllMPPTData();
216
204
  const inverterSettings = await this.sunspecClient.readInverterSettings();
217
205
  const dcStrings = this.mapMPPTToStrings(mpptDataList);
218
- // Calculate battery discharge power to subtract from AC power
219
- const batteryDischargePowerW = extractBatteryDischargePowerFromMPPT(mpptDataList);
220
206
  if (inverterData) {
221
- const totalAcPowerW = inverterData.acPower || 0;
222
- const purePvPowerW = Math.max(0, totalAcPowerW - batteryDischargePowerW);
223
- console.log(`Got Battery Discharge power ${batteryDischargePowerW} and Inverter Power W ${totalAcPowerW} with pure PV Power ${purePvPowerW}`);
207
+ const pvPowerW = dcStrings.reduce((sum, s) => sum + (s.powerW || 0), 0);
208
+ console.log(`Got PV Power from DC strings: ${pvPowerW}W`);
224
209
  const inverterMessage = {
225
210
  id: randomUUID(),
226
211
  message: EnyoDataBusMessageEnum.InverterValuesUpdateV1,
@@ -231,7 +216,7 @@ export class SunspecInverter extends BaseSunspecDevice {
231
216
  timestampIso: timestamp.toISOString(),
232
217
  resolution,
233
218
  data: {
234
- pvPowerW: purePvPowerW,
219
+ pvPowerW,
235
220
  activePowerLimitationW: inverterSettings?.WMax,
236
221
  state: this.mapOperatingState(inverterData.operatingState),
237
222
  voltageL1: inverterData.voltageAN || 0,
@@ -424,6 +409,7 @@ export class SunspecBattery extends BaseSunspecDevice {
424
409
  serialNumber: commonData?.serialNumber,
425
410
  modelName: commonData?.model,
426
411
  vendorName: commonData?.manufacturer,
412
+ modbus: { unitId: this.unitId },
427
413
  },
428
414
  battery: {
429
415
  connectedToApplianceId: inverterApplianceId,
@@ -911,6 +897,7 @@ export class SunspecMeter extends BaseSunspecDevice {
911
897
  serialNumber: commonData?.serialNumber,
912
898
  modelName: commonData?.model,
913
899
  vendorName: commonData?.manufacturer,
900
+ modbus: { unitId: this.unitId },
914
901
  },
915
902
  topology: {
916
903
  features: [EnyoApplianceTopologyFeatureEnum.IntermediateOfPrimaryMeter]
package/dist/version.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * Current version of the enyo Energy App SDK.
7
7
  */
8
- export declare const SDK_VERSION = "0.0.33";
8
+ export declare const SDK_VERSION = "0.0.35";
9
9
  /**
10
10
  * Gets the current SDK version.
11
11
  * @returns The semantic version string of the SDK
package/dist/version.js CHANGED
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * Current version of the enyo Energy App SDK.
7
7
  */
8
- export const SDK_VERSION = '0.0.33';
8
+ export const SDK_VERSION = '0.0.35';
9
9
  /**
10
10
  * Gets the current SDK version.
11
11
  * @returns The semantic version string of the SDK
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enyo-energy/sunspec-sdk",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "enyo Energy Sunspec SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -37,7 +37,7 @@
37
37
  "typescript": "^5.8.3"
38
38
  },
39
39
  "dependencies": {
40
- "@enyo-energy/energy-app-sdk": "^0.0.66"
40
+ "@enyo-energy/energy-app-sdk": "^0.0.71"
41
41
  },
42
42
  "volta": {
43
43
  "node": "22.17.0"