IoT
LPWA
SigFox

Sigfox Callback機能

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を予定します。