node-red-contrib-dmx-for-ha 0.4.8 → 0.5.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.
Files changed (42) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +49 -0
  3. package/node-red-contrib-dmx-for-ha/LICENSE +28 -0
  4. package/node-red-contrib-dmx-for-ha/README.md +587 -0
  5. package/node-red-contrib-dmx-for-ha/docs/config_node_spec.md +236 -0
  6. package/node-red-contrib-dmx-for-ha/docs/dmx_node_env_reference.md +341 -0
  7. package/node-red-contrib-dmx-for-ha/docs/master_todo.md +428 -0
  8. package/node-red-contrib-dmx-for-ha/docs/node_contracts.md +278 -0
  9. package/node-red-contrib-dmx-for-ha/docs/nr_subflow_gotchas.md +258 -0
  10. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-button.html +326 -0
  11. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-button.js +284 -0
  12. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-config.html +270 -0
  13. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-config.js +99 -0
  14. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-dmx-group.html +387 -0
  15. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-dmx-group.js +410 -0
  16. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-dmx.html +618 -0
  17. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-dmx.js +808 -0
  18. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-pir.html +337 -0
  19. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-pir.js +306 -0
  20. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-relay.html +329 -0
  21. package/node-red-contrib-dmx-for-ha/nodes/ha-mqtt-relay.js +424 -0
  22. package/node-red-contrib-dmx-for-ha/package.json +39 -0
  23. package/node-red-contrib-dmx-for-ha/subflow/README.md +35 -0
  24. package/node-red-contrib-dmx-for-ha/subflow/button_node_v5.0.3.js +324 -0
  25. package/node-red-contrib-dmx-for-ha/subflow/dmx_group_node_v0.3.8.js +860 -0
  26. package/node-red-contrib-dmx-for-ha/subflow/dmx_node_v0.5.9.js +1994 -0
  27. package/node-red-contrib-dmx-for-ha/subflow/pir_node_v1.0.3.js +365 -0
  28. package/node-red-contrib-dmx-for-ha/subflow/relay_node_v4.0.2.js +553 -0
  29. package/node-red-contrib-dmx-for-ha/subflow/subflow_definitions.json +6154 -0
  30. package/nodes/ha-mqtt-button.html +1 -1
  31. package/nodes/ha-mqtt-button.js +8 -1
  32. package/nodes/ha-mqtt-config.html +16 -2
  33. package/nodes/ha-mqtt-config.js +4 -2
  34. package/nodes/ha-mqtt-dmx-group.html +1 -1
  35. package/nodes/ha-mqtt-dmx-group.js +5 -1
  36. package/nodes/ha-mqtt-dmx.html +1 -1
  37. package/nodes/ha-mqtt-dmx.js +6 -1
  38. package/nodes/ha-mqtt-pir.html +1 -1
  39. package/nodes/ha-mqtt-pir.js +5 -1
  40. package/nodes/ha-mqtt-relay.html +1 -1
  41. package/nodes/ha-mqtt-relay.js +5 -1
  42. package/package.json +2 -2
package/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ node-red-contrib-dmx-for-ha
5
+ Copyright (C) 2024-2026 DeSwaggy
6
+
7
+ This program is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
11
+
12
+ This program is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
16
+
17
+ You should have received a copy of the GNU General Public License
18
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
19
+
20
+ ---
21
+
22
+ Full licence text: https://www.gnu.org/licenses/gpl-3.0.txt
23
+
24
+ ADDITIONAL NOTE:
25
+ This package was built from 6+ years of real-world professional
26
+ installation experience. If you use it, improve it, or build on it —
27
+ please contribute your changes back to the community. That's the spirit
28
+ of this licence and the spirit in which it was written.
package/README.md CHANGED
@@ -64,6 +64,16 @@ Most DMX implementations require either expensive proprietary hardware or comple
64
64
  - Configurable DMX floor value — prevents low-value flicker on hardware that needs it
65
65
  - Debug mode per node — 12hr auto-disable, safe to leave in production flows
66
66
 
67
+ ## Licence
68
+
69
+ This package is licensed under **[GPL v3](https://www.gnu.org/licenses/gpl-3.0.txt)**.
70
+
71
+ You are free to use, modify, and distribute this package. Any derivative works must be distributed under the same GPL v3 licence. This package may not be taken proprietary, rebranded as closed source, or distributed without crediting the original author.
72
+
73
+ This package was built from 6+ years of real-world professional installation experience. If you use it, improve it, or build on it — please contribute your changes back to the community.
74
+
75
+ ---
76
+
67
77
  > **Note:** This is building automation DMX — fixtures, decoders, dimmers, relay switching. Not entertainment industry DMX (no movers, gobos, or fixture profiles). DMX is an open standard and this package works with any DMX controller that accepts MQTT payloads.
68
78
 
69
79
  ---
@@ -290,6 +300,45 @@ Entity IDs in HA are locked to the fixture ID and survive friendly name changes.
290
300
 
291
301
  ---
292
302
 
303
+ ## Retain discovery — why the default is false
304
+
305
+ If you search "MQTT discovery retain" you will find HA community posts and documentation recommending `retain=true` for discovery messages. **This advice is correct for ESP and battery-powered IoT devices — but not for Node-RED.**
306
+
307
+ ### Why ESP devices need retain=true
308
+
309
+ An ESP sensor runs independently of HA. When HA restarts or updates, the ESP device has no way of knowing — it thinks it already discovered itself and won't re-send the discovery payload. Without `retain=true`, the device disappears from HA permanently until the ESP reboots.
310
+
311
+ ```
312
+ ESP device Home Assistant
313
+ ────────── ──────────────
314
+ Sends discovery once → HA restarts
315
+ Doesn't know HA restarted Retained message restores device ✓
316
+ ```
317
+
318
+ ### Why Node-RED is different
319
+
320
+ Node-RED sits on the same server stack as HA. They are tightly coupled — if one goes down the other knows immediately via the websocket connection. When HA restarts, NR reconnects and re-discovers every device automatically. If NR goes down, HA *should* show nothing — because nothing is working.
321
+
322
+ ```
323
+ Node-RED + Home Assistant (same server):
324
+ NR down → no devices in HA → client sees fault immediately ✓
325
+ HA restart → NR reconnects → re-discovers everything ✓
326
+ retain=true → ghost devices → client confused, support call ✗
327
+ ```
328
+
329
+ ### The config node setting
330
+
331
+ The `Retain discovery` setting on the config node controls this behaviour:
332
+
333
+ | Setting | Behaviour | Recommended for |
334
+ |---|---|---|
335
+ | `false` (default) | Devices disappear if NR stops | Professional installs — clear fault indication |
336
+ | `true` | Devices persist if NR stops | Standalone IoT, voice assistant integrations where entity persistence matters |
337
+
338
+ **Default is `false`** — if a client opens their HA dashboard and sees no lights, they know something is wrong with Node-RED. This is the correct behaviour for a professionally installed system where NR and HA live on the same hardware.
339
+
340
+ ---
341
+
293
342
  ## MQTT topic formats
294
343
 
295
344
  | Node | Topic |
@@ -0,0 +1,28 @@
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ node-red-contrib-dmx-for-ha
5
+ Copyright (C) 2024-2026 DeSwaggy
6
+
7
+ This program is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
11
+
12
+ This program is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
16
+
17
+ You should have received a copy of the GNU General Public License
18
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
19
+
20
+ ---
21
+
22
+ Full licence text: https://www.gnu.org/licenses/gpl-3.0.txt
23
+
24
+ ADDITIONAL NOTE:
25
+ This package was built from 6+ years of real-world professional
26
+ installation experience. If you use it, improve it, or build on it —
27
+ please contribute your changes back to the community. That's the spirit
28
+ of this licence and the spirit in which it was written.