Here's my node-red integration via the mqtt plugin. The LED ON/OFF uses the api POST via /api/system/commands/custom to turn a 2 channel relay module (one for printer, other for led).
For the cam, I have a static image in place. A switch will open the stream for 15 sec and then return to the static image, otherwise the dashboard would leave it streaming continuously. The octoprint web does a good job of disconnecting the stream, when not in use.
I'm not printing Marvin right now, but I set some payloads for this image.