この記事は、Node-RED Advent Calendar 2020の23日目の記事です。
さて、2020年も残すところあと8日となりました。
はやいですねぇ。
今年のアドベントカレンダーは、obniz Advent Calendar 2020にて5記事、enebular Advent Calendar 2020にて2記事をアップさせていただき全てNode-REDについての記事でした。
- VPNを使わない緩い高齢者見守りをEnOceanセンサーとenebularで考えてみた|デジタルライト(Digital-light.jp)
- obnizとLineとEnOcean環境センサー&スイッチを使った高齢者見守り&連絡システム|デジタルライト(Digital-light.jp)
- 高齢者のゆるい見守りに!EnOcean環境センサとobnizを使った見守りシステム|デジタルライト(Digital-light.jp)
- obnizとEnOceanスイッチを使って故郷の親が軽くメッセージを送れるシステム|デジタルライト(Digital-light.jp)
- obnizのジョグダイヤルの操作をenebularで動くNode-REDダッシュボードに表示させる方法|デジタルライト(Digital-light.jp)
- obnizのジョグダイヤルを操作するとNode-REDを通してLineにメッセージが送れる仕組み|デジタルライト(Digital-light.jp)
- enebularとローカルのNod-REDをshiftr.ioのMQTTブローカーで接続する方法|デジタルライト(Digital-light.jp)
そして本日、私の2020アドベントカレンダー最後の記事は”Node-REDから設備制御の国際規格KNXとKNX-ULTIMATE”についてです。
↓ KNXを知らない方はこちらをどうぞ
KNXをはじめよう-その1 KNXとは?|デジタルライト(Digital-light.jp)
Node-REDからKNXにつなげるライブラリーいろいろ
Node-REDとKNXをつなげるにはいくつかのライブラリがありますが、その中でもアップデートが頻繁に行われてダウンロード数も一番多い、”node-red-contrib-knx-ultimate”がおすすめです。
ちなみに、以前はnode-red-contrib-knx-easyを使っていましたが、1年8ヶ月ほど更新がありません。
node-red-contrib-knx-ultimateは、なんと4時間前にアップデートされていました。かなり更新頻度が高いです。
node-red-contrib-knx-ultimateについて
KNX-Ultimateライブラリをインストールすると、上記のように4つのノードが使えるようになります。
ライブラリページにある説明を翻訳します。
KNX-ULTIMATEノード
このノードを使用することで、Node-Redを介してKNXを制御することができます。すべてのKNXデバイスを制御することができるだけでなく、Node-Redで仮想デバイスを作成し、KNX以外の外部デバイスをリンクし、KNXのインストールと互換性を持たせることができます。使用方法は非常にシンプルで、カスタマイズも可能です。
SCENE CONTROLLERノード
シーン・コントローラー・ノードは、現在のシーンのリコールと保存で、実際のシーン・コントローラーとして振る舞うことができます。
WATCHDOGノード
KNXバス接続エラーの通知(電子メール、Twitter、Telegram、Alexa、Siri、Sonos(sonospollyttsノードを使用)など)、プライマリに障害が発生した場合のバックアップKNX/IPルータへの自動または手動切り替えが可能で、プログラムで直接msgフローからconfig-nodeを変更することができます。
LOGGERノード
ETS と互換性のある XML 診断ファイルを作成します。これをETSで開くことで診断用のファイルを作成することができます。
ETSからCSVでグループアドレス情報をインポートできる!
このライブラリのすごいところは、ETSの”Export Group Addresses”でエクスポートしたCSVファイルを読み込めること。
KNX DeviceノードのGatewayのペンのマークをクリック。
“ETS Group Address list import”をクリック
ここにCSVファイルをコピペする。
これをすることで、KNX Deviceノードにて、Group Addr.を入力する際に、ETSで設定したグループアドレスの名前を入力すると、該当するグループアドレスに変更されます。
KNXデバイスへのデータの送り方
たとえば、0/0/1にLight On/Offという1bitのグループアドレスをETSで作成し、スイッチアクチュエータのSwitchのグループオブジェクトをリンクさせたとします。
このノードにtrueとfalseをおくって上げれば、点灯・消灯の制御をすることができます。
この容量で、グループアドレスごとに適切なデータを送れば、KNXデバイスが操作できます。
KNXデバイスからデータを受ける
センサーの情報や、デバイスの稼働状況などをNode-REDで受け取るときは、STATUSのグループアドレスを指定することで、受け取ることができます。
KNX-ULTIMATEのwiki
Overview · Supergiovane/node-red-contrib-knx-ultimate Wiki · GitHub
GitHub上にwilkiがあるので、こちらに詳しい説明があります。
まとめ
以上、簡単にNode-REDのKNXライブラリ、KNX-ULTIMATEについてご紹介しました。
来年もNode-REDとKNX,DALI,EnOceanといった世界的に使われている設備制御のプロトコルを使って、たのしいことをやっていきたいとおもいます。