Posted at

Sigfox Callback機能

More than 1 year has passed since last update.


Sigfox Callbacksとは

Sigfoxクラウドには、Callbacksと呼ばれる機能がついています。このCallback機能とは、Sigfoxデバイスから送信され、Sigfoxクラウドに届いたデータをサードパーティーのアプリケーションサーバーに転送する機能です。

image.png

この機能を使用することにより、IoTアプリケーション開発で、複雑な通信プロトコル処理を必要とせず、RESTfulなデバイスメッセージ処理が可能になります。

Sigfox Callbacksは、一般的なHTTP/HTTPSでアプリケーションサーバーにデータを転送するCustom Callbackの他、下記のIoTプロットフォームに対する専用コネクタが用意されています。

ここでは、一般的なCustom Callbackについて説明します。


Custom Callback設定方法

Custom Callbackは、URLを指定しアプリケーションサーバーにデータを転送することや指定したメールアドレス先にデータを転送することができます。事前に、アプリケーションサーバー側の待ち受け、もしくはメールアドレスをご準備ください。また、Callback設定は、DEVICE TYPE(複数デイバスをグルーピング化したもの)単位となります。

1. Callback設定をしたいDEVICE TYPEを選択し、左メニューのCALLBACKSをクリック。

2. 右上の[New]ボタンをクリックすると下記画面となります。

image.png

3. ここで、Custom callbackを選択してください。

image.png

4. この画面でCallback設定を行います。各メニューの説明をしておきます。


  • Type


    • DATA: ペイロードデータ(メッセージ)を転送


      • UPLINK: 上りメッセージを転送

      • BIDIR: 上りメッセージの転送に加え、下りメッセージの応答



    • SERVICE: メッセージ以外の付加サービス情報の転送


      • STATUS: デバイスのバッテリー電圧や温度情報の転送

      • GEOLOC: 位置情報サービスオプション(Sigfox Atlas)

      • ACKNOWLEDGE: 下りメッセージを送信したことを通知

      • REPEATER: Sigfoxリピータ情報(日本対応のリピータはまだ出ていません)



    • ERROR: 通信エラー情報の転送



  • Channel


    • URL: アプリケーションサーバへの転送

    • BATCH_URL: アプリケーションサーバへの転送。ですが、これを選んだ場合は、複数のデバイスからのメッセージを1秒間まとめて転送します。

    • EMAIL: メールアドレス先への転送



  • Send duplicate: (2019年6月1日以降廃止)

  • Custom payload config: ペイロードデータを独自の記述言語を使いparseする機能です。(別記事で説明予定)

  • Url patern: 転送先アプリケーションサーバの待ち受けURL

  • Use HTTP Method: HTTPメソッド。GET/PUT/POSTから選択できます。

  • Send SNI: SSL/TLSの拡張仕様 Server Name Indication (SNI)を使用する場合にチェックを入れます

  • Headers: HTTP/HTTPSのヘッダを付加したい場合に設定します

  • Contents type: コンテンツタイプ。例えば、JSON形式で送る場合は、application/json

  • Body: コンテンツの中身です

Bodyでは、下記変数を{}カッコ括りで記述することが可能で、

device, time, duplicate, snr, station, data, avgSnr, lat, lng, rssi, seqNumber

例えば、{device}と記述した場合、この部分が実際のSigfoxデバイスのIDに切り替わってPOSTされることになります。

*注意:duplicatie, snr, station, avgSnr, lat, lng, rssiは2019年6月1日に廃止され、これに代わるサービスへと変更になりますので、おススメできません。


Custom Callback設定の一例

ここでは、www.foo.com/receiveapiで待ち受けてもらっているアプリケーションサーバに対してJSONでPOSTする例を記します。

image.png

このように設定すると、デバイスID "12AB90"から"1234567890ABCDEF"というデータ(メッセージ)が送信された場合に、

{

device:"12AB90",
time:"1527860900",  <-unixタイムスタンプです
data:"1234567890ABCDEF"
}

というBodyがPOSTされるようになります。

初めての方は、まず、Channelを[EMAIL]にして、ご自身のメールアドレス先にデータ(メッセージ)を転送されることをお勧めします。

次回記事は、Custom payload configを予定します。