@enyo-energy/sunspec-sdk 0.0.26 → 0.0.27
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/dist/cjs/sunspec-devices.cjs +18 -1
- package/dist/cjs/version.cjs +1 -1
- package/dist/cjs/version.d.cts +1 -1
- package/dist/sunspec-devices.js +18 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -8,6 +8,19 @@ const enyo_data_bus_value_js_1 = require("@enyo-energy/energy-app-sdk/dist/types
|
|
|
8
8
|
const enyo_source_enum_js_1 = require("@enyo-energy/energy-app-sdk/dist/types/enyo-source.enum.js");
|
|
9
9
|
const enyo_meter_appliance_js_1 = require("@enyo-energy/energy-app-sdk/dist/types/enyo-meter-appliance.js");
|
|
10
10
|
const enyo_battery_appliance_js_1 = require("@enyo-energy/energy-app-sdk/dist/types/enyo-battery-appliance.js");
|
|
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
|
+
}
|
|
11
24
|
/**
|
|
12
25
|
* Base abstract class for all Sunspec devices
|
|
13
26
|
*/
|
|
@@ -112,7 +125,11 @@ class SunspecInverter extends BaseSunspecDevice {
|
|
|
112
125
|
const mpptDataList = await this.sunspecClient.readAllMPPTData();
|
|
113
126
|
const inverterSettings = await this.sunspecClient.readInverterSettings();
|
|
114
127
|
const dcStrings = this.mapMPPTToStrings(mpptDataList);
|
|
128
|
+
// Calculate battery discharge power to subtract from AC power
|
|
129
|
+
const batteryDischargePowerW = extractBatteryDischargePowerFromMPPT(mpptDataList);
|
|
115
130
|
if (inverterData) {
|
|
131
|
+
const totalAcPowerW = inverterData.acPower || 0;
|
|
132
|
+
const purePvPowerW = Math.max(0, totalAcPowerW - batteryDischargePowerW);
|
|
116
133
|
const inverterMessage = {
|
|
117
134
|
id: (0, node_crypto_1.randomUUID)(),
|
|
118
135
|
message: enyo_data_bus_value_js_1.EnyoDataBusMessageEnum.InverterValuesUpdateV1,
|
|
@@ -123,7 +140,7 @@ class SunspecInverter extends BaseSunspecDevice {
|
|
|
123
140
|
timestampIso: timestamp.toISOString(),
|
|
124
141
|
resolution,
|
|
125
142
|
data: {
|
|
126
|
-
pvPowerW:
|
|
143
|
+
pvPowerW: purePvPowerW,
|
|
127
144
|
activePowerLimitationW: inverterSettings?.WMax,
|
|
128
145
|
state: this.mapOperatingState(inverterData.operatingState),
|
|
129
146
|
voltageL1: inverterData.voltageAN || 0,
|
package/dist/cjs/version.cjs
CHANGED
|
@@ -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.
|
|
12
|
+
exports.SDK_VERSION = '0.0.27';
|
|
13
13
|
/**
|
|
14
14
|
* Gets the current SDK version.
|
|
15
15
|
* @returns The semantic version string of the SDK
|
package/dist/cjs/version.d.cts
CHANGED
package/dist/sunspec-devices.js
CHANGED
|
@@ -5,6 +5,19 @@ import { EnyoBatteryStateEnum, EnyoDataBusMessageEnum, EnyoInverterStateEnum, En
|
|
|
5
5
|
import { EnyoSourceEnum } from "@enyo-energy/energy-app-sdk/dist/types/enyo-source.enum.js";
|
|
6
6
|
import { EnyoMeterApplianceAvailableFeaturesEnum } from "@enyo-energy/energy-app-sdk/dist/types/enyo-meter-appliance.js";
|
|
7
7
|
import { EnyoBatteryFeature, EnyoBatteryStorageMode } from "@enyo-energy/energy-app-sdk/dist/types/enyo-battery-appliance.js";
|
|
8
|
+
/**
|
|
9
|
+
* Extract battery discharge power from MPPT data.
|
|
10
|
+
* Returns the discharge power in Watts (positive value), or 0 if no discharge.
|
|
11
|
+
*/
|
|
12
|
+
function extractBatteryDischargePowerFromMPPT(mpptDataList) {
|
|
13
|
+
let dischargePowerW = 0;
|
|
14
|
+
for (const mppt of mpptDataList) {
|
|
15
|
+
if (mppt.stringId === 'StDisCha 4' && mppt.dcPower !== undefined && mppt.dcPower > 0) {
|
|
16
|
+
dischargePowerW += mppt.dcPower;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return dischargePowerW;
|
|
20
|
+
}
|
|
8
21
|
/**
|
|
9
22
|
* Base abstract class for all Sunspec devices
|
|
10
23
|
*/
|
|
@@ -108,7 +121,11 @@ export class SunspecInverter extends BaseSunspecDevice {
|
|
|
108
121
|
const mpptDataList = await this.sunspecClient.readAllMPPTData();
|
|
109
122
|
const inverterSettings = await this.sunspecClient.readInverterSettings();
|
|
110
123
|
const dcStrings = this.mapMPPTToStrings(mpptDataList);
|
|
124
|
+
// Calculate battery discharge power to subtract from AC power
|
|
125
|
+
const batteryDischargePowerW = extractBatteryDischargePowerFromMPPT(mpptDataList);
|
|
111
126
|
if (inverterData) {
|
|
127
|
+
const totalAcPowerW = inverterData.acPower || 0;
|
|
128
|
+
const purePvPowerW = Math.max(0, totalAcPowerW - batteryDischargePowerW);
|
|
112
129
|
const inverterMessage = {
|
|
113
130
|
id: randomUUID(),
|
|
114
131
|
message: EnyoDataBusMessageEnum.InverterValuesUpdateV1,
|
|
@@ -119,7 +136,7 @@ export class SunspecInverter extends BaseSunspecDevice {
|
|
|
119
136
|
timestampIso: timestamp.toISOString(),
|
|
120
137
|
resolution,
|
|
121
138
|
data: {
|
|
122
|
-
pvPowerW:
|
|
139
|
+
pvPowerW: purePvPowerW,
|
|
123
140
|
activePowerLimitationW: inverterSettings?.WMax,
|
|
124
141
|
state: this.mapOperatingState(inverterData.operatingState),
|
|
125
142
|
voltageL1: inverterData.voltageAN || 0,
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED