@enyo-energy/energy-app-sdk 0.0.73 → 0.0.75
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/energy-app-permission.type.cjs +1 -0
- package/dist/cjs/energy-app-permission.type.d.cts +2 -1
- package/dist/cjs/packages/energy-app-energy-manager.d.cts +3 -1
- package/dist/cjs/packages/energy-app-timeseries.d.cts +56 -1
- package/dist/cjs/types/enyo-charge.d.cts +14 -0
- package/dist/cjs/types/enyo-charger-appliance.d.cts +18 -0
- package/dist/cjs/types/enyo-data-bus-value.d.cts +0 -1
- package/dist/cjs/types/enyo-energy-manager.cjs +29 -0
- package/dist/cjs/types/enyo-energy-manager.d.cts +25 -1
- package/dist/cjs/types/enyo-timeseries.d.cts +110 -0
- package/dist/cjs/version.cjs +1 -1
- package/dist/cjs/version.d.cts +1 -1
- package/dist/energy-app-permission.type.d.ts +2 -1
- package/dist/energy-app-permission.type.js +1 -0
- package/dist/packages/energy-app-energy-manager.d.ts +3 -1
- package/dist/packages/energy-app-timeseries.d.ts +56 -1
- package/dist/types/enyo-charge.d.ts +14 -0
- package/dist/types/enyo-charger-appliance.d.ts +18 -0
- package/dist/types/enyo-data-bus-value.d.ts +0 -1
- package/dist/types/enyo-energy-manager.d.ts +25 -1
- package/dist/types/enyo-energy-manager.js +29 -0
- package/dist/types/enyo-timeseries.d.ts +110 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -23,6 +23,7 @@ var EnergyAppPermissionTypeEnum;
|
|
|
23
23
|
EnergyAppPermissionTypeEnum["LocationCoordinates"] = "LocationCoordinates";
|
|
24
24
|
EnergyAppPermissionTypeEnum["Timeseries"] = "Timeseries";
|
|
25
25
|
EnergyAppPermissionTypeEnum["EnergyManagerInfo"] = "EnergyManagerInfo";
|
|
26
|
+
EnergyAppPermissionTypeEnum["EnergyManager"] = "EnergyManager";
|
|
26
27
|
EnergyAppPermissionTypeEnum["ElectricityTariff"] = "ElectricityTariff";
|
|
27
28
|
EnergyAppPermissionTypeEnum["ModbusRtu"] = "ModbusRtu";
|
|
28
29
|
EnergyAppPermissionTypeEnum["EnergyPrices"] = "EnergyPrices";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type EnergyAppPermissionType = 'RestrictedInternetAccess' | 'NetworkDeviceDiscovery' | 'NetworkDeviceSearch' | 'NetworkDeviceAccess' | 'Modbus' | 'Storage' | 'Appliance' | 'AllAppliances' | 'SendDataBusValues' | 'SubscribeDataBus' | 'SendDataBusCommands' | 'OcppServer' | 'ChargingCard' | 'Vehicle' | 'Charge' | 'SecretManager' | 'LocationZipCode' | 'LocationCoordinates' | 'Timeseries' | 'EnergyManagerInfo' | 'ElectricityTariff' | 'WeatherForecastRegister' | 'WeatherForecastUse' | 'PvForecastRegister' | 'PvForecastUse' | 'PvSystemRegister' | 'PvSystemUse' | 'InverterControlCommands' | 'BatteryControlCommands' | 'ChargerControlCommands' | 'ModbusRtu' | 'EnergyPrices';
|
|
1
|
+
export type EnergyAppPermissionType = 'RestrictedInternetAccess' | 'NetworkDeviceDiscovery' | 'NetworkDeviceSearch' | 'NetworkDeviceAccess' | 'Modbus' | 'Storage' | 'Appliance' | 'AllAppliances' | 'SendDataBusValues' | 'SubscribeDataBus' | 'SendDataBusCommands' | 'OcppServer' | 'ChargingCard' | 'Vehicle' | 'Charge' | 'SecretManager' | 'LocationZipCode' | 'LocationCoordinates' | 'Timeseries' | 'EnergyManagerInfo' | 'ElectricityTariff' | 'WeatherForecastRegister' | 'WeatherForecastUse' | 'PvForecastRegister' | 'PvForecastUse' | 'PvSystemRegister' | 'PvSystemUse' | 'InverterControlCommands' | 'BatteryControlCommands' | 'ChargerControlCommands' | 'ModbusRtu' | 'EnergyPrices' | 'EnergyManager';
|
|
2
2
|
export declare enum EnergyAppPermissionTypeEnum {
|
|
3
3
|
RestrictedInternetAccess = "RestrictedInternetAccess",
|
|
4
4
|
NetworkDeviceDiscovery = "NetworkDeviceDiscovery",
|
|
@@ -20,6 +20,7 @@ export declare enum EnergyAppPermissionTypeEnum {
|
|
|
20
20
|
LocationCoordinates = "LocationCoordinates",
|
|
21
21
|
Timeseries = "Timeseries",
|
|
22
22
|
EnergyManagerInfo = "EnergyManagerInfo",
|
|
23
|
+
EnergyManager = "EnergyManager",
|
|
23
24
|
ElectricityTariff = "ElectricityTariff",
|
|
24
25
|
ModbusRtu = "ModbusRtu",
|
|
25
26
|
EnergyPrices = "EnergyPrices",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EnergyManagerInfo } from "../types/enyo-energy-manager.cjs";
|
|
1
|
+
import { EnergyManagerFeatureEnum, EnergyManagerInfo } from "../types/enyo-energy-manager.cjs";
|
|
2
2
|
/**
|
|
3
3
|
* Interface for retrieving energy manager information and capabilities.
|
|
4
4
|
* The energy manager is responsible for optimizing energy usage across appliances.
|
|
@@ -21,4 +21,6 @@ export interface EnergyAppEnergyManager {
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
getEnergyManagerInfo(): Promise<EnergyManagerInfo | null>;
|
|
24
|
+
/** Only for Energy Manager Energy Apps: Register the features which are provided*/
|
|
25
|
+
registerFeatures(features: EnergyManagerFeatureEnum[]): void;
|
|
24
26
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataBusMessageQueryRequest, DataBusMessageQueryResponse, PvProductionTimeseriesRequest, PvProductionTimeseriesResponse, BatterySocTimeseriesRequest, BatterySocTimeseriesResponse, BatteryPowerTimeseriesRequest, BatteryPowerTimeseriesResponse, MeterValuesTimeseriesRequest, MeterValuesTimeseriesResponse, GridPowerTimeseriesRequest, GridPowerTimeseriesResponse } from "../types/enyo-timeseries.cjs";
|
|
1
|
+
import { DataBusMessageQueryRequest, DataBusMessageQueryResponse, PvProductionTimeseriesRequest, PvProductionTimeseriesResponse, BatterySocTimeseriesRequest, BatterySocTimeseriesResponse, BatteryPowerTimeseriesRequest, BatteryPowerTimeseriesResponse, MeterValuesTimeseriesRequest, MeterValuesTimeseriesResponse, GridPowerTimeseriesRequest, GridPowerTimeseriesResponse, HomeConsumptionTimeseriesRequest, HomeConsumptionTimeseriesResponse, HeatpumpTemperatureTimeseriesRequest, HeatpumpTemperatureTimeseriesResponse, TemperatureSensorTimeseriesRequest, TemperatureSensorTimeseriesResponse } from "../types/enyo-timeseries.cjs";
|
|
2
2
|
/**
|
|
3
3
|
* Interface for querying historical energy data with 15-minute bucket granularity.
|
|
4
4
|
* Provides methods to retrieve aggregated timeseries data for various energy metrics
|
|
@@ -121,4 +121,59 @@ export interface EnergyAppTimeseries {
|
|
|
121
121
|
* ```
|
|
122
122
|
*/
|
|
123
123
|
getGridPowerTimeseries(request: GridPowerTimeseriesRequest): Promise<GridPowerTimeseriesResponse>;
|
|
124
|
+
/**
|
|
125
|
+
* Retrieves home consumption timeseries data aggregated in 15-minute buckets.
|
|
126
|
+
* Returns total power consumed by the home (all appliances combined).
|
|
127
|
+
*
|
|
128
|
+
* @param request - The query parameters including date range and optional appliance filter
|
|
129
|
+
* @returns Promise resolving to home consumption entries with total consumption
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const response = await timeseries.getHomeConsumptionTimeseries({
|
|
134
|
+
* startDateIso: '2024-01-01T00:00:00Z',
|
|
135
|
+
* endDateIso: '2024-01-02T00:00:00Z'
|
|
136
|
+
* });
|
|
137
|
+
* console.log(`Total home consumption: ${response.totalHomeConsumptionWh} Wh`);
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
getHomeConsumptionTimeseries(request: HomeConsumptionTimeseriesRequest): Promise<HomeConsumptionTimeseriesResponse>;
|
|
141
|
+
/**
|
|
142
|
+
* Retrieves heatpump temperature timeseries data aggregated in 15-minute buckets.
|
|
143
|
+
* Returns average temperatures for outdoor, flow, buffer tank, DHW tanks, and heating circuits.
|
|
144
|
+
* All temperature fields are optional since not all heatpumps report all temperature types.
|
|
145
|
+
*
|
|
146
|
+
* @param request - The query parameters including date range and optional appliance filter
|
|
147
|
+
* @returns Promise resolving to heatpump temperature entries with response-level averages
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* const response = await timeseries.getHeatpumpTemperatureTimeseries({
|
|
152
|
+
* startDateIso: '2024-01-01T00:00:00Z',
|
|
153
|
+
* endDateIso: '2024-01-02T00:00:00Z'
|
|
154
|
+
* });
|
|
155
|
+
* console.log(`Average outdoor temp: ${response.averageOutdoorTemperatureC} °C`);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
getHeatpumpTemperatureTimeseries(request: HeatpumpTemperatureTimeseriesRequest): Promise<HeatpumpTemperatureTimeseriesResponse>;
|
|
159
|
+
/**
|
|
160
|
+
* Retrieves temperature sensor timeseries data aggregated in 15-minute buckets.
|
|
161
|
+
* Returns per-sensor average temperature readings for each bucket, along with
|
|
162
|
+
* per-sensor averages across the full queried period.
|
|
163
|
+
*
|
|
164
|
+
* @param request - The query parameters including date range and optional appliance filter
|
|
165
|
+
* @returns Promise resolving to temperature sensor entries with per-sensor period averages
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```typescript
|
|
169
|
+
* const response = await timeseries.getTemperatureSensorTimeseries({
|
|
170
|
+
* startDateIso: '2024-01-01T00:00:00Z',
|
|
171
|
+
* endDateIso: '2024-01-02T00:00:00Z'
|
|
172
|
+
* });
|
|
173
|
+
* response.sensors.forEach(s => {
|
|
174
|
+
* console.log(`Sensor ${s.sensorId}: ${s.averageTemperatureC} °C`);
|
|
175
|
+
* });
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
getTemperatureSensorTimeseries(request: TemperatureSensorTimeseriesRequest): Promise<TemperatureSensorTimeseriesResponse>;
|
|
124
179
|
}
|
|
@@ -63,6 +63,20 @@ export interface EnyoCharge {
|
|
|
63
63
|
meterValues?: ChargeMeterValue[];
|
|
64
64
|
/** Number of phases used for charging */
|
|
65
65
|
numberOfPhases: number;
|
|
66
|
+
/** Active charging schedule entries, if smart charging is in use */
|
|
67
|
+
schedule?: EnyoChargeScheduleEntry[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Represents a single entry in a charging schedule.
|
|
71
|
+
* Defines a time-bound current limit for smart charging.
|
|
72
|
+
*/
|
|
73
|
+
export interface EnyoChargeScheduleEntry {
|
|
74
|
+
/** Start time in seconds relative to the charge session start */
|
|
75
|
+
relativeStartSeconds: number;
|
|
76
|
+
/** Absolute start time as an ISO 8601 timestamp */
|
|
77
|
+
absoluteStartIso: string;
|
|
78
|
+
/** Current limit in Ampere for this schedule period */
|
|
79
|
+
limitAmpere: number;
|
|
66
80
|
}
|
|
67
81
|
export interface EnyoChargeFilter {
|
|
68
82
|
/** Filter by specific appliance ID */
|
|
@@ -12,9 +12,25 @@ export declare enum EnyoChargerApplianceAuthorizationModeEnum {
|
|
|
12
12
|
AuthorizationRequired = "AuthorizationRequired",
|
|
13
13
|
NoAuthorization = "NoAuthorization"
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Represents a single OCPP configuration entry from the charger.
|
|
17
|
+
*/
|
|
18
|
+
export interface EnyoChargerApplianceOcppConfigurationEntry {
|
|
19
|
+
/** Configuration key name */
|
|
20
|
+
key: string;
|
|
21
|
+
/** Configuration value */
|
|
22
|
+
value: string;
|
|
23
|
+
/** Whether this configuration entry is read-only */
|
|
24
|
+
readonly: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* OCPP-specific metadata for a charger appliance.
|
|
28
|
+
*/
|
|
15
29
|
export interface EnyoChargerApplianceOcppMetadata {
|
|
16
30
|
chargePointId: string;
|
|
17
31
|
ocppVersion: '1.6' | '2.0.1';
|
|
32
|
+
/** OCPP configuration entries retrieved from the charger */
|
|
33
|
+
configuration?: EnyoChargerApplianceOcppConfigurationEntry[];
|
|
18
34
|
}
|
|
19
35
|
export declare enum EnyoChargerApplianceAvailableFeaturesEnum {
|
|
20
36
|
/** If the charger can limit the power in Ampere or Watt*/
|
|
@@ -47,4 +63,6 @@ export interface EnyoChargerApplianceMetadata {
|
|
|
47
63
|
authorizationMode: EnyoChargerApplianceAuthorizationModeEnum;
|
|
48
64
|
/** If cableType is Socket, the cable can be locked for theft protection */
|
|
49
65
|
cableLocked?: boolean;
|
|
66
|
+
/** Current charging power limit in kilowatts */
|
|
67
|
+
currentChargingLimitKw?: number;
|
|
50
68
|
}
|
|
@@ -383,7 +383,6 @@ export interface EnyoDataBusAggregatedStateValuesV1 extends EnyoDataBusMessage {
|
|
|
383
383
|
/** Total heat generation for domestic hot water from all appliances (in Watt hours) */
|
|
384
384
|
totalHeatGenerationDomesticHotWaterWh?: number;
|
|
385
385
|
autarkyPercentage?: number;
|
|
386
|
-
resolution: '1min' | '15min';
|
|
387
386
|
/** Array of all appliances with their individual values and current state */
|
|
388
387
|
appliances: Array<{
|
|
389
388
|
/** ID of the appliance */
|
|
@@ -9,6 +9,35 @@ var EnergyManagerFeatureEnum;
|
|
|
9
9
|
(function (EnergyManagerFeatureEnum) {
|
|
10
10
|
/** The energy manager supports generating preview charge schedules */
|
|
11
11
|
EnergyManagerFeatureEnum["PreviewChargeSchedule"] = "preview-charge-schedule";
|
|
12
|
+
// PV / Solar
|
|
13
|
+
/** Maximize on-site PV usage before grid export */
|
|
14
|
+
EnergyManagerFeatureEnum["PvSelfConsumptionOptimization"] = "pv-self-consumption-optimization";
|
|
15
|
+
/** Limit PV feed-in power per grid operator requirements */
|
|
16
|
+
EnergyManagerFeatureEnum["PvCurtailment"] = "pv-curtailment";
|
|
17
|
+
// Battery
|
|
18
|
+
/** Charge during low-cost periods, discharge during high-cost */
|
|
19
|
+
EnergyManagerFeatureEnum["BatteryTouArbitrage"] = "battery-tou-arbitrage";
|
|
20
|
+
/** Discharge during demand peaks to reduce grid draw */
|
|
21
|
+
EnergyManagerFeatureEnum["BatteryPeakShaving"] = "battery-peak-shaving";
|
|
22
|
+
/** Reserve battery capacity for power outages */
|
|
23
|
+
EnergyManagerFeatureEnum["BatteryBackupPower"] = "battery-backup-power";
|
|
24
|
+
// Wallbox / EV Charging
|
|
25
|
+
/** Charge EV from solar surplus */
|
|
26
|
+
EnergyManagerFeatureEnum["WallboxPvSurplusCharging"] = "wallbox-pv-surplus-charging";
|
|
27
|
+
/** Adjust EV charging based on total home load */
|
|
28
|
+
EnergyManagerFeatureEnum["WallboxDynamicLoadManagement"] = "wallbox-dynamic-load-management";
|
|
29
|
+
// Heat Pump
|
|
30
|
+
/** Prevent room overheating by adjusting heat pump output */
|
|
31
|
+
EnergyManagerFeatureEnum["HeatpumpRoomOverheating"] = "heatpump-room-overheating";
|
|
32
|
+
/** Force domestic hot water heating on demand */
|
|
33
|
+
EnergyManagerFeatureEnum["HeatpumpDhwBoost"] = "heatpump-dhw-boost";
|
|
34
|
+
/** Shift heating loads to renewable generation periods */
|
|
35
|
+
EnergyManagerFeatureEnum["HeatpumpLoadShifting"] = "heatpump-load-shifting";
|
|
36
|
+
// Climate Control / AC
|
|
37
|
+
/** Dynamic temperature setpoints based on occupancy/time */
|
|
38
|
+
EnergyManagerFeatureEnum["ClimateControlSmartThermostat"] = "climate-control-smart-thermostat";
|
|
39
|
+
/** Prioritize cooling when PV generation is high */
|
|
40
|
+
EnergyManagerFeatureEnum["ClimateControlSolarDrivenCooling"] = "climate-control-solar-driven-cooling";
|
|
12
41
|
})(EnergyManagerFeatureEnum || (exports.EnergyManagerFeatureEnum = EnergyManagerFeatureEnum = {}));
|
|
13
42
|
/**
|
|
14
43
|
* Reason why a preview charging schedule is not available.
|
|
@@ -4,7 +4,31 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare enum EnergyManagerFeatureEnum {
|
|
6
6
|
/** The energy manager supports generating preview charge schedules */
|
|
7
|
-
PreviewChargeSchedule = "preview-charge-schedule"
|
|
7
|
+
PreviewChargeSchedule = "preview-charge-schedule",
|
|
8
|
+
/** Maximize on-site PV usage before grid export */
|
|
9
|
+
PvSelfConsumptionOptimization = "pv-self-consumption-optimization",
|
|
10
|
+
/** Limit PV feed-in power per grid operator requirements */
|
|
11
|
+
PvCurtailment = "pv-curtailment",
|
|
12
|
+
/** Charge during low-cost periods, discharge during high-cost */
|
|
13
|
+
BatteryTouArbitrage = "battery-tou-arbitrage",
|
|
14
|
+
/** Discharge during demand peaks to reduce grid draw */
|
|
15
|
+
BatteryPeakShaving = "battery-peak-shaving",
|
|
16
|
+
/** Reserve battery capacity for power outages */
|
|
17
|
+
BatteryBackupPower = "battery-backup-power",
|
|
18
|
+
/** Charge EV from solar surplus */
|
|
19
|
+
WallboxPvSurplusCharging = "wallbox-pv-surplus-charging",
|
|
20
|
+
/** Adjust EV charging based on total home load */
|
|
21
|
+
WallboxDynamicLoadManagement = "wallbox-dynamic-load-management",
|
|
22
|
+
/** Prevent room overheating by adjusting heat pump output */
|
|
23
|
+
HeatpumpRoomOverheating = "heatpump-room-overheating",
|
|
24
|
+
/** Force domestic hot water heating on demand */
|
|
25
|
+
HeatpumpDhwBoost = "heatpump-dhw-boost",
|
|
26
|
+
/** Shift heating loads to renewable generation periods */
|
|
27
|
+
HeatpumpLoadShifting = "heatpump-load-shifting",
|
|
28
|
+
/** Dynamic temperature setpoints based on occupancy/time */
|
|
29
|
+
ClimateControlSmartThermostat = "climate-control-smart-thermostat",
|
|
30
|
+
/** Prioritize cooling when PV generation is high */
|
|
31
|
+
ClimateControlSolarDrivenCooling = "climate-control-solar-driven-cooling"
|
|
8
32
|
}
|
|
9
33
|
/**
|
|
10
34
|
* Reason why a preview charging schedule is not available.
|
|
@@ -209,3 +209,113 @@ export interface GridPowerTimeseriesResponse extends TimeseriesResponseBase {
|
|
|
209
209
|
/** Total energy exported to grid in Watt-hours across all buckets */
|
|
210
210
|
totalExportWh: number;
|
|
211
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* A single entry in the home consumption timeseries.
|
|
214
|
+
* Contains power and energy values for a 15-minute bucket.
|
|
215
|
+
* Represents the total energy consumed by the home (all appliances combined).
|
|
216
|
+
*/
|
|
217
|
+
export interface HomeConsumptionTimeseriesEntry extends TimeseriesEntryBase {
|
|
218
|
+
/** Time-weighted average home consumption power in Watts for this bucket */
|
|
219
|
+
homeConsumptionW: number;
|
|
220
|
+
/** Cumulative home consumption energy in Watt-hours for this bucket */
|
|
221
|
+
homeConsumptionWh: number;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Request parameters for querying home consumption timeseries data.
|
|
225
|
+
*/
|
|
226
|
+
export interface HomeConsumptionTimeseriesRequest extends TimeseriesRequestBase {
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Response containing home consumption timeseries data.
|
|
230
|
+
*/
|
|
231
|
+
export interface HomeConsumptionTimeseriesResponse extends TimeseriesResponseBase {
|
|
232
|
+
/** Array of home consumption entries, one per 15-minute bucket */
|
|
233
|
+
entries: HomeConsumptionTimeseriesEntry[];
|
|
234
|
+
/** Total home consumption energy in Watt-hours across all buckets */
|
|
235
|
+
totalHomeConsumptionWh: number;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* A single entry in the heatpump temperature timeseries.
|
|
239
|
+
* Contains average temperature readings for a 15-minute bucket.
|
|
240
|
+
* All fields are optional since not all heatpumps report all temperature types.
|
|
241
|
+
*/
|
|
242
|
+
export interface HeatpumpTemperatureTimeseriesEntry extends TimeseriesEntryBase {
|
|
243
|
+
/** Average outdoor temperature in degrees Celsius for this bucket */
|
|
244
|
+
outdoorTemperatureC?: number;
|
|
245
|
+
/** Average heatpump flow temperature in degrees Celsius for this bucket */
|
|
246
|
+
heatpumpFlowTemperatureC?: number;
|
|
247
|
+
/** Average buffer tank temperature in degrees Celsius for this bucket */
|
|
248
|
+
bufferTankTemperatureC?: number;
|
|
249
|
+
/** Domestic hot water tank temperature readings, indexed per tank */
|
|
250
|
+
domesticHotWater?: {
|
|
251
|
+
/** Zero-based index identifying the DHW tank */
|
|
252
|
+
index: number;
|
|
253
|
+
/** Average temperature in degrees Celsius for this bucket */
|
|
254
|
+
averageTemperatureC: number;
|
|
255
|
+
/** Average target temperature in degrees Celsius for this bucket */
|
|
256
|
+
averageTargetTemperatureC: number;
|
|
257
|
+
}[];
|
|
258
|
+
/** Heating circuit temperature readings, indexed per circuit */
|
|
259
|
+
heatingCircuits?: {
|
|
260
|
+
/** Zero-based index identifying the heating circuit */
|
|
261
|
+
index: number;
|
|
262
|
+
/** Average temperature in degrees Celsius for this bucket */
|
|
263
|
+
averageTemperatureC: number;
|
|
264
|
+
/** Average target temperature in degrees Celsius for this bucket */
|
|
265
|
+
averageTargetTemperatureC: number;
|
|
266
|
+
}[];
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Request parameters for querying heatpump temperature timeseries data.
|
|
270
|
+
*/
|
|
271
|
+
export interface HeatpumpTemperatureTimeseriesRequest extends TimeseriesRequestBase {
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Response containing heatpump temperature timeseries data.
|
|
275
|
+
*/
|
|
276
|
+
export interface HeatpumpTemperatureTimeseriesResponse extends TimeseriesResponseBase {
|
|
277
|
+
/** Array of heatpump temperature entries, one per 15-minute bucket */
|
|
278
|
+
entries: HeatpumpTemperatureTimeseriesEntry[];
|
|
279
|
+
/** Average outdoor temperature in degrees Celsius across all buckets */
|
|
280
|
+
averageOutdoorTemperatureC?: number;
|
|
281
|
+
/** Average heatpump flow temperature in degrees Celsius across all buckets */
|
|
282
|
+
averageHeatpumpFlowTemperatureC?: number;
|
|
283
|
+
/** Average buffer tank temperature in degrees Celsius across all buckets */
|
|
284
|
+
averageBufferTankTemperatureC?: number;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* A single entry in the temperature sensor timeseries.
|
|
288
|
+
* Contains per-sensor average temperature readings for a 15-minute bucket.
|
|
289
|
+
*/
|
|
290
|
+
export interface TemperatureSensorTimeseriesEntry extends TimeseriesEntryBase {
|
|
291
|
+
/** Array of sensor readings for this bucket */
|
|
292
|
+
sensors: {
|
|
293
|
+
/** Unique identifier for the temperature sensor */
|
|
294
|
+
sensorId: string;
|
|
295
|
+
/** Average temperature in degrees Celsius for this bucket */
|
|
296
|
+
averageTemperatureC: number;
|
|
297
|
+
/** Average target temperature in degrees Celsius for this bucket, if applicable */
|
|
298
|
+
averageTargetTemperatureC?: number;
|
|
299
|
+
}[];
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Request parameters for querying temperature sensor timeseries data.
|
|
303
|
+
*/
|
|
304
|
+
export interface TemperatureSensorTimeseriesRequest extends TimeseriesRequestBase {
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Response containing temperature sensor timeseries data.
|
|
308
|
+
*/
|
|
309
|
+
export interface TemperatureSensorTimeseriesResponse extends TimeseriesResponseBase {
|
|
310
|
+
/** Array of temperature sensor entries, one per 15-minute bucket */
|
|
311
|
+
entries: TemperatureSensorTimeseriesEntry[];
|
|
312
|
+
/** Per-sensor average temperatures across the full queried period */
|
|
313
|
+
sensors: {
|
|
314
|
+
/** Unique identifier for the temperature sensor */
|
|
315
|
+
sensorId: string;
|
|
316
|
+
/** Average temperature in degrees Celsius across the full period */
|
|
317
|
+
averageTemperatureC: number;
|
|
318
|
+
/** Average target temperature in degrees Celsius across the full period, if applicable */
|
|
319
|
+
averageTargetTemperatureC?: number;
|
|
320
|
+
}[];
|
|
321
|
+
}
|
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.75';
|
|
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,4 +1,4 @@
|
|
|
1
|
-
export type EnergyAppPermissionType = 'RestrictedInternetAccess' | 'NetworkDeviceDiscovery' | 'NetworkDeviceSearch' | 'NetworkDeviceAccess' | 'Modbus' | 'Storage' | 'Appliance' | 'AllAppliances' | 'SendDataBusValues' | 'SubscribeDataBus' | 'SendDataBusCommands' | 'OcppServer' | 'ChargingCard' | 'Vehicle' | 'Charge' | 'SecretManager' | 'LocationZipCode' | 'LocationCoordinates' | 'Timeseries' | 'EnergyManagerInfo' | 'ElectricityTariff' | 'WeatherForecastRegister' | 'WeatherForecastUse' | 'PvForecastRegister' | 'PvForecastUse' | 'PvSystemRegister' | 'PvSystemUse' | 'InverterControlCommands' | 'BatteryControlCommands' | 'ChargerControlCommands' | 'ModbusRtu' | 'EnergyPrices';
|
|
1
|
+
export type EnergyAppPermissionType = 'RestrictedInternetAccess' | 'NetworkDeviceDiscovery' | 'NetworkDeviceSearch' | 'NetworkDeviceAccess' | 'Modbus' | 'Storage' | 'Appliance' | 'AllAppliances' | 'SendDataBusValues' | 'SubscribeDataBus' | 'SendDataBusCommands' | 'OcppServer' | 'ChargingCard' | 'Vehicle' | 'Charge' | 'SecretManager' | 'LocationZipCode' | 'LocationCoordinates' | 'Timeseries' | 'EnergyManagerInfo' | 'ElectricityTariff' | 'WeatherForecastRegister' | 'WeatherForecastUse' | 'PvForecastRegister' | 'PvForecastUse' | 'PvSystemRegister' | 'PvSystemUse' | 'InverterControlCommands' | 'BatteryControlCommands' | 'ChargerControlCommands' | 'ModbusRtu' | 'EnergyPrices' | 'EnergyManager';
|
|
2
2
|
export declare enum EnergyAppPermissionTypeEnum {
|
|
3
3
|
RestrictedInternetAccess = "RestrictedInternetAccess",
|
|
4
4
|
NetworkDeviceDiscovery = "NetworkDeviceDiscovery",
|
|
@@ -20,6 +20,7 @@ export declare enum EnergyAppPermissionTypeEnum {
|
|
|
20
20
|
LocationCoordinates = "LocationCoordinates",
|
|
21
21
|
Timeseries = "Timeseries",
|
|
22
22
|
EnergyManagerInfo = "EnergyManagerInfo",
|
|
23
|
+
EnergyManager = "EnergyManager",
|
|
23
24
|
ElectricityTariff = "ElectricityTariff",
|
|
24
25
|
ModbusRtu = "ModbusRtu",
|
|
25
26
|
EnergyPrices = "EnergyPrices",
|
|
@@ -20,6 +20,7 @@ export var EnergyAppPermissionTypeEnum;
|
|
|
20
20
|
EnergyAppPermissionTypeEnum["LocationCoordinates"] = "LocationCoordinates";
|
|
21
21
|
EnergyAppPermissionTypeEnum["Timeseries"] = "Timeseries";
|
|
22
22
|
EnergyAppPermissionTypeEnum["EnergyManagerInfo"] = "EnergyManagerInfo";
|
|
23
|
+
EnergyAppPermissionTypeEnum["EnergyManager"] = "EnergyManager";
|
|
23
24
|
EnergyAppPermissionTypeEnum["ElectricityTariff"] = "ElectricityTariff";
|
|
24
25
|
EnergyAppPermissionTypeEnum["ModbusRtu"] = "ModbusRtu";
|
|
25
26
|
EnergyAppPermissionTypeEnum["EnergyPrices"] = "EnergyPrices";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EnergyManagerInfo } from "../types/enyo-energy-manager.js";
|
|
1
|
+
import { EnergyManagerFeatureEnum, EnergyManagerInfo } from "../types/enyo-energy-manager.js";
|
|
2
2
|
/**
|
|
3
3
|
* Interface for retrieving energy manager information and capabilities.
|
|
4
4
|
* The energy manager is responsible for optimizing energy usage across appliances.
|
|
@@ -21,4 +21,6 @@ export interface EnergyAppEnergyManager {
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
getEnergyManagerInfo(): Promise<EnergyManagerInfo | null>;
|
|
24
|
+
/** Only for Energy Manager Energy Apps: Register the features which are provided*/
|
|
25
|
+
registerFeatures(features: EnergyManagerFeatureEnum[]): void;
|
|
24
26
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataBusMessageQueryRequest, DataBusMessageQueryResponse, PvProductionTimeseriesRequest, PvProductionTimeseriesResponse, BatterySocTimeseriesRequest, BatterySocTimeseriesResponse, BatteryPowerTimeseriesRequest, BatteryPowerTimeseriesResponse, MeterValuesTimeseriesRequest, MeterValuesTimeseriesResponse, GridPowerTimeseriesRequest, GridPowerTimeseriesResponse } from "../types/enyo-timeseries.js";
|
|
1
|
+
import { DataBusMessageQueryRequest, DataBusMessageQueryResponse, PvProductionTimeseriesRequest, PvProductionTimeseriesResponse, BatterySocTimeseriesRequest, BatterySocTimeseriesResponse, BatteryPowerTimeseriesRequest, BatteryPowerTimeseriesResponse, MeterValuesTimeseriesRequest, MeterValuesTimeseriesResponse, GridPowerTimeseriesRequest, GridPowerTimeseriesResponse, HomeConsumptionTimeseriesRequest, HomeConsumptionTimeseriesResponse, HeatpumpTemperatureTimeseriesRequest, HeatpumpTemperatureTimeseriesResponse, TemperatureSensorTimeseriesRequest, TemperatureSensorTimeseriesResponse } from "../types/enyo-timeseries.js";
|
|
2
2
|
/**
|
|
3
3
|
* Interface for querying historical energy data with 15-minute bucket granularity.
|
|
4
4
|
* Provides methods to retrieve aggregated timeseries data for various energy metrics
|
|
@@ -121,4 +121,59 @@ export interface EnergyAppTimeseries {
|
|
|
121
121
|
* ```
|
|
122
122
|
*/
|
|
123
123
|
getGridPowerTimeseries(request: GridPowerTimeseriesRequest): Promise<GridPowerTimeseriesResponse>;
|
|
124
|
+
/**
|
|
125
|
+
* Retrieves home consumption timeseries data aggregated in 15-minute buckets.
|
|
126
|
+
* Returns total power consumed by the home (all appliances combined).
|
|
127
|
+
*
|
|
128
|
+
* @param request - The query parameters including date range and optional appliance filter
|
|
129
|
+
* @returns Promise resolving to home consumption entries with total consumption
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const response = await timeseries.getHomeConsumptionTimeseries({
|
|
134
|
+
* startDateIso: '2024-01-01T00:00:00Z',
|
|
135
|
+
* endDateIso: '2024-01-02T00:00:00Z'
|
|
136
|
+
* });
|
|
137
|
+
* console.log(`Total home consumption: ${response.totalHomeConsumptionWh} Wh`);
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
getHomeConsumptionTimeseries(request: HomeConsumptionTimeseriesRequest): Promise<HomeConsumptionTimeseriesResponse>;
|
|
141
|
+
/**
|
|
142
|
+
* Retrieves heatpump temperature timeseries data aggregated in 15-minute buckets.
|
|
143
|
+
* Returns average temperatures for outdoor, flow, buffer tank, DHW tanks, and heating circuits.
|
|
144
|
+
* All temperature fields are optional since not all heatpumps report all temperature types.
|
|
145
|
+
*
|
|
146
|
+
* @param request - The query parameters including date range and optional appliance filter
|
|
147
|
+
* @returns Promise resolving to heatpump temperature entries with response-level averages
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* const response = await timeseries.getHeatpumpTemperatureTimeseries({
|
|
152
|
+
* startDateIso: '2024-01-01T00:00:00Z',
|
|
153
|
+
* endDateIso: '2024-01-02T00:00:00Z'
|
|
154
|
+
* });
|
|
155
|
+
* console.log(`Average outdoor temp: ${response.averageOutdoorTemperatureC} °C`);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
getHeatpumpTemperatureTimeseries(request: HeatpumpTemperatureTimeseriesRequest): Promise<HeatpumpTemperatureTimeseriesResponse>;
|
|
159
|
+
/**
|
|
160
|
+
* Retrieves temperature sensor timeseries data aggregated in 15-minute buckets.
|
|
161
|
+
* Returns per-sensor average temperature readings for each bucket, along with
|
|
162
|
+
* per-sensor averages across the full queried period.
|
|
163
|
+
*
|
|
164
|
+
* @param request - The query parameters including date range and optional appliance filter
|
|
165
|
+
* @returns Promise resolving to temperature sensor entries with per-sensor period averages
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```typescript
|
|
169
|
+
* const response = await timeseries.getTemperatureSensorTimeseries({
|
|
170
|
+
* startDateIso: '2024-01-01T00:00:00Z',
|
|
171
|
+
* endDateIso: '2024-01-02T00:00:00Z'
|
|
172
|
+
* });
|
|
173
|
+
* response.sensors.forEach(s => {
|
|
174
|
+
* console.log(`Sensor ${s.sensorId}: ${s.averageTemperatureC} °C`);
|
|
175
|
+
* });
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
getTemperatureSensorTimeseries(request: TemperatureSensorTimeseriesRequest): Promise<TemperatureSensorTimeseriesResponse>;
|
|
124
179
|
}
|
|
@@ -63,6 +63,20 @@ export interface EnyoCharge {
|
|
|
63
63
|
meterValues?: ChargeMeterValue[];
|
|
64
64
|
/** Number of phases used for charging */
|
|
65
65
|
numberOfPhases: number;
|
|
66
|
+
/** Active charging schedule entries, if smart charging is in use */
|
|
67
|
+
schedule?: EnyoChargeScheduleEntry[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Represents a single entry in a charging schedule.
|
|
71
|
+
* Defines a time-bound current limit for smart charging.
|
|
72
|
+
*/
|
|
73
|
+
export interface EnyoChargeScheduleEntry {
|
|
74
|
+
/** Start time in seconds relative to the charge session start */
|
|
75
|
+
relativeStartSeconds: number;
|
|
76
|
+
/** Absolute start time as an ISO 8601 timestamp */
|
|
77
|
+
absoluteStartIso: string;
|
|
78
|
+
/** Current limit in Ampere for this schedule period */
|
|
79
|
+
limitAmpere: number;
|
|
66
80
|
}
|
|
67
81
|
export interface EnyoChargeFilter {
|
|
68
82
|
/** Filter by specific appliance ID */
|
|
@@ -12,9 +12,25 @@ export declare enum EnyoChargerApplianceAuthorizationModeEnum {
|
|
|
12
12
|
AuthorizationRequired = "AuthorizationRequired",
|
|
13
13
|
NoAuthorization = "NoAuthorization"
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Represents a single OCPP configuration entry from the charger.
|
|
17
|
+
*/
|
|
18
|
+
export interface EnyoChargerApplianceOcppConfigurationEntry {
|
|
19
|
+
/** Configuration key name */
|
|
20
|
+
key: string;
|
|
21
|
+
/** Configuration value */
|
|
22
|
+
value: string;
|
|
23
|
+
/** Whether this configuration entry is read-only */
|
|
24
|
+
readonly: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* OCPP-specific metadata for a charger appliance.
|
|
28
|
+
*/
|
|
15
29
|
export interface EnyoChargerApplianceOcppMetadata {
|
|
16
30
|
chargePointId: string;
|
|
17
31
|
ocppVersion: '1.6' | '2.0.1';
|
|
32
|
+
/** OCPP configuration entries retrieved from the charger */
|
|
33
|
+
configuration?: EnyoChargerApplianceOcppConfigurationEntry[];
|
|
18
34
|
}
|
|
19
35
|
export declare enum EnyoChargerApplianceAvailableFeaturesEnum {
|
|
20
36
|
/** If the charger can limit the power in Ampere or Watt*/
|
|
@@ -47,4 +63,6 @@ export interface EnyoChargerApplianceMetadata {
|
|
|
47
63
|
authorizationMode: EnyoChargerApplianceAuthorizationModeEnum;
|
|
48
64
|
/** If cableType is Socket, the cable can be locked for theft protection */
|
|
49
65
|
cableLocked?: boolean;
|
|
66
|
+
/** Current charging power limit in kilowatts */
|
|
67
|
+
currentChargingLimitKw?: number;
|
|
50
68
|
}
|
|
@@ -383,7 +383,6 @@ export interface EnyoDataBusAggregatedStateValuesV1 extends EnyoDataBusMessage {
|
|
|
383
383
|
/** Total heat generation for domestic hot water from all appliances (in Watt hours) */
|
|
384
384
|
totalHeatGenerationDomesticHotWaterWh?: number;
|
|
385
385
|
autarkyPercentage?: number;
|
|
386
|
-
resolution: '1min' | '15min';
|
|
387
386
|
/** Array of all appliances with their individual values and current state */
|
|
388
387
|
appliances: Array<{
|
|
389
388
|
/** ID of the appliance */
|
|
@@ -4,7 +4,31 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare enum EnergyManagerFeatureEnum {
|
|
6
6
|
/** The energy manager supports generating preview charge schedules */
|
|
7
|
-
PreviewChargeSchedule = "preview-charge-schedule"
|
|
7
|
+
PreviewChargeSchedule = "preview-charge-schedule",
|
|
8
|
+
/** Maximize on-site PV usage before grid export */
|
|
9
|
+
PvSelfConsumptionOptimization = "pv-self-consumption-optimization",
|
|
10
|
+
/** Limit PV feed-in power per grid operator requirements */
|
|
11
|
+
PvCurtailment = "pv-curtailment",
|
|
12
|
+
/** Charge during low-cost periods, discharge during high-cost */
|
|
13
|
+
BatteryTouArbitrage = "battery-tou-arbitrage",
|
|
14
|
+
/** Discharge during demand peaks to reduce grid draw */
|
|
15
|
+
BatteryPeakShaving = "battery-peak-shaving",
|
|
16
|
+
/** Reserve battery capacity for power outages */
|
|
17
|
+
BatteryBackupPower = "battery-backup-power",
|
|
18
|
+
/** Charge EV from solar surplus */
|
|
19
|
+
WallboxPvSurplusCharging = "wallbox-pv-surplus-charging",
|
|
20
|
+
/** Adjust EV charging based on total home load */
|
|
21
|
+
WallboxDynamicLoadManagement = "wallbox-dynamic-load-management",
|
|
22
|
+
/** Prevent room overheating by adjusting heat pump output */
|
|
23
|
+
HeatpumpRoomOverheating = "heatpump-room-overheating",
|
|
24
|
+
/** Force domestic hot water heating on demand */
|
|
25
|
+
HeatpumpDhwBoost = "heatpump-dhw-boost",
|
|
26
|
+
/** Shift heating loads to renewable generation periods */
|
|
27
|
+
HeatpumpLoadShifting = "heatpump-load-shifting",
|
|
28
|
+
/** Dynamic temperature setpoints based on occupancy/time */
|
|
29
|
+
ClimateControlSmartThermostat = "climate-control-smart-thermostat",
|
|
30
|
+
/** Prioritize cooling when PV generation is high */
|
|
31
|
+
ClimateControlSolarDrivenCooling = "climate-control-solar-driven-cooling"
|
|
8
32
|
}
|
|
9
33
|
/**
|
|
10
34
|
* Reason why a preview charging schedule is not available.
|
|
@@ -6,6 +6,35 @@ export var EnergyManagerFeatureEnum;
|
|
|
6
6
|
(function (EnergyManagerFeatureEnum) {
|
|
7
7
|
/** The energy manager supports generating preview charge schedules */
|
|
8
8
|
EnergyManagerFeatureEnum["PreviewChargeSchedule"] = "preview-charge-schedule";
|
|
9
|
+
// PV / Solar
|
|
10
|
+
/** Maximize on-site PV usage before grid export */
|
|
11
|
+
EnergyManagerFeatureEnum["PvSelfConsumptionOptimization"] = "pv-self-consumption-optimization";
|
|
12
|
+
/** Limit PV feed-in power per grid operator requirements */
|
|
13
|
+
EnergyManagerFeatureEnum["PvCurtailment"] = "pv-curtailment";
|
|
14
|
+
// Battery
|
|
15
|
+
/** Charge during low-cost periods, discharge during high-cost */
|
|
16
|
+
EnergyManagerFeatureEnum["BatteryTouArbitrage"] = "battery-tou-arbitrage";
|
|
17
|
+
/** Discharge during demand peaks to reduce grid draw */
|
|
18
|
+
EnergyManagerFeatureEnum["BatteryPeakShaving"] = "battery-peak-shaving";
|
|
19
|
+
/** Reserve battery capacity for power outages */
|
|
20
|
+
EnergyManagerFeatureEnum["BatteryBackupPower"] = "battery-backup-power";
|
|
21
|
+
// Wallbox / EV Charging
|
|
22
|
+
/** Charge EV from solar surplus */
|
|
23
|
+
EnergyManagerFeatureEnum["WallboxPvSurplusCharging"] = "wallbox-pv-surplus-charging";
|
|
24
|
+
/** Adjust EV charging based on total home load */
|
|
25
|
+
EnergyManagerFeatureEnum["WallboxDynamicLoadManagement"] = "wallbox-dynamic-load-management";
|
|
26
|
+
// Heat Pump
|
|
27
|
+
/** Prevent room overheating by adjusting heat pump output */
|
|
28
|
+
EnergyManagerFeatureEnum["HeatpumpRoomOverheating"] = "heatpump-room-overheating";
|
|
29
|
+
/** Force domestic hot water heating on demand */
|
|
30
|
+
EnergyManagerFeatureEnum["HeatpumpDhwBoost"] = "heatpump-dhw-boost";
|
|
31
|
+
/** Shift heating loads to renewable generation periods */
|
|
32
|
+
EnergyManagerFeatureEnum["HeatpumpLoadShifting"] = "heatpump-load-shifting";
|
|
33
|
+
// Climate Control / AC
|
|
34
|
+
/** Dynamic temperature setpoints based on occupancy/time */
|
|
35
|
+
EnergyManagerFeatureEnum["ClimateControlSmartThermostat"] = "climate-control-smart-thermostat";
|
|
36
|
+
/** Prioritize cooling when PV generation is high */
|
|
37
|
+
EnergyManagerFeatureEnum["ClimateControlSolarDrivenCooling"] = "climate-control-solar-driven-cooling";
|
|
9
38
|
})(EnergyManagerFeatureEnum || (EnergyManagerFeatureEnum = {}));
|
|
10
39
|
/**
|
|
11
40
|
* Reason why a preview charging schedule is not available.
|
|
@@ -209,3 +209,113 @@ export interface GridPowerTimeseriesResponse extends TimeseriesResponseBase {
|
|
|
209
209
|
/** Total energy exported to grid in Watt-hours across all buckets */
|
|
210
210
|
totalExportWh: number;
|
|
211
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* A single entry in the home consumption timeseries.
|
|
214
|
+
* Contains power and energy values for a 15-minute bucket.
|
|
215
|
+
* Represents the total energy consumed by the home (all appliances combined).
|
|
216
|
+
*/
|
|
217
|
+
export interface HomeConsumptionTimeseriesEntry extends TimeseriesEntryBase {
|
|
218
|
+
/** Time-weighted average home consumption power in Watts for this bucket */
|
|
219
|
+
homeConsumptionW: number;
|
|
220
|
+
/** Cumulative home consumption energy in Watt-hours for this bucket */
|
|
221
|
+
homeConsumptionWh: number;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Request parameters for querying home consumption timeseries data.
|
|
225
|
+
*/
|
|
226
|
+
export interface HomeConsumptionTimeseriesRequest extends TimeseriesRequestBase {
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Response containing home consumption timeseries data.
|
|
230
|
+
*/
|
|
231
|
+
export interface HomeConsumptionTimeseriesResponse extends TimeseriesResponseBase {
|
|
232
|
+
/** Array of home consumption entries, one per 15-minute bucket */
|
|
233
|
+
entries: HomeConsumptionTimeseriesEntry[];
|
|
234
|
+
/** Total home consumption energy in Watt-hours across all buckets */
|
|
235
|
+
totalHomeConsumptionWh: number;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* A single entry in the heatpump temperature timeseries.
|
|
239
|
+
* Contains average temperature readings for a 15-minute bucket.
|
|
240
|
+
* All fields are optional since not all heatpumps report all temperature types.
|
|
241
|
+
*/
|
|
242
|
+
export interface HeatpumpTemperatureTimeseriesEntry extends TimeseriesEntryBase {
|
|
243
|
+
/** Average outdoor temperature in degrees Celsius for this bucket */
|
|
244
|
+
outdoorTemperatureC?: number;
|
|
245
|
+
/** Average heatpump flow temperature in degrees Celsius for this bucket */
|
|
246
|
+
heatpumpFlowTemperatureC?: number;
|
|
247
|
+
/** Average buffer tank temperature in degrees Celsius for this bucket */
|
|
248
|
+
bufferTankTemperatureC?: number;
|
|
249
|
+
/** Domestic hot water tank temperature readings, indexed per tank */
|
|
250
|
+
domesticHotWater?: {
|
|
251
|
+
/** Zero-based index identifying the DHW tank */
|
|
252
|
+
index: number;
|
|
253
|
+
/** Average temperature in degrees Celsius for this bucket */
|
|
254
|
+
averageTemperatureC: number;
|
|
255
|
+
/** Average target temperature in degrees Celsius for this bucket */
|
|
256
|
+
averageTargetTemperatureC: number;
|
|
257
|
+
}[];
|
|
258
|
+
/** Heating circuit temperature readings, indexed per circuit */
|
|
259
|
+
heatingCircuits?: {
|
|
260
|
+
/** Zero-based index identifying the heating circuit */
|
|
261
|
+
index: number;
|
|
262
|
+
/** Average temperature in degrees Celsius for this bucket */
|
|
263
|
+
averageTemperatureC: number;
|
|
264
|
+
/** Average target temperature in degrees Celsius for this bucket */
|
|
265
|
+
averageTargetTemperatureC: number;
|
|
266
|
+
}[];
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Request parameters for querying heatpump temperature timeseries data.
|
|
270
|
+
*/
|
|
271
|
+
export interface HeatpumpTemperatureTimeseriesRequest extends TimeseriesRequestBase {
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Response containing heatpump temperature timeseries data.
|
|
275
|
+
*/
|
|
276
|
+
export interface HeatpumpTemperatureTimeseriesResponse extends TimeseriesResponseBase {
|
|
277
|
+
/** Array of heatpump temperature entries, one per 15-minute bucket */
|
|
278
|
+
entries: HeatpumpTemperatureTimeseriesEntry[];
|
|
279
|
+
/** Average outdoor temperature in degrees Celsius across all buckets */
|
|
280
|
+
averageOutdoorTemperatureC?: number;
|
|
281
|
+
/** Average heatpump flow temperature in degrees Celsius across all buckets */
|
|
282
|
+
averageHeatpumpFlowTemperatureC?: number;
|
|
283
|
+
/** Average buffer tank temperature in degrees Celsius across all buckets */
|
|
284
|
+
averageBufferTankTemperatureC?: number;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* A single entry in the temperature sensor timeseries.
|
|
288
|
+
* Contains per-sensor average temperature readings for a 15-minute bucket.
|
|
289
|
+
*/
|
|
290
|
+
export interface TemperatureSensorTimeseriesEntry extends TimeseriesEntryBase {
|
|
291
|
+
/** Array of sensor readings for this bucket */
|
|
292
|
+
sensors: {
|
|
293
|
+
/** Unique identifier for the temperature sensor */
|
|
294
|
+
sensorId: string;
|
|
295
|
+
/** Average temperature in degrees Celsius for this bucket */
|
|
296
|
+
averageTemperatureC: number;
|
|
297
|
+
/** Average target temperature in degrees Celsius for this bucket, if applicable */
|
|
298
|
+
averageTargetTemperatureC?: number;
|
|
299
|
+
}[];
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Request parameters for querying temperature sensor timeseries data.
|
|
303
|
+
*/
|
|
304
|
+
export interface TemperatureSensorTimeseriesRequest extends TimeseriesRequestBase {
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Response containing temperature sensor timeseries data.
|
|
308
|
+
*/
|
|
309
|
+
export interface TemperatureSensorTimeseriesResponse extends TimeseriesResponseBase {
|
|
310
|
+
/** Array of temperature sensor entries, one per 15-minute bucket */
|
|
311
|
+
entries: TemperatureSensorTimeseriesEntry[];
|
|
312
|
+
/** Per-sensor average temperatures across the full queried period */
|
|
313
|
+
sensors: {
|
|
314
|
+
/** Unique identifier for the temperature sensor */
|
|
315
|
+
sensorId: string;
|
|
316
|
+
/** Average temperature in degrees Celsius across the full period */
|
|
317
|
+
averageTemperatureC: number;
|
|
318
|
+
/** Average target temperature in degrees Celsius across the full period, if applicable */
|
|
319
|
+
averageTargetTemperatureC?: number;
|
|
320
|
+
}[];
|
|
321
|
+
}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED