@mysterycode/node-red-sacn
Version:
Implementation of sACN (Streaming ACN) for Node-RED
113 lines (79 loc) • 10.7 kB
Markdown
# sACN for Node-RED
Simple Implementation
of [sACN](https://artisticlicenceintegration.com/technology-brief/technology-resource/sacn-and-art-net/) (Streaming ACN)
for [Node-RED](https://nodered.org).
## Requirements
Required version of Node-RED: v4.0.5
This package requires [`sacn`](https://www.npmjs.com/package/sacn) as library to interact by sACN.
## Installation
See the list below for the
npm package names, or [search npm](https://www.npmjs.org/search?q=node-red-sacn).
To install - either use the manage palette option in the editor, or change to your Node-RED user directory.
cd ~/.node-red
npm install @mysterycode/node-red-sacn
Copyright MysteryCode and other contributors under [GNU GENERAL PUBLIC LICENSE Version 3](LICENSE).
## Node Usage
### sACN in
This node can be used to read one or multiple universes send by sACN.
#### Parameters:
| Paremeter | Description | Possible Values | Default Value | Mandatory |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | ---------------------------- | --------- |
| universe | The universe that is meant to be observed. | `\d+` (`1` to `63999`) | `1` | yes |
| mode | Defines whether the node returns the values of every read sACN package (passthrough mode), or merged values using HTP or LTP. | `passthrough`, `htp`, `ltp` | `htp` | yes |
| output | Defines wether the node sends only changed values or the whole universe. | `full`, `changes` | `full` | yes |
| IP-address | IP-Address of the network-interface that should be used for reading from sACN. | `\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\` (_any valid ip-address_) | _empty_ | no |
| port | The network port which should be used for reading sACN. | `\d+` | _empty_ (defaults to `5568`) | no |
#### Output for direct-mode:
| Property | Description |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `sequence` | sACN packets are given a packet sequence number so that the receiver can keep the sequence of packets from a given sender. (`1` to `255`) |
| `source` | IP-Address of the sender. |
| `priority` | Priority of the sender. (`1` to `200`) |
| `universe` | Id of the universe the package is addressed to. |
| `payload` | array containing the dmx values as **percentage** by dmx channel. DMX-Channel `1` starts at key `1`, not `0`. (`Array<number, number>`) |
#### Output for merging-modes (HTP or LTP):
| Property | Description |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `universe` | Id of the universe the package is addressed to. |
| `payload` | array containing the dmx values as **percentage** by dmx channel. DMX-Channel `1` starts at key `1`, not `0`. (`Array<number, number>`) |
### sACN out
This node can be used to send one universe using sACN.
#### Parameters:
| Paremeter | Description | Possible Values | Default Value | Mandatory |
| ----------- | ------------------------------------------------------------------------- | -------------------------------------------------------------- | ---------------------------- | --------- |
| universe | The universe that is meant to be observed. | `\d+` (`1` to `63999`) | `1` | yes |
| source-name | The name for the sACN-sender that should be displayed within the network. | _any string below 50 characters_ | `Node-RED` | yes |
| speed | Defines the frequency for sending sACN-packages | `once (0Hz)`, `24Hz`, `27Hz`, `30Hz`, `40Hz`, `44Hz` | `0Hz` | yes |
| priority | The priority that should be used for the sACN-sender. | `\d+` (`1` to `200`) | `100` | yes |
| IP-address | IP-Address of the network-interface that should be used for sending sACN. | `\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\` (_any valid ip-address_) | _empty_ | no |
| port | The network port which should be used for reading sACN. | `\d+` | _empty_ (defaults to `5568`) | no |
#### Expected input:
| Property | Description |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `payload` | array containing the dmx values as **percentage** by dmx channel. DMX-Channel `1` starts at key `1`, not `0`. (`Array<number, number>`) |
### Scene-Controller
This node can be used to record scenes and play them afterwards.
#### Parameters:
| Paremeter | Description | Possible Values | Default Value | Mandatory |
| --------- | ----------- | --------------- | ------------- | --------- |
#### Expected input:
| Property | Description | Mandatory |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------- |
| `action` | the action to be executed - `save` to save a preset, `play` to play a saved preset, `reset` to reset | yes |
| `scene` | for action | yes, for actions `save`, `play` |
| `universe` | if only one universe is handled, this parameter is mandatory and contains the used universe | yes |
| `payload` | contains the values to record. it might be an array (key 0-511) containing the values for a single universe,<br/>an object (keys 1-512) containing the values for a single universe or<br/>an object (any numeric keys) containing objects (keys 1-512) containing an universe each. | yes, for action `save` |
#### Output for single universe:
| Property | Description |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `universe` | ID of the universe the package is addressed to when a single universe is used. (`number`) |
| `payload` | Array containing the dmx values as **percentage** by dmx channel. DMX-Channel `1` starts at key `1`, not `0`. (`Array<number, number>`) |
| `scene` | The scene that is played (`number`) |
| `reset` | Identifies a reset message for action `reset`, otherwise it does not exist. (`true`) |
#### Output for multiple universes:
| Property | Description |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `universe` | (`undefined`) |
| `payload` | Object containing one object per universe. DMX-Channel `1` starts at key `1`, not `0`. (`object<number, object<number, number>>`) |
| `scene` | The scene that is played (`number`) |
| `reset` | Identifies a reset message for action `reset`, otherwise it does not exist. (`true`) |