node-red-contrib-s2 0.2.4 → 0.3.1
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 +5 -7
- package/dist/nodes/s2-ombc/index.d.ts +6 -6
- package/dist/nodes/s2-ombc/index.html +3 -3
- package/dist/nodes/s2-ombc/index.js +32 -6
- package/dist/nodes/s2-ombc/index.js.map +1 -1
- package/dist/nodes/s2-ombc-config/index.html +163 -22
- package/dist/nodes/s2-pebc/index.d.ts +5 -6
- package/dist/nodes/s2-pebc/index.html +2 -2
- package/dist/nodes/s2-pebc/index.js +18 -5
- package/dist/nodes/s2-pebc/index.js.map +1 -1
- package/dist/nodes/s2-rm/index.d.ts +2 -7
- package/dist/nodes/s2-rm/index.html +6 -16
- package/dist/nodes/s2-rm/index.js +9 -32
- package/dist/nodes/s2-rm/index.js.map +1 -1
- package/dist/nodes/s2-rm-config/index.html +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ S2 is a European standard for demand-side energy flexibility. It defines how a C
|
|
|
33
33
|
- Configurable RM roles (Consumer, Producer, Storage)
|
|
34
34
|
- Context variable templates in serial number (e.g. `{{global.vrmId}}`)
|
|
35
35
|
|
|
36
|
-
Other S2 control types (FRBC, DDBC, PPBC) have no dedicated node yet - **s2-rm** forwards their instructions on its
|
|
36
|
+
Other S2 control types (FRBC, DDBC, PPBC) have no dedicated node yet - **s2-rm** forwards their instructions on its "from CEM" output, as raw S2 messages, for you to handle in your own flow.
|
|
37
37
|
|
|
38
38
|
## Installation
|
|
39
39
|
|
|
@@ -51,14 +51,12 @@ npm install node-red-contrib-s2
|
|
|
51
51
|
3. Wire an **s2-websocket** node to an **s2-rm** node:
|
|
52
52
|
- s2-websocket output 2 -> s2-rm input
|
|
53
53
|
- s2-rm output 1 -> s2-websocket input
|
|
54
|
-
4. s2-rm output 2 carries S2 messages from the CEM (e.g. SelectControlType, ReceptionStatus, RevokeObject).
|
|
55
|
-
5.
|
|
56
|
-
|
|
57
|
-
- s2-rm output 2 -> control-type node input (so it can observe `SelectControlType`/`RevokeObject`)
|
|
58
|
-
- s2-rm output 3 -> control-type node input (so it can resolve its instructions)
|
|
54
|
+
4. s2-rm output 2 carries all S2 messages from the CEM (e.g. SelectControlType, ReceptionStatus, RevokeObject) and instructions (e.g. `OMBC.Instruction`, `PEBC.Instruction`), as raw S2 messages with `msg.topic` set to the `message_type`.
|
|
55
|
+
5. For OMBC or PEBC, add the matching control-type node (**s2-ombc** + **s2-ombc-config**, or **s2-pebc** + **s2-pebc-config**) and wire it up:
|
|
56
|
+
- s2-rm output 2 -> control-type node input (so it can observe `SelectControlType`/`RevokeObject` and resolve its own instructions)
|
|
59
57
|
- control-type node's command output -> s2-rm input (routes `UpdateStatus`/`SystemDescription`/`PowerConstraints`/`InstructionStatus` commands back through s2-rm)
|
|
60
58
|
|
|
61
|
-
`s2-ombc` and `s2-pebc` can be wired in parallel downstream of the same `s2-rm` - each
|
|
59
|
+
`s2-ombc` and `s2-pebc` can be wired in parallel downstream of the same `s2-rm` - each ignores instructions meant for the other control type.
|
|
62
60
|
|
|
63
61
|
If you're sending PowerForecasts and using `s2-pebc`, route your Forecast command into `s2-pebc`'s input too (instead of directly into s2-rm) - see [Sending PowerForecasts](#sending-powerforecasts).
|
|
64
62
|
|
|
@@ -7,14 +7,13 @@ import { NodeRedApp } from '../../types/node-red';
|
|
|
7
7
|
* changes back to the CEM once told the hardware state is confirmed.
|
|
8
8
|
*
|
|
9
9
|
* Wiring:
|
|
10
|
-
* [s2-rm output 2 (from CEM)] -> [s2-ombc input] (
|
|
11
|
-
* [s2-rm output 3 (instructions)] -> [s2-ombc input] (to resolve OMBC instructions)
|
|
10
|
+
* [s2-rm output 2 (from CEM)] -> [s2-ombc input] (all CEM messages incl. instructions)
|
|
12
11
|
* [confirm-mode message] -> [s2-ombc input] (see Input below)
|
|
13
|
-
* [s2-ombc output 1] -> downstream flow (resolved
|
|
12
|
+
* [s2-ombc output 1] -> downstream flow (resolved OMBC instructions)
|
|
14
13
|
* [s2-ombc output 2] -> [s2-rm input] (SystemDescription / UpdateStatus commands)
|
|
15
14
|
*
|
|
16
15
|
* Input:
|
|
17
|
-
* S2 "from CEM" messages
|
|
16
|
+
* S2 "from CEM" messages, including instructions, forwarded from s2-rm as-is.
|
|
18
17
|
* ModeConfirmation (from your own flow, once hardware state is confirmed):
|
|
19
18
|
* { topic: 'ModeConfirmation', payload: { <mode ref> }, cemId?: <string> }
|
|
20
19
|
* where <mode ref> is exactly one of:
|
|
@@ -27,8 +26,9 @@ import { NodeRedApp } from '../../types/node-red';
|
|
|
27
26
|
* Legacy format (confirmedOperationModeId/Index/Label) is still accepted.
|
|
28
27
|
*
|
|
29
28
|
* Output port 1 - instructions:
|
|
30
|
-
* ModeInstruction: { topic: 'ModeInstruction', payload: { id, index, label, factor }, cemId, rawMessage }
|
|
31
|
-
*
|
|
29
|
+
* ModeInstruction: { topic: 'ModeInstruction', payload: { id, index, label, factor, power }, cemId, rawMessage }
|
|
30
|
+
* power: [L1, L2, L3] watts, derived from the mode's power_ranges and factor.
|
|
31
|
+
* Non-OMBC instructions: ignored silently.
|
|
32
32
|
* ModeRequest: { topic: 'ModeRequest', payload: null, cemId }
|
|
33
33
|
*
|
|
34
34
|
* Output port 2 - commands to s2-rm:
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
|
|
47
47
|
<script type="text/html" data-help-name="s2-ombc">
|
|
48
48
|
<p>Owns Operation Mode Based Control (OMBC) behavior: declares the OMBC system description to the CEM, resolves OMBC instructions, and confirms operation mode changes back to the CEM once told the hardware state is confirmed.</p>
|
|
49
|
-
<p>Wire this node's input to
|
|
49
|
+
<p>Wire this node's input to <b>s2-rm</b>'s "from CEM" output. Wire this node's second output back to <b>s2-rm</b>'s input.</p>
|
|
50
50
|
<h3>Input</h3>
|
|
51
51
|
<dl class="message-properties">
|
|
52
52
|
<dt>payload <span class="property-type">object</span></dt>
|
|
@@ -78,13 +78,13 @@
|
|
|
78
78
|
<dt>topic <span class="property-type">string</span></dt>
|
|
79
79
|
<dd><code>'ModeInstruction'</code> for a resolved OMBC instruction, or <code>'ModeRequest'</code> sent after a newly OMBC-selecting CEM has neither a persisted status nor a default available.</dd>
|
|
80
80
|
<dt>payload <span class="property-type">object</span></dt>
|
|
81
|
-
<dd>For <code>ModeInstruction</code>: <code>{ id, index, label, factor }</code> for the resolved mode. For <code>ModeRequest</code>: <code>null</code>.</dd>
|
|
81
|
+
<dd>For <code>ModeInstruction</code>: <code>{ id, index, label, factor, power }</code> for the resolved mode, where <code>power</code> is <code>[L1, L2, L3]</code> watts derived from the mode's power ranges and factor. For <code>ModeRequest</code>: <code>null</code>.</dd>
|
|
82
82
|
<dt>cemId <span class="property-type">string</span></dt>
|
|
83
83
|
<dd>The CEM this message applies to.</dd>
|
|
84
84
|
<dt>rawMessage <span class="property-type">object</span></dt>
|
|
85
85
|
<dd><code>ModeInstruction</code> only. The original instruction payload received from s2-rm.</dd>
|
|
86
86
|
</dl>
|
|
87
|
-
Non-OMBC instructions are
|
|
87
|
+
Non-OMBC instructions are ignored silently, so this node can be wired in parallel with s2-pebc downstream of the same s2-rm.
|
|
88
88
|
</li>
|
|
89
89
|
<li>To s2-rm
|
|
90
90
|
<dl class="message-properties">
|
|
@@ -96,24 +96,43 @@ module.exports = function (RED) {
|
|
|
96
96
|
powerRanges: (mode === null || mode === void 0 ? void 0 : mode.power_ranges) || []
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
|
+
// Calculate per-phase power [L1, L2, L3] from power ranges and factor.
|
|
100
|
+
function calculatePower(powerRanges, factor) {
|
|
101
|
+
const byCq = new Map();
|
|
102
|
+
for (const r of powerRanges)
|
|
103
|
+
byCq.set(r.commodity_quantity, r);
|
|
104
|
+
const sym = byCq.get('ELECTRIC.POWER.3_PHASE_SYMMETRIC');
|
|
105
|
+
if (sym) {
|
|
106
|
+
const total = sym.start_of_range + factor * (sym.end_of_range - sym.start_of_range);
|
|
107
|
+
const perPhase = Math.round(total / 3);
|
|
108
|
+
return [perPhase, perPhase, perPhase];
|
|
109
|
+
}
|
|
110
|
+
function phaseValue(cq) {
|
|
111
|
+
const r = byCq.get(cq);
|
|
112
|
+
if (!r)
|
|
113
|
+
return 0;
|
|
114
|
+
return Math.round(r.start_of_range + factor * (r.end_of_range - r.start_of_range));
|
|
115
|
+
}
|
|
116
|
+
return [phaseValue('ELECTRIC.POWER.L1'), phaseValue('ELECTRIC.POWER.L2'), phaseValue('ELECTRIC.POWER.L3')];
|
|
117
|
+
}
|
|
99
118
|
function modeLabelOrId(modeId) {
|
|
100
119
|
const modes = (systemDescription.operationModes || []);
|
|
101
120
|
const mode = modes.find(m => m.id === modeId);
|
|
102
121
|
return (mode === null || mode === void 0 ? void 0 : mode.diagnostic_label) || modeId;
|
|
103
122
|
}
|
|
104
123
|
function handleInstruction(msg) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
124
|
+
const payload = msg.payload;
|
|
125
|
+
const messageType = payload.message_type;
|
|
126
|
+
if (messageType !== messages_1.MessageType.OMBC_INSTRUCTION) {
|
|
108
127
|
return;
|
|
109
128
|
}
|
|
110
|
-
const
|
|
111
|
-
const resolved = resolveMode(rawInstr);
|
|
129
|
+
const resolved = resolveMode(payload);
|
|
112
130
|
if (resolved) {
|
|
131
|
+
const power = calculatePower(resolved.powerRanges, resolved.factor);
|
|
113
132
|
node.status({ fill: 'green', shape: 'dot', text: resolved.label });
|
|
114
133
|
node.send([{
|
|
115
134
|
topic: 'ModeInstruction',
|
|
116
|
-
payload: { id: resolved.id, index: resolved.index, label: resolved.label, factor: resolved.factor },
|
|
135
|
+
payload: { id: resolved.id, index: resolved.index, label: resolved.label, factor: resolved.factor, power },
|
|
117
136
|
cemId: msg.cemId,
|
|
118
137
|
rawMessage: msg.payload
|
|
119
138
|
}, null]);
|
|
@@ -263,6 +282,13 @@ module.exports = function (RED) {
|
|
|
263
282
|
return;
|
|
264
283
|
}
|
|
265
284
|
if ('controlType' in msg) {
|
|
285
|
+
// Legacy enriched instruction from s2-rm (pre-v0.3)
|
|
286
|
+
handleInstruction(msg);
|
|
287
|
+
done();
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
const messageType = payload.message_type;
|
|
291
|
+
if (messageType && messageType.startsWith('OMBC.')) {
|
|
266
292
|
handleInstruction(msg);
|
|
267
293
|
done();
|
|
268
294
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nodes/s2-ombc/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nodes/s2-ombc/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,19 +8,54 @@
|
|
|
8
8
|
})
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
// FNV-1a, used only to seed deriveTimerId's PRNG below - not a general hash utility.
|
|
12
|
+
function hashSeed (str) {
|
|
13
|
+
var h = 0x811c9dc5
|
|
14
|
+
for (var i = 0; i < str.length; i++) {
|
|
15
|
+
h ^= str.charCodeAt(i)
|
|
16
|
+
h = Math.imul(h, 0x01000193)
|
|
17
|
+
}
|
|
18
|
+
return h >>> 0
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// A per-mode minimum-duration timer needs a stable id, so unchanged config
|
|
22
|
+
// re-saves byte-identical - but s2-python validates every S2 id as UUID4
|
|
23
|
+
// and rejects any other format, so a custom string (e.g. 'min-duration:'
|
|
24
|
+
// + modeId) isn't an option. This derives an id in generateUuid()'s exact
|
|
25
|
+
// format (same version/variant nibble forcing), from a mulberry32 PRNG
|
|
26
|
+
// seeded from the mode's own id instead of Math.random() - deterministic
|
|
27
|
+
// per mode, but structurally indistinguishable from a real UUID4.
|
|
28
|
+
function deriveTimerId (modeId) {
|
|
29
|
+
var state = hashSeed(modeId)
|
|
30
|
+
function next () {
|
|
31
|
+
state |= 0
|
|
32
|
+
state = (state + 0x6D2B79F5) | 0
|
|
33
|
+
var t = Math.imul(state ^ (state >>> 15), 1 | state)
|
|
34
|
+
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t
|
|
35
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296
|
|
36
|
+
}
|
|
37
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
38
|
+
var r = next() * 16 | 0
|
|
39
|
+
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Every configured mode able to transition to every other configured mode.
|
|
44
|
+
// `modes` here is [{ id, timerId }] - timerId is the id of the mode's
|
|
45
|
+
// minimum-duration timer (started on entry, blocking on exit), or null.
|
|
46
|
+
function buildTransitions (modes) {
|
|
14
47
|
var transitions = []
|
|
15
|
-
for (var i = 0; i <
|
|
16
|
-
for (var j = 0; j <
|
|
48
|
+
for (var i = 0; i < modes.length; i++) {
|
|
49
|
+
for (var j = 0; j < modes.length; j++) {
|
|
17
50
|
if (i === j) continue
|
|
51
|
+
var from = modes[i]
|
|
52
|
+
var to = modes[j]
|
|
18
53
|
transitions.push({
|
|
19
54
|
id: generateUuid(),
|
|
20
|
-
from:
|
|
21
|
-
to:
|
|
22
|
-
start_timers: [],
|
|
23
|
-
blocking_timers: [],
|
|
55
|
+
from: from.id,
|
|
56
|
+
to: to.id,
|
|
57
|
+
start_timers: to.timerId ? [to.timerId] : [],
|
|
58
|
+
blocking_timers: from.timerId ? [from.timerId] : [],
|
|
24
59
|
abnormal_condition_only: false
|
|
25
60
|
})
|
|
26
61
|
}
|
|
@@ -51,10 +86,20 @@
|
|
|
51
86
|
abnormal_condition_only: !!m.abnormalConditionOnly
|
|
52
87
|
}
|
|
53
88
|
})
|
|
89
|
+
var timers = []
|
|
90
|
+
var modesWithTimerId = modes.map(function (m) {
|
|
91
|
+
var minDurationMs = (Number(m.minDurationMinutes) || 0) * 60000 + (Number(m.minDurationSeconds) || 0) * 1000
|
|
92
|
+
var timerId = null
|
|
93
|
+
if (minDurationMs > 0) {
|
|
94
|
+
timerId = deriveTimerId(m.id)
|
|
95
|
+
timers.push({ id: timerId, duration: minDurationMs })
|
|
96
|
+
}
|
|
97
|
+
return { id: m.id, timerId: timerId }
|
|
98
|
+
})
|
|
54
99
|
return {
|
|
55
100
|
operationModes: operationModes,
|
|
56
|
-
transitions: buildTransitions(
|
|
57
|
-
timers:
|
|
101
|
+
transitions: buildTransitions(modesWithTimerId),
|
|
102
|
+
timers: timers
|
|
58
103
|
}
|
|
59
104
|
}
|
|
60
105
|
|
|
@@ -77,6 +122,24 @@
|
|
|
77
122
|
return false
|
|
78
123
|
}
|
|
79
124
|
|
|
125
|
+
// Reference is [] (no timer) or a single string id - anything else (a
|
|
126
|
+
// bespoke multi-timer wiring) is only expressible in Advanced mode.
|
|
127
|
+
function isSingleOrEmptyTimerRef (arr) {
|
|
128
|
+
return Array.isArray(arr) && arr.length <= 1 && (arr.length === 0 || typeof arr[0] === 'string')
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Records modeId -> timerId|null the first time it's seen, then requires
|
|
132
|
+
// every later reference for that same modeId to agree - the per-mode
|
|
133
|
+
// minimum-duration timer must be wired identically into every transition
|
|
134
|
+
// that shares that mode's inbound (or outbound) side.
|
|
135
|
+
function consistentTimerRef (map, modeId, timerIdOrNull) {
|
|
136
|
+
if (!(modeId in map)) {
|
|
137
|
+
map[modeId] = timerIdOrNull
|
|
138
|
+
return true
|
|
139
|
+
}
|
|
140
|
+
return map[modeId] === timerIdOrNull
|
|
141
|
+
}
|
|
142
|
+
|
|
80
143
|
// Strict structural check: true only when systemDescription is exactly what
|
|
81
144
|
// friendly mode itself would produce, so switching modes never silently
|
|
82
145
|
// narrows something Advanced mode expresses that friendly mode can't.
|
|
@@ -96,16 +159,25 @@
|
|
|
96
159
|
var transitions = sysDesc.transitions
|
|
97
160
|
if (!Array.isArray(transitions) || transitions.length !== modeIds.length * (modeIds.length - 1)) return false
|
|
98
161
|
|
|
162
|
+
// Per mode: the single timer id (if any) that every transition into it
|
|
163
|
+
// shares in start_timers, and that every transition out of it shares in
|
|
164
|
+
// blocking_timers - populated as transitions are walked below.
|
|
165
|
+
var inboundTimerId = {}
|
|
166
|
+
var outboundTimerId = {}
|
|
99
167
|
var seenPairs = {}
|
|
100
168
|
for (var j = 0; j < transitions.length; j++) {
|
|
101
169
|
var t = transitions[j]
|
|
102
170
|
if (!t || modeIds.indexOf(t.from) === -1 || modeIds.indexOf(t.to) === -1 || t.from === t.to) return false
|
|
103
|
-
if (!
|
|
104
|
-
if (!Array.isArray(t.blocking_timers) || t.blocking_timers.length !== 0) return false
|
|
171
|
+
if (!isSingleOrEmptyTimerRef(t.start_timers) || !isSingleOrEmptyTimerRef(t.blocking_timers)) return false
|
|
105
172
|
if (t.abnormal_condition_only) return false
|
|
106
173
|
var key = t.from + '>' + t.to
|
|
107
174
|
if (seenPairs[key]) return false
|
|
108
175
|
seenPairs[key] = true
|
|
176
|
+
|
|
177
|
+
var startId = t.start_timers.length ? t.start_timers[0] : null
|
|
178
|
+
if (!consistentTimerRef(inboundTimerId, t.to, startId)) return false
|
|
179
|
+
var blockId = t.blocking_timers.length ? t.blocking_timers[0] : null
|
|
180
|
+
if (!consistentTimerRef(outboundTimerId, t.from, blockId)) return false
|
|
109
181
|
}
|
|
110
182
|
for (var a = 0; a < modeIds.length; a++) {
|
|
111
183
|
for (var b = 0; b < modeIds.length; b++) {
|
|
@@ -114,13 +186,61 @@
|
|
|
114
186
|
}
|
|
115
187
|
}
|
|
116
188
|
|
|
189
|
+
// A mode's minimum-duration timer must be wired symmetrically: the same
|
|
190
|
+
// id started on every transition in and blocked on every transition out.
|
|
191
|
+
var timerIdByMode = {}
|
|
192
|
+
for (var c = 0; c < modeIds.length; c++) {
|
|
193
|
+
var modeId = modeIds[c]
|
|
194
|
+
var inb = inboundTimerId[modeId] || null
|
|
195
|
+
var outb = outboundTimerId[modeId] || null
|
|
196
|
+
if (inb !== outb) return false
|
|
197
|
+
if (inb) timerIdByMode[modeId] = inb
|
|
198
|
+
}
|
|
199
|
+
|
|
117
200
|
var timers = sysDesc.timers
|
|
118
|
-
|
|
201
|
+
if (!Array.isArray(timers)) return false
|
|
202
|
+
var expectedTimerIds = {}
|
|
203
|
+
for (var modeKey in timerIdByMode) expectedTimerIds[timerIdByMode[modeKey]] = true
|
|
204
|
+
var expectedCount = Object.keys(expectedTimerIds).length
|
|
205
|
+
if (timers.length !== expectedCount) return false
|
|
206
|
+
|
|
207
|
+
var seenTimerIds = {}
|
|
208
|
+
for (var k = 0; k < timers.length; k++) {
|
|
209
|
+
var timer = timers[k]
|
|
210
|
+
if (!timer || typeof timer.id !== 'string' || !timer.id) return false
|
|
211
|
+
if (seenTimerIds[timer.id] || !expectedTimerIds[timer.id]) return false
|
|
212
|
+
seenTimerIds[timer.id] = true
|
|
213
|
+
// Whole seconds only - friendly mode's UI offers minutes/seconds, so a
|
|
214
|
+
// sub-second remainder can't have come from friendly mode and can't be
|
|
215
|
+
// represented without silently rounding it away.
|
|
216
|
+
if (typeof timer.duration !== 'number' || timer.duration <= 0 || timer.duration % 1000 !== 0) return false
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return true
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// modeId -> configured minimum-duration timer's duration (ms), read off
|
|
223
|
+
// the `to` side of each transition's start_timers (only called after
|
|
224
|
+
// isFriendlyRepresentable has confirmed inbound/outbound wiring agree).
|
|
225
|
+
function modeTimerDurations (sysDesc) {
|
|
226
|
+
var durationById = {}
|
|
227
|
+
;(sysDesc.timers || []).forEach(function (timer) { durationById[timer.id] = timer.duration })
|
|
228
|
+
var result = {}
|
|
229
|
+
;(sysDesc.transitions || []).forEach(function (t) {
|
|
230
|
+
if (t.start_timers && t.start_timers.length) {
|
|
231
|
+
result[t.to] = durationById[t.start_timers[0]]
|
|
232
|
+
}
|
|
233
|
+
})
|
|
234
|
+
return result
|
|
119
235
|
}
|
|
120
236
|
|
|
121
237
|
// Only called after isFriendlyRepresentable has passed.
|
|
122
238
|
function systemDescriptionToFriendlyState (sysDesc) {
|
|
239
|
+
var durationByMode = modeTimerDurations(sysDesc)
|
|
123
240
|
return sysDesc.operationModes.map(function (m) {
|
|
241
|
+
var duration = durationByMode[m.id] || 0
|
|
242
|
+
var minDurationMinutes = Math.floor(duration / 60000)
|
|
243
|
+
var minDurationSeconds = Math.floor((duration % 60000) / 1000)
|
|
124
244
|
var ranges = m.power_ranges
|
|
125
245
|
if (ranges.length === 1) {
|
|
126
246
|
return {
|
|
@@ -132,7 +252,9 @@
|
|
|
132
252
|
valueSymmetric: ranges[0].start_of_range,
|
|
133
253
|
valueL1: 0,
|
|
134
254
|
valueL2: 0,
|
|
135
|
-
valueL3: 0
|
|
255
|
+
valueL3: 0,
|
|
256
|
+
minDurationMinutes: minDurationMinutes,
|
|
257
|
+
minDurationSeconds: minDurationSeconds
|
|
136
258
|
}
|
|
137
259
|
}
|
|
138
260
|
var byCq = {}
|
|
@@ -146,7 +268,9 @@
|
|
|
146
268
|
valueSymmetric: 0,
|
|
147
269
|
valueL1: byCq['ELECTRIC.POWER.L1'],
|
|
148
270
|
valueL2: byCq['ELECTRIC.POWER.L2'],
|
|
149
|
-
valueL3: byCq['ELECTRIC.POWER.L3']
|
|
271
|
+
valueL3: byCq['ELECTRIC.POWER.L3'],
|
|
272
|
+
minDurationMinutes: minDurationMinutes,
|
|
273
|
+
minDurationSeconds: minDurationSeconds
|
|
150
274
|
}
|
|
151
275
|
})
|
|
152
276
|
}
|
|
@@ -237,6 +361,18 @@
|
|
|
237
361
|
symCheckbox.on('change', updateSymVisibility)
|
|
238
362
|
updateSymVisibility()
|
|
239
363
|
|
|
364
|
+
var row4 = $('<div/>', { class: 's2-ombc-mode-row' }).appendTo(container)
|
|
365
|
+
row4.append('Minimum time in this mode: ')
|
|
366
|
+
var minDurWrap = $('<span/>', { class: 's2-ombc-mode-value-wrap' }).appendTo(row4)
|
|
367
|
+
$('<input/>', { type: 'number', class: 's2-ombc-mode-min-duration-minutes', min: '0', step: '1' })
|
|
368
|
+
.val(opt.minDurationMinutes || 0)
|
|
369
|
+
.appendTo(minDurWrap)
|
|
370
|
+
minDurWrap.append($('<span/>', { class: 's2-unit-label' }).text('min'))
|
|
371
|
+
$('<input/>', { type: 'number', class: 's2-ombc-mode-min-duration-seconds', min: '0', max: '59', step: '1' })
|
|
372
|
+
.val(opt.minDurationSeconds || 0)
|
|
373
|
+
.appendTo(minDurWrap)
|
|
374
|
+
minDurWrap.append($('<span/>', { class: 's2-unit-label' }).text('sec'))
|
|
375
|
+
|
|
240
376
|
if (opt.protected) {
|
|
241
377
|
$('<div/>', { class: 's2-ombc-mode-protected-note' }).text('Always present - remove via Advanced mode if not needed.').appendTo(container)
|
|
242
378
|
}
|
|
@@ -269,7 +405,9 @@
|
|
|
269
405
|
valueSymmetric: Number($item.find('.s2-ombc-mode-value-sym').val()) || 0,
|
|
270
406
|
valueL1: Number($item.find('.s2-ombc-mode-value-l1').val()) || 0,
|
|
271
407
|
valueL2: Number($item.find('.s2-ombc-mode-value-l2').val()) || 0,
|
|
272
|
-
valueL3: Number($item.find('.s2-ombc-mode-value-l3').val()) || 0
|
|
408
|
+
valueL3: Number($item.find('.s2-ombc-mode-value-l3').val()) || 0,
|
|
409
|
+
minDurationMinutes: Number($item.find('.s2-ombc-mode-min-duration-minutes').val()) || 0,
|
|
410
|
+
minDurationSeconds: Number($item.find('.s2-ombc-mode-min-duration-seconds').val()) || 0
|
|
273
411
|
})
|
|
274
412
|
})
|
|
275
413
|
return modes
|
|
@@ -317,7 +455,7 @@
|
|
|
317
455
|
return
|
|
318
456
|
}
|
|
319
457
|
if (!isFriendlyRepresentable(parsed)) {
|
|
320
|
-
showAdvancedSection('This system description uses something only Advanced mode supports (a genuine power range, a non-standard commodity, a blocked transition, or a timer) - continue editing it here.')
|
|
458
|
+
showAdvancedSection('This system description uses something only Advanced mode supports (a genuine power range, a non-standard commodity, a blocked transition, or a timer not matching the per-mode minimum-duration pattern) - continue editing it here.')
|
|
321
459
|
return
|
|
322
460
|
}
|
|
323
461
|
$(listSel).editableList('empty')
|
|
@@ -365,7 +503,9 @@
|
|
|
365
503
|
valueSymmetric: Number($item.find('.s2-ombc-mode-value-sym').val()) || 0,
|
|
366
504
|
valueL1: Number($item.find('.s2-ombc-mode-value-l1').val()) || 0,
|
|
367
505
|
valueL2: Number($item.find('.s2-ombc-mode-value-l2').val()) || 0,
|
|
368
|
-
valueL3: Number($item.find('.s2-ombc-mode-value-l3').val()) || 0
|
|
506
|
+
valueL3: Number($item.find('.s2-ombc-mode-value-l3').val()) || 0,
|
|
507
|
+
minDurationMinutes: Number($item.find('.s2-ombc-mode-min-duration-minutes').val()) || 0,
|
|
508
|
+
minDurationSeconds: Number($item.find('.s2-ombc-mode-min-duration-seconds').val()) || 0
|
|
369
509
|
})
|
|
370
510
|
})
|
|
371
511
|
var sysDesc = friendlyStateToSystemDescription(modes)
|
|
@@ -385,7 +525,7 @@
|
|
|
385
525
|
</div>
|
|
386
526
|
|
|
387
527
|
<div class="form-row">
|
|
388
|
-
<label class="s2-section-label"><i class="fa fa-list"></i> System Description<i class="fa fa-info-circle tooltip-icon" data-tooltip="OMBC.SystemDescription: the operation modes this device can be in, and how it can transition between them. Sent to the CEM by s2-ombc once OMBC is the selected control type. Friendly mode covers the common case (fixed-power modes, every mode able to transition to every other); switch to Advanced for anything else - a genuine power range, a non-standard commodity, a blocked transition, or a timer."></i></label>
|
|
528
|
+
<label class="s2-section-label"><i class="fa fa-list"></i> System Description<i class="fa fa-info-circle tooltip-icon" data-tooltip="OMBC.SystemDescription: the operation modes this device can be in, and how it can transition between them. Sent to the CEM by s2-ombc once OMBC is the selected control type. Friendly mode covers the common case (fixed-power modes, every mode able to transition to every other, an optional per-mode minimum-duration timer); switch to Advanced for anything else - a genuine power range, a non-standard commodity, a blocked transition, or a bespoke timer."></i></label>
|
|
389
529
|
</div>
|
|
390
530
|
|
|
391
531
|
<div class="form-row s2-full-row">
|
|
@@ -413,6 +553,7 @@
|
|
|
413
553
|
<h3>Friendly mode</h3>
|
|
414
554
|
<p>Covers the common case: a list of operation modes, each with a diagnostic label, an optional "abnormal condition only" flag, and a fixed power level (the same value on all three phases, or a separate value per phase). Every mode is assumed able to transition to every other mode - there is no separate step to define transitions.</p>
|
|
415
555
|
<p>A "Standby/off" mode is always present and can't be removed from the list itself (use Advanced mode if you genuinely don't want one). Add further modes with the "add" button below the list.</p>
|
|
556
|
+
<p>Each mode also has an optional "Minimum time in this mode" (minutes + seconds). When set, entering that mode starts an S2 timer that must elapse before the CEM may instruct a transition away from it again - useful for equipment (e.g. a compressor or boiler element) that must not be cycled faster than every few minutes. Leave both fields at 0 for no minimum (the default).</p>
|
|
416
557
|
|
|
417
558
|
<h3>Advanced (JSON) mode</h3>
|
|
418
559
|
<p>The raw <code>OMBC.SystemDescription</code> JSON (<code>operationModes</code>, <code>transitions</code>, <code>timers</code>), for anything friendly mode doesn't cover:</p>
|
|
@@ -420,9 +561,9 @@
|
|
|
420
561
|
<li>a genuine power range (a mode whose lower and upper bound differ, rather than one fixed value)</li>
|
|
421
562
|
<li>a commodity quantity other than 3-phase-symmetric or per-phase L1/L2/L3</li>
|
|
422
563
|
<li>blocking a specific transition, rather than every mode being able to reach every other mode</li>
|
|
423
|
-
<li>a timer (
|
|
564
|
+
<li>a bespoke timer - anything other than one per-mode minimum-duration timer wired symmetrically into every transition in/out of that mode (which friendly mode's own "Minimum time in this mode" field already covers)</li>
|
|
424
565
|
</ul>
|
|
425
|
-
<p>Switching from Friendly to Advanced converts the current modes to JSON. Switching back only works if the JSON still matches what friendly mode can represent (fixed-power modes, every mode transitioning to every other,
|
|
566
|
+
<p>Switching from Friendly to Advanced converts the current modes to JSON. Switching back only works if the JSON still matches what friendly mode can represent (fixed-power modes, every mode transitioning to every other, and any timers matching the per-mode minimum-duration pattern above) - otherwise the editor stays in Advanced mode and explains why, rather than discarding anything.</p>
|
|
426
567
|
</script>
|
|
427
568
|
|
|
428
569
|
<link rel="stylesheet" href="resources/node-red-contrib-s2/s2-styles.css">
|
|
@@ -15,16 +15,15 @@ import { NodeRedApp } from '../../types/node-red';
|
|
|
15
15
|
* rating whenever actual voltage exceeds the 230V nominal used to derive the wattage.
|
|
16
16
|
*
|
|
17
17
|
* Wiring:
|
|
18
|
-
* [s2-rm output 2 (from CEM)]
|
|
19
|
-
* [
|
|
20
|
-
* [Forecast command source] -> [s2-pebc input] (optional - to cap the forecast to the accumulated schedule)
|
|
18
|
+
* [s2-rm output 2 (from CEM)] -> [s2-pebc input] (all CEM messages incl. instructions)
|
|
19
|
+
* [Forecast command source] -> [s2-pebc input] (optional - to cap the forecast to the accumulated schedule)
|
|
21
20
|
* [PowerMeasurement command source] -> [s2-pebc input] (optional - to resolve which side of an
|
|
22
21
|
* asymmetric bound currently applies; see output port 1)
|
|
23
|
-
* [s2-pebc output 1] -> downstream flow (active element dispatch
|
|
22
|
+
* [s2-pebc output 1] -> downstream flow (active element dispatch)
|
|
24
23
|
* [s2-pebc output 2] -> downstream flow (full accumulated schedule dump)
|
|
25
24
|
* [s2-pebc output 3] -> [s2-rm input] (PowerConstraints / InstructionStatus / Forecast commands)
|
|
26
25
|
*
|
|
27
|
-
* Output port 1 - active element
|
|
26
|
+
* Output port 1 - active element:
|
|
28
27
|
* Active element: { cemId, payload: { startTime, endTime, duration, lowerBound, upperBound, commodityQuantity, direction, limitW } }
|
|
29
28
|
* Released (no PEBC bound active - last instruction revoked, or its final element ended with
|
|
30
29
|
* nothing queued after it): { cemId, payload: { lowerBound: null, upperBound: null, commodityQuantity, direction, limitW: null } }
|
|
@@ -34,7 +33,7 @@ import { NodeRedApp } from '../../types/node-red';
|
|
|
34
33
|
* active element and its two bounds actually differ, output 1 is re-emitted with the updated
|
|
35
34
|
* values - this does not resend InstructionStatus on output 3, since the instruction itself
|
|
36
35
|
* hasn't changed, only which of its bounds is presently binding.
|
|
37
|
-
* Non-PEBC instructions:
|
|
36
|
+
* Non-PEBC instructions: ignored silently.
|
|
38
37
|
*
|
|
39
38
|
* Output port 2 - schedule:
|
|
40
39
|
* { cemId, payload: { commodityQuantity, elements: [{ startTime, endTime, durationSec, lowerBound, upperBound }] } }
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
|
|
47
47
|
<script type="text/html" data-help-name="s2-pebc">
|
|
48
48
|
<p>Owns Power Envelope Based Control (PEBC) behavior: accumulates power envelope schedules from PEBC instructions and dispatches the currently active bound to your flow as it becomes effective. Pushes a default PowerConstraints range on deploy, used until a runtime override is supplied. That same wattage is published to flow context as <code>pebcDefaultMaxPowerW</code> (<code>null</code> if unconfigured), so your own flow logic can derive a released-state limit from it instead of hardcoding one. For a named grid connection (not "Custom"), its fixed per-phase amp rating is also published as <code>pebcDefaultMaxAmpsPerPhase</code> - prefer this over dividing <code>pebcDefaultMaxPowerW</code> by a live voltage reading, which drifts below the configured rating whenever actual voltage exceeds the 230V nominal used to derive that wattage.</p>
|
|
49
|
-
<p>Wire this node's input to
|
|
49
|
+
<p>Wire this node's input to <b>s2-rm</b>'s "from CEM" output. Optionally also wire a <code>Forecast</code> command into this input instead of directly into s2-rm - it will be capped to the accumulated schedule before being forwarded. Optionally also wire your <code>PowerMeasurement</code> command into this input (in addition to wherever else it already goes) so the node can resolve which side of an asymmetric bound currently applies - see output 1. Wire this node's third output back to <b>s2-rm</b>'s input.</p>
|
|
50
50
|
<h3>Input</h3>
|
|
51
51
|
<dl class="message-properties">
|
|
52
52
|
<dt>payload <span class="property-type">object</span></dt>
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
</dl>
|
|
66
66
|
When no PEBC bound is active any more - the last instruction is revoked, or its final element ends with nothing queued after it - a released element is emitted instead, with <code>lowerBound</code> and <code>upperBound</code> both <code>null</code>. Treat that explicitly as "no PEBC-imposed limit right now", not as "no data yet".
|
|
67
67
|
<br>If you've wired in <code>PowerMeasurement</code>, this output is also re-emitted (with updated <code>direction</code>/<code>limitW</code>) whenever a measurement flips which side of an asymmetric bound applies mid-slot - without resending <code>InstructionStatus</code> on output 3, since the instruction itself hasn't changed.
|
|
68
|
-
<br>Non-PEBC instructions are
|
|
68
|
+
<br>Non-PEBC instructions are ignored silently, so this node can be wired in parallel with s2-ombc downstream of the same s2-rm.
|
|
69
69
|
</li>
|
|
70
70
|
<li>Schedule
|
|
71
71
|
<dl class="message-properties">
|
|
@@ -133,7 +133,11 @@ module.exports = function (RED) {
|
|
|
133
133
|
}
|
|
134
134
|
const next = sorted.find(s => s.element.startMs > now);
|
|
135
135
|
if (next) {
|
|
136
|
-
node.status({
|
|
136
|
+
node.status({
|
|
137
|
+
fill: 'blue',
|
|
138
|
+
shape: 'dot',
|
|
139
|
+
text: `${countLabel} · next ${formatBound(next.element.lowerBound)}..${formatBound(next.element.upperBound)} @ ${formatTime(next.element.startMs)}`
|
|
140
|
+
});
|
|
137
141
|
return;
|
|
138
142
|
}
|
|
139
143
|
node.status({ fill: 'yellow', shape: 'ring', text: `${countLabel} · all expired` });
|
|
@@ -257,13 +261,13 @@ module.exports = function (RED) {
|
|
|
257
261
|
updateNodeStatus();
|
|
258
262
|
}
|
|
259
263
|
function handleInstruction(msg) {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
264
|
+
const payload = msg.payload;
|
|
265
|
+
const messageType = payload.message_type;
|
|
266
|
+
if (messageType !== messages_1.MessageType.PEBC_INSTRUCTION) {
|
|
263
267
|
return;
|
|
264
268
|
}
|
|
265
269
|
const cemId = msg.cemId;
|
|
266
|
-
const rawMsg =
|
|
270
|
+
const rawMsg = payload;
|
|
267
271
|
const parsed = (0, schedule_1.parsePebcInstruction)(rawMsg, Date.now(), cemId);
|
|
268
272
|
if (!parsed || parsed.elements.length === 0)
|
|
269
273
|
return;
|
|
@@ -402,11 +406,20 @@ module.exports = function (RED) {
|
|
|
402
406
|
updateNodeStatus();
|
|
403
407
|
node.on('input', (msg, _send, done) => {
|
|
404
408
|
if ('controlType' in msg) {
|
|
409
|
+
// Legacy enriched instruction from s2-rm (pre-v0.3)
|
|
405
410
|
handleInstruction(msg);
|
|
406
411
|
done();
|
|
407
412
|
return;
|
|
408
413
|
}
|
|
409
414
|
const payload = msg.payload;
|
|
415
|
+
if (payload && typeof payload === 'object') {
|
|
416
|
+
const messageType = payload.message_type;
|
|
417
|
+
if (messageType && messageType.startsWith('PEBC.')) {
|
|
418
|
+
handleInstruction(msg);
|
|
419
|
+
done();
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
410
423
|
if (payload && typeof payload === 'object' && payload.message_type === messages_1.MessageType.REVOKE_OBJECT) {
|
|
411
424
|
handleRevoke(msg);
|
|
412
425
|
done();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nodes/s2-pebc/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nodes/s2-pebc/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,7 @@ import { NodeRedApp } from '../../types/node-red';
|
|
|
10
10
|
* Wiring:
|
|
11
11
|
* [transport port 2] -> [s2-rm input]
|
|
12
12
|
* [s2-rm port 1] -> [transport input]
|
|
13
|
-
* [s2-rm port 2] -> [control-type node input] (
|
|
14
|
-
* [s2-rm port 3] -> [control-type node input] (enriched instructions)
|
|
13
|
+
* [s2-rm port 2] -> [control-type node input] (all CEM messages incl. instructions)
|
|
15
14
|
* [control-type node command output] -> [s2-rm input] (UpdateStatus/SystemDescription/PowerConstraints/InstructionStatus)
|
|
16
15
|
*
|
|
17
16
|
* Input msg.payload from transport or a control-type node:
|
|
@@ -32,15 +31,11 @@ import { NodeRedApp } from '../../types/node-red';
|
|
|
32
31
|
* { payload: { 'S2/0/Active': 1 | 0 } } <- on every SelectControlType, reflects whether the
|
|
33
32
|
* selected control type is other than NO_SELECTION/NOT_CONTROLABLE
|
|
34
33
|
*
|
|
35
|
-
* Output port 2 - S2 messages
|
|
34
|
+
* Output port 2 - all S2 messages from CEM (incl. instructions), forwarded for downstream processing:
|
|
36
35
|
* { payload: <S2 message object>, cemId: <string>, topic: <message_type string> }
|
|
37
36
|
* Also emits lifecycle events (route via Switch node on msg.topic):
|
|
38
37
|
* { topic: 'Connected', cemId: <string> }
|
|
39
38
|
* { topic: 'Disconnected', cemId: <string>, reason: 'cem_initiated' | 'keepalive_timeout' }
|
|
40
|
-
*
|
|
41
|
-
* Output port 3 - S2 instructions from CEM, enriched with the resolved control type:
|
|
42
|
-
* { payload: <S2 instruction object>, cemId: <string>, controlType: <string>, <namespace key>: <S2 instruction object> }
|
|
43
|
-
* e.g. for an OMBC.Instruction: { payload: {...}, cemId, controlType: 'OPERATION_MODE_BASED_CONTROL', ombc: {...} }
|
|
44
39
|
*/
|
|
45
40
|
declare const _default: (RED: NodeRedApp) => void;
|
|
46
41
|
export = _default;
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
cem: { value: '', type: 's2-cem-config', required: false }
|
|
10
10
|
},
|
|
11
11
|
inputs: 1,
|
|
12
|
-
outputs:
|
|
12
|
+
outputs: 2,
|
|
13
13
|
icon: 's2-logo.svg',
|
|
14
|
-
outputLabels: ['to transport', 'from CEM'
|
|
14
|
+
outputLabels: ['to transport', 'from CEM'],
|
|
15
15
|
inputLabels: ['from transport / control-type nodes'],
|
|
16
16
|
label: function () {
|
|
17
17
|
return this.name || 'S2 Resource Manager'
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
<script type="text/html" data-help-name="s2-rm">
|
|
54
54
|
<p>Generic S2 protocol state machine for connected CEMs. Handles the S2 handshake, sends ResourceManagerDetails, and acknowledges/routes instructions - independent of any specific control type's semantics.</p>
|
|
55
55
|
<p>RM identity (resource ID, name, control types) is configured in the linked <b>s2-rm-config</b> node, shared with the transport node.</p>
|
|
56
|
-
<p>Control-type-specific behavior (OMBC mode resolution, PEBC schedule dispatch, etc.) lives in dedicated nodes - <b>s2-ombc</b>, <b>s2-pebc</b> - wired to this node's "from CEM"
|
|
56
|
+
<p>Control-type-specific behavior (OMBC mode resolution, PEBC schedule dispatch, etc.) lives in dedicated nodes - <b>s2-ombc</b>, <b>s2-pebc</b> - wired to this node's "from CEM" output, with their command output wired back to this node's input.</p>
|
|
57
57
|
<h3>Input</h3>
|
|
58
58
|
<dl class="message-properties">
|
|
59
59
|
<dt>payload <span class="property-type">object</span></dt>
|
|
@@ -70,21 +70,11 @@
|
|
|
70
70
|
<li>From CEM
|
|
71
71
|
<dl class="message-properties">
|
|
72
72
|
<dt>payload <span class="property-type">object</span></dt>
|
|
73
|
-
<dd>S2 messages
|
|
73
|
+
<dd>All S2 messages from the CEM, including instructions (SelectControlType, RevokeObject, OMBC.Instruction, PEBC.Instruction, etc.). Wire to control-type nodes.</dd>
|
|
74
74
|
<dt>cemId <span class="property-type">string</span></dt>
|
|
75
75
|
<dd>ID of the CEM that sent the message.</dd>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<li>Instructions
|
|
79
|
-
<dl class="message-properties">
|
|
80
|
-
<dt>payload <span class="property-type">object</span></dt>
|
|
81
|
-
<dd>Control instructions from the CEM (OMBC.Instruction, PEBC.Instruction, etc.).</dd>
|
|
82
|
-
<dt>cemId <span class="property-type">string</span></dt>
|
|
83
|
-
<dd>ID of the CEM that sent the instruction.</dd>
|
|
84
|
-
<dt>controlType <span class="property-type">string</span></dt>
|
|
85
|
-
<dd>Resolved S2 control type of the instruction, e.g. <code>OPERATION_MODE_BASED_CONTROL</code>.</dd>
|
|
86
|
-
<dt>ombc / pebc / frbc / ddbc / ppbc <span class="property-type">object</span></dt>
|
|
87
|
-
<dd>The instruction payload, namespaced under the key matching <code>controlType</code>, for easy Switch-node routing to the matching control-type node.</dd>
|
|
76
|
+
<dt>topic <span class="property-type">string</span></dt>
|
|
77
|
+
<dd>The S2 message_type, or a lifecycle event (<code>Connected</code>, <code>Disconnected</code>).</dd>
|
|
88
78
|
</dl>
|
|
89
79
|
</li>
|
|
90
80
|
</ol>
|
|
@@ -3,17 +3,6 @@ const session_1 = require("../../lib/s2/session");
|
|
|
3
3
|
const messages_1 = require("../../lib/s2/messages");
|
|
4
4
|
const PENDING_INSTRUCTIONS_KEY = 's2PendingInstructions';
|
|
5
5
|
const PRUNE_GRACE_MS = 3600000; // 1 hour grace before an instruction is pruned
|
|
6
|
-
// Maps an instruction's message_type to the control type it belongs to and the
|
|
7
|
-
// namespace key used to enrich the emitted message (msg.controlType / msg.<key>).
|
|
8
|
-
const INSTRUCTION_CONTROL_TYPE = {
|
|
9
|
-
[messages_1.MessageType.OMBC_INSTRUCTION]: { controlType: messages_1.ControlType.OMBC, key: 'ombc' },
|
|
10
|
-
[messages_1.MessageType.PEBC_INSTRUCTION]: { controlType: messages_1.ControlType.PEBC, key: 'pebc' },
|
|
11
|
-
[messages_1.MessageType.FRBC_INSTRUCTION]: { controlType: messages_1.ControlType.FRBC, key: 'frbc' },
|
|
12
|
-
[messages_1.MessageType.DDBC_INSTRUCTION]: { controlType: messages_1.ControlType.DDBC, key: 'ddbc' },
|
|
13
|
-
[messages_1.MessageType.PPBC_SCHEDULE_INSTRUCTION]: { controlType: messages_1.ControlType.PPBC, key: 'ppbc' },
|
|
14
|
-
[messages_1.MessageType.PPBC_START_INTERRUPTION_INSTRUCTION]: { controlType: messages_1.ControlType.PPBC, key: 'ppbc' },
|
|
15
|
-
[messages_1.MessageType.PPBC_END_INTERRUPTION_INSTRUCTION]: { controlType: messages_1.ControlType.PPBC, key: 'ppbc' }
|
|
16
|
-
};
|
|
17
6
|
module.exports = function (RED) {
|
|
18
7
|
function S2RmNode(config) {
|
|
19
8
|
RED.nodes.createNode(this, config);
|
|
@@ -97,15 +86,6 @@ module.exports = function (RED) {
|
|
|
97
86
|
}
|
|
98
87
|
const pollIntervalMs = rmConfigNode.instructionPollIntervalMs || 2000;
|
|
99
88
|
const isSkipInstructionStatus = rmConfigNode.skipInstructionStatus === true;
|
|
100
|
-
// Enrich an outgoing instruction message with msg.controlType and the
|
|
101
|
-
// namespaced instruction payload (e.g. msg.ombc, msg.pebc), per the
|
|
102
|
-
// s2-rm-protocol spec. Unknown/unmapped instruction types are left as-is.
|
|
103
|
-
function enrichInstruction(rawMsg) {
|
|
104
|
-
const mapping = INSTRUCTION_CONTROL_TYPE[rawMsg.message_type];
|
|
105
|
-
if (!mapping)
|
|
106
|
-
return {};
|
|
107
|
-
return { controlType: mapping.controlType, [mapping.key]: rawMsg };
|
|
108
|
-
}
|
|
109
89
|
// Poll at the configured interval: dispatch due non-PEBC instructions, prune expired entries.
|
|
110
90
|
// PEBC instructions bypass this queue entirely (see onInstruction) - their timing is owned by s2-pebc.
|
|
111
91
|
const pollTimer = setInterval(() => {
|
|
@@ -126,8 +106,7 @@ module.exports = function (RED) {
|
|
|
126
106
|
if (session && item.instructionId && !isSkipInstructionStatus) {
|
|
127
107
|
session.sendInstructionStatus(item.instructionId, messages_1.InstructionStatus.STARTED);
|
|
128
108
|
}
|
|
129
|
-
|
|
130
|
-
node.send([null, null, outMsg]);
|
|
109
|
+
node.send([null, { payload: item.instruction, cemId: item.cemId, topic: item.instruction.message_type }, null]);
|
|
131
110
|
changed = true;
|
|
132
111
|
continue;
|
|
133
112
|
}
|
|
@@ -166,7 +145,7 @@ module.exports = function (RED) {
|
|
|
166
145
|
if (m.message_type === messages_1.MessageType.PEBC_POWER_CONSTRAINTS && typeof m.id === 'string') {
|
|
167
146
|
node.context().flow.set('pebcConstraintsId', m.id);
|
|
168
147
|
}
|
|
169
|
-
node.send([{ payload: { s2Signal: 'Message', message: msg }, cemId }, null
|
|
148
|
+
node.send([{ payload: { s2Signal: 'Message', message: msg }, cemId }, null]);
|
|
170
149
|
},
|
|
171
150
|
onStateChange: (state) => {
|
|
172
151
|
if (state === session_1.State.CONNECTED) {
|
|
@@ -200,11 +179,11 @@ module.exports = function (RED) {
|
|
|
200
179
|
}
|
|
201
180
|
}
|
|
202
181
|
}
|
|
203
|
-
node.send([null, { payload: msg, cemId, topic: msg.message_type }
|
|
182
|
+
node.send([null, { payload: msg, cemId, topic: msg.message_type }]);
|
|
204
183
|
if (msg.message_type === messages_1.MessageType.SELECT_CONTROL_TYPE) {
|
|
205
184
|
const controlType = msg.control_type || messages_1.ControlType.NO_SELECTION;
|
|
206
185
|
const isActive = controlType !== messages_1.ControlType.NO_SELECTION && controlType !== messages_1.ControlType.NOT_CONTROLABLE;
|
|
207
|
-
node.send([{ payload: { 'S2/0/Active': isActive ? 1 : 0 } }, null
|
|
186
|
+
node.send([{ payload: { 'S2/0/Active': isActive ? 1 : 0 } }, null]);
|
|
208
187
|
if (rmDetails.providesPowerMeasurementTypes.length > 0) {
|
|
209
188
|
node.send([{
|
|
210
189
|
payload: {
|
|
@@ -212,7 +191,7 @@ module.exports = function (RED) {
|
|
|
212
191
|
commodityQuantities: rmDetails.providesPowerMeasurementTypes
|
|
213
192
|
},
|
|
214
193
|
cemId
|
|
215
|
-
}, null
|
|
194
|
+
}, null]);
|
|
216
195
|
}
|
|
217
196
|
}
|
|
218
197
|
},
|
|
@@ -225,8 +204,7 @@ module.exports = function (RED) {
|
|
|
225
204
|
if (msg.message_type === messages_1.MessageType.PEBC_INSTRUCTION) {
|
|
226
205
|
// PEBC schedule accumulation and per-element dispatch timing is owned by s2-pebc -
|
|
227
206
|
// deliver the raw instruction immediately so it can build/dispatch with its own timers.
|
|
228
|
-
|
|
229
|
-
node.send([null, null, outMsg]);
|
|
207
|
+
node.send([null, { payload: msg, cemId, topic: msg.message_type }]);
|
|
230
208
|
return;
|
|
231
209
|
}
|
|
232
210
|
const now = Date.now();
|
|
@@ -235,8 +213,7 @@ module.exports = function (RED) {
|
|
|
235
213
|
if (session && instructionId && !isSkipInstructionStatus) {
|
|
236
214
|
session.sendInstructionStatus(instructionId, messages_1.InstructionStatus.STARTED);
|
|
237
215
|
}
|
|
238
|
-
|
|
239
|
-
node.send([null, null, outMsg]);
|
|
216
|
+
node.send([null, { payload: msg, cemId, topic: msg.message_type }]);
|
|
240
217
|
}
|
|
241
218
|
else {
|
|
242
219
|
if (messageId) {
|
|
@@ -300,7 +277,7 @@ module.exports = function (RED) {
|
|
|
300
277
|
}
|
|
301
278
|
const session = createSession(cemId);
|
|
302
279
|
session.start();
|
|
303
|
-
node.send([null, { topic: 'Connected', cemId }
|
|
280
|
+
node.send([null, { topic: 'Connected', cemId }]);
|
|
304
281
|
node.log(`CEM ${cemId} connected (keepAliveInterval: ${keepAliveInterval}s)`);
|
|
305
282
|
updateStatus();
|
|
306
283
|
done();
|
|
@@ -366,7 +343,7 @@ module.exports = function (RED) {
|
|
|
366
343
|
case 'Disconnect': {
|
|
367
344
|
(_a = sessions.get(cemId)) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
368
345
|
sessions.delete(cemId);
|
|
369
|
-
node.send([null, { topic: 'Disconnected', cemId, reason: 'cem_initiated' }
|
|
346
|
+
node.send([null, { topic: 'Disconnected', cemId, reason: 'cem_initiated' }]);
|
|
370
347
|
node.log(`CEM ${cemId} disconnected`);
|
|
371
348
|
updateStatus();
|
|
372
349
|
done();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nodes/s2-rm/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nodes/s2-rm/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
|
|
211
211
|
<h3>Identity</h3>
|
|
212
212
|
<p><b>Resource ID</b> is a stable UUID identifying this RM to the CEM - it's also used to build the CEM connection URL on <b>s2-cem-config</b>. Auto-generated the first time the node is added; avoid changing it after deployment, since the CEM associates state with this id.</p>
|
|
213
|
-
<p><b>Roles</b> and <b>Control Types</b> are advertised capabilities - at least one of each must be selected. Control types beyond OMBC and PEBC (FRBC, DDBC, PPBC) have no dedicated node yet; their instructions are still forwarded on <b>s2-rm</b>'s
|
|
213
|
+
<p><b>Roles</b> and <b>Control Types</b> are advertised capabilities - at least one of each must be selected. Control types beyond OMBC and PEBC (FRBC, DDBC, PPBC) have no dedicated node yet; their instructions are still forwarded on <b>s2-rm</b>'s "from CEM" output for you to handle yourself.</p>
|
|
214
214
|
|
|
215
215
|
<h3>Power Meas. / Forecast</h3>
|
|
216
216
|
<p>Advertise whether this RM reports <code>PowerMeasurement</code> (as a single 3-phase-symmetric value, or per-phase L1/L2/L3) and/or <code>PowerForecast</code>. These affect what's advertised to the CEM and whether <b>s2-rm</b> emits its <code>PowerMeasurementStart</code> signal on output 1 - they don't gate whether a <code>PowerMeasurement</code>/<code>Forecast</code> command you send is actually forwarded, which happens regardless.</p>
|