Qlab Node-Red Nodes

384 views
Skip to first unread message

slev...@gmail.com

unread,
Jun 22, 2017, 7:39:27 AM6/22/17
to QLab
Hey all! I just published the first full draft of node-red-contrib-qlab, a set of Node-Red nodes to communicate with Qlab via OSC. 

If you're not familiar with Node-Red (and honestly, why would you be?), you can learn about it here: https://nodered.org/ and here: https://nodered.org/about/. But in short, Node-Red is a tool that can be used to connect different systems together, using a visual wire/flow based interface. It was designed with the "Internet of Things" in mind, but has many possible applications in the world of live theatre. In my own space, I have already used it to serve as a monitor for a backup Qlab system, serve a simpler interface to control projectors remotely, run a local chat application to talk to backstage, and now the Qlab node. 

It was possible to interface Node-Red with Qlab before, but it was a major pain. The goal of creating these nodes was to make it much simpler and easier. 



To give it a try, follow the instructions to download and install Node-Red here: http://nodered.org/docs/getting-started/. Then look over the instructions for how to add nodes, and follow the instructions to add the Qlab nodes here: https://github.com/slevey087/node-red-contrib-qlab.

Cautionary warning: this is in TESTING only. DO NOT put it into a show without testing your specific application thoroughly, or if you want to be really safe, don't put it into a show at all. I've toyed around with it, and it seems to do what it's supposed to do, but your experience may be different. By downloading it, you're basically agreeing to help me test it. Cheers!

Sam



Richard Cooper

unread,
Jun 22, 2017, 5:56:48 PM6/22/17
to QLab
This is pretty cool, once I'd got Node-RED installed on a spare Raspberry-pi (a bit long winded but maybe I should have spent more time reading the instructions) I was able to get cues to be triggered in QLab via tweets in about half an hour, with no previous experience of Node-RED. Latency of tweeting #Go1 to cue 1 going is remarkably good!

One thing I've noticed so far, is that if I've set up a QLab config targeting an IP address that does not have QLab running on it Node-RED quits completely with

22 Jun 21:19:26 - [red] Uncaught Exception:
22 Jun 21:19:26 - Error: connect ECONNREFUSED 192.168.1.7:53000
    at Object.exports._errnoException (util.js:1018:11)
    at exports._exceptionWithHostPort (util.js:1041:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)

So far I'm finding Node-RED to be quite unstable, but as it's a hastily thrown together Raspberry-pi installation I'll reserve judgement for further testing. What has your experience of stability been?

Good work though, many possibilities.

Richard

slev...@gmail.com

unread,
Jun 23, 2017, 12:33:59 AM6/23/17
to QLab
Nice Richard, you get the prize for first bug!

On first pass though, I can't seem to reproduce the issue, and the code that I thought might be responsible for this seems to look ok to me. Can you give me a little more information on what your setup is and what you're doing that's triggering this? Specifically, what versions of NodeJS and Node-Red? since you mentioned a Pi, I'm assuming that the computer running Node-Red and the computer you're trying to communicate with (the one not running Qlab at the time) are different computers, but on the same local network? and what actions trigger this, trying to send a command, or merely hitting deploy? If all this is as I'm expecting, then I may ask you to try one or two things to help me narrow down the cause (if you don't mind :)

As for Node-Red in general, I've found it to be usually pretty stable, but I will say that in development it can be pretty shaky. Because it's meant to integrate code from many sources, the default behavior when it has an un-handled error is to crash. This is intentional, to prevent Node-Red from operating in an unknown state for very long, but it sure makes field testing a pain. One way that I think you can get around this though is to setup Node-Red to run as a service, so that it automatically loads up on boot and restarts on crashing. There's some instructions for that on the Node-Red Raspberry Pi page, here.

Chris Ashworth

unread,
Jun 23, 2017, 10:01:51 AM6/23/17
to slev...@gmail.com, ql...@googlegroups.com
Very cool Sam, thank you for sharing this!
Reply all
Reply to author
Forward
0 new messages