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用に設定する
ODE MK2のIPにブラウザからアクセスして、SettingからProtocolをsACNを選択。
Universeは1にしました。
node-red-contrib-sacn
Node-REDLibraryで、atleweeさんが、node-red-contrib-sacnを公開されています。
なんと!こちらの方は、KNX-Easyのライブラリを公開されている方でした。
こちらのライブラリでフローをつくっていきます。
sACNのNode-REDフロー
このようにフローを作成。
Injectノードは単なるスタートのきっかけです。
functionノードについて
msg.topic = "1/1"; msg.payload = 100;
topicには、Universe/Channelで、この場合はUniverse1のChannel1です。
payloadがそのChannelの値で100。
sACNノードにはODE MK2のIPアドレスでポートは5568。
UniverseとChannelを空欄にすることで、msg.topicで動的に送ることができます。
さらに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"
実行したところ、このように赤で点灯しました。
一旦、赤に0を送ってから、さらに、functionノードでこのように表記すると、
今度はChannel2のGreenが点灯しました。
まとめ
これで、Node-REDからDMX照明器具を制御することができそうです。
ODE MK2はUniversは1つなので、現場で必要となるUniverse分デバイスは必要になりますが、送り先のIPアドレスを変更すれば複数Universeも同時制御できそうなので、やりたいことはこれでできそうです。