DMX

ENTTEC ODE MK2でNode-REDからsACNプロトコルでDMX機器を制御する

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

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

Node-REDLibraryで、atleweeさんが、node-red-contrib-sacnを公開されています。

Library  Node RED 2021 06 28 09 29 59

なんと!こちらの方は、KNX-Easyのライブラリを公開されている方でした。

こちらのライブラリでフローをつくっていきます。

sACNのNode-REDフロー

Node RED  192 168 1 9 2021 06 28 09 31 58

このようにフローを作成。

Injectノードは単なるスタートのきっかけです。

Node RED  192 168 1 9 2021 06 28 09 32 53

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

sACNノードにはODE MK2のIPアドレスでポートは5568。

UniverseとChannelを空欄にすることで、msg.topicで動的に送ることができます。

Monosnap 2021 06 28 09 37 30

さらに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

実行したところ、このように赤で点灯しました。

Node RED  192 168 1 9 2021 06 28 09 42 11

一旦、赤に0を送ってから、さらに、functionノードでこのように表記すると、

IMG 2508

今度はChannel2のGreenが点灯しました。

まとめ

これで、Node-REDからDMX照明器具を制御することができそうです。

ODE MK2はUniversは1つなので、現場で必要となるUniverse分デバイスは必要になりますが、送り先のIPアドレスを変更すれば複数Universeも同時制御できそうなので、やりたいことはこれでできそうです。

ABOUT ME
中畑 隆拓
スマートライト㈱ 代表取締役。IoTソリューションの開発、スマートホーム&オフィスのコンサルティング、DALI,KNX,EnOceanなどのインテグレーションを行っています。