Sigfox Callbackとenebular連携


IoTセンサデータをSigfoxクラウドで受け、Callbackを使って、株式会社ウフルさんのenebularと連携する方法を記載します。

今回は、単純に、Sigfox CallbackのBodyにあたるJSONメッセージをenebularのデバッグウィンドウに表示するだけです。もし、より高度なことをやりたければ、enebularのマニュアルを参考にしてください。

enebular側の設定

enebularのSign-upから、プロジェクトを作成し、Flow編集するまでは、enebular introdutionのページ見れば、簡単にできます。

Nodeを配置

今回は、Sigfox Callbackとの連携ですので、http inNodeとdebugNodeをワークスペースにドラッグ&ドラッグしてください。

http inノードの設定

http inノードをダブルクリックすれば、編集画面が表示されます。
メソッドをPOST、URLを/sigfoxとしておきます。このURLの/sigfoxをデプロイ後の生成されるURLに追加するので覚えておいてください。

debugノードの設定

デバッグノードの設定は特に変更する必要はありません。デフォルトで対象がmsg.payloadとなっています。これが、Sigfox CallbackのBody(JSON)部分に相当します。

httpNodePath

デプロイ後、デプロイボタンの左にある(i)マークにマウスオーバーすると、httpNodePathが表示されます。

後にSigfox Callbackに設定するURLは、このパスに先程http inノードで設定したURLを追加します。今回の場合、フルパスは、
https://ev2-prod-node-red-******.herokuapp.com/sigfox
となります。

Sigfox Cloud側の設定

対象デバイスタイプのCALLBACK設定から、新規にCustom Callbackを作成してください。
Callbackの作成方法はこちらを見てください。

enebular用Callbackの設定

いくつか方法はありますが、今回は、TypeをDATA_UPLINK、ChannelをURLとし、シンプルな上りメッセージのコールバックを作成することとします。

Url patternには、先程enebular側で確認したhttpNodePath + /sigfoxを入力、Use HTTP Methodも、enebular側設定にあわせてPOST、Content typeはapplication/json、Bodyは、Sigfoxルールに合わせて記載します。今回は、デバイスIDとメッセージ受信時刻、メッセージペイロードの3項目を送ることとし、下記のJSONを入力します。

sigfox-callback.json
{
  "device":"{device}",
  "time":{time},
  "data":"{data}"
}

Sigfoxメッセージをenebularのデバッグウィンドウで確認する

両プラットフォームの設定に問題がなければ、下図のようにデバッグ画面にmsg.payloadが表示されます。

enebular連携をすることにより、ソーシャルメディアへのアウトプットや、関数処理、他プラットフォームとの連携もnode-redライクにできるようになりますね。

Sigfox Japan KCCS
Twitter ghibi