KNX

obnizからenebularを使ってホームオートメーションサーバーに接続する方法

本記事はスマートホーム GWアドベントカレンダー2021の最終日(8日目)の記事です。

ホームオートメーション用サーバーComfortclick Jigsawは、RPC(Remote procedure call )の機能があります。

さらに、Comfortclick社のゲートウェイを通してローカルのサーバーに接続する方法がもあります。

このゲートウェイとRPCの機能を使うと、Node-REDとの連携をすることができ、Node-REDに連携することで、JigsawのアプリケーションbOSでプラグインが作られていない機器とも簡単につなぐことができます。

Obniz bos

今回は上図のとおり、obnizからenebularのFlow(Node-RED)にデータを送り、そこからローカルのbOS Server(Jigsaw)に接続してKNX制御のLED電球のOn/Offを行います。

この方法についてご紹介いたします。

動画で解説

Jigsaw側でRPCの準備

bOS Configuratorを立ち上げJigsawに接続します。

06 08 20 09  1

General > API > RPC をクリック。

Settingsで、Enableを”True”、UsernameとPasswordを確認します。この情報を使ってenebular(Node-RED)からhttp-requestノードを使ってJigsawに接続します。

Jigsaw側でKNXデバイスの確認

IMG 2156

今回、ビートソニック社のフィラメントLED電球、サイフォン(LDF29B)を、KNXの位相制御モジュールとつなげてOn/Offの制御を行います。

06 08 22 57  1

RPC制御する際に必要となるKNX側で設定したDeviceの情報を確認します。

Devices > KNX > TEST > Light > Lampをクリック。

InfoタブのPathに表示される

Devices¥KNX¥TEST¥Light¥Lamp を確認します。

↓KNXの設定方法は過去の記事をご覧ください。
KNXホームオートメーションサーバー JigsawのbOSでStatusを使う方法|デジタルライト(Digital-light.jp)

また、enebularから接続する際はゲートウェイURLが必要になりますので、実際に行う場合は弊社(スマートライト)にご連絡ください。

お問い合わせ – スマートライト株式会社

obnizとenebular(Node-RED)の接続テスト

初めにobniz(オブナイズ)についてご存知無い方は下記の記事をご覧ください。

obnizを設備とIoT機器のゲートウェイとして期待している件

Node red contrib obniz  node  Node RED 2021 05 05 21 50 07

node-red-contrib-obniz (node) – Node-RED

obnizからenebularへの接続は、Node-REDのnode-red-contrib-obnizというライブラリを使います。

enebular – あらゆるデバイスとクラウドサービスを「つなぐ」、IoTのためのデータ連携プラットフォーム

enebularのflowを立ち上げます。

Enebular Flow Editor 2021 05 05 22 50 39

テストでobnizのダイヤルをLightに回すと”true”が、Rightに回すと”false”が送られ、obnizのディスプレイには”Right”か”Left”が表示させるフローを作成しました。

[{"id":"4cb5787c.5177c8","type":"obniz-repeat","z":"76a39534.2619dc","obniz":"7924ef42.62536","name":"Obniz","interval":100,"code":"var state = await obniz.switch.getWait();\nvar message;\nif ( state != \"none\") {\n    if ( state == \"left\" ) {\n        message = \"true\";\n    } else if ( state == \"right\") {\n        message = \"false\";\n    } else if ( state == \"push\") {\n        message = \"push\";\n    }\n    msg.payload = message;\n    msg.state = state;\n    return msg;\n}","x":160,"y":220,"wires":[["499d51c1.76e12"]]},{"id":"41425d75.aad644","type":"debug","z":"76a39534.2619dc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":570,"y":220,"wires":[]},{"id":"b7162982.e8f288","type":"obniz-function","z":"76a39534.2619dc","obniz":"7924ef42.62536","name":"toObniz","code":"var state = msg.state;\n\nobniz.display.clear();\n\nobniz.display.print(state);","x":560,"y":300,"wires":[[]]},{"id":"499d51c1.76e12","type":"delay","z":"76a39534.2619dc","name":"フィルター","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":350,"y":220,"wires":[["b7162982.e8f288","41425d75.aad644"]]},{"id":"7924ef42.62536","type":"obniz","z":"","obnizId":"40930779","deviceType":"obnizboard","name":"Obniz","accessToken":"","code":""}]
IMG 2158

無事に動くことを確認しました。

enebularからJigsawへデータ送信

Enebular Flow Editor 2021 05 06 08 48 09

enebularからJigsawへのフローは、templateノードとhttp-requestノードを使います。

Enebular Flow Editor 2021 05 06 08 55 29

Injectionノードは点灯用に”true”、消灯用に”false”を送るノードを作ります。

Enebular Flow Editor 2021 05 06 08 49 19

Templateノードには下記の様にjsonデータを書き込みます。

{"objectName":"Devices\\KNX\\TEST\\Light\\Lamp","valueName":"Value","value": "{{payload}}" }

今回制御するフィラメントLEDのデバイスPathは”Devices¥KNX¥TEST¥Light¥Lamp”で、ここにvalueとして”true”と”false”を送れば、LEDランプのOnとOffができます。

1点気をつけることは、jsonでおくるので”¥”を”\\”にします。

Enebular Flow Editor 2021 05 06 09 03 08

http-requestノードにはメソッドをPOSTにして、UsernameとPasswordを入れたゲートウェイURLを記載します。

https://RPC:RPC@JIGSAW_GATEWAY_URL/API/RPC/SetValue

この様になります。

Enebular Flow Editor 2021 05 06 09 07 21

フローをdeployして実行。

IMG 2159

Injectionノードを押すとフィラメントLEDが点灯・消灯できました。

obnizとJigsawを連携

Enebular Flow Editor 2021 05 06 09 10 23

いよいよobnizとJigsawを連携します。

Delayノード(フィルター)からtemplateノードにフローをつなぎます。

これで完了です。

結果については冒頭の動画の通りです。

まとめ

私が個人的に、IoTデバイスとしていろんな可能性を感じているobnizとホームオートメーションサーバーをenebularを使って接続する検証をやってみました。

obnizやenebularといったIoTサービスは、他のものとどのように連携できるかが重要なので、どちらもその間口が広く検証する機会をご提供いただけているので感謝しています。

私の得意とするホームオートメーションは、日々、新しいデバイスが発表される中で、どうやって照明やブラインドといった従来からある機器とつなげてお客さんにとって便利な仕組みをつくるのかが重要になります。

で、本当にお客さんから喜ばれるものは、お客さんから要望を受けたり会話したりするときに、そのヒントがでてくるものなので、その前に自分自身が体験として、様々なデバイス類を接続する検証をしていくことが重要だと思います。

今回、GWアドベントカレンダーという仕組みを木戸さんが作ってくれたおかげで、スマートホームに関連する8つの記事を書き終えることができました。

これ、やらなくても誰にも怒られないから、こういう機会を提供してくれる人はすごく大事だと思います。

木戸さん、ありがとうございます!

ということで、引き続き、ホームオートメーションと新しいIoTデバイスをつなげる活動をしていきたいと思いますので、皆様、これからもよろしくおねがいします!

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