@enyo-energy/energy-app-sdk 0.0.176 → 0.0.178
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/integrations/integration-energy-app.cjs +23 -0
- package/dist/cjs/integrations/integration-energy-app.d.cts +13 -1
- package/dist/cjs/packages/energy-app-modbus.d.cts +6 -0
- package/dist/cjs/types/enyo-data-bus-value.cjs +13 -1
- package/dist/cjs/types/enyo-data-bus-value.d.cts +61 -0
- package/dist/cjs/version.cjs +1 -1
- package/dist/cjs/version.d.cts +1 -1
- package/dist/integrations/integration-energy-app.d.ts +13 -1
- package/dist/integrations/integration-energy-app.js +23 -0
- package/dist/packages/energy-app-modbus.d.ts +6 -0
- package/dist/types/enyo-data-bus-value.d.ts +61 -0
- package/dist/types/enyo-data-bus-value.js +12 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -153,6 +153,29 @@ class IntegrationEnergyApp extends energy_app_js_1.EnergyApp {
|
|
|
153
153
|
};
|
|
154
154
|
this.useDataBus().sendMessage([ack]);
|
|
155
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Publishes a `GridOperatorPowerLimitationExecutedV1` announcement reporting
|
|
158
|
+
* the grid operator power limitation the given appliance actually executed.
|
|
159
|
+
* Call this after applying a `GridOperatorPowerLimitationV1` command locally,
|
|
160
|
+
* so the energy manager, analytics and UI can observe the concrete cap that
|
|
161
|
+
* was enforced, when it ends and for how long.
|
|
162
|
+
*
|
|
163
|
+
* @param applianceId - The appliance that executed the limitation.
|
|
164
|
+
* @param data - The applied limitation (watts), end timestamp, duration
|
|
165
|
+
* (seconds), and optional command correlation id / reason.
|
|
166
|
+
*/
|
|
167
|
+
publishGridOperatorPowerLimitationExecuted(applianceId, data) {
|
|
168
|
+
const msg = {
|
|
169
|
+
id: this.generateMessageId(),
|
|
170
|
+
type: 'message',
|
|
171
|
+
message: enyo_data_bus_value_js_1.EnyoDataBusMessageEnum.GridOperatorPowerLimitationExecutedV1,
|
|
172
|
+
source: this.source,
|
|
173
|
+
applianceId,
|
|
174
|
+
timestampIso: new Date().toISOString(),
|
|
175
|
+
data
|
|
176
|
+
};
|
|
177
|
+
this.useDataBus().sendMessage([msg]);
|
|
178
|
+
}
|
|
156
179
|
/**
|
|
157
180
|
* Resolves the list of appliance IDs this integration is responsible for.
|
|
158
181
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EnergyApp } from "../energy-app.cjs";
|
|
2
|
-
import { EnyoDataBusGridOperatorPowerLimitationV1, EnyoDataBusMessage, EnyoDataBusMessageEnum } from "../types/enyo-data-bus-value.cjs";
|
|
2
|
+
import { EnyoDataBusGridOperatorPowerLimitationExecutedV1, EnyoDataBusGridOperatorPowerLimitationV1, EnyoDataBusMessage, EnyoDataBusMessageEnum } from "../types/enyo-data-bus-value.cjs";
|
|
3
3
|
import { EnyoApplianceTypeEnum } from "../types/enyo-appliance.cjs";
|
|
4
4
|
import { EnyoSourceEnum } from "../types/enyo-source.enum.cjs";
|
|
5
5
|
import { DataBusCommandHandler } from "../implementations/data-bus/data-bus-command-handler.cjs";
|
|
@@ -120,6 +120,18 @@ export declare abstract class IntegrationEnergyApp extends EnergyApp {
|
|
|
120
120
|
* @param response - The handler response (`answer` + optional `rejectionReason`).
|
|
121
121
|
*/
|
|
122
122
|
protected sendAcknowledge(originalMessage: EnyoDataBusMessage, applianceId: string, response: IntegrationCommandResponse): void;
|
|
123
|
+
/**
|
|
124
|
+
* Publishes a `GridOperatorPowerLimitationExecutedV1` announcement reporting
|
|
125
|
+
* the grid operator power limitation the given appliance actually executed.
|
|
126
|
+
* Call this after applying a `GridOperatorPowerLimitationV1` command locally,
|
|
127
|
+
* so the energy manager, analytics and UI can observe the concrete cap that
|
|
128
|
+
* was enforced, when it ends and for how long.
|
|
129
|
+
*
|
|
130
|
+
* @param applianceId - The appliance that executed the limitation.
|
|
131
|
+
* @param data - The applied limitation (watts), end timestamp, duration
|
|
132
|
+
* (seconds), and optional command correlation id / reason.
|
|
133
|
+
*/
|
|
134
|
+
publishGridOperatorPowerLimitationExecuted(applianceId: string, data: EnyoDataBusGridOperatorPowerLimitationExecutedV1['data']): void;
|
|
123
135
|
/**
|
|
124
136
|
* Resolves the list of appliance IDs this integration is responsible for.
|
|
125
137
|
*
|
|
@@ -47,6 +47,12 @@ export interface ModbusOptions {
|
|
|
47
47
|
* recovery gap between messages. Defaults to `0` (no delay).
|
|
48
48
|
*/
|
|
49
49
|
waitBetweenMessagesMs?: number;
|
|
50
|
+
/** Per-operation (read/write) deadline in ms before the socket is recycled. Default 5000. */
|
|
51
|
+
readTimeoutMs?: number;
|
|
52
|
+
/** Recycle a socket that looks open but had no successful op within this window. Default 30000; 0 disables. */
|
|
53
|
+
staleSocketMs?: number;
|
|
54
|
+
/** TCP keepalive idle interval in ms on the live socket, so a dead peer surfaces fast. Default 10000; 0 disables. */
|
|
55
|
+
keepAliveMs?: number;
|
|
50
56
|
}
|
|
51
57
|
/**
|
|
52
58
|
* Interface for Modbus TCP/IP communication in enyo packages.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EnyoChargingProfileTypeEnum = exports.EnyoCommandAcknowledgeAnswerEnum = exports.EnyoStorageScheduleDirectionEnum = exports.EnyoStorageScheduleModeEnum = exports.EnyoDataBusMessageEnum = exports.EnyoChargeInitiatorEnum = exports.EnyoChargeModeEnum = exports.EnyoChargingStopReason = exports.EnyoChargingMeterValueContext = exports.EnyoStringStateEnum = exports.EnyoInverterStateEnum = exports.EnyoBatteryStateEnum = exports.EnyoDataBusCommandReasonCategoryEnum = exports.EnyoDataBusCommandReasonTypeEnum = void 0;
|
|
3
|
+
exports.EnyoChargingProfileTypeEnum = exports.EnyoCommandAcknowledgeAnswerEnum = exports.EnyoStorageScheduleDirectionEnum = exports.EnyoStorageScheduleModeEnum = exports.EnyoDataBusMessageEnum = exports.EnyoChargeInitiatorEnum = exports.EnyoChargeModeEnum = exports.EnyoChargingStopReason = exports.EnyoChargingMeterValueContext = exports.EnyoStringStateEnum = exports.EnyoInverterStateEnum = exports.EnyoBatteryStateEnum = exports.EnyoGridOperatorLimitTypeEnum = exports.EnyoDataBusCommandReasonCategoryEnum = exports.EnyoDataBusCommandReasonTypeEnum = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Enum representing the reason type for why a data bus command was issued.
|
|
6
6
|
* Used to attach context to commands for logging, debugging, and UI display.
|
|
@@ -68,6 +68,17 @@ var EnyoDataBusCommandReasonCategoryEnum;
|
|
|
68
68
|
/** Any reason not covered by the categories above. */
|
|
69
69
|
EnyoDataBusCommandReasonCategoryEnum["Other"] = "other";
|
|
70
70
|
})(EnyoDataBusCommandReasonCategoryEnum || (exports.EnyoDataBusCommandReasonCategoryEnum = EnyoDataBusCommandReasonCategoryEnum = {}));
|
|
71
|
+
/**
|
|
72
|
+
* Whether a grid operator power limitation caps power drawn from the grid
|
|
73
|
+
* (consumption) or power fed into the grid (production).
|
|
74
|
+
*/
|
|
75
|
+
var EnyoGridOperatorLimitTypeEnum;
|
|
76
|
+
(function (EnyoGridOperatorLimitTypeEnum) {
|
|
77
|
+
/** Limitation of power drawn from the grid (§14a EnWG consumption cap, EEBUS LPC) */
|
|
78
|
+
EnyoGridOperatorLimitTypeEnum["Consumption"] = "consumption";
|
|
79
|
+
/** Limitation of power fed into the grid (feed-in / production cap, EEBUS LPP) */
|
|
80
|
+
EnyoGridOperatorLimitTypeEnum["Production"] = "production";
|
|
81
|
+
})(EnyoGridOperatorLimitTypeEnum || (exports.EnyoGridOperatorLimitTypeEnum = EnyoGridOperatorLimitTypeEnum = {}));
|
|
71
82
|
var EnyoBatteryStateEnum;
|
|
72
83
|
(function (EnyoBatteryStateEnum) {
|
|
73
84
|
EnyoBatteryStateEnum["Off"] = "off";
|
|
@@ -214,6 +225,7 @@ var EnyoDataBusMessageEnum;
|
|
|
214
225
|
EnyoDataBusMessageEnum["MaxDischargePowerChangedV1"] = "MaxDischargePowerChangedV1";
|
|
215
226
|
EnyoDataBusMessageEnum["GridOperatorPowerLimitationV1"] = "GridOperatorPowerLimitationV1";
|
|
216
227
|
EnyoDataBusMessageEnum["GridOperatorPowerProductionLimitationV1"] = "GridOperatorPowerProductionLimitationV1";
|
|
228
|
+
EnyoDataBusMessageEnum["GridOperatorPowerLimitationExecutedV1"] = "GridOperatorPowerLimitationExecutedV1";
|
|
217
229
|
EnyoDataBusMessageEnum["ResetChargerV1"] = "ResetChargerV1";
|
|
218
230
|
EnyoDataBusMessageEnum["RebootChargerV1"] = "RebootChargerV1";
|
|
219
231
|
EnyoDataBusMessageEnum["RequestChargerLogsV1"] = "RequestChargerLogsV1";
|
|
@@ -101,6 +101,39 @@ export interface EnyoDataBusCommandReason {
|
|
|
101
101
|
/** Relevant state of charge as a percentage (battery-driven reasons) */
|
|
102
102
|
socPercent?: number;
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Whether a grid operator power limitation caps power drawn from the grid
|
|
106
|
+
* (consumption) or power fed into the grid (production).
|
|
107
|
+
*/
|
|
108
|
+
export declare enum EnyoGridOperatorLimitTypeEnum {
|
|
109
|
+
/** Limitation of power drawn from the grid (§14a EnWG consumption cap, EEBUS LPC) */
|
|
110
|
+
Consumption = "consumption",
|
|
111
|
+
/** Limitation of power fed into the grid (feed-in / production cap, EEBUS LPP) */
|
|
112
|
+
Production = "production"
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Snapshot of the grid operator power limitation (§14a EnWG) an appliance is
|
|
116
|
+
* currently applying. Embedded as an optional field in appliance value-update
|
|
117
|
+
* messages (inverter, heatpump, battery, air conditioning, charging) so
|
|
118
|
+
* consumers can observe the active cap alongside live measurements, and reused
|
|
119
|
+
* as the payload of {@link EnyoDataBusGridOperatorPowerLimitationExecutedV1}.
|
|
120
|
+
* Omit the containing field entirely when no limitation is currently applied.
|
|
121
|
+
*/
|
|
122
|
+
export interface EnyoGridOperatorLimit {
|
|
123
|
+
/** Whether this caps grid consumption or grid production (feed-in) */
|
|
124
|
+
type: EnyoGridOperatorLimitTypeEnum;
|
|
125
|
+
/** The actual active power limitation the appliance applied, in watts */
|
|
126
|
+
appliedLimitationW: number;
|
|
127
|
+
/** ISO 8601 timestamp when the applied limitation ends */
|
|
128
|
+
endTimestampIso: string;
|
|
129
|
+
/** Duration the limitation is applied for, in seconds */
|
|
130
|
+
durationSeconds: number;
|
|
131
|
+
/**
|
|
132
|
+
* Optional ID of the triggering `GridOperatorPowerLimitationV1` message,
|
|
133
|
+
* for correlation with the originating command.
|
|
134
|
+
*/
|
|
135
|
+
commandMessageId?: string;
|
|
136
|
+
}
|
|
104
137
|
export declare enum EnyoBatteryStateEnum {
|
|
105
138
|
Off = "off",
|
|
106
139
|
Empty = "empty",
|
|
@@ -247,6 +280,7 @@ export declare enum EnyoDataBusMessageEnum {
|
|
|
247
280
|
MaxDischargePowerChangedV1 = "MaxDischargePowerChangedV1",
|
|
248
281
|
GridOperatorPowerLimitationV1 = "GridOperatorPowerLimitationV1",
|
|
249
282
|
GridOperatorPowerProductionLimitationV1 = "GridOperatorPowerProductionLimitationV1",
|
|
283
|
+
GridOperatorPowerLimitationExecutedV1 = "GridOperatorPowerLimitationExecutedV1",
|
|
250
284
|
ResetChargerV1 = "ResetChargerV1",
|
|
251
285
|
RebootChargerV1 = "RebootChargerV1",
|
|
252
286
|
RequestChargerLogsV1 = "RequestChargerLogsV1",
|
|
@@ -367,6 +401,8 @@ export interface EnyoDataBusHeatpumpValuesV1 extends EnyoDataBusMessage {
|
|
|
367
401
|
/** Power generation for domestic hot water in Wh (meter value)*/
|
|
368
402
|
heatGenerationDomesticHotWaterWh?: number;
|
|
369
403
|
};
|
|
404
|
+
/** Grid operator power limitation currently applied by the heatpump, if any */
|
|
405
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
370
406
|
};
|
|
371
407
|
}
|
|
372
408
|
export interface EnyoDataBusBatteryValuesUpdateV1 extends EnyoDataBusMessage {
|
|
@@ -382,6 +418,8 @@ export interface EnyoDataBusBatteryValuesUpdateV1 extends EnyoDataBusMessage {
|
|
|
382
418
|
dcStringInputPowerW?: number;
|
|
383
419
|
/** Battery State of Charge. Value between 0 and 100 */
|
|
384
420
|
batterySoC: number;
|
|
421
|
+
/** Grid operator power limitation currently applied by the battery, if any */
|
|
422
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
385
423
|
};
|
|
386
424
|
}
|
|
387
425
|
export interface EnyoDataBusInverterValuesV1String {
|
|
@@ -424,6 +462,8 @@ export interface EnyoDataBusInverterValuesV1 extends EnyoDataBusMessage {
|
|
|
424
462
|
meterValueWh?: number;
|
|
425
463
|
/** DC String values. Please only provide active strings */
|
|
426
464
|
strings?: EnyoDataBusInverterValuesV1String[];
|
|
465
|
+
/** Grid operator power limitation currently applied by the inverter, if any */
|
|
466
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
427
467
|
};
|
|
428
468
|
}
|
|
429
469
|
export interface EnyoDataBusApplianceFlexibilityAnnouncementV1 extends EnyoDataBusMessage {
|
|
@@ -556,6 +596,8 @@ export interface EnyoDataBusChargingMeterValuesV1 extends EnyoDataBusMessage {
|
|
|
556
596
|
energyDeliveredWh: number;
|
|
557
597
|
/** Context indicating when this meter value was taken */
|
|
558
598
|
context: EnyoChargingMeterValueContext;
|
|
599
|
+
/** Grid operator power limitation currently applied by the charger, if any */
|
|
600
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
559
601
|
};
|
|
560
602
|
}
|
|
561
603
|
export interface EnyoDataBusChargingStoppedV1 extends EnyoDataBusMessage {
|
|
@@ -1513,6 +1555,23 @@ export interface EnyoDataBusGridOperatorPowerProductionLimitationV1 extends Enyo
|
|
|
1513
1555
|
endTimestampIso: string;
|
|
1514
1556
|
};
|
|
1515
1557
|
}
|
|
1558
|
+
/**
|
|
1559
|
+
* Announcement message published by an appliance reporting the grid operator
|
|
1560
|
+
* power limitation it actually executed. Sent in response to a
|
|
1561
|
+
* `GridOperatorPowerLimitationV1` command (§14a EnWG) once the appliance has
|
|
1562
|
+
* applied the limit locally. Lets the energy manager, analytics and UI observe
|
|
1563
|
+
* the concrete cap that was enforced, when it ends and for how long.
|
|
1564
|
+
*/
|
|
1565
|
+
export interface EnyoDataBusGridOperatorPowerLimitationExecutedV1 extends EnyoDataBusMessage {
|
|
1566
|
+
type: 'message';
|
|
1567
|
+
message: EnyoDataBusMessageEnum.GridOperatorPowerLimitationExecutedV1;
|
|
1568
|
+
/** ID of the appliance that executed the limitation */
|
|
1569
|
+
applianceId: string;
|
|
1570
|
+
data: EnyoGridOperatorLimit & {
|
|
1571
|
+
/** Optional reason why this limitation was executed */
|
|
1572
|
+
reason?: EnyoDataBusCommandReason;
|
|
1573
|
+
};
|
|
1574
|
+
}
|
|
1516
1575
|
/**
|
|
1517
1576
|
* Command message to reset a charger appliance.
|
|
1518
1577
|
* Sends a reset command to the specified charger, which performs a soft reset
|
|
@@ -1669,6 +1728,8 @@ export interface EnyoDataBusAirConditioningValuesV1 extends EnyoDataBusMessage {
|
|
|
1669
1728
|
/** Cumulative energy consumed by the air conditioning unit in Watt-hours */
|
|
1670
1729
|
meterValueWh?: number;
|
|
1671
1730
|
};
|
|
1731
|
+
/** Grid operator power limitation currently applied by the air conditioning unit, if any */
|
|
1732
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
1672
1733
|
};
|
|
1673
1734
|
}
|
|
1674
1735
|
/**
|
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.178';
|
|
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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EnergyApp } from "../energy-app.js";
|
|
2
|
-
import { EnyoDataBusGridOperatorPowerLimitationV1, EnyoDataBusMessage, EnyoDataBusMessageEnum } from "../types/enyo-data-bus-value.js";
|
|
2
|
+
import { EnyoDataBusGridOperatorPowerLimitationExecutedV1, EnyoDataBusGridOperatorPowerLimitationV1, EnyoDataBusMessage, EnyoDataBusMessageEnum } from "../types/enyo-data-bus-value.js";
|
|
3
3
|
import { EnyoApplianceTypeEnum } from "../types/enyo-appliance.js";
|
|
4
4
|
import { EnyoSourceEnum } from "../types/enyo-source.enum.js";
|
|
5
5
|
import { DataBusCommandHandler } from "../implementations/data-bus/data-bus-command-handler.js";
|
|
@@ -120,6 +120,18 @@ export declare abstract class IntegrationEnergyApp extends EnergyApp {
|
|
|
120
120
|
* @param response - The handler response (`answer` + optional `rejectionReason`).
|
|
121
121
|
*/
|
|
122
122
|
protected sendAcknowledge(originalMessage: EnyoDataBusMessage, applianceId: string, response: IntegrationCommandResponse): void;
|
|
123
|
+
/**
|
|
124
|
+
* Publishes a `GridOperatorPowerLimitationExecutedV1` announcement reporting
|
|
125
|
+
* the grid operator power limitation the given appliance actually executed.
|
|
126
|
+
* Call this after applying a `GridOperatorPowerLimitationV1` command locally,
|
|
127
|
+
* so the energy manager, analytics and UI can observe the concrete cap that
|
|
128
|
+
* was enforced, when it ends and for how long.
|
|
129
|
+
*
|
|
130
|
+
* @param applianceId - The appliance that executed the limitation.
|
|
131
|
+
* @param data - The applied limitation (watts), end timestamp, duration
|
|
132
|
+
* (seconds), and optional command correlation id / reason.
|
|
133
|
+
*/
|
|
134
|
+
publishGridOperatorPowerLimitationExecuted(applianceId: string, data: EnyoDataBusGridOperatorPowerLimitationExecutedV1['data']): void;
|
|
123
135
|
/**
|
|
124
136
|
* Resolves the list of appliance IDs this integration is responsible for.
|
|
125
137
|
*
|
|
@@ -150,6 +150,29 @@ export class IntegrationEnergyApp extends EnergyApp {
|
|
|
150
150
|
};
|
|
151
151
|
this.useDataBus().sendMessage([ack]);
|
|
152
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Publishes a `GridOperatorPowerLimitationExecutedV1` announcement reporting
|
|
155
|
+
* the grid operator power limitation the given appliance actually executed.
|
|
156
|
+
* Call this after applying a `GridOperatorPowerLimitationV1` command locally,
|
|
157
|
+
* so the energy manager, analytics and UI can observe the concrete cap that
|
|
158
|
+
* was enforced, when it ends and for how long.
|
|
159
|
+
*
|
|
160
|
+
* @param applianceId - The appliance that executed the limitation.
|
|
161
|
+
* @param data - The applied limitation (watts), end timestamp, duration
|
|
162
|
+
* (seconds), and optional command correlation id / reason.
|
|
163
|
+
*/
|
|
164
|
+
publishGridOperatorPowerLimitationExecuted(applianceId, data) {
|
|
165
|
+
const msg = {
|
|
166
|
+
id: this.generateMessageId(),
|
|
167
|
+
type: 'message',
|
|
168
|
+
message: EnyoDataBusMessageEnum.GridOperatorPowerLimitationExecutedV1,
|
|
169
|
+
source: this.source,
|
|
170
|
+
applianceId,
|
|
171
|
+
timestampIso: new Date().toISOString(),
|
|
172
|
+
data
|
|
173
|
+
};
|
|
174
|
+
this.useDataBus().sendMessage([msg]);
|
|
175
|
+
}
|
|
153
176
|
/**
|
|
154
177
|
* Resolves the list of appliance IDs this integration is responsible for.
|
|
155
178
|
*
|
|
@@ -47,6 +47,12 @@ export interface ModbusOptions {
|
|
|
47
47
|
* recovery gap between messages. Defaults to `0` (no delay).
|
|
48
48
|
*/
|
|
49
49
|
waitBetweenMessagesMs?: number;
|
|
50
|
+
/** Per-operation (read/write) deadline in ms before the socket is recycled. Default 5000. */
|
|
51
|
+
readTimeoutMs?: number;
|
|
52
|
+
/** Recycle a socket that looks open but had no successful op within this window. Default 30000; 0 disables. */
|
|
53
|
+
staleSocketMs?: number;
|
|
54
|
+
/** TCP keepalive idle interval in ms on the live socket, so a dead peer surfaces fast. Default 10000; 0 disables. */
|
|
55
|
+
keepAliveMs?: number;
|
|
50
56
|
}
|
|
51
57
|
/**
|
|
52
58
|
* Interface for Modbus TCP/IP communication in enyo packages.
|
|
@@ -101,6 +101,39 @@ export interface EnyoDataBusCommandReason {
|
|
|
101
101
|
/** Relevant state of charge as a percentage (battery-driven reasons) */
|
|
102
102
|
socPercent?: number;
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Whether a grid operator power limitation caps power drawn from the grid
|
|
106
|
+
* (consumption) or power fed into the grid (production).
|
|
107
|
+
*/
|
|
108
|
+
export declare enum EnyoGridOperatorLimitTypeEnum {
|
|
109
|
+
/** Limitation of power drawn from the grid (§14a EnWG consumption cap, EEBUS LPC) */
|
|
110
|
+
Consumption = "consumption",
|
|
111
|
+
/** Limitation of power fed into the grid (feed-in / production cap, EEBUS LPP) */
|
|
112
|
+
Production = "production"
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Snapshot of the grid operator power limitation (§14a EnWG) an appliance is
|
|
116
|
+
* currently applying. Embedded as an optional field in appliance value-update
|
|
117
|
+
* messages (inverter, heatpump, battery, air conditioning, charging) so
|
|
118
|
+
* consumers can observe the active cap alongside live measurements, and reused
|
|
119
|
+
* as the payload of {@link EnyoDataBusGridOperatorPowerLimitationExecutedV1}.
|
|
120
|
+
* Omit the containing field entirely when no limitation is currently applied.
|
|
121
|
+
*/
|
|
122
|
+
export interface EnyoGridOperatorLimit {
|
|
123
|
+
/** Whether this caps grid consumption or grid production (feed-in) */
|
|
124
|
+
type: EnyoGridOperatorLimitTypeEnum;
|
|
125
|
+
/** The actual active power limitation the appliance applied, in watts */
|
|
126
|
+
appliedLimitationW: number;
|
|
127
|
+
/** ISO 8601 timestamp when the applied limitation ends */
|
|
128
|
+
endTimestampIso: string;
|
|
129
|
+
/** Duration the limitation is applied for, in seconds */
|
|
130
|
+
durationSeconds: number;
|
|
131
|
+
/**
|
|
132
|
+
* Optional ID of the triggering `GridOperatorPowerLimitationV1` message,
|
|
133
|
+
* for correlation with the originating command.
|
|
134
|
+
*/
|
|
135
|
+
commandMessageId?: string;
|
|
136
|
+
}
|
|
104
137
|
export declare enum EnyoBatteryStateEnum {
|
|
105
138
|
Off = "off",
|
|
106
139
|
Empty = "empty",
|
|
@@ -247,6 +280,7 @@ export declare enum EnyoDataBusMessageEnum {
|
|
|
247
280
|
MaxDischargePowerChangedV1 = "MaxDischargePowerChangedV1",
|
|
248
281
|
GridOperatorPowerLimitationV1 = "GridOperatorPowerLimitationV1",
|
|
249
282
|
GridOperatorPowerProductionLimitationV1 = "GridOperatorPowerProductionLimitationV1",
|
|
283
|
+
GridOperatorPowerLimitationExecutedV1 = "GridOperatorPowerLimitationExecutedV1",
|
|
250
284
|
ResetChargerV1 = "ResetChargerV1",
|
|
251
285
|
RebootChargerV1 = "RebootChargerV1",
|
|
252
286
|
RequestChargerLogsV1 = "RequestChargerLogsV1",
|
|
@@ -367,6 +401,8 @@ export interface EnyoDataBusHeatpumpValuesV1 extends EnyoDataBusMessage {
|
|
|
367
401
|
/** Power generation for domestic hot water in Wh (meter value)*/
|
|
368
402
|
heatGenerationDomesticHotWaterWh?: number;
|
|
369
403
|
};
|
|
404
|
+
/** Grid operator power limitation currently applied by the heatpump, if any */
|
|
405
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
370
406
|
};
|
|
371
407
|
}
|
|
372
408
|
export interface EnyoDataBusBatteryValuesUpdateV1 extends EnyoDataBusMessage {
|
|
@@ -382,6 +418,8 @@ export interface EnyoDataBusBatteryValuesUpdateV1 extends EnyoDataBusMessage {
|
|
|
382
418
|
dcStringInputPowerW?: number;
|
|
383
419
|
/** Battery State of Charge. Value between 0 and 100 */
|
|
384
420
|
batterySoC: number;
|
|
421
|
+
/** Grid operator power limitation currently applied by the battery, if any */
|
|
422
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
385
423
|
};
|
|
386
424
|
}
|
|
387
425
|
export interface EnyoDataBusInverterValuesV1String {
|
|
@@ -424,6 +462,8 @@ export interface EnyoDataBusInverterValuesV1 extends EnyoDataBusMessage {
|
|
|
424
462
|
meterValueWh?: number;
|
|
425
463
|
/** DC String values. Please only provide active strings */
|
|
426
464
|
strings?: EnyoDataBusInverterValuesV1String[];
|
|
465
|
+
/** Grid operator power limitation currently applied by the inverter, if any */
|
|
466
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
427
467
|
};
|
|
428
468
|
}
|
|
429
469
|
export interface EnyoDataBusApplianceFlexibilityAnnouncementV1 extends EnyoDataBusMessage {
|
|
@@ -556,6 +596,8 @@ export interface EnyoDataBusChargingMeterValuesV1 extends EnyoDataBusMessage {
|
|
|
556
596
|
energyDeliveredWh: number;
|
|
557
597
|
/** Context indicating when this meter value was taken */
|
|
558
598
|
context: EnyoChargingMeterValueContext;
|
|
599
|
+
/** Grid operator power limitation currently applied by the charger, if any */
|
|
600
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
559
601
|
};
|
|
560
602
|
}
|
|
561
603
|
export interface EnyoDataBusChargingStoppedV1 extends EnyoDataBusMessage {
|
|
@@ -1513,6 +1555,23 @@ export interface EnyoDataBusGridOperatorPowerProductionLimitationV1 extends Enyo
|
|
|
1513
1555
|
endTimestampIso: string;
|
|
1514
1556
|
};
|
|
1515
1557
|
}
|
|
1558
|
+
/**
|
|
1559
|
+
* Announcement message published by an appliance reporting the grid operator
|
|
1560
|
+
* power limitation it actually executed. Sent in response to a
|
|
1561
|
+
* `GridOperatorPowerLimitationV1` command (§14a EnWG) once the appliance has
|
|
1562
|
+
* applied the limit locally. Lets the energy manager, analytics and UI observe
|
|
1563
|
+
* the concrete cap that was enforced, when it ends and for how long.
|
|
1564
|
+
*/
|
|
1565
|
+
export interface EnyoDataBusGridOperatorPowerLimitationExecutedV1 extends EnyoDataBusMessage {
|
|
1566
|
+
type: 'message';
|
|
1567
|
+
message: EnyoDataBusMessageEnum.GridOperatorPowerLimitationExecutedV1;
|
|
1568
|
+
/** ID of the appliance that executed the limitation */
|
|
1569
|
+
applianceId: string;
|
|
1570
|
+
data: EnyoGridOperatorLimit & {
|
|
1571
|
+
/** Optional reason why this limitation was executed */
|
|
1572
|
+
reason?: EnyoDataBusCommandReason;
|
|
1573
|
+
};
|
|
1574
|
+
}
|
|
1516
1575
|
/**
|
|
1517
1576
|
* Command message to reset a charger appliance.
|
|
1518
1577
|
* Sends a reset command to the specified charger, which performs a soft reset
|
|
@@ -1669,6 +1728,8 @@ export interface EnyoDataBusAirConditioningValuesV1 extends EnyoDataBusMessage {
|
|
|
1669
1728
|
/** Cumulative energy consumed by the air conditioning unit in Watt-hours */
|
|
1670
1729
|
meterValueWh?: number;
|
|
1671
1730
|
};
|
|
1731
|
+
/** Grid operator power limitation currently applied by the air conditioning unit, if any */
|
|
1732
|
+
gridOperatorLimit?: EnyoGridOperatorLimit;
|
|
1672
1733
|
};
|
|
1673
1734
|
}
|
|
1674
1735
|
/**
|
|
@@ -65,6 +65,17 @@ export var EnyoDataBusCommandReasonCategoryEnum;
|
|
|
65
65
|
/** Any reason not covered by the categories above. */
|
|
66
66
|
EnyoDataBusCommandReasonCategoryEnum["Other"] = "other";
|
|
67
67
|
})(EnyoDataBusCommandReasonCategoryEnum || (EnyoDataBusCommandReasonCategoryEnum = {}));
|
|
68
|
+
/**
|
|
69
|
+
* Whether a grid operator power limitation caps power drawn from the grid
|
|
70
|
+
* (consumption) or power fed into the grid (production).
|
|
71
|
+
*/
|
|
72
|
+
export var EnyoGridOperatorLimitTypeEnum;
|
|
73
|
+
(function (EnyoGridOperatorLimitTypeEnum) {
|
|
74
|
+
/** Limitation of power drawn from the grid (§14a EnWG consumption cap, EEBUS LPC) */
|
|
75
|
+
EnyoGridOperatorLimitTypeEnum["Consumption"] = "consumption";
|
|
76
|
+
/** Limitation of power fed into the grid (feed-in / production cap, EEBUS LPP) */
|
|
77
|
+
EnyoGridOperatorLimitTypeEnum["Production"] = "production";
|
|
78
|
+
})(EnyoGridOperatorLimitTypeEnum || (EnyoGridOperatorLimitTypeEnum = {}));
|
|
68
79
|
export var EnyoBatteryStateEnum;
|
|
69
80
|
(function (EnyoBatteryStateEnum) {
|
|
70
81
|
EnyoBatteryStateEnum["Off"] = "off";
|
|
@@ -211,6 +222,7 @@ export var EnyoDataBusMessageEnum;
|
|
|
211
222
|
EnyoDataBusMessageEnum["MaxDischargePowerChangedV1"] = "MaxDischargePowerChangedV1";
|
|
212
223
|
EnyoDataBusMessageEnum["GridOperatorPowerLimitationV1"] = "GridOperatorPowerLimitationV1";
|
|
213
224
|
EnyoDataBusMessageEnum["GridOperatorPowerProductionLimitationV1"] = "GridOperatorPowerProductionLimitationV1";
|
|
225
|
+
EnyoDataBusMessageEnum["GridOperatorPowerLimitationExecutedV1"] = "GridOperatorPowerLimitationExecutedV1";
|
|
214
226
|
EnyoDataBusMessageEnum["ResetChargerV1"] = "ResetChargerV1";
|
|
215
227
|
EnyoDataBusMessageEnum["RebootChargerV1"] = "RebootChargerV1";
|
|
216
228
|
EnyoDataBusMessageEnum["RequestChargerLogsV1"] = "RequestChargerLogsV1";
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED