技術情報
Sigfox Callbackとenebular連携
2020.01.28
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を入力します。
{
"device":"{device}",
"time":{time},
"data":"{data}"
}
Sigfoxメッセージをenebularのデバッグウィンドウで確認する
両プラットフォームの設定に問題がなければ、下図のようにデバッグ画面にmsg.payloadが表示されます。
enebular連携をすることにより、ソーシャルメディアへのアウトプットや、関数処理、他プラットフォームとの連携もnode-redライクにできるようになりますね。