AV機器とKNXを連動させる相談をいただき、Node-REDが動くKNXのIoTサーバー「iConnect」を提案させていただきました。
↓ 過去記事
Node-RED内蔵 KNX信号を送受信できるIoTサーバー「iConnect」|デジタルライト(Digital-light.jp)
今回使用するAV機器のひとつで株式会社アイ・ディ・ケイ(IDK)のマルチスイッチャ MSD-62シリーズがありました。これが、Telnetのコマンドで操作できるのですが、Node-REDからTelnetでコマンドを送る方法が、すぐにわからなかったのでこちらにメモとして残しておきます。
Telnetコマンドを送るフロー
フローはこちらのとおり。
最初のInjectノードはトリガーのみ、Telnetのコマンドはその後のfunctionノードでかいています。
ここがはまったポイントで、最初はInjectノードから文字列でコマンドをおくったり、templateノードを使ったりしたのですが、うまくいかず。
最終的に、functionノードにて
@コマンド\r\n
このカタチにすることをうまくいきました。
tcp requestノードにはMSD-6203(マルチスイッチャ)のIPアドレスをいれ、ポート番号は23にします。
マルチスイッチャからレスポンスが返ってくるので、functionノードにtoStringを使ってrawデータを文字に変換します。
MSD-62シリーズの制御について
株式会社アイ・ディ・ケイさんのホームページから、MSD-62シリーズのコマンドガイドはダウンロードできます。
コマンドガイドによると、MSD-62シリーズはRS-232CとTCPにて制御することができます。今回はTCP接続をしてTelnetコマンドを送りました。
ためしたのは、@GSVというコマンド。これは、映像入力チャンネルの状態を返します。
先程のフローを実行すると、このようにレスポンスがきました。
今度は@SSVという映像入力チャンネルを切り替えるコマンドを送ります。
無事にコマンドが送れました。
KNXと連携するにはKNX objectを使う
マルチスイッチャをKNXと連動させる場合は、KNXのETSという設定ツールでGroup Addressを設定し、KNX objectノードをフローに追加します。
こちらがiConnectにあるKNX objectノードです。
このノードに、グループアドレスやデータポイントタイプの設定をして、TCPノードにつながるフローを作成します。
まとめ
Telnetコマンドを送るやり方ではまりましたが、今回の検証でやり方はわかりました。
あとは、KNXのグループアドレスとつなげて、DALIによる照明制御などと連携していきたいと思います。