#Sigfox Callbacksとは
Sigfoxクラウドには、Callbacksと呼ばれる機能がついています。このCallback機能とは、Sigfoxデバイスから送信され、Sigfoxクラウドに届いたデータをサードパーティーのアプリケーションサーバーに転送する機能です。
この機能を使用することにより、IoTアプリケーション開発で、複雑な通信プロトコル処理を必要とせず、RESTfulなデバイスメッセージ処理が可能になります。
Sigfox Callbacksは、一般的なHTTP/HTTPSでアプリケーションサーバーにデータを転送するCustom Callbackの他、下記のIoTプロットフォームに対する専用コネクタが用意されています。
- Amazon Web Services:
- Microsoft Azure:
- IBM Watson Iot Platform
ここでは、一般的なCustom Callbackについて説明します。
##Custom Callback設定方法
Custom Callbackは、URLを指定しアプリケーションサーバーにデータを転送することや指定したメールアドレス先にデータを転送することができます。事前に、アプリケーションサーバー側の待ち受け、もしくはメールアドレスをご準備ください。また、Callback設定は、DEVICE TYPE(複数デイバスをグルーピング化したもの)単位となります。
- Callback設定をしたいDEVICE TYPEを選択し、左メニューのCALLBACKSをクリック。
- 右上の[New]ボタンをクリックすると下記画面となります。
- ここで、Custom callbackを選択してください。
- この画面でCallback設定を行います。各メニューの説明をしておきます。
- Type
- DATA: ペイロードデータ(メッセージ)を転送
- UPLINK: 上りメッセージを転送
- BIDIR: 上りメッセージの転送に加え、下りメッセージの応答
- SERVICE: メッセージ以外の付加サービス情報の転送
- STATUS: デバイスのバッテリー電圧や温度情報の転送
- GEOLOC:
位置情報サービスオプション(Sigfox Atlas)*GEOLOC CallbackはData Advanced Service Callbackにマイグレートされました - ACKNOWLEDGE: 下りメッセージを送信したことを通知
- REPEATER: Sigfoxリピータ情報(日本対応のリピータはまだ出ていません)
- DATA_ADVANCED: Sigfox Altas位置情報サービスやRFメタデータ用
- ERROR: 通信エラー情報の転送
- DATA: ペイロードデータ(メッセージ)を転送
- Channel
- URL: アプリケーションサーバへの転送
- BATCH_URL: アプリケーションサーバへの転送。ですが、これを選んだ場合は、複数のデバイスからのメッセージを1秒間まとめて転送します。
- EMAIL: メールアドレス先への転送
- 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, deviceTypeId
例えば、{device}と記述した場合、この部分が実際のSigfoxデバイスのIDに切り替わってPOSTされることになります。
*注意:duplicatie, snr, station, avgSnr, lat, lng, rssiは2020年4月に廃止されました。Data Advanced Service Callback及び、それに伴うオプションの契約が必要となります。
##Custom Callback設定の一例
ここでは、www.foo.com/receiveapiで待ち受けてもらっているアプリケーションサーバに対してJSONでPOSTする例を記します。
このように設定すると、デバイスID "12AB90"から"1234567890ABCDEF"というデータ(メッセージ)が送信された場合に、
{
device:"12AB90",
time:"1527860900", <-unixタイムスタンプです
data:"1234567890ABCDEF"
}
というBodyがPOSTされるようになります。
初めての方は、まず、Channelを[EMAIL]にして、ご自身のメールアドレス先にデータ(メッセージ)を転送されることをお勧めします。