DALI

Node-REDでDALIの連続したコマンドを送るときの方法

DeeBridgeとNode-REDを組み合わせて使うと、DALIアプリケーションのテストや開発がかなり簡単に行えます。

ただし、Node-REDでの開発は普通のプログラムとはちょっと勝手が異なるところがあるので、私自身Try and Errorを繰り返しながらやっています。

このサイト(Digital-light)では、この知見を共有していければいいなと思っているので、今回、自分が調べたことをメモを残しておきます。

連続したDALIコマンドをNode-REDから送る方法

DALIにおいてDTR(Data Transfer Register)を使うコマンドやTYPE8のコマンドは、複数のコマンドを連続して送り続ける必要があります。

Node-REDの場合は基本的な使い方では1つのフローから1つづつしかメッセージを送らないので、連続してコマンドを送るには、実際にアドレス0にシーン0を設定する方法を解説しながらご紹介します。

例)アドレス0のSCENE0を10%(170)に設定する

DALIの器具アドレスA0に、シーン1は10%で点灯するようにするためのコマンドです。

DALIコマンドは

コマンド DATA(DEC) DATA(HEX) 説明
DTR0=170 163 170 A3 AA DTR0に170をいれる
SET SCENE1(DTR0) 1 64 01 40 シーン1に10%を入れる
SET SCENE1(DTR0) 1 64 01 40 シーン1に10%を入れる

* SET SCENE1が2回おくられます。

Node-REDのフロー

node-red

上記のNode-REDのサンプルフローです。

node-red

functionノードの中はこのようになってます。

ご協力 きむらけい(@dotnsf)さん

でも、これだとうまくいかないんです。

連続したDALIコマンドをDeeBridgeに送るときの注意

先のフローだとコマンドは連続で送られしまい、DALI MONITORで確認すると2つ目のコマンドまでは受け取るのですが、3つ目のコマンドを受け取りません。

Delayノードを使う

1つ目に行った対策はDelayノードを使うです。

node-red

DelayノードをDeeBridge(TCP Outノード)とfunctionノードの間に挿入し、DALIコマンドを200msにしました。

node-red

いろいろためしたところ、0.2秒に1つのメッセージという設定が一番よさそうです。
ただし、set scene0のコマンドは別の理由でうまくいかないので、全点灯ON/OFFを繰り返す、次のコマンドでテストしました。

node-red

これでテストすると、先程のように200msに1コマンドのdelayをかけることで動作しました。

SET SCENE1(DTR0)は別のやり方

実はSET SCENE1は100ms以内に2回連続して送信しなければならないコマンドなので、上記のDelayを使うと機能しません。

そんなコマンドに対して、DeeBridgeでは100ms以内にコマンドを2回おくる方法があります。

それが

#DRR: [address],[command]
#DRW: [address],[command]

の2種類です。

node-red

具体的には、Injectionノードを使って

#DRW:1,64

と送ると、DALIモニターにはSET SCENE1(DTR0) が2回送られます。

ちなみに、
DRR: レスポンスがある
DRW: レスポンスなし

です。

あと、これが使えるのは下のような場合

node-red

TYPE8で色温度を設定するコマンドを送る場合、SET TEMPRARY CCTというコマンドを100ms以内に2回おくらなければならないのですが、この場合にも #DRW:3,231 とすれば対応できます。

SET SCENE1(DTR0)をNode-REDで書く場合

ということで、Node-REDにてSET SCENE1(DTR0)を行う場合は、

node-red

このように、DRWを使って書くとよいです。

上記は、2つしかコマンドを送ってませんが、複数DALIコマンドを送る場合は

node-red

このように全体的には200msの遅延をいれて、100ms以内に連続で送るコマンドはDRWを使います。

これからTYPE8で調色やRGBの呼び出しをするときも、この方法を使えば対応できそうです。

まとめ

少しづつTYPE8の調色やRGBなどの話をもらうことが増えてきたので、これからもこの方法で色々開発をしていきたいと思います。

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

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です