node-red-contrib-ccu 4.2.0 → 4.3.0
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/CHANGELOG.md +96 -0
- package/HANDOFF.md +11 -3
- package/README.md +29 -0
- package/ROADMAP.md +112 -33
- package/nodes/ccu-alexa.html +3 -1
- package/nodes/ccu-connection.html +26 -0
- package/nodes/ccu-connection.js +87 -11
- package/nodes/ccu-display.js +29 -13
- package/nodes/ccu-get-value.html +3 -1
- package/nodes/ccu-mqtt.html +21 -4
- package/nodes/ccu-mqtt.js +126 -102
- package/nodes/ccu-rpc-event.html +6 -0
- package/nodes/ccu-rpc-event.js +31 -12
- package/nodes/ccu-set-value.html +38 -0
- package/nodes/ccu-set-value.js +59 -235
- package/nodes/ccu-signal.html +55 -1
- package/nodes/ccu-signal.js +52 -9
- package/nodes/ccu-switch.html +17 -4
- package/nodes/ccu-switch.js +28 -4
- package/nodes/ccu-sysvar.html +40 -1
- package/nodes/ccu-sysvar.js +78 -8
- package/nodes/ccu-value.html +27 -1
- package/nodes/ccu-value.js +69 -19
- package/nodes/lib/cast.js +59 -14
- package/nodes/lib/channelfilter.js +136 -0
- package/nodes/lib/dynconfig.js +81 -0
- package/nodes/lib/localccu.js +81 -0
- package/nodes/lib/message.js +6 -2
- package/nodes/lib/valuestatus.js +145 -0
- package/nodes/locales/de/ccu-display.html +17 -0
- package/nodes/locales/de/ccu-rpc-event.json +1 -0
- package/nodes/locales/de/ccu-sysvar.json +3 -2
- package/nodes/locales/de/ccu-value.json +2 -1
- package/nodes/locales/en-US/ccu-display.html +17 -0
- package/nodes/locales/en-US/ccu-rpc-event.json +3 -2
- package/nodes/locales/en-US/ccu-switch.html +12 -0
- package/nodes/locales/en-US/ccu-sysvar.json +3 -2
- package/nodes/locales/en-US/ccu-value.json +2 -1
- package/package.json +1 -1
- package/patch-certainonly.py +51 -0
- package/roadmap-archive/B-2.md +69 -0
- package/roadmap-archive/B-3.md +57 -0
- package/roadmap-archive/B-4.md +44 -0
- package/roadmap-archive/B-5.md +57 -0
- package/roadmap-archive/README.md +11 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,102 @@ Notable changes to node-red-contrib-ccu. Format follows
|
|
|
5
5
|
user-visible symptom and the cause, not the commit list (the release notes
|
|
6
6
|
append commits automatically).
|
|
7
7
|
|
|
8
|
+
## 4.3.0 (2026-09-04)
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Dynamic node configuration through `msg.config`** (roadmap B-2). Put
|
|
13
|
+
an object in `msg.config` and its properties override that node's own
|
|
14
|
+
configuration for that one message; the stored configuration is never
|
|
15
|
+
modified, so the next message starts from the dialog settings again.
|
|
16
|
+
Supported by the value, set-value, switch, sysvar, signal and display
|
|
17
|
+
nodes; each node's help panel lists the keys it accepts, and anything
|
|
18
|
+
else is ignored. `msg.ccu` could not be used for this because it
|
|
19
|
+
already carries the CCU host name. (#172, #71, #103, #80, #56, #148,
|
|
20
|
+
#185)
|
|
21
|
+
- signal node: every command field is reachable that way, including
|
|
22
|
+
`soundList` and `dimmerList`, which now also accept a plain array of
|
|
23
|
+
values (`msg.config.soundList = [1, 2]`) instead of the editor's
|
|
24
|
+
list-of-objects shape. (#148, #80)
|
|
25
|
+
- sysvar node: a typed input selects where the value to write comes from
|
|
26
|
+
(msg/flow/global/env). Computing a value and storing it in a variable
|
|
27
|
+
no longer needs a change node to move it into `msg.payload` first.
|
|
28
|
+
(#56)
|
|
29
|
+
- sysvar and rpc-event nodes show the last value and how long ago it
|
|
30
|
+
arrived under the node — the sysvar node also when "emit value on
|
|
31
|
+
start" is off, since the connection knows the value either way. (#54,
|
|
32
|
+
#52)
|
|
33
|
+
- value and rpc-event nodes: new option **discard uncertain values**,
|
|
34
|
+
which drops values the ReGa could not timestamp (`msg.uncertain`).
|
|
35
|
+
Off by default, so existing flows are unaffected. (#96)
|
|
36
|
+
- ccu-mqtt: new **get** topic (`hm/get/<channel>/<datapoint>` by
|
|
37
|
+
default) republishes the last known value on its status topic, so a
|
|
38
|
+
refresh can be triggered over MQTT. An empty datapoint republishes the
|
|
39
|
+
whole channel. (#115)
|
|
40
|
+
- ccu-mqtt: the **RPC** topics are implemented and visible in the editor.
|
|
41
|
+
The dispatcher recognised the RPC topic before but the node had no
|
|
42
|
+
handler for it, so such messages were silently dropped and the
|
|
43
|
+
response topic was never used — which is why both fields were
|
|
44
|
+
commented out. The result (or the error) is published on the response
|
|
45
|
+
topic. (#22)
|
|
46
|
+
- switch node: rule values accept the **bool** type, as core Node-RED's
|
|
47
|
+
switch node does. Without it `true` had to be entered as a string, and
|
|
48
|
+
`true == "true"` is false in JavaScript, so boolean datapoints could
|
|
49
|
+
only be compared by writing 0/1. (#51)
|
|
50
|
+
- connection node: **RPC ping** can be switched off, which disables the
|
|
51
|
+
periodic ping and the timeout-triggered re-init for that connection.
|
|
52
|
+
Setting the ping timeout to 0 never did this — it fell back to 60
|
|
53
|
+
seconds. (#44)
|
|
54
|
+
- connection node: **names/rooms refresh** interval (default 15 minutes,
|
|
55
|
+
0 = off). Channel names, rooms and functions used to be read once when
|
|
56
|
+
the connection started, so anything added in the CCU WebUI stayed
|
|
57
|
+
invisible until the flow was redeployed. (#167)
|
|
58
|
+
|
|
59
|
+
### Fixed
|
|
60
|
+
|
|
61
|
+
- set-value node: only the _first_ message ever configured the node.
|
|
62
|
+
Message properties were written into the node's own configuration, so
|
|
63
|
+
every later message hit the "already configured" guard and was
|
|
64
|
+
ignored, and the node kept acting on the first message's rooms,
|
|
65
|
+
functions or channel. Each message is now evaluated on its own. (#133)
|
|
66
|
+
- set-value node: the device-name filter tested whether the _channel_
|
|
67
|
+
had a ReGa name while comparing the _device_ name, so channels without
|
|
68
|
+
a name of their own were dropped even when their device matched.
|
|
69
|
+
- Enum names never worked: the CCU sends them in `VALUE_LIST`, but the
|
|
70
|
+
code read `ENUM`, which no interface process sends. `msg.datapointEnum`
|
|
71
|
+
and `msg.valueEnum` were always `undefined`, and writing an enum
|
|
72
|
+
datapoint by name (`AUTO-MODE` rather than `0`) fell back to `0`.
|
|
73
|
+
- ccu-mqtt: the "is this parameter writeable" check was
|
|
74
|
+
`!(desc.OPERATIONS) && 2`, which is always false — it never fired, and
|
|
75
|
+
read-only parameters were written anyway.
|
|
76
|
+
- ccu-mqtt: `putParamset` cast every value against the description of a
|
|
77
|
+
parameter that does not exist in that call, so the whole paramset went
|
|
78
|
+
out uncast. Its private copy of the cast logic is gone; the shared one
|
|
79
|
+
gained the MIN/MAX clamping that copy did. Unparseable numbers become
|
|
80
|
+
0 instead of NaN, which XML-RPC cannot encode.
|
|
81
|
+
- Running on the CCU itself was not detected any more, so local installs
|
|
82
|
+
(RedMatic) silently talked to the interface processes through the
|
|
83
|
+
CCU's lighttpd proxy instead of their direct ports. The check grepped
|
|
84
|
+
`/etc/lighttpd/conf.d/proxy.conf` for a port number; on current
|
|
85
|
+
firmware that file is a one-line include and the port markers live two
|
|
86
|
+
levels down. It now looks for a listener on the direct port instead.
|
|
87
|
+
(Roadmap B-4)
|
|
88
|
+
- Writing several system variables at once left all but the first
|
|
89
|
+
invisible until the next scheduled ReGa poll (30 s by default): the
|
|
90
|
+
immediate re-poll each write triggers was dropped while another poll
|
|
91
|
+
was still running. It is remembered and run once afterwards. (#166)
|
|
92
|
+
- RSSI values from the ReGa poll were converted from the unsigned byte
|
|
93
|
+
unconditionally, so a value that was already negative, or the 0 that
|
|
94
|
+
means "never received", became -318 or -256. (#183)
|
|
95
|
+
- Editor: the Channel and Datapoint fields were cleared whenever their
|
|
96
|
+
content was not a known channel address, which also wiped
|
|
97
|
+
`${PARAMETER}` placeholders every time the dialog was opened — so a
|
|
98
|
+
node inside a subflow lost its subflow parameter. Placeholders are
|
|
99
|
+
left alone now. (#158)
|
|
100
|
+
- The German help texts of the rpc-event node never loaded:
|
|
101
|
+
`locales/de/ccu-rpc-event.json` had a trailing comma and was not valid
|
|
102
|
+
JSON.
|
|
103
|
+
|
|
8
104
|
## 4.2.0 (2026-09-04)
|
|
9
105
|
|
|
10
106
|
### Added
|
package/HANDOFF.md
CHANGED
|
@@ -14,9 +14,17 @@ Lab addresses and credentials are intentionally **not** in this file
|
|
|
14
14
|
(+605 keys from the production CCU and two lab CCUs). Phase 3:
|
|
15
15
|
cast/topic/message/castSysvar extracted, 43 unit tests
|
|
16
16
|
(`npm run test:pure`, 71 on the B-16 branch).
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
-
|
|
17
|
+
- **4.2.0 released 2026-09-04** (tag v4.2.0, npm latest = 4.2.0): the
|
|
18
|
+
ccu-homeassistant node (B-16, archived). Branch `b-16-homeassistant`
|
|
19
|
+
merged with `--no-ff` and deleted. The lab CCUs run the equivalent
|
|
20
|
+
`4.2.0-dev.1` build with the "B-16 Home Assistant" flow tabs; reporters
|
|
21
|
+
of #136/#154/#175 were asked (2026-09-04) to confirm the LEVEL_2 fix
|
|
22
|
+
on their hardware.
|
|
23
|
+
- Issue tracker fully triaged (second pass 2026-09-04, B-7 done): 36
|
|
24
|
+
issues open, all annotated with their roadmap item; 5 closed that day;
|
|
25
|
+
8 newly diagnosed defects recorded in ROADMAP §8.3 — the two cheapest
|
|
26
|
+
are the unguarded RSSI conversion (#183) and the dropped sysvar
|
|
27
|
+
re-poll (#166). B-6/B-14/B-16 archived; roadmap is current.
|
|
20
28
|
|
|
21
29
|
## Decisions (2026-09-04)
|
|
22
30
|
|
package/README.md
CHANGED
|
@@ -41,6 +41,35 @@ device with switch, light, cover, climate, binary_sensor, event, lock and sensor
|
|
|
41
41
|
optionally be included as a disabled-by-default entity. Unticking a device removes it from Home Assistant on the
|
|
42
42
|
next deploy.
|
|
43
43
|
|
|
44
|
+
## Dynamic configuration
|
|
45
|
+
|
|
46
|
+
Most nodes can be reconfigured per message: put an object in `msg.config` and its
|
|
47
|
+
properties override that node's own configuration **for that one message**. The stored
|
|
48
|
+
configuration is never modified, so the next message starts from the dialog settings
|
|
49
|
+
again — sending a different room, channel or brightness each time works as you would
|
|
50
|
+
expect.
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
// one signal node, a different colour and duration per message
|
|
54
|
+
msg.config = {dimmerColor: 4, durationValue: 10};
|
|
55
|
+
|
|
56
|
+
// one set-value node, a different room per message
|
|
57
|
+
msg.config = {rooms: 'Kitchen'};
|
|
58
|
+
return msg;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Which keys a node accepts is listed in its help panel in the editor. Anything not on
|
|
62
|
+
that list is ignored, so an unrelated property in `msg.config` cannot reach node
|
|
63
|
+
internals. `msg.ccu` is not used for this because it already carries the CCU host name.
|
|
64
|
+
|
|
65
|
+
The `value`, `get value` and `set value` nodes additionally read plain top-level
|
|
66
|
+
properties (`msg.channel`, `msg.datapoint`, `msg.rooms`, …) to fill in fields left empty
|
|
67
|
+
in the dialog. That is the older mechanism and is unchanged; `msg.config` wins over it.
|
|
68
|
+
|
|
69
|
+
Inside a **subflow**, Node-RED substitutes `${PARAMETER}` placeholders in a node's text
|
|
70
|
+
fields before the node is created, so a subflow parameter can be typed straight into the
|
|
71
|
+
Channel or Datapoint field and each instance reads its own device.
|
|
72
|
+
|
|
44
73
|
## Configuration Examples
|
|
45
74
|
|
|
46
75
|
The communication with the Homematic CCU needs independent connections in two directions. Node-red-contrib-ccu connects to the CCU's interface listeners (e.g. 2001/TCP for BidCos-RF) while the CCU connects to node-red-contrib-ccu's BINRPC/XMLRPC listeners (2048/tcp and 2049/tcp in examples below).
|
package/ROADMAP.md
CHANGED
|
@@ -29,8 +29,13 @@ Status 2026-09-04: **4.0.0 (2026-09-02) and 4.1.0 (2026-09-04) are
|
|
|
29
29
|
released** (npm latest, OIDC provenance, GitHub releases); 4.1.0 carries
|
|
30
30
|
the regenerated device descriptions and the LEVEL_2 fix; **4.2.0
|
|
31
31
|
(2026-09-04) = B-16**, the Home Assistant discovery node, lab-verified and
|
|
32
|
-
archived. B-2 moved to 4.3.0.
|
|
33
|
-
|
|
32
|
+
archived. B-2 moved to 4.3.0. The issue tracker was triaged a second time
|
|
33
|
+
on 2026-09-04 (§12): 36 issues remain open, every one of them annotated
|
|
34
|
+
with its roadmap item, and eight newly diagnosed defects were added to
|
|
35
|
+
§8.3. **4.3.0 (2026-09-04) = B-2 + B-3 + B-4 + B-5**, all four archived —
|
|
36
|
+
17 of those issues are fixed by it. Phases 1 and 2 are done and archived.
|
|
37
|
+
Next: Phase 3 (refactor & tests) and the rest of the Phase 4 backlog;
|
|
38
|
+
work continues on
|
|
34
39
|
master with CI (Node 22/24 × Node-RED 4/5) as the gate. Research basis:
|
|
35
40
|
the GitHub tracker/PRs/forks, homematic-forum.de, Node-RED release notes and
|
|
36
41
|
scorecard criteria, and the hm2mqtt.js 3.0 rewrite (same author), which
|
|
@@ -195,12 +200,12 @@ unreproducible if the reporters have not responded by ~2026-12.
|
|
|
195
200
|
| ID | Item | Source |
|
|
196
201
|
| ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
|
|
197
202
|
| B-1 | Regenerate `paramsets.json` via a live-CCU XML-RPC fetch — **groundwork done 2026-09-02, full analysis in [docs/paramsets.md](docs/paramsets.md)**: the file is the runtime getParamsetDescription cache (grown 2018–2020 from contributed user dumps; firmware parsing is a dead end for HmIP — MIN/MAX come from compiled Java). **Tools done 2026-09-02** (`tools/paramsets-fetch.js` + modernized `paramsets-join.js`, smoke-tested against the live CCU; reporter dumps join with the same tool). **Lab dumps joined 2026-09-04** (CCU3 3.89.8 "Charly" with HmIPW-DRAP/DRI16/DRS8, OpenCCU 3.89.8 with HmIP-PDT/WRC2/RFUSB): +58 keys, 9 refreshed (HmIPW entries gained COMBINED_PARAMETER etc.), file now key-sorted (one-time reorder). **Production regen done 2026-09-04** (4.1.0-dev.7): fetched read-only from the author's CCU3 on 3.87.6 at 600 ms/call (~25 min, 962 keys) — +547 keys, 32 refreshed, 70 device type/firmware combos across BidCos-RF, BidCos-Wired, HmIP and the HmIP-HEATING 2.0.0 group; the "HmIP-only" assumption about that box was wrong. Rule for the production CCU: read-only, slow, and only client calls — its RPC callbacks reach nothing but the Node-RED test box. Remaining: collect reporter dumps (#177 BSL-V2, #144 WRCD, #159 CuxD — requested in the issues 2026-09-02). Data-only issues: [#112](https://github.com/rdmtc/node-red-contrib-ccu/issues/112) (likely CCU-side limit — live CCU still reports MAX=3, retest), [#117](https://github.com/rdmtc/node-red-contrib-ccu/issues/117) (entry exists, retest), [#159](https://github.com/rdmtc/node-red-contrib-ccu/issues/159) (needs CUxD user dump). The LEVEL_2/BSL/WRCD issues moved to B-14/B-15 (code, not data). | tracker + forum |
|
|
198
|
-
| B-2 |
|
|
199
|
-
| B-3 |
|
|
200
|
-
| B-4 |
|
|
201
|
-
| B-5 |
|
|
203
|
+
| B-2 | ✅ **done 2026-09-04** (4.3.0) — one mechanism (`msg.config`) across value/set-value/switch/sysvar/signal/display; closes #172 #71 #103 #80 #56 #148 #185 #133 #158. Archived: [roadmap-archive/B-2.md](roadmap-archive/B-2.md) |
|
|
204
|
+
| B-3 | ✅ **done 2026-09-04** (4.3.0) — §8.2 findings fixed, VALUE_LIST enum names, `get` and `rpc` commands, metadata refresh; closes #115 #22 #167. Archived: [roadmap-archive/B-3.md](roadmap-archive/B-3.md) |
|
|
205
|
+
| B-4 | ✅ **done 2026-09-04** (4.3.0) — replaced by a `/proc/net/tcp` listener probe (`nodes/lib/localccu.js`); verified against firmware 3.89.8. Archived: [roadmap-archive/B-4.md](roadmap-archive/B-4.md) |
|
|
206
|
+
| B-5 | ✅ **done 2026-09-04** (4.3.0) — ping toggle, value+age status lines, uncertain filter, trailing sysvar re-poll, RSSI guard; closes #44 #54 #52 #96 #166 #183 #124. Archived: [roadmap-archive/B-5.md](roadmap-archive/B-5.md) |
|
|
202
207
|
| B-6 | ✅ **done 2026-09-02** — delivered upstream as binrpc 4.1/4.2 (zero deps, frame reassembly); picked up here as `^4.2.0` in dev.4. Archived: [roadmap-archive/B-6.md](roadmap-archive/B-6.md) | deferred → upstream |
|
|
203
|
-
| B-7 |
|
|
208
|
+
| B-7 | ✅ **done 2026-09-04** — both passes complete (§12): 60 → 36 open, all annotated; 8 new defects recorded in §8.3 |
|
|
204
209
|
| B-8 | Global object: expose CCU metadata/values via a global context object (old todo item) | old TODO |
|
|
205
210
|
| B-9 | Value node: datapoint autocomplete / multiselect (rpc and rpc-event already have it) | old TODO |
|
|
206
211
|
| B-10 | Submit/display node polish (old todo items): submit autocomplete, limit list to 10 cmds, fix display LED, display beep, payload via msg | old TODO |
|
|
@@ -253,14 +258,16 @@ caught (the devDep pin to `^1.1.2` is why it never was).
|
|
|
253
258
|
|
|
254
259
|
### 8.2 Verified in the hm2mqtt 3.0 rewrite (free, confirmed findings)
|
|
255
260
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
`
|
|
261
|
-
-
|
|
261
|
+
**All three fixed in 4.3.0 (B-3) / 4.2.0.**
|
|
262
|
+
|
|
263
|
+
- ✅ `nodes/ccu-mqtt.js`: the writeable check `!(OPERATIONS) && 2` is
|
|
264
|
+
always false; `putParamset` casts with `description[filter.param]`
|
|
265
|
+
which is `undefined`, so values pass uncast. — 4.3.0
|
|
266
|
+
- ✅ Empty-name topic bug: devices without a rega name produce
|
|
267
|
+
`hm/status//STATE`-style topics. — 4.2.0
|
|
268
|
+
- ✅ `datapointEnum`/`valueEnum` in outgoing messages read
|
|
262
269
|
`description.ENUM`, which the interface processes never send — both
|
|
263
|
-
have always been `undefined`.
|
|
270
|
+
have always been `undefined`. The names are in `VALUE_LIST`. — 4.3.0
|
|
264
271
|
|
|
265
272
|
### 8.3 Misc
|
|
266
273
|
|
|
@@ -268,6 +275,57 @@ caught (the devDep pin to `^1.1.2` is why it never was).
|
|
|
268
275
|
and loose `!= undefined` — fix when taking the guard.
|
|
269
276
|
- Editor HTML ships `console.log` debug leftovers.
|
|
270
277
|
|
|
278
|
+
Found in the 2026-09-04 issue triage (all verified against 4.2.0):
|
|
279
|
+
|
|
280
|
+
- ✅ **RSSI conversion is unguarded** (#183, fixed 4.3.0): `getRegaValues()` does
|
|
281
|
+
`dp.value -= 256` for `RSSI_DEVICE`/`RSSI_PEER` unconditionally, so a
|
|
282
|
+
value that is already signed (or `0` for "never received") becomes
|
|
283
|
+
`-318` / `-256`. hm2mqtt's `values.js` has the guard this one lacks:
|
|
284
|
+
only subtract when `typeof value === 'number' && value > 127`. The
|
|
285
|
+
XML-RPC event path needs no conversion — ReGa only.
|
|
286
|
+
- ✅ **Immediate sysvar re-poll is dropped under concurrency** (#166, fixed 4.3.0):
|
|
287
|
+
`setVariable()` calls `regaPoll()` only `if (!this.regaPollPending)`,
|
|
288
|
+
and `regaPoll()` itself no-ops (`rega poll already pending`) while one
|
|
289
|
+
is in flight. Writing several variables at once therefore leaves all
|
|
290
|
+
but the first invisible until the next scheduled poll (30 s default).
|
|
291
|
+
Fix: trailing-edge debounce — set a flag and poll once more when the
|
|
292
|
+
running poll finishes. → B-5.
|
|
293
|
+
- ✅ **`ccu-switch` rule values have no `bool` type** (#51, fixed 4.3.0): the typedInput
|
|
294
|
+
offers `msg/flow/global/str/num/jsonata/env/prev` only, so `true` is
|
|
295
|
+
stored as a string and `true == "true"` is false — users are pushed
|
|
296
|
+
into 0/1. `RED.util.evaluateNodeProperty` already handles `bool`, so
|
|
297
|
+
the fix is the editor list. → §6.4.
|
|
298
|
+
- ✅ **Editor clears `${ENV}` placeholders** (#158, fixed 4.3.0): `autocompleteChannel()`
|
|
299
|
+
blanks Channel and Datapoint whenever the value is not a known channel
|
|
300
|
+
address, which wipes subflow-parameter placeholders on every dialog
|
|
301
|
+
open. Skip the clearing for `${...}` values. → §6.4.
|
|
302
|
+
- **Stale device metadata is never re-read** (#181, related #146; still
|
|
303
|
+
open — 4.3.0's refresh covers names/rooms/functions, not the device
|
|
304
|
+
table): the
|
|
305
|
+
connection answers the CCU's `listDevices` from its persisted cache
|
|
306
|
+
(`ccu_<host>.json`), so the daemon only sends `newDevices` for entries
|
|
307
|
+
the cache did not report. A channel that changes TYPE in place (HMW
|
|
308
|
+
I/O direction change) keeps its old datapoints forever. Workaround is
|
|
309
|
+
deleting the cache file; the fix is a "re-read device data" action on
|
|
310
|
+
the connection node. → B-5 or B-11.
|
|
311
|
+
- **Internal system variables are invisible** (#184, upstream): the
|
|
312
|
+
`variables.rega` script in `homematic-rega` iterates
|
|
313
|
+
`dom.GetObject(ID_SYSTEM_VARIABLES).EnumUsedIDs()`, which skips every
|
|
314
|
+
variable with `Internal() == true` — including the HmIP device-bound
|
|
315
|
+
ones (`svHmIPRainCounterToday_*`). Measured on a CCU3 3.89.8:
|
|
316
|
+
`EnumUsedIDs()` → 2, `EnumIDs()` → 4, the two extra being IDs 40/41,
|
|
317
|
+
which the script hard-codes for exactly this reason. Fix belongs in
|
|
318
|
+
homematic-rega (`EnumIDs()`, drop the special case); open question
|
|
319
|
+
whether internal variables ship by default or behind an option.
|
|
320
|
+
- ✅ **`ccu-mqtt` matches an `rpc` command it cannot execute** (#22, fixed 4.3.0): the
|
|
321
|
+
topic matcher includes `topicInputRpc`, but the class has no `rpc()`
|
|
322
|
+
method, so the match is silently dropped; `topicOutputRpc` is never
|
|
323
|
+
read. → B-3.
|
|
324
|
+
- ✅ **ReGa metadata is read once** (#167, fixed 4.3.0): `getRegaData()` (channels,
|
|
325
|
+
rooms, functions, groups) runs only in the connection constructor; the
|
|
326
|
+
poll refreshes variables and programs only. Rooms/functions added in
|
|
327
|
+
the WebUI stay invisible until redeploy. → B-3.
|
|
328
|
+
|
|
271
329
|
## 9. What to take from forks and PRs
|
|
272
330
|
|
|
273
331
|
- **PR [#162](https://github.com/rdmtc/node-red-contrib-ccu/pull/162)**
|
|
@@ -329,38 +387,48 @@ resolved/obsolete/wrong-repo), 4 got retest requests and stay open
|
|
|
329
387
|
roadmap item below.** Wrong annotations found during triage were
|
|
330
388
|
corrected in place (#178, #119, #148).
|
|
331
389
|
|
|
332
|
-
-
|
|
390
|
+
**Second pass 2026-09-04 (B-7 continued)**, covering the issues the
|
|
391
|
+
first pass had left without a comment plus #180…#186, transferred here
|
|
392
|
+
from rdmtc/RedMatic on 2026-09-04. 5 closed (#124 fixed in v3.2.1 and
|
|
393
|
+
never closed; #186 fixed by the xmlrpc 2.0 bump; #182 fixed by B-14;
|
|
394
|
+
#185 duplicate of #80; #158 answered — subflow parameters work via
|
|
395
|
+
`${ENV}` substitution), the rest commented with their roadmap item.
|
|
396
|
+
Eight defects were newly diagnosed against 4.2.0 in the process and are
|
|
397
|
+
recorded in §8.3 (#183, #166, #51, #158, #181, #184, #22, #167); #133
|
|
398
|
+
was confirmed rather than merely "to be retested".
|
|
399
|
+
|
|
400
|
+
- [#22](https://github.com/rdmtc/node-red-contrib-ccu/issues/22) MQTT Node: No GUI for node-input-topicInputRpc → B-3 (handler missing, not just the GUI — §8.3) — ✅ fixed in 4.3.0
|
|
333
401
|
- [#27](https://github.com/rdmtc/node-red-contrib-ccu/issues/27) Anpassungen an CCU Firmware >= 3.41 → B-12 (Auth/TLS halves still open)
|
|
334
|
-
- [#39](https://github.com/rdmtc/node-red-contrib-ccu/issues/39) topic handling vereinheitlichen
|
|
335
|
-
- [#44](https://github.com/rdmtc/node-red-contrib-ccu/issues/44) Configuration Option to deactivate Ping Checks → B-5
|
|
336
|
-
- [#51](https://github.com/rdmtc/node-red-contrib-ccu/issues/51) switch node casts boolean payloads to numbers
|
|
337
|
-
- [#52](https://github.com/rdmtc/node-red-contrib-ccu/issues/52) RPC Event: Zeitpunkt des letzten Events und ggf. letztes Topic
|
|
338
|
-
- [#54](https://github.com/rdmtc/node-red-contrib-ccu/issues/54) ccu-sysvar node: aktueller Status und ggf. Zeitpunkt von wann der Status stammt unter dem node → B-5
|
|
339
|
-
- [#56](https://github.com/rdmtc/node-red-contrib-ccu/issues/56) make property for sysvar-node configurable → B-2/B-5
|
|
402
|
+
- [#39](https://github.com/rdmtc/node-red-contrib-ccu/issues/39) topic handling vereinheitlichen → §6 (topic.js extracted; D-15 blocks changing the defaults)
|
|
403
|
+
- [#44](https://github.com/rdmtc/node-red-contrib-ccu/issues/44) Configuration Option to deactivate Ping Checks → B-5 — ✅ fixed in 4.3.0
|
|
404
|
+
- [#51](https://github.com/rdmtc/node-red-contrib-ccu/issues/51) switch node casts boolean payloads to numbers → §6.4 (no `bool` typedInput type — §8.3) — ✅ fixed in 4.3.0
|
|
405
|
+
- [#52](https://github.com/rdmtc/node-red-contrib-ccu/issues/52) RPC Event: Zeitpunkt des letzten Events und ggf. letztes Topic → B-5 — ✅ fixed in 4.3.0
|
|
406
|
+
- [#54](https://github.com/rdmtc/node-red-contrib-ccu/issues/54) ccu-sysvar node: aktueller Status und ggf. Zeitpunkt von wann der Status stammt unter dem node → B-5 — ✅ fixed in 4.3.0
|
|
407
|
+
- [#56](https://github.com/rdmtc/node-red-contrib-ccu/issues/56) make property for sysvar-node configurable → B-2/B-5 — ✅ fixed in 4.3.0
|
|
340
408
|
- [#58](https://github.com/rdmtc/node-red-contrib-ccu/issues/58) Hilfe Texte → §6.5
|
|
341
|
-
- [#71](https://github.com/rdmtc/node-red-contrib-ccu/issues/71) Set value node: allow to set filter properties with incoming msg → B-2
|
|
342
|
-
- [#80](https://github.com/rdmtc/node-red-contrib-ccu/issues/80) Signal Node: allow to overwrite settings via msg/context/env → B-2
|
|
409
|
+
- [#71](https://github.com/rdmtc/node-red-contrib-ccu/issues/71) Set value node: allow to set filter properties with incoming msg → B-2 — ✅ fixed in 4.3.0
|
|
410
|
+
- [#80](https://github.com/rdmtc/node-red-contrib-ccu/issues/80) Signal Node: allow to overwrite settings via msg/context/env → B-2 — ✅ fixed in 4.3.0
|
|
343
411
|
- [#81](https://github.com/rdmtc/node-red-contrib-ccu/issues/81) increase test coverage → §6.2
|
|
344
412
|
- [#87](https://github.com/rdmtc/node-red-contrib-ccu/issues/87) Changelog → D-11 — ✅ closed 2026-09-02
|
|
345
|
-
- [#96](https://github.com/rdmtc/node-red-contrib-ccu/issues/96) uncertain Flag das gesetzt wird wenn Rega Zeitstempel 1970-01-01 01:00:00 zurückgibt
|
|
346
|
-
- [#103](https://github.com/rdmtc/node-red-contrib-ccu/issues/103) switch node params via msg → B-2
|
|
413
|
+
- [#96](https://github.com/rdmtc/node-red-contrib-ccu/issues/96) uncertain Flag das gesetzt wird wenn Rega Zeitstempel 1970-01-01 01:00:00 zurückgibt → B-5 (flag done, filter option open) — ✅ fixed in 4.3.0
|
|
414
|
+
- [#103](https://github.com/rdmtc/node-red-contrib-ccu/issues/103) switch node params via msg → B-2 — ✅ fixed in 4.3.0
|
|
347
415
|
- [#105](https://github.com/rdmtc/node-red-contrib-ccu/issues/105) ccu-value Node: Weiterbenutzung des Input-msg-Objects, statt Neuinstaziierung — ✅ closed 2026-09-02
|
|
348
416
|
- [#106](https://github.com/rdmtc/node-red-contrib-ccu/issues/106) Statusänderung eines Kanals wird nicht übermittelt — ✅ closed 2026-09-02
|
|
349
417
|
- [#110](https://github.com/rdmtc/node-red-contrib-ccu/issues/110) Node-RED: v1.0.4 & CCU3-3.51.6 / Error: getaddrinfo ENOTFOUND — ✅ closed 2026-09-02
|
|
350
418
|
- [#111](https://github.com/rdmtc/node-red-contrib-ccu/issues/111) ON_TIME wird nicht initial befüllt
|
|
351
419
|
- [#112](https://github.com/rdmtc/node-red-contrib-ccu/issues/112) Nur drei Heizungsprofile verfügbar (# 4-6 stehen nicht zur Auswahl) → B-1 (stale MAX=3 in paramset)
|
|
352
420
|
- [#114](https://github.com/rdmtc/node-red-contrib-ccu/issues/114) Possible to use "localfilesystem" for Context Store — ✅ closed 2026-09-02
|
|
353
|
-
- [#115](https://github.com/rdmtc/node-red-contrib-ccu/issues/115) add get/update method to mqtt node
|
|
421
|
+
- [#115](https://github.com/rdmtc/node-red-contrib-ccu/issues/115) add get/update method to mqtt node → B-3 — ✅ fixed in 4.3.0
|
|
354
422
|
- [#116](https://github.com/rdmtc/node-red-contrib-ccu/issues/116) Google Home Anbindung: State von CCU wird nicht zurück an Google Home übermittelt — ✅ closed 2026-09-02
|
|
355
423
|
- [#117](https://github.com/rdmtc/node-red-contrib-ccu/issues/117) Einbinden HmIP-FCI6 → B-1
|
|
356
424
|
- [#119](https://github.com/rdmtc/node-red-contrib-ccu/issues/119) HmIP-BROLL wird nicht gefunden (resolved: port misconfiguration) — ✅ closed 2026-09-02
|
|
357
425
|
- [#121](https://github.com/rdmtc/node-red-contrib-ccu/issues/121) rpc-event STICKY_UNREACH — ✅ closed 2026-09-02
|
|
358
|
-
- [#124](https://github.com/rdmtc/node-red-contrib-ccu/issues/124) poll variable description
|
|
426
|
+
- [#124](https://github.com/rdmtc/node-red-contrib-ccu/issues/124) poll variable description — ✅ closed 2026-09-04 (fixed 2020-08-03 in 453f2b2, v3.2.1; never closed)
|
|
359
427
|
- [#126](https://github.com/rdmtc/node-red-contrib-ccu/issues/126) Context store property name dot replacement — ✅ closed 2026-09-02
|
|
360
428
|
- [#128](https://github.com/rdmtc/node-red-contrib-ccu/issues/128) CCU Switch node - wrong resize in settings dialog (fix in v3.4.2?) — ✅ closed 2026-09-02
|
|
361
429
|
- [#129](https://github.com/rdmtc/node-red-contrib-ccu/issues/129) ccu-get-value node: bei einer Werteliste wird nur der value zurückgegeben (fix in v3.4.2?) — ✅ closed 2026-09-02
|
|
362
430
|
- [#132](https://github.com/rdmtc/node-red-contrib-ccu/issues/132) Ports — ✅ closed 2026-09-02
|
|
363
|
-
- [#133](https://github.com/rdmtc/node-red-contrib-ccu/issues/133) ccu-set-value "remembers" previous events
|
|
431
|
+
- [#133](https://github.com/rdmtc/node-red-contrib-ccu/issues/133) ccu-set-value "remembers" previous events → B-2 (confirmed on 4.2.0: `setValues()` mutates `this.config`, so only the first msg configures the node) — ✅ fixed in 4.3.0
|
|
364
432
|
- [#136](https://github.com/rdmtc/node-red-contrib-ccu/issues/136) HmIP-FBL → B-1
|
|
365
433
|
- [#138](https://github.com/rdmtc/node-red-contrib-ccu/issues/138) Failed at the grpc@1.19.0 install script — ✅ closed 2026-09-02
|
|
366
434
|
- [#139](https://github.com/rdmtc/node-red-contrib-ccu/issues/139) CCU Node error message in the log (IoBroker) — ✅ closed 2026-09-02
|
|
@@ -369,23 +437,34 @@ corrected in place (#178, #119, #148).
|
|
|
369
437
|
- [#144](https://github.com/rdmtc/node-red-contrib-ccu/issues/144) Signal Node: Integration of HmIP-WRCD → B-1
|
|
370
438
|
- [#145](https://github.com/rdmtc/node-red-contrib-ccu/issues/145) CCU value Node CUX16 no Output
|
|
371
439
|
- [#146](https://github.com/rdmtc/node-red-contrib-ccu/issues/146) CCU different / changing Nodes with "unknown Datapoint"
|
|
372
|
-
- [#148](https://github.com/rdmtc/node-red-contrib-ccu/issues/148) Signal Node: HmIP-MP3P Dynamisches Setzen von SOUNDFILE_LIST → B-2
|
|
440
|
+
- [#148](https://github.com/rdmtc/node-red-contrib-ccu/issues/148) Signal Node: HmIP-MP3P Dynamisches Setzen von SOUNDFILE_LIST → B-2 — ✅ fixed in 4.3.0
|
|
373
441
|
- [#149](https://github.com/rdmtc/node-red-contrib-ccu/issues/149) XML-RPC fault mit falscher value? — ✅ closed 2026-09-02
|
|
374
442
|
- [#151](https://github.com/rdmtc/node-red-contrib-ccu/issues/151) FROLL: Cache geht nicht mit Geräten mit 2 Kanälen für Soll/Ist bei Handbedienung
|
|
375
443
|
- [#154](https://github.com/rdmtc/node-red-contrib-ccu/issues/154) HmIP-BBL datapoint LEVEL_2 cannot be set → B-1
|
|
376
444
|
- [#155](https://github.com/rdmtc/node-red-contrib-ccu/issues/155) Error: Local address XXX not available. Using YYY instead. — ✅ closed 2026-09-02
|
|
377
445
|
- [#156](https://github.com/rdmtc/node-red-contrib-ccu/issues/156) Set PARTY_TIME_START and PARTY_TIME_END not working → B-13
|
|
378
|
-
- [#158](https://github.com/rdmtc/node-red-contrib-ccu/issues/158) using in SubFlows
|
|
446
|
+
- [#158](https://github.com/rdmtc/node-red-contrib-ccu/issues/158) using in SubFlows — ✅ closed 2026-09-04 (works via `${ENV}`; editor clears the placeholder — §8.3)
|
|
379
447
|
- [#159](https://github.com/rdmtc/node-red-contrib-ccu/issues/159) Fehlender CuxD datapoint "DIR" → B-1
|
|
380
448
|
- [#160](https://github.com/rdmtc/node-red-contrib-ccu/issues/160) Node-RED Absturz bei Verbindungsverlust zur CCU → D-5 — ✅ closed 2026-09-02
|
|
381
449
|
- [#161](https://github.com/rdmtc/node-red-contrib-ccu/issues/161) Feature Request: Node "Party Mode" → B-13
|
|
382
450
|
- [#164](https://github.com/rdmtc/node-red-contrib-ccu/issues/164) Support CCU-Jack → D-14
|
|
383
|
-
- [#166](https://github.com/rdmtc/node-red-contrib-ccu/issues/166) Mehrere Variablen sofort schreiben und triggern
|
|
384
|
-
- [#167](https://github.com/rdmtc/node-red-contrib-ccu/issues/167) updated function values in ccu and functions in ccu-mqtt node
|
|
451
|
+
- [#166](https://github.com/rdmtc/node-red-contrib-ccu/issues/166) Mehrere Variablen sofort schreiben und triggern → B-5 (regaPoll drops the re-poll while one is pending — §8.3) — ✅ fixed in 4.3.0
|
|
452
|
+
- [#167](https://github.com/rdmtc/node-red-contrib-ccu/issues/167) updated function values in ccu and functions in ccu-mqtt node → B-3 (getRegaData runs once, in the constructor — §8.3) — ✅ fixed in 4.3.0
|
|
385
453
|
- [#169](https://github.com/rdmtc/node-red-contrib-ccu/issues/169) "Error: XML-RPC fault: Generic error (UNREACH)" — ✅ closed 2026-09-02
|
|
386
454
|
- [#170](https://github.com/rdmtc/node-red-contrib-ccu/issues/170) Auslesen System-Variable — ✅ closed 2026-09-02
|
|
387
|
-
- [#172](https://github.com/rdmtc/node-red-contrib-ccu/issues/172) Configure CCU-Value through message → B-2
|
|
455
|
+
- [#172](https://github.com/rdmtc/node-red-contrib-ccu/issues/172) Configure CCU-Value through message → B-2 — ✅ fixed in 4.3.0
|
|
388
456
|
- [#175](https://github.com/rdmtc/node-red-contrib-ccu/issues/175) HmIP-DRBLI4 Level_2 not working → B-1
|
|
389
457
|
- [#176](https://github.com/rdmtc/node-red-contrib-ccu/issues/176) Deprecated dependencies → D-4/D-6/D-7 — ✅ closed 2026-09-02
|
|
390
458
|
- [#177](https://github.com/rdmtc/node-red-contrib-ccu/issues/177) HmIP-BSL 2.0.2 & Signal Node: Color Behaviour missing → B-1
|
|
391
459
|
- [#178](https://github.com/rdmtc/node-red-contrib-ccu/issues/178) HmIP-SWDO visible in device list but HmIP-SWDO-PL-2 not (redmatic-homekit issue, wrong repo) — ✅ closed 2026-09-02
|
|
460
|
+
|
|
461
|
+
Transferred here from rdmtc/RedMatic on 2026-09-04 (all predate the
|
|
462
|
+
snapshot above):
|
|
463
|
+
|
|
464
|
+
- [#180](https://github.com/rdmtc/node-red-contrib-ccu/issues/180) ccu-get-value Node liefert immer nur "value" — runtime honours the property on 4.2.0, retest requested
|
|
465
|
+
- [#181](https://github.com/rdmtc/node-red-contrib-ccu/issues/181) Redmatic Datenpunkte HMW-IO-12-FM → stale `ccu_<host>.json` device cache (§8.3), workaround given, retest requested
|
|
466
|
+
- [#182](https://github.com/rdmtc/node-red-contrib-ccu/issues/182) HmIPW-DRBL4 combatibility — ✅ closed 2026-09-04 (fixed by B-14 in 4.1.0)
|
|
467
|
+
- [#183](https://github.com/rdmtc/node-red-contrib-ccu/issues/183) RSSI hat falschen Wert / TypeCast → fixed for the ReGa path in v3.4.2; conversion still unguarded (§8.3) — ✅ fixed in 4.3.0
|
|
468
|
+
- [#184](https://github.com/rdmtc/node-red-contrib-ccu/issues/184) Systemvariablen (versteckt) nicht auswählbar → upstream homematic-rega `EnumUsedIDs()` (§8.3)
|
|
469
|
+
- [#185](https://github.com/rdmtc/node-red-contrib-ccu/issues/185) Parameter der Node Display für HMIP-BSL als Eingang — ✅ closed 2026-09-04 (duplicate of #80 → B-2)
|
|
470
|
+
- [#186](https://github.com/rdmtc/node-red-contrib-ccu/issues/186) RedMatic startet nicht, wenn HM-LC-Sw2-FM Geräte vorhanden — ✅ closed 2026-09-04 (xmlbuilder `assertLegalChar` gone with homematic-xmlrpc 2.0, D-4)
|
package/nodes/ccu-alexa.html
CHANGED
|
@@ -122,7 +122,9 @@
|
|
|
122
122
|
arr.sort((a, b) => a.localeCompare(b));
|
|
123
123
|
$nodeInputChannel.autocomplete('option', 'source', arr);
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
// ${ENV} placeholders are substituted by Node-RED before the node is
|
|
126
|
+
// constructed (subflow parameters, #158) - do not clear them
|
|
127
|
+
if (!/^\$\{[^}]+\}$/.test($nodeInputChannel.val()) && !data[$nodeInputChannel.val().split(' ')[0]]) {
|
|
126
128
|
$nodeInputChannel.val('');
|
|
127
129
|
}
|
|
128
130
|
}
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
|
|
17
17
|
regaPoll: {value: true},
|
|
18
18
|
regaInterval: {value: 30},
|
|
19
|
+
regaMetaInterval: {value: 15},
|
|
19
20
|
|
|
21
|
+
rpcPing: {value: true},
|
|
20
22
|
rpcPingTimeout: {value: 60},
|
|
21
23
|
rpcInitAddress: {value: ''},
|
|
22
24
|
rpcServerHost: {value: '', required: true},
|
|
@@ -39,6 +41,18 @@
|
|
|
39
41
|
},
|
|
40
42
|
|
|
41
43
|
oneditprepare() {
|
|
44
|
+
// pre-4.3.0 config nodes have neither property - show the defaults
|
|
45
|
+
// the runtime uses rather than an unchecked box / empty field
|
|
46
|
+
if (typeof this.rpcPing === 'undefined') {
|
|
47
|
+
this.rpcPing = true;
|
|
48
|
+
$('#node-config-input-rpcPing').prop('checked', true);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (typeof this.regaMetaInterval === 'undefined') {
|
|
52
|
+
this.regaMetaInterval = 15;
|
|
53
|
+
$('#node-config-input-regaMetaInterval').val(15);
|
|
54
|
+
}
|
|
55
|
+
|
|
42
56
|
const $nodeConfigInputHost = $('#node-config-input-host');
|
|
43
57
|
const $nodeConfigInputName = $('#node-config-input-name');
|
|
44
58
|
const $nodeConfigInputRpcServerHost = $('#node-config-input-rpcServerHost');
|
|
@@ -178,6 +192,13 @@
|
|
|
178
192
|
<input type="text" id="node-config-input-jackPort" style="width: 70px;" placeholder="2121">
|
|
179
193
|
</div>
|
|
180
194
|
</div>
|
|
195
|
+
<div class="form-row">
|
|
196
|
+
<label for="node-config-input-rpcPing"><i class="icon-tag"></i> RPC ping</label>
|
|
197
|
+
<div style="width: 70%; display: inline-block; vertical-align: text-top;">
|
|
198
|
+
<label class="ccu-checkbox"><input type="checkbox" id="node-config-input-rpcPing"> Enabled</label><br>
|
|
199
|
+
<small>Off disables the periodic ping and the timeout-triggered re-init for this connection.</small>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
181
202
|
<div class="form-row">
|
|
182
203
|
<label for="node-config-input-rpcPingTimeout"><i class="icon-tag"></i> RPC ping timeout (s)</label>
|
|
183
204
|
<input type="text" id="node-config-input-rpcPingTimeout">
|
|
@@ -192,6 +213,11 @@
|
|
|
192
213
|
<label for="node-config-input-regaInterval"><i class="icon-tag"></i> Rega poll interval (s)</label>
|
|
193
214
|
<input type="text" id="node-config-input-regaInterval">
|
|
194
215
|
</div>
|
|
216
|
+
<div class="form-row">
|
|
217
|
+
<label for="node-config-input-regaMetaInterval"><i class="icon-tag"></i> Names/rooms refresh (min)</label>
|
|
218
|
+
<input type="text" id="node-config-input-regaMetaInterval">
|
|
219
|
+
<small>How often channel names, rooms and functions are re-read. 0 = never (the behaviour before 4.3.0).</small>
|
|
220
|
+
</div>
|
|
195
221
|
<div class="form-row">
|
|
196
222
|
<label for="node-config-input-queueTimeout"><i class="icon-tag"></i> Queue timeout (ms)</label>
|
|
197
223
|
<input type="text" id="node-config-input-queueTimeout">
|