ComfortClickからKNXデバイスの値をHTTP-GETで送る方法

KNXやBACnetでデバイスとComfortClickを連携した場合、そのデータを外部システムに送るにはHTTPやMQTTなどの方法を使うことになります。

今回はHTTPのGETとPOSTを使ってデバイスの状態(値)を送る方法を紹介します。
(POSTは次の記事で紹介します)

デバイス側

KNXデバイスとしては、ON/OFFのLIGHT1,LIGHT2と調光できるLightDimという3つを用意しました。

パネルはこのようにつくり操作できるようにしました。

外部システム側(Node-RED)

外部システム側にはNode-REDを利用します。

上記のようにhttp inノードをgetでendpoint1,postでendopoint2を作成します。

これにhttp-responseノードを接続。

[{"id":"d1953a1479e83b09","type":"debug","z":"8a5b126f3b425421","name":"データ","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":490,"y":440,"wires":[]},{"id":"2114fd68abe7b752","type":"http in","z":"8a5b126f3b425421","name":"","url":"endpoint2","method":"post","upload":false,"swaggerDoc":"","x":220,"y":500,"wires":[["d1953a1479e83b09","2167f34dc150f467"]]},{"id":"2167f34dc150f467","type":"http response","z":"8a5b126f3b425421","name":"","statusCode":"","headers":{},"x":490,"y":520,"wires":[]},{"id":"3d1825c9ff954266","type":"http in","z":"8a5b126f3b425421","name":"","url":"endpoint1","method":"get","upload":false,"swaggerDoc":"","x":220,"y":440,"wires":[["d1953a1479e83b09","2167f34dc150f467"]]}]

ComfortClickのHttpノード

DevicesにHttpを挿入。Commandを2ついれてそれぞれGETとPOSTにします。

HttpのHost URLには外部システム(Node-RED)のIPとポート番号を記載。

まずはLIGHT1のvalueをGETで送ってみましょう。

Command部分は別ウインドウが開くので

Textには

/endpoint1?light1=%0

と入力。%0がLIGHT1のValueになるのですが、Propertiesの+Addを押すと

このようにどのDeviceの値を利用するかの画面がでるのでLIGHT1を選択してOKします。

Http-GETの動作確認

GETのタブでFunctionsにするとSend()が表示されるので右の方をクリックします。

ONにして再度Send()を押します。

反映されました。

値が変わると自動的に送るようにする

データは定期的に送る方法と値が変更になったときに送る方法があります。

今回はLIGHT1の状態が変わったときに送るようにします。

GETの中のSendTriggersをクリック。

LIGHT1のValueがValueChanged(変化したとき)に送るようなTriggerを作成します。

Allow retriggerもチェックいれておきます。

このようになりました。これで、パネルでLIGHT1をON/OFFしたときにNode-RED側にデータが送られるようになります。

パネルでON/OFFをしたところ、Node-RED側にデータが送られることが確認できました。

同時にデバイスのデータを送る方法

以上、ComfortClickからKNXデバイスのデータをHTTP-GETで送る方法を紹介しました。

LIGHT1,LIGHT2,L伊ghtDimの値を同時に送るには、Commandを下記のようにして

/endpoint1?light1=%0&light2=%1&lightdim=%2

textをこうすることで

LIGHT1が変化したときに送られるようになります。

LGITH1,LIGHT2,LightDimのいずれかが変化したときに、この3つの値が送られるようにするには、

このようにTriggerを追加します。

以上、HTTP-GETを使ってKNXデバイスのデータを送る方法をご紹介しました。