技術情報

Sigfox Callback機能

2018.06.01

Sigfox Callbacksとは

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

img-20180601-technical-01.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]ボタンをクリックすると下記画面となります。

img-20180601-technical-02.png

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

img-20180601-technical-03.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する例を記します。

img-20180601-technical-04.png

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

{
  device:"12AB90",
  time:"1527860900",  <-unixタイムスタンプです data:="" 1234567890abcdef="" pre=""> 

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

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

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

著者情報

Products and Marketing Department 日比 学

京セラコミュニケーションシステム株式会社(KCCS)よりSigfox社(フランス)に出向中の元自称Sigfoxエバンジェリスト

  • KCCSから追い出され、フランスの片田舎で余生を過ごしています
Twitter:https://twitter.com/ghibi