node-red-contrib-ccu 4.2.0 → 4.4.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.
Files changed (49) hide show
  1. package/.prettierignore +3 -0
  2. package/CHANGELOG.md +140 -0
  3. package/HANDOFF.md +46 -10
  4. package/README.md +71 -0
  5. package/ROADMAP.md +130 -47
  6. package/nodes/ccu-alexa.html +3 -1
  7. package/nodes/ccu-connection.html +51 -0
  8. package/nodes/ccu-connection.js +323 -16
  9. package/nodes/ccu-display.js +29 -13
  10. package/nodes/ccu-get-value.html +3 -1
  11. package/nodes/ccu-mqtt.html +21 -4
  12. package/nodes/ccu-mqtt.js +126 -102
  13. package/nodes/ccu-poll.js +6 -0
  14. package/nodes/ccu-rpc-event.html +6 -0
  15. package/nodes/ccu-rpc-event.js +31 -12
  16. package/nodes/ccu-set-value.html +38 -0
  17. package/nodes/ccu-set-value.js +59 -235
  18. package/nodes/ccu-signal.html +55 -1
  19. package/nodes/ccu-signal.js +52 -9
  20. package/nodes/ccu-switch.html +17 -4
  21. package/nodes/ccu-switch.js +28 -4
  22. package/nodes/ccu-sysvar.html +40 -1
  23. package/nodes/ccu-sysvar.js +78 -8
  24. package/nodes/ccu-value.html +27 -1
  25. package/nodes/ccu-value.js +69 -19
  26. package/nodes/lib/cast.js +59 -14
  27. package/nodes/lib/channelfilter.js +136 -0
  28. package/nodes/lib/dynconfig.js +81 -0
  29. package/nodes/lib/localccu.js +81 -0
  30. package/nodes/lib/message.js +6 -2
  31. package/nodes/lib/metaprovider.js +716 -0
  32. package/nodes/lib/valuestatus.js +145 -0
  33. package/nodes/locales/de/ccu-display.html +17 -0
  34. package/nodes/locales/de/ccu-rpc-event.json +1 -0
  35. package/nodes/locales/de/ccu-sysvar.json +3 -2
  36. package/nodes/locales/de/ccu-value.json +2 -1
  37. package/nodes/locales/en-US/ccu-display.html +17 -0
  38. package/nodes/locales/en-US/ccu-rpc-event.json +3 -2
  39. package/nodes/locales/en-US/ccu-switch.html +12 -0
  40. package/nodes/locales/en-US/ccu-sysvar.json +3 -2
  41. package/nodes/locales/en-US/ccu-value.json +2 -1
  42. package/package.json +1 -1
  43. package/patch-certainonly.py +51 -0
  44. package/roadmap-archive/B-17.md +106 -0
  45. package/roadmap-archive/B-2.md +69 -0
  46. package/roadmap-archive/B-3.md +57 -0
  47. package/roadmap-archive/B-4.md +44 -0
  48. package/roadmap-archive/B-5.md +57 -0
  49. package/roadmap-archive/README.md +14 -0
package/ROADMAP.md CHANGED
@@ -29,8 +29,16 @@ 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. Phases 1 and 2 are done and archived. Next:
33
- Phase 3 (refactor & tests) and the Phase 4 backlog; work continues on
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. **4.4.0 (2026-09-06) = B-17**, the
37
+ openccu-lite port (names, rooms and functions from the metadata API on a
38
+ box without ReGaHSS; the ReGa path unchanged), verified against a real
39
+ `occulited` and archived. Phases 1 and 2 are done and archived.
40
+ Next: Phase 3 (refactor & tests) and the rest of the Phase 4 backlog;
41
+ work continues on
34
42
  master with CI (Node 22/24 × Node-RED 4/5) as the gate. Research basis:
35
43
  the GitHub tracker/PRs/forks, homematic-forum.de, Node-RED release notes and
36
44
  scorecard criteria, and the hm2mqtt.js 3.0 rewrite (same author), which
@@ -53,7 +61,7 @@ whose ROADMAP documents several verified bugs in this repo.
53
61
  - [4. Phase 1 — tooling groundwork](#4-phase-1--tooling-groundwork-no-behavior-change) ✅ [archived](roadmap-archive/phase-1.md)
54
62
  - [5. Phase 2 — compatibility release 4.0.0](#5-phase-2--compatibility-release-400) ✅ [archived](roadmap-archive/phase-2.md)
55
63
  - [6. Phase 3 — refactor & tests](#6-phase-3--refactor--tests)
56
- - [7. Phase 4 — features & devices B-1…B-16](#7-phase-4--features--device-backlog)
64
+ - [7. Phase 4 — features & devices B-1…B-17](#7-phase-4--features--device-backlog)
57
65
 
58
66
  **Reference**
59
67
 
@@ -192,24 +200,25 @@ to 4.3.0**. B-3/B-5 ride along when ready; B-12/B-13 later. The four
192
200
  needs-info issues (#111, #145, #146, #151) are closed as
193
201
  unreproducible if the reporters have not responded by ~2026-12.
194
202
 
195
- | ID | Item | Source |
196
- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
197
- | 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 | Dynamic node configuration via msg — recurring theme [#172](https://github.com/rdmtc/node-red-contrib-ccu/issues/172), [#71](https://github.com/rdmtc/node-red-contrib-ccu/issues/71), [#103](https://github.com/rdmtc/node-red-contrib-ccu/issues/103), [#80](https://github.com/rdmtc/node-red-contrib-ccu/issues/80), [#56](https://github.com/rdmtc/node-red-contrib-ccu/issues/56), plus [#148](https://github.com/rdmtc/node-red-contrib-ccu/issues/148) (SOUNDFILE_LIST via msg), [#158](https://github.com/rdmtc/node-red-contrib-ccu/issues/158) (subflow env config) and [#133](https://github.com/rdmtc/node-red-contrib-ccu/issues/133) — the latter confirmed still broken in 4.0.0: `setValues()` writes msg values into `config` permanently, so the first message's filters stick. Design properly rather than merging PR #173's auto-subscribe | tracker |
199
- | B-3 | Fix the ccu-mqtt node bugs verified in hm2mqtt ROADMAP §1.3 (see §8.2); also [#115](https://github.com/rdmtc/node-red-contrib-ccu/issues/115) get/update method (fresh user interest Apr 2026), [#22](https://github.com/rdmtc/node-red-contrib-ccu/issues/22) missing RPC-topic GUI, [#167](https://github.com/rdmtc/node-red-contrib-ccu/issues/167) stale rooms/functions | hm2mqtt |
200
- | B-4 | Fix/remove the dead `isLocal` detection (`/etc/lighttpd/conf.d/proxy.conf` grep, `ccu-connection.js:346` — file is a stub on firmware ≥ 3.87, so local installs silently go through the proxy) | hm2mqtt §15.4 |
201
- | B-5 | Configurable ping checks ([#44](https://github.com/rdmtc/node-red-contrib-ccu/issues/44)), sysvar node property/status improvements ([#54](https://github.com/rdmtc/node-red-contrib-ccu/issues/54), [#56](https://github.com/rdmtc/node-red-contrib-ccu/issues/56), [#52](https://github.com/rdmtc/node-red-contrib-ccu/issues/52) last-event status, [#124](https://github.com/rdmtc/node-red-contrib-ccu/issues/124) re-read descriptions on poll, [#166](https://github.com/rdmtc/node-red-contrib-ccu/issues/166) immediate sysvar echo, [#96](https://github.com/rdmtc/node-red-contrib-ccu/issues/96) uncertain-filter option) | tracker |
202
- | 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 | Triage the remaining ~60 open issues (snapshot in §12) against phases; close what 4.0 fixes | tracker |
204
- | B-8 | Global object: expose CCU metadata/values via a global context object (old todo item) | old TODO |
205
- | B-9 | Value node: datapoint autocomplete / multiselect (rpc and rpc-event already have it) | old TODO |
206
- | 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 |
207
- | B-11 | Re-init robustness after a CCU outage (found live in the 2026-09-02 smoke test): (a) `rpcCheckInit` returns without rescheduling itself when the interface has no devices in the metadata cache, so interfaces without paired devices (e.g. BidCos-RF on an HmIP-only CCU) never ping and never re-init — after a CCU reboot they stay dead until Node-RED is restarted; (b) a failed `rpcInit` (e.g. the shutting-down CCU answers XML-RPC with an HTML error page → "Unknown XML-RPC tag 'TITLE'") has no retry of its own, so combined with (a) one failed re-init is final; (c) the hardcoded 600 s HmIP-RF pingTimeout means up to 10 min of silent event loss after a CCU reboot — make it configurable together with B-5/#44. Fix shape: arm the watchdog regardless of metadata, retry failed inits with backoff. | smoke test |
208
- | B-12 | Complete the [#27](https://github.com/rdmtc/node-red-contrib-ccu/issues/27) checklist: authentication and TLS for all interface connections (two of four items from 2019 still open; ptweety's TLS-warning reactivation in §9 is related groundwork) | tracker |
209
- | B-13 | Party/holiday mode support ([#161](https://github.com/rdmtc/node-red-contrib-ccu/issues/161), [#156](https://github.com/rdmtc/node-red-contrib-ccu/issues/156)): PARTY_TIME_START/END must be written atomically (putParamset/combined parameter); possibly a dedicated node | tracker |
210
- | B-14 | ✅ **done 2026-09-02** (dev.5) — LEVEL_2 writes remapped to COMBINED_PARAMETER (`L2=<pct>`) in setValue; fixes #136/#154/#175 pending hardware confirmation. Archived: [roadmap-archive/B-14.md](roadmap-archive/B-14.md) | B-1 research |
211
- | B-15 | New HmIP channel types in the signal/display nodes: BSL 2.x replaces DIMMER_VIRTUAL_RECEIVER with OPTICAL_SIGNAL_RECEIVER (LEVEL/COLOR/COLOR_BEHAVIOUR — without COLOR_BEHAVIOUR in the putParamset the LED stays dark, [#177](https://github.com/rdmtc/node-red-contrib-ccu/issues/177)); HmIP-WRCD ch3 is ACOUSTIC_DISPLAY_RECEIVER with DISPLAY_DATA_* datapoints ([#144](https://github.com/rdmtc/node-red-contrib-ccu/issues/144)). Paramset entries for both need reporter dumps. See docs/paramsets.md §4. | B-1 research |
212
- | B-16 | ✅ **done 2026-09-04** (4.2.0) — new `ccu-homeassistant` node: Home Assistant MQTT auto-discovery for checkbox-selected devices, companion to ccu-mqtt (reuses its topics/payload format); lab-verified against HA 2026.9 and she. Archived: [roadmap-archive/B-16.md](roadmap-archive/B-16.md) | user request |
203
+ | ID | Item | Source |
204
+ | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
205
+ | 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 |
206
+ | 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) |
207
+ | 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) |
208
+ | 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) |
209
+ | 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) |
210
+ | 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 |
211
+ | B-7 | ✅ **done 2026-09-04** — both passes complete (§12): 60 → 36 open, all annotated; 8 new defects recorded in §8.3 |
212
+ | B-8 | Global object: expose CCU metadata/values via a global context object (old todo item) | old TODO |
213
+ | B-9 | Value node: datapoint autocomplete / multiselect (rpc and rpc-event already have it) | old TODO |
214
+ | 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 |
215
+ | B-11 | Re-init robustness after a CCU outage (found live in the 2026-09-02 smoke test): (a) `rpcCheckInit` returns without rescheduling itself when the interface has no devices in the metadata cache, so interfaces without paired devices (e.g. BidCos-RF on an HmIP-only CCU) never ping and never re-init — after a CCU reboot they stay dead until Node-RED is restarted; (b) a failed `rpcInit` (e.g. the shutting-down CCU answers XML-RPC with an HTML error page → "Unknown XML-RPC tag 'TITLE'") has no retry of its own, so combined with (a) one failed re-init is final; (c) the hardcoded 600 s HmIP-RF pingTimeout means up to 10 min of silent event loss after a CCU reboot — make it configurable together with B-5/#44. Fix shape: arm the watchdog regardless of metadata, retry failed inits with backoff. | smoke test |
216
+ | B-12 | Complete the [#27](https://github.com/rdmtc/node-red-contrib-ccu/issues/27) checklist: authentication and TLS for all interface connections (two of four items from 2019 still open; ptweety's TLS-warning reactivation in §9 is related groundwork) | tracker |
217
+ | B-13 | Party/holiday mode support ([#161](https://github.com/rdmtc/node-red-contrib-ccu/issues/161), [#156](https://github.com/rdmtc/node-red-contrib-ccu/issues/156)): PARTY_TIME_START/END must be written atomically (putParamset/combined parameter); possibly a dedicated node | tracker |
218
+ | B-14 | ✅ **done 2026-09-02** (dev.5) — LEVEL_2 writes remapped to COMBINED_PARAMETER (`L2=<pct>`) in setValue; fixes #136/#154/#175 pending hardware confirmation. Archived: [roadmap-archive/B-14.md](roadmap-archive/B-14.md) | B-1 research |
219
+ | B-15 | New HmIP channel types in the signal/display nodes: BSL 2.x replaces DIMMER_VIRTUAL_RECEIVER with OPTICAL_SIGNAL_RECEIVER (LEVEL/COLOR/COLOR_BEHAVIOUR — without COLOR_BEHAVIOUR in the putParamset the LED stays dark, [#177](https://github.com/rdmtc/node-red-contrib-ccu/issues/177)); HmIP-WRCD ch3 is ACOUSTIC_DISPLAY_RECEIVER with DISPLAY_DATA_* datapoints ([#144](https://github.com/rdmtc/node-red-contrib-ccu/issues/144)). Paramset entries for both need reporter dumps. See docs/paramsets.md §4. | B-1 research |
220
+ | B-16 | ✅ **done 2026-09-04** (4.2.0) — new `ccu-homeassistant` node: Home Assistant MQTT auto-discovery for checkbox-selected devices, companion to ccu-mqtt (reuses its topics/payload format); lab-verified against HA 2026.9 and she. Archived: [roadmap-archive/B-16.md](roadmap-archive/B-16.md) | user request |
221
+ | B-17 | ✅ **done 2026-09-06** (4.4.0) — [openccu-lite](https://github.com/hobbyquaker/openccu-lite) port: names, rooms and functions from the box's metadata API (`/api/meta/v1`, snapshot + SSE) when `GET /api/meta/v1/version` answers, the ReGaHSS path unchanged otherwise; sysvar/program/script/poll stay in the palette and error per message. Archived: [roadmap-archive/B-17.md](roadmap-archive/B-17.md) | openccu-lite porting kit |
213
222
 
214
223
  ## 8. Bug inventory (diagnosed, not yet fixed)
215
224
 
@@ -253,14 +262,16 @@ caught (the devDep pin to `^1.1.2` is why it never was).
253
262
 
254
263
  ### 8.2 Verified in the hm2mqtt 3.0 rewrite (free, confirmed findings)
255
264
 
256
- - `nodes/ccu-mqtt.js`: the writeable check `!(OPERATIONS) && 2` is always
257
- false; `putParamset` casts with `description[filter.param]` which is
258
- `undefined`, so values pass uncast.
259
- - Empty-name topic bug: devices without a rega name produce
260
- `hm/status//STATE`-style topics.
261
- - `datapointEnum`/`valueEnum` in outgoing messages read
265
+ **All three fixed in 4.3.0 (B-3) / 4.2.0.**
266
+
267
+ - ✅ `nodes/ccu-mqtt.js`: the writeable check `!(OPERATIONS) && 2` is
268
+ always false; `putParamset` casts with `description[filter.param]`
269
+ which is `undefined`, so values pass uncast. — 4.3.0
270
+ - ✅ Empty-name topic bug: devices without a rega name produce
271
+ `hm/status//STATE`-style topics. — 4.2.0
272
+ - ✅ `datapointEnum`/`valueEnum` in outgoing messages read
262
273
  `description.ENUM`, which the interface processes never send — both
263
- have always been `undefined`.
274
+ have always been `undefined`. The names are in `VALUE_LIST`. — 4.3.0
264
275
 
265
276
  ### 8.3 Misc
266
277
 
@@ -268,6 +279,57 @@ caught (the devDep pin to `^1.1.2` is why it never was).
268
279
  and loose `!= undefined` — fix when taking the guard.
269
280
  - Editor HTML ships `console.log` debug leftovers.
270
281
 
282
+ Found in the 2026-09-04 issue triage (all verified against 4.2.0):
283
+
284
+ - ✅ **RSSI conversion is unguarded** (#183, fixed 4.3.0): `getRegaValues()` does
285
+ `dp.value -= 256` for `RSSI_DEVICE`/`RSSI_PEER` unconditionally, so a
286
+ value that is already signed (or `0` for "never received") becomes
287
+ `-318` / `-256`. hm2mqtt's `values.js` has the guard this one lacks:
288
+ only subtract when `typeof value === 'number' && value > 127`. The
289
+ XML-RPC event path needs no conversion — ReGa only.
290
+ - ✅ **Immediate sysvar re-poll is dropped under concurrency** (#166, fixed 4.3.0):
291
+ `setVariable()` calls `regaPoll()` only `if (!this.regaPollPending)`,
292
+ and `regaPoll()` itself no-ops (`rega poll already pending`) while one
293
+ is in flight. Writing several variables at once therefore leaves all
294
+ but the first invisible until the next scheduled poll (30 s default).
295
+ Fix: trailing-edge debounce — set a flag and poll once more when the
296
+ running poll finishes. → B-5.
297
+ - ✅ **`ccu-switch` rule values have no `bool` type** (#51, fixed 4.3.0): the typedInput
298
+ offers `msg/flow/global/str/num/jsonata/env/prev` only, so `true` is
299
+ stored as a string and `true == "true"` is false — users are pushed
300
+ into 0/1. `RED.util.evaluateNodeProperty` already handles `bool`, so
301
+ the fix is the editor list. → §6.4.
302
+ - ✅ **Editor clears `${ENV}` placeholders** (#158, fixed 4.3.0): `autocompleteChannel()`
303
+ blanks Channel and Datapoint whenever the value is not a known channel
304
+ address, which wipes subflow-parameter placeholders on every dialog
305
+ open. Skip the clearing for `${...}` values. → §6.4.
306
+ - **Stale device metadata is never re-read** (#181, related #146; still
307
+ open — 4.3.0's refresh covers names/rooms/functions, not the device
308
+ table): the
309
+ connection answers the CCU's `listDevices` from its persisted cache
310
+ (`ccu_<host>.json`), so the daemon only sends `newDevices` for entries
311
+ the cache did not report. A channel that changes TYPE in place (HMW
312
+ I/O direction change) keeps its old datapoints forever. Workaround is
313
+ deleting the cache file; the fix is a "re-read device data" action on
314
+ the connection node. → B-5 or B-11.
315
+ - **Internal system variables are invisible** (#184, upstream): the
316
+ `variables.rega` script in `homematic-rega` iterates
317
+ `dom.GetObject(ID_SYSTEM_VARIABLES).EnumUsedIDs()`, which skips every
318
+ variable with `Internal() == true` — including the HmIP device-bound
319
+ ones (`svHmIPRainCounterToday_*`). Measured on a CCU3 3.89.8:
320
+ `EnumUsedIDs()` → 2, `EnumIDs()` → 4, the two extra being IDs 40/41,
321
+ which the script hard-codes for exactly this reason. Fix belongs in
322
+ homematic-rega (`EnumIDs()`, drop the special case); open question
323
+ whether internal variables ship by default or behind an option.
324
+ - ✅ **`ccu-mqtt` matches an `rpc` command it cannot execute** (#22, fixed 4.3.0): the
325
+ topic matcher includes `topicInputRpc`, but the class has no `rpc()`
326
+ method, so the match is silently dropped; `topicOutputRpc` is never
327
+ read. → B-3.
328
+ - ✅ **ReGa metadata is read once** (#167, fixed 4.3.0): `getRegaData()` (channels,
329
+ rooms, functions, groups) runs only in the connection constructor; the
330
+ poll refreshes variables and programs only. Rooms/functions added in
331
+ the WebUI stay invisible until redeploy. → B-3.
332
+
271
333
  ## 9. What to take from forks and PRs
272
334
 
273
335
  - **PR [#162](https://github.com/rdmtc/node-red-contrib-ccu/pull/162)**
@@ -329,38 +391,48 @@ resolved/obsolete/wrong-repo), 4 got retest requests and stay open
329
391
  roadmap item below.** Wrong annotations found during triage were
330
392
  corrected in place (#178, #119, #148).
331
393
 
332
- - [#22](https://github.com/rdmtc/node-red-contrib-ccu/issues/22) MQTT Node: No GUI for node-input-topicInputRpc
394
+ **Second pass 2026-09-04 (B-7 continued)**, covering the issues the
395
+ first pass had left without a comment plus #180…#186, transferred here
396
+ from rdmtc/RedMatic on 2026-09-04. 5 closed (#124 fixed in v3.2.1 and
397
+ never closed; #186 fixed by the xmlrpc 2.0 bump; #182 fixed by B-14;
398
+ #185 duplicate of #80; #158 answered — subflow parameters work via
399
+ `${ENV}` substitution), the rest commented with their roadmap item.
400
+ Eight defects were newly diagnosed against 4.2.0 in the process and are
401
+ recorded in §8.3 (#183, #166, #51, #158, #181, #184, #22, #167); #133
402
+ was confirmed rather than merely "to be retested".
403
+
404
+ - [#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
405
  - [#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
406
+ - [#39](https://github.com/rdmtc/node-red-contrib-ccu/issues/39) topic handling vereinheitlichen → §6 (topic.js extracted; D-15 blocks changing the defaults)
407
+ - [#44](https://github.com/rdmtc/node-red-contrib-ccu/issues/44) Configuration Option to deactivate Ping Checks → B-5 — ✅ fixed in 4.3.0
408
+ - [#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
409
+ - [#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
410
+ - [#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
411
+ - [#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
412
  - [#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
413
+ - [#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
414
+ - [#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
415
  - [#81](https://github.com/rdmtc/node-red-contrib-ccu/issues/81) increase test coverage → §6.2
344
416
  - [#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
417
+ - [#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
418
+ - [#103](https://github.com/rdmtc/node-red-contrib-ccu/issues/103) switch node params via msg → B-2 — ✅ fixed in 4.3.0
347
419
  - [#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
420
  - [#106](https://github.com/rdmtc/node-red-contrib-ccu/issues/106) Statusänderung eines Kanals wird nicht übermittelt — ✅ closed 2026-09-02
349
421
  - [#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
422
  - [#111](https://github.com/rdmtc/node-red-contrib-ccu/issues/111) ON_TIME wird nicht initial befüllt
351
423
  - [#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
424
  - [#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
425
+ - [#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
426
  - [#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
427
  - [#117](https://github.com/rdmtc/node-red-contrib-ccu/issues/117) Einbinden HmIP-FCI6 → B-1
356
428
  - [#119](https://github.com/rdmtc/node-red-contrib-ccu/issues/119) HmIP-BROLL wird nicht gefunden (resolved: port misconfiguration) — ✅ closed 2026-09-02
357
429
  - [#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
430
+ - [#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
431
  - [#126](https://github.com/rdmtc/node-red-contrib-ccu/issues/126) Context store property name dot replacement — ✅ closed 2026-09-02
360
432
  - [#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
433
  - [#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
434
  - [#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
435
+ - [#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
436
  - [#136](https://github.com/rdmtc/node-red-contrib-ccu/issues/136) HmIP-FBL → B-1
365
437
  - [#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
438
  - [#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 +441,34 @@ corrected in place (#178, #119, #148).
369
441
  - [#144](https://github.com/rdmtc/node-red-contrib-ccu/issues/144) Signal Node: Integration of HmIP-WRCD → B-1
370
442
  - [#145](https://github.com/rdmtc/node-red-contrib-ccu/issues/145) CCU value Node CUX16 no Output
371
443
  - [#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
444
+ - [#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
445
  - [#149](https://github.com/rdmtc/node-red-contrib-ccu/issues/149) XML-RPC fault mit falscher value? — ✅ closed 2026-09-02
374
446
  - [#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
447
  - [#154](https://github.com/rdmtc/node-red-contrib-ccu/issues/154) HmIP-BBL datapoint LEVEL_2 cannot be set → B-1
376
448
  - [#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
449
  - [#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
450
+ - [#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
451
  - [#159](https://github.com/rdmtc/node-red-contrib-ccu/issues/159) Fehlender CuxD datapoint "DIR" → B-1
380
452
  - [#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
453
  - [#161](https://github.com/rdmtc/node-red-contrib-ccu/issues/161) Feature Request: Node "Party Mode" → B-13
382
454
  - [#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
455
+ - [#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
456
+ - [#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
457
  - [#169](https://github.com/rdmtc/node-red-contrib-ccu/issues/169) "Error: XML-RPC fault: Generic error (UNREACH)" — ✅ closed 2026-09-02
386
458
  - [#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
459
+ - [#172](https://github.com/rdmtc/node-red-contrib-ccu/issues/172) Configure CCU-Value through message → B-2 — ✅ fixed in 4.3.0
388
460
  - [#175](https://github.com/rdmtc/node-red-contrib-ccu/issues/175) HmIP-DRBLI4 Level_2 not working → B-1
389
461
  - [#176](https://github.com/rdmtc/node-red-contrib-ccu/issues/176) Deprecated dependencies → D-4/D-6/D-7 — ✅ closed 2026-09-02
390
462
  - [#177](https://github.com/rdmtc/node-red-contrib-ccu/issues/177) HmIP-BSL 2.0.2 & Signal Node: Color Behaviour missing → B-1
391
463
  - [#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
464
+
465
+ Transferred here from rdmtc/RedMatic on 2026-09-04 (all predate the
466
+ snapshot above):
467
+
468
+ - [#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
469
+ - [#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
470
+ - [#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)
471
+ - [#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
472
+ - [#184](https://github.com/rdmtc/node-red-contrib-ccu/issues/184) Systemvariablen (versteckt) nicht auswählbar → upstream homematic-rega `EnumUsedIDs()` (§8.3)
473
+ - [#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)
474
+ - [#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)
@@ -122,7 +122,9 @@
122
122
  arr.sort((a, b) => a.localeCompare(b));
123
123
  $nodeInputChannel.autocomplete('option', 'source', arr);
124
124
 
125
- if (!data[$nodeInputChannel.val().split(' ')[0]]) {
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},
@@ -29,6 +31,9 @@
29
31
  username: {value: ''},
30
32
  password: {value: ''},
31
33
 
34
+ metaToken: {value: ''},
35
+ metaPort: {value: ''},
36
+
32
37
  queueTimeout: {value: 5000, required: true},
33
38
  queuePause: {value: 250, required: true},
34
39
 
@@ -39,6 +44,18 @@
39
44
  },
40
45
 
41
46
  oneditprepare() {
47
+ // pre-4.3.0 config nodes have neither property - show the defaults
48
+ // the runtime uses rather than an unchecked box / empty field
49
+ if (typeof this.rpcPing === 'undefined') {
50
+ this.rpcPing = true;
51
+ $('#node-config-input-rpcPing').prop('checked', true);
52
+ }
53
+
54
+ if (typeof this.regaMetaInterval === 'undefined') {
55
+ this.regaMetaInterval = 15;
56
+ $('#node-config-input-regaMetaInterval').val(15);
57
+ }
58
+
42
59
  const $nodeConfigInputHost = $('#node-config-input-host');
43
60
  const $nodeConfigInputName = $('#node-config-input-name');
44
61
  const $nodeConfigInputRpcServerHost = $('#node-config-input-rpcServerHost');
@@ -178,6 +195,13 @@
178
195
  <input type="text" id="node-config-input-jackPort" style="width: 70px;" placeholder="2121">
179
196
  </div>
180
197
  </div>
198
+ <div class="form-row">
199
+ <label for="node-config-input-rpcPing"><i class="icon-tag"></i> RPC ping</label>
200
+ <div style="width: 70%; display: inline-block; vertical-align: text-top;">
201
+ <label class="ccu-checkbox"><input type="checkbox" id="node-config-input-rpcPing"> Enabled</label><br>
202
+ <small>Off disables the periodic ping and the timeout-triggered re-init for this connection.</small>
203
+ </div>
204
+ </div>
181
205
  <div class="form-row">
182
206
  <label for="node-config-input-rpcPingTimeout"><i class="icon-tag"></i> RPC ping timeout (s)</label>
183
207
  <input type="text" id="node-config-input-rpcPingTimeout">
@@ -192,6 +216,11 @@
192
216
  <label for="node-config-input-regaInterval"><i class="icon-tag"></i> Rega poll interval (s)</label>
193
217
  <input type="text" id="node-config-input-regaInterval">
194
218
  </div>
219
+ <div class="form-row">
220
+ <label for="node-config-input-regaMetaInterval"><i class="icon-tag"></i> Names/rooms refresh (min)</label>
221
+ <input type="text" id="node-config-input-regaMetaInterval">
222
+ <small>How often channel names, rooms and functions are re-read. 0 = never (the behaviour before 4.3.0).</small>
223
+ </div>
195
224
  <div class="form-row">
196
225
  <label for="node-config-input-queueTimeout"><i class="icon-tag"></i> Queue timeout (ms)</label>
197
226
  <input type="text" id="node-config-input-queueTimeout">
@@ -222,6 +251,16 @@
222
251
  <label for="node-config-input-password"><i class="icon-tag"></i> Password</label>
223
252
  <input type="password" id="node-config-input-password">
224
253
  </div>
254
+ <div class="form-row">
255
+ <label for="node-config-input-metaToken"><i class="icon-tag"></i> openccu-lite token</label>
256
+ <input type="password" id="node-config-input-metaToken" placeholder="olt_...">
257
+ <small>Only for openccu-lite (a CCU ignores this). Leave empty when Node-RED runs on the box.</small>
258
+ </div>
259
+ <div class="form-row">
260
+ <label for="node-config-input-metaPort"><i class="icon-tag"></i> openccu-lite port</label>
261
+ <input type="text" id="node-config-input-metaPort" placeholder="80 / 443">
262
+ <small>Only needed when the box's web server is not on the default port.</small>
263
+ </div>
225
264
  </script>
226
265
 
227
266
 
@@ -281,6 +320,18 @@
281
320
 
282
321
  Weiteres unter <a target="_blank" href="https://nodered.org/docs/user-guide/context">Working</a> with context in der Node-RED Dokumentation.</li>
283
322
  </ul>
323
+ <ul>
324
+ <li><b>openccu-lite Token</b>: Nur für <a href="https://github.com/hobbyquaker/openccu-lite" target="_blank">openccu-lite</a>,
325
+ eine CCU-Firmware ohne ReGaHSS. Namen, Räume und Gewerke kommen dort aus der Metadaten-API der Box;
326
+ dafür wird ein Token benötigt, das auf der Box unter <i>Benutzer</i> erzeugt wird. Läuft Node-RED
327
+ auf der Box selbst (RedMatic), bleibt das Feld leer – das lokale Token wird dann automatisch gelesen.
328
+ Eine CCU/RaspberryMatic/OpenCCU ignoriert das Feld vollständig. Systemvariablen, Programme und
329
+ HM-Scripte gibt es auf openccu-lite nicht; die entsprechenden Nodes bleiben im Flow, melden aber pro
330
+ Nachricht einen Fehler.</li>
331
+ </ul>
332
+ <ul>
333
+ <li><b>openccu-lite Port</b>: Nur nötig, wenn der Webserver der Box nicht auf Port 80 bzw. 443 (TLS) läuft.</li>
334
+ </ul>
284
335
  <ul>
285
336
  <li><b>Authentication</b>: Hier kann angegeben werden wie mit der CCU Kommuniziert werden soll.</li>
286
337
  <ul>