node-red-contrib-velbus-2026 0.9.1 → 0.9.2

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.
@@ -14,6 +14,40 @@ All feedback via GitHub issues, with examples and debug captures where possible.
14
14
 
15
15
  ---
16
16
 
17
+ ## v0.9.2 — 09/07/2026
18
+
19
+ ### velbus-glass-panel — VMBGPOD (0x28) registry gap fixed
20
+
21
+ - **Found by Stuart:** scanning his own home installation showed `unknown_0x28`
22
+ for three real modules — the palette had never included this type at all.
23
+ - **Real-world significance:** per the VLP training dataset analysed earlier
24
+ in this project, VMBGPOD is one of the **most common** glass panel types
25
+ in the field (978 occurrences, second only to VMB4RYLD and VMBDMI-R) — a
26
+ genuine, consequential gap, not an edge case. Only its V2 sibling
27
+ (`VMBGPOD-2`, 0x3D) had ever been added.
28
+ - Added to both `lib/glass-panel-types.js` (server-side) and the duplicate
29
+ type list in `velbus-glass-panel.html` (editor-side dropdown/display) —
30
+ confirmed both needed updating, not just one.
31
+ - **Confirmed from protocol_vmbgpod.pdf:** OLED display present; no
32
+ open-collector commands anywhere in the document (distinct from `VMBGPO`,
33
+ 0x21, a different product despite the similar name — that one does have
34
+ OC support).
35
+ - **One real mistake caught and corrected before shipping:** first pass
36
+ copied the channel count (32) from `VMBGPO` on the assumption it was the
37
+ closest sibling. Cross-checking the editor's own duplicate type list
38
+ before finalising showed `VMBGPOD-2` — the *actual* V2 sibling of this
39
+ same product line — lists 4 channels, not 32. Corrected to 4. Worth
40
+ remembering: when modelling a new registry entry on an existing one,
41
+ check for a same-name generational sibling before assuming the
42
+ closest-looking name is the right reference.
43
+ - Also identified in the same scan, **not yet added:** `VMBKP` (0x42,
44
+ "Keypad interface module") — a substantial 28-page protocol with its own
45
+ per-channel LED control layer, genuinely new territory rather than a
46
+ quick registry addition. Flagged for separate scoping, same approach as
47
+ velbus-energy before it was built.
48
+
49
+ ---
50
+
17
51
  ## v0.9.1 — 08/07/2026
18
52
 
19
53
  ### Address validation bug — 12 of 19 node types, any address ≥100 decimal
package/HANDOVER.md CHANGED
@@ -6,7 +6,7 @@ you're a new contributor, a new maintainer, or an AI assistant starting a fresh
6
6
  with no memory of previous work — this document should be sufficient on its own, together
7
7
  with the source code in this repository, to continue development competently.
8
8
 
9
- Current state at time of writing: **v0.9.0, 19 nodes, published on npm.**
9
+ Current state at time of writing: **v0.9.2, 19 nodes, published on npm.**
10
10
 
11
11
  ---
12
12
 
@@ -106,7 +106,7 @@ lib/ Shared code — protocol utilities and per-module-fam
106
106
  dimmer-types.js Original-series dimmer module type registry
107
107
  dimmer-types-20.js V2 dimmer module type registry (incl. LED grouping mode / Device
108
108
  Type table for VMB4LEDPWM-20)
109
- glass-panel-types.js All 26 glass panel module types in one registry (hasOled/hasPir/
109
+ glass-panel-types.js All 27 glass panel module types in one registry (hasOled/hasPir/
110
110
  hasOc/minMapVer flags per type)
111
111
  pir-types.js / pir-types-20.js PIR sensor module type registries
112
112
  sensor-types.js / sensor-types-20.js Sensor/meteo module type registries
@@ -266,7 +266,7 @@ or a string before assuming the parsing logic itself is wrong.
266
266
  | `velbus-relay-20` | Velbus (outputs) | V2 relays: VMB1RYS-20, VMB4RYLD-20, VMB4RYNO-20 |
267
267
  | `velbus-dimmer` | Velbus (outputs) | Original-series dimmers: VMBDMI, VMBDMI-R, VMB4DC |
268
268
  | `velbus-dimmer-20` | Velbus (outputs) | V2 dimmers: VMB2DC-20, VMB8DC-20, VMB4LEDPWM-20 (incl. RGB/RGBW grouping mode) |
269
- | `velbus-glass-panel` | Velbus (inputs) | All 26 glass panel types (original + V2), buttons/OLED/PIR/open-collector as applicable per type |
269
+ | `velbus-glass-panel` | Velbus (inputs) | All 27 glass panel types (original + V2), buttons/OLED/PIR/open-collector as applicable per type |
270
270
  | `velbus-thermostat` | Velbus (inputs) | Thermostat function on any glass panel module that has one — same address as the corresponding glass-panel node, coexists without conflict |
271
271
  | `velbus-button` | Velbus (inputs) | Dedicated push-button modules: VMB8PB, VMB8PBU, VMB6PBN, VMB2PBN, VMB4PB, VMB6PB-20 |
272
272
  | `velbus-pir` | Velbus (inputs) | Original-series PIR: VMBPIRO-10, VMBPIRM, VMBPIRC, VMBPIRO |
@@ -323,13 +323,14 @@ blue (`#4A90D9`).
323
323
  | 0x44 | VMB4PB | velbus-button |
324
324
  | 0x4C | VMB6PB-20 | velbus-button |
325
325
 
326
- ### Glass panels (all → velbus-glass-panel, 26 types)
326
+ ### Glass panels (all → velbus-glass-panel, 27 types)
327
327
  | Type byte | Module | OLED | PIR | Open collector | Min. map version |
328
328
  |---|---|---|---|---|---|
329
329
  | 0x1E | VMBGP1 | no | no | unconfirmed¹ | — |
330
330
  | 0x1F | VMBGP2 | no | no | unconfirmed¹ | — |
331
331
  | 0x20 | VMBGP4 | no | no | unconfirmed¹ | — |
332
332
  | 0x21 | VMBGPO | yes | no | yes | 2 |
333
+ | 0x28 | VMBGPOD | yes | no | no | — |
333
334
  | 0x2D | VMBGP4PIR | no | yes | unconfirmed¹ | — |
334
335
  | 0x34 | VMBEL1 | no | no | yes | 2 |
335
336
  | 0x35 | VMBEL2 | no | no | yes | 2 |
@@ -602,7 +603,7 @@ about why in the commit message.
602
603
 
603
604
  - **Generational split.** Nodes generally split at the V2.0 boundary — one node for
604
605
  original-series, a separate node for V2. **Exceptions:** `velbus-glass-panel` (one
605
- node covers all 26 types, both generations, via the type registry's per-type flags
606
+ node covers all 27 types, both generations, via the type registry's per-type flags
606
607
  rather than a code-level split), `velbus-thermostat` (covers the thermostat function
607
608
  on any glass panel type), `velbus-meteo` (only one generation exists), and the blind
608
609
  family (`velbus-blind` / `velbus-blind-s` / `velbus-blind-20`, split by actual protocol
@@ -770,6 +771,14 @@ orientation at the time of writing:
770
771
 
771
772
  ## 13. Known open issues
772
773
 
774
+ - **`VMBKP` (0x42, "Keypad interface module") has no node at all.** Found scanning a
775
+ real installation (Stuart's home) alongside the `VMBGPOD` gap below — a genuinely new
776
+ module type, not yet scoped. Its protocol PDF (`protocol_vmbkp.pdf`, 28 pages) is
777
+ substantial: channel status, module status, and a full per-channel LED control layer
778
+ (clear/set/slow-blink/fast-blink/very-fast-blink), similar in spirit to `velbus-button`
779
+ but with LED feedback control `velbus-button` doesn't have. This needs the same
780
+ "how much work would this involve" scoping pass `velbus-energy` got before it was
781
+ built, not a quick bolt-on to an existing node.
773
782
  - **Open-collector support** on several glass panel types (marked "unconfirmed" in the
774
783
  registry in section 6) has not been verified against real hardware — the protocol PDFs
775
784
  are ambiguous or silent on some of these. Sending `0x01`/`0x02`/`0x03` open-collector
@@ -61,6 +61,30 @@ const GLASS_PANEL_TYPES = {
61
61
  minMapVer: 2,
62
62
  series: 'original',
63
63
  },
64
+ 0x28: {
65
+ name: 'VMBGPOD',
66
+ // Added 09/07/2026 — found as "unknown_0x28" scanning a real installation.
67
+ // One of the most common glass panel types in the field (978 occurrences
68
+ // across the VLP training dataset analysed earlier in this project,
69
+ // second only to VMB4RYLD and VMBDMI-R) — a genuine gap, not an edge case.
70
+ // Source: protocol_vmbgpod.pdf (ed.6, 04/12/2024), "Touch panel with Oled
71
+ // display". Distinct from VMBGPO (0x21) despite similar naming/features —
72
+ // VMBGPOD's protocol PDF has no open-collector command at all (checked:
73
+ // no "collector" or "channel 18"-style pattern anywhere in the document),
74
+ // whereas VMBGPO's family confirms OC support. These are NOT the same
75
+ // hardware feature set despite the name similarity.
76
+ // channels: 4, matched against VMBGPOD-2 (0x3D) — the correct sibling,
77
+ // being the V2 version of this SAME product line. (First attempt at this
78
+ // entry wrongly copied VMBGPO's 32 — a different product that just
79
+ // happens to have a similar name. Caught by cross-checking the editor's
80
+ // own duplicate type list before finalising, not from the PDF directly.)
81
+ channels: 4,
82
+ hasOled: true,
83
+ hasPir: false,
84
+ hasOc: false, // confirmed: no OC commands anywhere in this PDF
85
+ minMapVer: null, // not found stated in this PDF
86
+ series: 'original',
87
+ },
64
88
  0x2D: {
65
89
  name: 'VMBGP4PIR',
66
90
  channels: 8,
@@ -6,6 +6,7 @@
6
6
  0x1E: { name: 'VMBGP1', channels: 1, oled: false, pir: false, series: 'original' },
7
7
  0x1F: { name: 'VMBGP2', channels: 2, oled: false, pir: false, series: 'original' },
8
8
  0x21: { name: 'VMBGPO', channels: 32, oled: true, pir: false, series: 'original' },
9
+ 0x28: { name: 'VMBGPOD', channels: 4, oled: true, pir: false, series: 'original' },
9
10
  0x2D: { name: 'VMBGP4PIR', channels: 8, oled: false, pir: true, series: 'original' },
10
11
  0x34: { name: 'VMBEL1', channels: 1, oled: false, pir: false, series: 'original' },
11
12
  0x35: { name: 'VMBEL2', channels: 2, oled: false, pir: false, series: 'original' },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-red-contrib-velbus-2026",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Node-RED palette for Velbus building automation \u2014 relay, dimmer, glass panel, PIR, blind, sensor, meteo, clock nodes. Original and V2 (-20) series.",
5
5
  "keywords": [
6
6
  "node-red",
Binary file