KNX

iConnectで動くNode-REDからマルチスイッチャにTelnetコマンドを送る方法

AV機器とKNXを連動させる相談をいただき、Node-REDが動くKNXのIoTサーバー「iConnect」を提案させていただきました。

09 09

↓ 過去記事
Node-RED内蔵 KNX信号を送受信できるIoTサーバー「iConnect」|デジタルライト(Digital-light.jp)

今回使用するAV機器のひとつで株式会社アイ・ディ・ケイ(IDK)のマルチスイッチャ MSD-62シリーズがありました。これが、Telnetのコマンドで操作できるのですが、Node-REDからTelnetでコマンドを送る方法が、すぐにわからなかったのでこちらにメモとして残しておきます。

Telnetコマンドを送るフロー

09 09

フローはこちらのとおり。

最初のInjectノードはトリガーのみ、Telnetのコマンドはその後のfunctionノードでかいています。

09 09

ここがはまったポイントで、最初はInjectノードから文字列でコマンドをおくったり、templateノードを使ったりしたのですが、うまくいかず。

最終的に、functionノードにて

@コマンド\r\n

このカタチにすることをうまくいきました。

09 09

tcp requestノードにはMSD-6203(マルチスイッチャ)のIPアドレスをいれ、ポート番号は23にします。

09 09

マルチスイッチャからレスポンスが返ってくるので、functionノードにtoStringを使ってrawデータを文字に変換します。

MSD-62シリーズの制御について

09 09

株式会社アイ・ディ・ケイさんのホームページから、MSD-62シリーズのコマンドガイドはダウンロードできます。

MSD-62シリーズ_Ver.1.0.2_取扱説明書

コマンドガイドによると、MSD-62シリーズはRS-232CとTCPにて制御することができます。今回はTCP接続をしてTelnetコマンドを送りました。

09 09

ためしたのは、@GSVというコマンド。これは、映像入力チャンネルの状態を返します。

09 09

先程のフローを実行すると、このようにレスポンスがきました。

09 09

今度は@SSVという映像入力チャンネルを切り替えるコマンドを送ります。

09 09

無事にコマンドが送れました。

KNXと連携するにはKNX objectを使う

マルチスイッチャをKNXと連動させる場合は、KNXのETSという設定ツールでGroup Addressを設定し、KNX objectノードをフローに追加します。

09 09

こちらがiConnectにあるKNX objectノードです。

09 09

このノードに、グループアドレスやデータポイントタイプの設定をして、TCPノードにつながるフローを作成します。

まとめ

Telnetコマンドを送るやり方ではまりましたが、今回の検証でやり方はわかりました。

あとは、KNXのグループアドレスとつなげて、DALIによる照明制御などと連携していきたいと思います。

ABOUT ME
中畑 隆拓
スマートライト㈱ 代表取締役。DALIやKNX導入のコンサルティング・コンフィグレーション・機器の販売、AI-IoTを組み合わせたシステムの提案を行っています。