KNX

Node-RED-KNX-UltimateのSceneControllerノードはとても使い勝手がよい!

02 09

node-red-contrib-knx-ultimate には、”KNX Scene Controller”というノードがあるので、使い方を確認してみました。

node-red-contrib-knx-ultimateについて

02 09

KNX-IP Routerを使って、Node-REDとKNXデバイスを連携させることができるNode-REDのライブラリです。

ETSからKNXの設定情報をCSVでエクスポートし、そのデータをNode-REDで読み込むことにより、グループアドレスやデバイスなどを、間違えることなく選択できる便利な機能を搭載しています。

また、現在のバージョンは1.2.8ですが、頻繁にアップデートをしており、2021年2月現在、Node-REDからKNX機器を制御する場合に一番おすすめのライブラリです。

KNX Scene Controllerノードの設定

YouTubeに解説があるのですが、いまいち使い方がわかりません。なんとなく、KNXのシーンを呼び出すのではなく、条件分岐で指定した複数のグループアドレスにデータを送るような感じです。

GitHubにSceneController Configurationというページがあるので、確認してみます。

SceneController Configuration · Supergiovane/node-red-contrib-knx-ultimate Wiki · GitHub

02 09

KNX Scene Controllerノードをクリックすると、アイコンしか表示されませんが、上から順番にGitHubで書かれている機能のようです。なので、該当する部分の翻訳をあわせてみましょう。

① Gateway

使用するKNX Gatewayを選択する

② Scene Recall, Datapoint and Trigger Value

シーンリコール用のグループアドレスです。(例:0/0/1)。

シーンコントローラは、このグループアドレスから来るテレグラムに反応して、シーンをリコールします。データポイントは、シーンリコールグループアドレスのデータポイントタイプ(DPT)です。

トリガー値は、シーンリコールをトリガーするために受信しなければならない値です。

注意:DIM コマンドを介してシーンをトリガーしたり、シーンを保存したりするには、シーンリコールやシーン保存のトリガー値に、ディミング用の正しいオブジェクトを入れてください(ディミングの増加には{decr_incr:1,data:5}、ディミングの減少には{decr_incr:0,data:5}を使用してください)。

ここで、シーンを呼び出すきっかけとなるグループアドレスとその値を設定するようです。つまり、KNXのシーンとは違い、指定したグループアドレスをトリガーにして、呼び出すグループアドレスを紐付けるようです。これは、便利ですね!

③ Scene Save, Datapoint and Trigger Value

シーンを保存するためのグループアドレス。

シーンコントローラは、シーン内の全てのデバイスの現在の値を保存することで、このグループアドレスからのテレグラムに反応し、後で呼び出すことができます。

建物内で実際のknx押しボタンを押す、または長押しするたびに、シーンコントローラはシーン内のすべてのデバイスの値を読み取り、不揮発性のストレージに保存します。

データポイントはシーン保存グループアドレスのデータポイントタイプ(DPT)です。

トリガー値は、シーン保存をトリガーするために取得しなければならない値です。

注意:DIM コマンドを介してシーンをトリガーしたり、シーンを保存するには、シーンリコールまたはシーン保存のトリガー値に、ディミングのための正しいオブジェクトを入れてください(ディミングの増加には{decr_incr:1,data:5}、ディミングの減少には{decr_incr:0,data:5})。

この機能、解釈が難しいのですが、おそらく、このグループアドレスに指定した値をおくると、シーンを呼び出す前の状態を再現してくれるような感じです。

トリガーとなるグループアドレスからのデータでシーンを呼び出したあと、その前の状態に戻すといったことができそう。これもすごい便利ですね。

④ Node name

ノード名は、「Recall: シーンを呼び出すためのデバイス名 / Save: シーンを保存するためのデバイス名」という形式で。ただし、任意の名前を設定することができます。

⑤ Topic

ノードのトピック。

SCENE CONFIGURATION

02 09

標準のリアルシーンコントローラーKNXデバイスのように、シーンにデバイスを追加する必要があります。これはリストで各行はデバイスを表します。

シーンノードは、BUSから新しい値を受け取るたびに、シーンに属するすべてのアクチュエータの更新された値を自動的に保存します。

1つ目のフィールドはグループアドレス、2つ目はデータポイント、3つ目はシーン内のこのデバイスのデフォルト値です(これはシーン保存機能でオーバーライドできます)。

説明にはデバイスと書いてありますが、入力するのはグループアドレスのようなので、ETS側でグループアドレスを設計するときに、考える必要がありそうです。

まとめ

以上が、>node-red-contrib-knx-ultimateの”KNX Scene Controller”についてです。

ETS側でロジックやシーンを全部組むこともできますが、複雑なロジックの設定や、他の人が制御内容を理解するのはなかなか面倒です。

なので、Node-RED側でロジックも、複雑なシーンの呼び出しも設定できると、最初の設計もメンテナンスもとても便利になりますね。

ということで、これからもいろいろ使っていきたいとおもいます。

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