Node-REDからDMX対応の照明器具をコントロールするために、ENTTEC社のODE MK2を使うことを考えています。
今回、アカリセンターの鈴木さんからデモ機を貸していただき、前回はPCとODE MK2を接続するところまでできました。
PCからENTTEC ODE MK2に接続してDMX照明器具を制御してみた|デジタルライト(Digital-light.jp)
動画もあります。
sACNのNode-REDのライブラリを使用
Node-REDのライブラリでArt-Netのものがあったのですが、うまく動かなかったことと、ライブラリ自体が古かったこともあり、ODE MK2から対応したsACNでやることにしました。
sACNとは?
sACNとは、streaming ACNのことで、ACNは ANSI/ESTAの国際標準です。
Architecture for Control Networks – Wikipedia
ACN (Architecture for Control Networks) はプロトコル・スイートです。これは、現在 grandMA によってサポートされていない多くの要素を含んでいます。しかし、ACN プロトコルには、DMXデータを転送するための簡易バージョンもあります。これは、’Lightweight streaming protocol for transport of DMX512 using ACN’、より一般的には “streaming ACN” または “sACN” と呼ばれています(国際標準 E1.31)。
DMXネットワーク・プロトコルより引用。
ENTTEC ODE MK2をsACN用に設定する
![ENTTEC ODE MK2 Web Control 2021-06-28 09-22-02.jpg ENTTEC ODE MK2 Web Control 2021 06 28 09 22 02](https://digital-light.jp/wp-content/uploads/2021/06/ENTTEC-ODE-MK2-Web-Control-2021-06-28-09-22-02.jpg)
ODE MK2のIPにブラウザからアクセスして、SettingからProtocolをsACNを選択。
Universeは1にしました。
node-red-contrib-sacn
![node-red-contrib-sacn (node) - Node-RED 2021-06-28 09-28-22.jpg Node red contrib sacn node Node RED 2021 06 28 09 28 22](https://digital-light.jp/wp-content/uploads/2021/06/node-red-contrib-sacn-node-Node-RED-2021-06-28-09-28-22.jpg)
Node-REDLibraryで、atleweeさんが、node-red-contrib-sacnを公開されています。
![Library - Node-RED 2021-06-28 09-29-59.jpg Library Node RED 2021 06 28 09 29 59](https://digital-light.jp/wp-content/uploads/2021/06/Library-Node-RED-2021-06-28-09-29-59.jpg)
なんと!こちらの方は、KNX-Easyのライブラリを公開されている方でした。
こちらのライブラリでフローをつくっていきます。
sACNのNode-REDフロー
![Node-RED : 192.168.1.9 2021-06-28 09-31-58.jpg Node RED 192 168 1 9 2021 06 28 09 31 58](https://digital-light.jp/wp-content/uploads/2021/06/Node-RED-192.168.1.9-2021-06-28-09-31-58.jpg)
このようにフローを作成。
Injectノードは単なるスタートのきっかけです。
![Node-RED : 192.168.1.9 2021-06-28 09-32-53.jpg Node RED 192 168 1 9 2021 06 28 09 32 53](https://digital-light.jp/wp-content/uploads/2021/06/Node-RED-192.168.1.9-2021-06-28-09-32-53.jpg)
functionノードについて
msg.topic = "1/1"; msg.payload = 100;
topicには、Universe/Channelで、この場合はUniverse1のChannel1です。
payloadがそのChannelの値で100。
![Node-RED : 192.168.1.9 2021-06-28 09-35-12.jpg Node RED 192 168 1 9 2021 06 28 09 35 12](https://digital-light.jp/wp-content/uploads/2021/06/Node-RED-192.168.1.9-2021-06-28-09-35-12.jpg)
sACNノードにはODE MK2のIPアドレスでポートは5568。
UniverseとChannelを空欄にすることで、msg.topicで動的に送ることができます。
![Monosnap 2021-06-28 09-37-30.jpg Monosnap 2021 06 28 09 37 30](https://digital-light.jp/wp-content/uploads/2021/06/Monosnap-2021-06-28-09-37-30.jpg)
さらにTransitionも設定できるようなのですが、msg.payloadでもTransitionの指定ができるようです。
// Transition can be set in config. Overidden when sent as object. msg.topic = "1" // (string: Channel) msg.payload = { "value": 10, "transition": "rate", "transitionRate": 50, //50ms for each step. Value going from 0 to 10 will result in 10x50ms. Total transition = 500ms. } msg.payload = { "universe": 1, "channel": 1, "value": 10, "transition": "time", "transitionTime": 1000 //1000ms for total transition. } // It makes most sense to use "rate" because you probably don't want to // use 1 second going from value 50 to 49. // Default transition value is "instant"
![IMG_2507.JPG IMG 2507](https://digital-light.jp/wp-content/uploads/2021/06/IMG_2507.jpg)
実行したところ、このように赤で点灯しました。
![Node-RED : 192.168.1.9 2021-06-28 09-42-11.jpg Node RED 192 168 1 9 2021 06 28 09 42 11](https://digital-light.jp/wp-content/uploads/2021/06/Node-RED-192.168.1.9-2021-06-28-09-42-11.jpg)
一旦、赤に0を送ってから、さらに、functionノードでこのように表記すると、
![IMG_2508.JPG IMG 2508](https://digital-light.jp/wp-content/uploads/2021/06/IMG_2508.jpg)
今度はChannel2のGreenが点灯しました。
まとめ
これで、Node-REDからDMX照明器具を制御することができそうです。
ODE MK2はUniversは1つなので、現場で必要となるUniverse分デバイスは必要になりますが、送り先のIPアドレスを変更すれば複数Universeも同時制御できそうなので、やりたいことはこれでできそうです。