A Node-RED node to interact with the Elgato Stream Deck products.
npm install --save node-red-contrib-streamdeck
npm install -g node-red-contrib-streamdeck
On Linux, you will need to add these to /etc/udev/rules.d/50-elgato.rules
:
SUBSYSTEM=="input", GROUP="input", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="666", GROUP="plugdev"
And run sudo udevadm control --reload-rules
The input node will allow you to get which keys are pressed on the unit.
The key index will be sent as msg.topic
as an integer starting from 0. The key state (down or up) will be sent as an integer in msg.payload
. 1 is down and 0 is up.
The output node is used to send images to the keys and control various functions.
payload: This should be an object containing a command property. Some commands require additional properties, described in the commands section below.
topic: An integer representing the index of the key to send the command to, starts at 0.
Should have a value property containing an array of color values in RGB order, between 0 and 255. keyIndex should be passed as the topic.
Should have an image property containing either a file path, url or buffer containing image data. keyIndex should be passed as the topic.
Same as fillImage but will fill the entire panel.
Will clear a key with keyIndex passed as topic.
Will clear the whole panel.
Will show the default Stream Deck logo.
Should have a value property containing an integer between 0 and 100.
Will list the available Stream Decks.
Example
{
"topic": 3
"payload" : {
"command": "fillImage",
"image": "./node-red.png"
}
}