@enyo-energy/energy-app-sdk 0.0.197 → 0.0.198
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/README.md +1 -1
- package/dist/cjs/implementations/energy-manager-settings/energy-manager-settings-validators.cjs +11 -1
- package/dist/cjs/implementations/energy-manager-settings/energy-manager-settings-validators.d.cts +3 -0
- package/dist/cjs/types/enyo-energy-manager-settings.cjs +4 -4
- package/dist/cjs/types/enyo-energy-manager-settings.d.cts +18 -17
- package/dist/cjs/version.cjs +1 -1
- package/dist/cjs/version.d.cts +1 -1
- package/dist/implementations/energy-manager-settings/energy-manager-settings-validators.d.ts +3 -0
- package/dist/implementations/energy-manager-settings/energy-manager-settings-validators.js +11 -1
- package/dist/types/enyo-energy-manager-settings.d.ts +18 -17
- package/dist/types/enyo-energy-manager-settings.js +4 -4
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1137,7 +1137,7 @@ A closed, SDK-defined set of user-facing controls the active energy manager hono
|
|
|
1137
1137
|
| `BatteryChargingMode` | `paced` \| `immediate` |
|
|
1138
1138
|
| `BatteryChargeFromGrid` | boolean |
|
|
1139
1139
|
| `BatteryDischargeWhileChargingWh` | number \| `null` (Wh allowance; `null`/unset = disabled) |
|
|
1140
|
-
| `
|
|
1140
|
+
| `BlockBatteryDischargeWhileEvCharging` | boolean |
|
|
1141
1141
|
| `HeatpumpControl` | boolean |
|
|
1142
1142
|
| `HeatingRodControl` | boolean |
|
|
1143
1143
|
| `HeatingRodMode` | `pv-surplus-only` \| `boost` |
|
package/dist/cjs/implementations/energy-manager-settings/energy-manager-settings-validators.cjs
CHANGED
|
@@ -118,6 +118,9 @@ function gateValue(values, setting) {
|
|
|
118
118
|
* - `batteryDischargeWhileChargingWh` is a finite non-negative number or `null`
|
|
119
119
|
* (**error**), and is not a negligible positive figure (**warning** — catches
|
|
120
120
|
* a kWh value in a Wh field).
|
|
121
|
+
* - `blockBatteryDischargeWhileEvCharging` does not sit alongside a positive
|
|
122
|
+
* `batteryDischargeWhileChargingWh` budget (**warning** — the block overrides
|
|
123
|
+
* the budget, so it could never be spent).
|
|
121
124
|
* - A value stored for an unsupported setting (**warning** — the energy manager
|
|
122
125
|
* will ignore it).
|
|
123
126
|
* - A value stored while its gate does not hold (**warning** — it can never take
|
|
@@ -160,7 +163,7 @@ function validateEnergyManagerSettingsState(state) {
|
|
|
160
163
|
const values = state.values ?? {};
|
|
161
164
|
// ── value formats ──────────────────────────────────────────────────────
|
|
162
165
|
for (const key of ['batteryControl', 'batteryChargeFromGrid',
|
|
163
|
-
'
|
|
166
|
+
'blockBatteryDischargeWhileEvCharging', 'heatpumpControl',
|
|
164
167
|
'heatingRodControl', 'chargerControl']) {
|
|
165
168
|
if (values[key] !== undefined && typeof values[key] !== 'boolean') {
|
|
166
169
|
errors.push(`\`${key}\` must be a boolean when set.`);
|
|
@@ -203,6 +206,13 @@ function validateEnergyManagerSettingsState(state) {
|
|
|
203
206
|
'any house battery — this field is in watt-hours, not kilowatt-hours.');
|
|
204
207
|
}
|
|
205
208
|
}
|
|
209
|
+
if (values.blockBatteryDischargeWhileEvCharging === true
|
|
210
|
+
&& typeof values.batteryDischargeWhileChargingWh === 'number'
|
|
211
|
+
&& values.batteryDischargeWhileChargingWh > 0) {
|
|
212
|
+
warnings.push('`blockBatteryDischargeWhileEvCharging` is true, which closes the tap entirely, so the ' +
|
|
213
|
+
`\`batteryDischargeWhileChargingWh\` budget of ${values.batteryDischargeWhileChargingWh} Wh ` +
|
|
214
|
+
'can never be spent. Clear one of the two.');
|
|
215
|
+
}
|
|
206
216
|
if (values.costOptimizedTargetTime !== undefined) {
|
|
207
217
|
if (typeof values.costOptimizedTargetTime !== 'string'
|
|
208
218
|
|| !TIME_RE.test(values.costOptimizedTargetTime)) {
|
package/dist/cjs/implementations/energy-manager-settings/energy-manager-settings-validators.d.cts
CHANGED
|
@@ -59,6 +59,9 @@ export interface EnergyManagerSettingsValidationResult {
|
|
|
59
59
|
* - `batteryDischargeWhileChargingWh` is a finite non-negative number or `null`
|
|
60
60
|
* (**error**), and is not a negligible positive figure (**warning** — catches
|
|
61
61
|
* a kWh value in a Wh field).
|
|
62
|
+
* - `blockBatteryDischargeWhileEvCharging` does not sit alongside a positive
|
|
63
|
+
* `batteryDischargeWhileChargingWh` budget (**warning** — the block overrides
|
|
64
|
+
* the budget, so it could never be spent).
|
|
62
65
|
* - A value stored for an unsupported setting (**warning** — the energy manager
|
|
63
66
|
* will ignore it).
|
|
64
67
|
* - A value stored while its gate does not hold (**warning** — it can never take
|
|
@@ -46,8 +46,8 @@ var EnergyManagerSettingEnum;
|
|
|
46
46
|
EnergyManagerSettingEnum["BatteryChargeFromGrid"] = "battery-charge-from-grid";
|
|
47
47
|
/** How much energy the battery may discharge into a charging vehicle, in Wh. Unset/`null` disables it. */
|
|
48
48
|
EnergyManagerSettingEnum["BatteryDischargeWhileChargingWh"] = "battery-discharge-while-charging-wh";
|
|
49
|
-
/**
|
|
50
|
-
EnergyManagerSettingEnum["
|
|
49
|
+
/** Hard block on battery discharge into a charging vehicle. Overrides any Wh allowance. */
|
|
50
|
+
EnergyManagerSettingEnum["BlockBatteryDischargeWhileEvCharging"] = "block-battery-discharge-while-ev-charging";
|
|
51
51
|
// ── Heat pump ──────────────────────────────────────────────────────────
|
|
52
52
|
/** Whether the energy manager may steer the heat pump. */
|
|
53
53
|
EnergyManagerSettingEnum["HeatpumpControl"] = "heatpump-control";
|
|
@@ -135,7 +135,7 @@ exports.ENERGY_MANAGER_SETTING_DEPENDENCIES = {
|
|
|
135
135
|
requires: EnergyManagerSettingEnum.BatteryControl,
|
|
136
136
|
equals: true,
|
|
137
137
|
},
|
|
138
|
-
[EnergyManagerSettingEnum.
|
|
138
|
+
[EnergyManagerSettingEnum.BlockBatteryDischargeWhileEvCharging]: {
|
|
139
139
|
requires: EnergyManagerSettingEnum.BatteryControl,
|
|
140
140
|
equals: true,
|
|
141
141
|
},
|
|
@@ -168,7 +168,7 @@ exports.ENERGY_MANAGER_SETTING_VALUE_KEYS = {
|
|
|
168
168
|
[EnergyManagerSettingEnum.BatteryChargingMode]: ['batteryChargingMode'],
|
|
169
169
|
[EnergyManagerSettingEnum.BatteryChargeFromGrid]: ['batteryChargeFromGrid'],
|
|
170
170
|
[EnergyManagerSettingEnum.BatteryDischargeWhileChargingWh]: ['batteryDischargeWhileChargingWh'],
|
|
171
|
-
[EnergyManagerSettingEnum.
|
|
171
|
+
[EnergyManagerSettingEnum.BlockBatteryDischargeWhileEvCharging]: ['blockBatteryDischargeWhileEvCharging'],
|
|
172
172
|
[EnergyManagerSettingEnum.HeatpumpControl]: ['heatpumpControl'],
|
|
173
173
|
[EnergyManagerSettingEnum.HeatingRodControl]: ['heatingRodControl'],
|
|
174
174
|
[EnergyManagerSettingEnum.HeatingRodMode]: ['heatingRodMode'],
|
|
@@ -42,8 +42,8 @@ export declare enum EnergyManagerSettingEnum {
|
|
|
42
42
|
BatteryChargeFromGrid = "battery-charge-from-grid",
|
|
43
43
|
/** How much energy the battery may discharge into a charging vehicle, in Wh. Unset/`null` disables it. */
|
|
44
44
|
BatteryDischargeWhileChargingWh = "battery-discharge-while-charging-wh",
|
|
45
|
-
/**
|
|
46
|
-
|
|
45
|
+
/** Hard block on battery discharge into a charging vehicle. Overrides any Wh allowance. */
|
|
46
|
+
BlockBatteryDischargeWhileEvCharging = "block-battery-discharge-while-ev-charging",
|
|
47
47
|
/** Whether the energy manager may steer the heat pump. */
|
|
48
48
|
HeatpumpControl = "heatpump-control",
|
|
49
49
|
/** Whether the energy manager may steer the heating rod. Gates {@link HeatingRodMode}. */
|
|
@@ -144,27 +144,28 @@ export interface EnergyManagerSettingValues {
|
|
|
144
144
|
*/
|
|
145
145
|
batteryDischargeWhileChargingWh?: number | null;
|
|
146
146
|
/**
|
|
147
|
-
* Whether the house battery is
|
|
148
|
-
*
|
|
147
|
+
* Whether the house battery is forbidden from discharging into a vehicle
|
|
148
|
+
* while it charges — a hard block, regardless of any budget.
|
|
149
149
|
*
|
|
150
|
-
*
|
|
151
|
-
* different
|
|
152
|
-
*
|
|
153
|
-
*
|
|
150
|
+
* **This overrides {@link batteryDischargeWhileChargingWh}.** The two govern
|
|
151
|
+
* the same flow at different strengths: the Wh field is a budget the energy
|
|
152
|
+
* manager may spend, this one closes the tap. When it is `true`, any
|
|
153
|
+
* allowance is ignored rather than merged, so a stored budget can never take
|
|
154
|
+
* effect. `validateEnergyManagerSettingsState()` warns when both are set
|
|
155
|
+
* that way.
|
|
154
156
|
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
* in parallel.
|
|
157
|
+
* Why both exist: the budget answers "how much", this answers "at all". A
|
|
158
|
+
* user who wants the battery kept for the house says so once here, and it
|
|
159
|
+
* keeps holding no matter what number is left over in the allowance field.
|
|
159
160
|
*
|
|
160
|
-
* Only meaningful while {@link batteryControl} is `true
|
|
161
|
-
*
|
|
162
|
-
* everything else it simply never applies.
|
|
161
|
+
* Only meaningful while {@link batteryControl} is `true` — an energy manager
|
|
162
|
+
* that may not steer the battery cannot hold it back either.
|
|
163
163
|
*
|
|
164
164
|
* As with every field here, `undefined` is not `false`: it means unsupported
|
|
165
|
-
* or never chosen
|
|
165
|
+
* or never chosen, while `false` is the user deciding the battery *may*
|
|
166
|
+
* contribute.
|
|
166
167
|
*/
|
|
167
|
-
|
|
168
|
+
blockBatteryDischargeWhileEvCharging?: boolean;
|
|
168
169
|
/**
|
|
169
170
|
* Whether the energy manager may steer the heat pump.
|
|
170
171
|
*
|
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.198';
|
|
13
13
|
/**
|
|
14
14
|
* Gets the current SDK version.
|
|
15
15
|
* @returns The semantic version string of the SDK
|
package/dist/cjs/version.d.cts
CHANGED
package/dist/implementations/energy-manager-settings/energy-manager-settings-validators.d.ts
CHANGED
|
@@ -59,6 +59,9 @@ export interface EnergyManagerSettingsValidationResult {
|
|
|
59
59
|
* - `batteryDischargeWhileChargingWh` is a finite non-negative number or `null`
|
|
60
60
|
* (**error**), and is not a negligible positive figure (**warning** — catches
|
|
61
61
|
* a kWh value in a Wh field).
|
|
62
|
+
* - `blockBatteryDischargeWhileEvCharging` does not sit alongside a positive
|
|
63
|
+
* `batteryDischargeWhileChargingWh` budget (**warning** — the block overrides
|
|
64
|
+
* the budget, so it could never be spent).
|
|
62
65
|
* - A value stored for an unsupported setting (**warning** — the energy manager
|
|
63
66
|
* will ignore it).
|
|
64
67
|
* - A value stored while its gate does not hold (**warning** — it can never take
|
|
@@ -112,6 +112,9 @@ function gateValue(values, setting) {
|
|
|
112
112
|
* - `batteryDischargeWhileChargingWh` is a finite non-negative number or `null`
|
|
113
113
|
* (**error**), and is not a negligible positive figure (**warning** — catches
|
|
114
114
|
* a kWh value in a Wh field).
|
|
115
|
+
* - `blockBatteryDischargeWhileEvCharging` does not sit alongside a positive
|
|
116
|
+
* `batteryDischargeWhileChargingWh` budget (**warning** — the block overrides
|
|
117
|
+
* the budget, so it could never be spent).
|
|
115
118
|
* - A value stored for an unsupported setting (**warning** — the energy manager
|
|
116
119
|
* will ignore it).
|
|
117
120
|
* - A value stored while its gate does not hold (**warning** — it can never take
|
|
@@ -154,7 +157,7 @@ export function validateEnergyManagerSettingsState(state) {
|
|
|
154
157
|
const values = state.values ?? {};
|
|
155
158
|
// ── value formats ──────────────────────────────────────────────────────
|
|
156
159
|
for (const key of ['batteryControl', 'batteryChargeFromGrid',
|
|
157
|
-
'
|
|
160
|
+
'blockBatteryDischargeWhileEvCharging', 'heatpumpControl',
|
|
158
161
|
'heatingRodControl', 'chargerControl']) {
|
|
159
162
|
if (values[key] !== undefined && typeof values[key] !== 'boolean') {
|
|
160
163
|
errors.push(`\`${key}\` must be a boolean when set.`);
|
|
@@ -197,6 +200,13 @@ export function validateEnergyManagerSettingsState(state) {
|
|
|
197
200
|
'any house battery — this field is in watt-hours, not kilowatt-hours.');
|
|
198
201
|
}
|
|
199
202
|
}
|
|
203
|
+
if (values.blockBatteryDischargeWhileEvCharging === true
|
|
204
|
+
&& typeof values.batteryDischargeWhileChargingWh === 'number'
|
|
205
|
+
&& values.batteryDischargeWhileChargingWh > 0) {
|
|
206
|
+
warnings.push('`blockBatteryDischargeWhileEvCharging` is true, which closes the tap entirely, so the ' +
|
|
207
|
+
`\`batteryDischargeWhileChargingWh\` budget of ${values.batteryDischargeWhileChargingWh} Wh ` +
|
|
208
|
+
'can never be spent. Clear one of the two.');
|
|
209
|
+
}
|
|
200
210
|
if (values.costOptimizedTargetTime !== undefined) {
|
|
201
211
|
if (typeof values.costOptimizedTargetTime !== 'string'
|
|
202
212
|
|| !TIME_RE.test(values.costOptimizedTargetTime)) {
|
|
@@ -42,8 +42,8 @@ export declare enum EnergyManagerSettingEnum {
|
|
|
42
42
|
BatteryChargeFromGrid = "battery-charge-from-grid",
|
|
43
43
|
/** How much energy the battery may discharge into a charging vehicle, in Wh. Unset/`null` disables it. */
|
|
44
44
|
BatteryDischargeWhileChargingWh = "battery-discharge-while-charging-wh",
|
|
45
|
-
/**
|
|
46
|
-
|
|
45
|
+
/** Hard block on battery discharge into a charging vehicle. Overrides any Wh allowance. */
|
|
46
|
+
BlockBatteryDischargeWhileEvCharging = "block-battery-discharge-while-ev-charging",
|
|
47
47
|
/** Whether the energy manager may steer the heat pump. */
|
|
48
48
|
HeatpumpControl = "heatpump-control",
|
|
49
49
|
/** Whether the energy manager may steer the heating rod. Gates {@link HeatingRodMode}. */
|
|
@@ -144,27 +144,28 @@ export interface EnergyManagerSettingValues {
|
|
|
144
144
|
*/
|
|
145
145
|
batteryDischargeWhileChargingWh?: number | null;
|
|
146
146
|
/**
|
|
147
|
-
* Whether the house battery is
|
|
148
|
-
*
|
|
147
|
+
* Whether the house battery is forbidden from discharging into a vehicle
|
|
148
|
+
* while it charges — a hard block, regardless of any budget.
|
|
149
149
|
*
|
|
150
|
-
*
|
|
151
|
-
* different
|
|
152
|
-
*
|
|
153
|
-
*
|
|
150
|
+
* **This overrides {@link batteryDischargeWhileChargingWh}.** The two govern
|
|
151
|
+
* the same flow at different strengths: the Wh field is a budget the energy
|
|
152
|
+
* manager may spend, this one closes the tap. When it is `true`, any
|
|
153
|
+
* allowance is ignored rather than merged, so a stored budget can never take
|
|
154
|
+
* effect. `validateEnergyManagerSettingsState()` warns when both are set
|
|
155
|
+
* that way.
|
|
154
156
|
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
* in parallel.
|
|
157
|
+
* Why both exist: the budget answers "how much", this answers "at all". A
|
|
158
|
+
* user who wants the battery kept for the house says so once here, and it
|
|
159
|
+
* keeps holding no matter what number is left over in the allowance field.
|
|
159
160
|
*
|
|
160
|
-
* Only meaningful while {@link batteryControl} is `true
|
|
161
|
-
*
|
|
162
|
-
* everything else it simply never applies.
|
|
161
|
+
* Only meaningful while {@link batteryControl} is `true` — an energy manager
|
|
162
|
+
* that may not steer the battery cannot hold it back either.
|
|
163
163
|
*
|
|
164
164
|
* As with every field here, `undefined` is not `false`: it means unsupported
|
|
165
|
-
* or never chosen
|
|
165
|
+
* or never chosen, while `false` is the user deciding the battery *may*
|
|
166
|
+
* contribute.
|
|
166
167
|
*/
|
|
167
|
-
|
|
168
|
+
blockBatteryDischargeWhileEvCharging?: boolean;
|
|
168
169
|
/**
|
|
169
170
|
* Whether the energy manager may steer the heat pump.
|
|
170
171
|
*
|
|
@@ -43,8 +43,8 @@ export var EnergyManagerSettingEnum;
|
|
|
43
43
|
EnergyManagerSettingEnum["BatteryChargeFromGrid"] = "battery-charge-from-grid";
|
|
44
44
|
/** How much energy the battery may discharge into a charging vehicle, in Wh. Unset/`null` disables it. */
|
|
45
45
|
EnergyManagerSettingEnum["BatteryDischargeWhileChargingWh"] = "battery-discharge-while-charging-wh";
|
|
46
|
-
/**
|
|
47
|
-
EnergyManagerSettingEnum["
|
|
46
|
+
/** Hard block on battery discharge into a charging vehicle. Overrides any Wh allowance. */
|
|
47
|
+
EnergyManagerSettingEnum["BlockBatteryDischargeWhileEvCharging"] = "block-battery-discharge-while-ev-charging";
|
|
48
48
|
// ── Heat pump ──────────────────────────────────────────────────────────
|
|
49
49
|
/** Whether the energy manager may steer the heat pump. */
|
|
50
50
|
EnergyManagerSettingEnum["HeatpumpControl"] = "heatpump-control";
|
|
@@ -132,7 +132,7 @@ export const ENERGY_MANAGER_SETTING_DEPENDENCIES = {
|
|
|
132
132
|
requires: EnergyManagerSettingEnum.BatteryControl,
|
|
133
133
|
equals: true,
|
|
134
134
|
},
|
|
135
|
-
[EnergyManagerSettingEnum.
|
|
135
|
+
[EnergyManagerSettingEnum.BlockBatteryDischargeWhileEvCharging]: {
|
|
136
136
|
requires: EnergyManagerSettingEnum.BatteryControl,
|
|
137
137
|
equals: true,
|
|
138
138
|
},
|
|
@@ -165,7 +165,7 @@ export const ENERGY_MANAGER_SETTING_VALUE_KEYS = {
|
|
|
165
165
|
[EnergyManagerSettingEnum.BatteryChargingMode]: ['batteryChargingMode'],
|
|
166
166
|
[EnergyManagerSettingEnum.BatteryChargeFromGrid]: ['batteryChargeFromGrid'],
|
|
167
167
|
[EnergyManagerSettingEnum.BatteryDischargeWhileChargingWh]: ['batteryDischargeWhileChargingWh'],
|
|
168
|
-
[EnergyManagerSettingEnum.
|
|
168
|
+
[EnergyManagerSettingEnum.BlockBatteryDischargeWhileEvCharging]: ['blockBatteryDischargeWhileEvCharging'],
|
|
169
169
|
[EnergyManagerSettingEnum.HeatpumpControl]: ['heatpumpControl'],
|
|
170
170
|
[EnergyManagerSettingEnum.HeatingRodControl]: ['heatingRodControl'],
|
|
171
171
|
[EnergyManagerSettingEnum.HeatingRodMode]: ['heatingRodMode'],
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED