🔴 Node-RED — Flow Documentation

Node-RED runs on forest-mac1 (10.50.0.30) and serves as the integration layer between Home Assistant, Chataigne, FPP players, projectors, and the dashboard.

Installed Packages

PackageVersion
@flowfuse/node-red-dashboard1.30.0
node-red-contrib-sacn0.0.9
node-red-contrib-home-assistant-websocket0.80.3
node-red-contrib-osc1.1.0
node-red-contrib-network-tools2.3.5

Flows Overview

#Flow NameProtocolPurpose
1Projector Simple ControlTCPPower on/off the projector via serial-over-TCP
2Projector Power & Status PullHTTPPoll projector status page every 30 s
3FPP Command PresetsHTTP GETTrigger ALL ON / ALL OFF across FPP players
4Chataigne MasterStates OSCOSC / sACNSend AllOn / AllOff to Chataigne & direct DMX
5Butterfly ProjectionWebSocketSend OFF command to forest-mac2
6Flow 1 — Network Performance MonitorICMPPing 63 devices, build dashboard
7Flow 2 — MadMapper OSC ListenerOSC (UDP)Listen for MadMapper telemetry on port 9090

Flow: Projector Simple Control

Sends TCP commands to the projector at 10.50.0.5:10000.

Command Sequences

ActionStepCommandNotes
Power ON10000\rWake / handshake
2Wait 3 sStagger delay
3C00\rPower ON command
Power OFF10000\rWake / handshake
2Wait 2 sStagger delay
3C01\rPower OFF command
⚠️
Stagger delay is critical. The projector will not accept the power command if sent immediately after the handshake. Always wait the specified delay.

Trigger Sources

SourceEntity / EventAction
Home Assistantinput_boolean.butterfly_wings ONPower ON sequence
Home Assistantinput_boolean.butterfly_wings OFFPower OFF sequence
ChataigneProjectorOnPower ON sequence
ChataigneProjectorOffPower OFF sequence
Home Assistantswitch.dmx_powerPower ON/OFF
Home Assistantinput_boolean (lasers)Power ON/OFF

Mac WebSocket Targets

TargetIPPortProtocol
Mac1 (forest-mac1)10.50.0.308080WebSocket
Mac2 (forest-mac2)10.50.0.318080WebSocket
Mac3 (forest-mac3)10.50.0.328080WebSocket
Mac4 (forest-mac4)10.50.0.338080WebSocket

HA Virtual Entities

Entity IDTypePurpose
button.nodered_projector_onButtonTrigger projector power ON
button.nodered_projector_offButtonTrigger projector power OFF
button.nodered_fpp_all_onButtonTrigger FPP ALL ON
button.nodered_fpp_all_offButtonTrigger FPP ALL OFF
switch.nodered_dmx_powerSwitchToggle DMX power relay
switch.nodered_butterfly_wingsSwitchToggle butterfly projection
switch.nodered_lasersSwitchToggle laser enable

Flow: Projector Power & Status Pull

Polls GET http://10.50.0.5/power.htm every 30 seconds and parses the status code from the response body.

Status Code Parser

Code (hex)Meaning
00ON — Normal operation
04OFF — Power management
08OFF — Normal
10Service needed
20Cooling down
21Cooling down (variant)
24Cooling down (variant)
28Cooling down (variant)
2CCooling down (variant)
40Starting up
80OFF (variant)
81OFF (variant)
88OFF (variant)
8COFF (variant)

HA Entities Updated

Entity IDTypeValue
input_boolean.projector_powerBooleanON if code = 00, else OFF
input_text.projector_statusTextHuman-readable status string
input_text.projector_power_statusTextRaw hex code from response

Flow: FPP Command Presets

Sends HTTP GET requests to all FPP player endpoints to trigger preset commands. Slot 1 = ALL ON, Slot 2 = ALL OFF.

FPP Endpoints

DeviceIPEndpoint Pattern
forest-pix110.50.0.11http://10.50.0.11/api/command/...
forest-pix210.50.0.12http://10.50.0.12/api/command/...
forest-pix310.50.0.13http://10.50.0.13/api/command/...
forest-pix410.50.0.14http://10.50.0.14/api/command/...
forest-pix510.50.0.15http://10.50.0.15/api/command/...
forest-minipix110.50.0.20http://10.50.0.20/api/command/...
forest-minipix210.50.0.21http://10.50.0.21/api/command/...
forest-minipix310.50.0.22http://10.50.0.22/api/command/...
forest-minipix510.50.0.24http://10.50.0.24/api/command/...

Trigger Sources

Triggered by button.nodered_fpp_all_on and button.nodered_fpp_all_off from Home Assistant, or by Chataigne MasterStates.


Flow: Chataigne MasterStates OSC

Sends OSC messages to Chataigne on localhost:8000.

OSC AddressValueAction
/MasterStates/AllOn1Activate AllOn state in Chataigne
/MasterStates/AllOff1Activate AllOff state in Chataigne

Also sends sACN directly to 10.50.0.145 (Welcome DMX6) for DMX control independently of Chataigne.


Flow: Butterfly Projection

Sends an OFF command via WebSocket to forest-mac2 (10.50.0.31:8080) to disable the butterfly projection.


Flow 1: Network Performance Monitor

Pings 63 devices every 60 seconds. Results are displayed on the Node-RED dashboard at /Control.

Thresholds

MetricWarning Threshold
Latency> 100 ms
Packet Loss> 5%
Availability< 95%

Dashboard uses an 8-column grid layout with individual tiles per device.


Flow 2: MadMapper OSC Listener

Listens on UDP port 9090 for OSC messages from MadMapper.

OSC Mappings

OSC AddressDescription
/madmapper/play/statePlayback state (playing / stopped)
/project/nameCurrent project name
/output/enabledOutput enabled flag
/fpsCurrent frame rate
ℹ️
MadMapper is considered offline if no OSC message is received within 8 seconds.

WebSocket Architecture Summary

SourceTargetPortDirectionPurpose
Node-REDforest-mac18080OutboundLocal control commands
Node-REDforest-mac28080OutboundButterfly projection control
Node-REDforest-mac38080OutboundShow control relay
Node-REDforest-mac48080OutboundShow control relay
ChataigneNode-REDVariousInboundTrigger events from show control
Home AssistantNode-REDWS APIBidirectionalEntity state changes & service calls

Action Items

#ItemPriorityStatus
1Confirm all 63 ping targets are currentMediumOpen
2Add error handling for projector TCP timeoutHighOpen
3Document sACN universe mapping to Welcome DMX6MediumOpen
4Verify MadMapper OSC port is not conflicting with other listenersLowOpen
5Add dashboard alerts for projector cooling-down statesMediumOpen