@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.
@@ -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
  /**
@@ -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.176';
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
@@ -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.176";
8
+ export declare const SDK_VERSION = "0.0.178";
9
9
  /**
10
10
  * Gets the current SDK version.
11
11
  * @returns The semantic version string of the SDK
@@ -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
@@ -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.176";
8
+ export declare const SDK_VERSION = "0.0.178";
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.176';
8
+ export const SDK_VERSION = '0.0.178';
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/energy-app-sdk",
3
- "version": "0.0.176",
3
+ "version": "0.0.178",
4
4
  "description": "enyo Energy App SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",