技術情報
Sigfox APIを使ってデバイスメッセージの詳細を取得
2019.08.20
SigfoxクラウドAPIを利用し、デバイス情報やユーザ情報を取得する方法は、こちらに記載していますが、ここでは、デバイスメッセージ履歴の取得に際し、Callbackステータスや受信フレーム数などを取得する方法を説明します。
デバイスメッセージを取得するAPI
デバイスメッセージを取得する場合、/devices/{device-id}/messagesエンドポイントを使用します。具体的には下記GETリクエストにBasic認証を付加してもらえれば結構です。
https://api.sigfox.com/v2/devices/{device-id}/messages
- ※{device-id}のところは、メッセージを取得したいデバイスのID
ポイントは"fields"パラメータ
デバイスメッセージを取得するAPIの説明はSigfox Supportにまとめられており、ここで、fieldsというクエリパラメータに関する説明が記載されています。
このfieldsパラメータをHTTPパラメータに追加することにより、より詳細情報を取得することが可能になります。
例えば、下記GETリクエスト(Basic認証も必要ですが)の場合
https://api.sigfox.com/v2/devices/{device-id}/messages?fields=device(name),rinfos(cbStatus,rep)
応答は下記のようになります。
{ "data": [ { "device": { "id": "XXXXXX", "name": "My_device_name" }, "time": 1565081856000, "data": "0123456789ABCDEF", "rinfos": [ { "baseStation": { "id": "5859" }, "rssi": "-133.00", "snr": "12.48", "freq": 923233573, "delay": 2.3450000286102295, "lat": "35.0", "lng": "135.0", "rep": 3, "cbStatus": [ { "status": 200, "cbDef": "[POST] https://api.try.iotagency.sigfox.com/api/Messages/sigfox", "time": 1565081858249, "attempts": 1 } ] }, ...(省略)... ], ...(省略)... },
fieldsパラメータを追加しなかったときに比べ、デバイス名フィールドの他、rinfos以下にrepフィールドとcbStatusフィールドが追加されていることがわかります。
repは各基地局で受信されたフレームの数、cbStatusはそのメッセージのCallbackステータスが確認できます。
fieldsパラメータ
fieldsパラメータは下記の定義となっています。
パラメータ | 意味 |
---|---|
oob | Out Of Band message。デバイスから定期的に送信されているステータス確認メッセージ。詳しくはこちら |
ackRequired | 下り要求メッセージかどうかのフラグ |
device(name) | デバイス名 |
rinfos(cbStatus,rep,repetitions,baseStation(name)) | 次表参照 |
downlinkAnswerStatus(baseStation(name)) | 下り応答ステータス |
rinfos | 意味 |
---|---|
cbStatus | Callbackステータス |
rep | 各基地局での受信フレーム数 |
repetitions | 各フレームのRSSI、SNR等 |
baseStation(name) | 受信基地局名 |
- ※ただし、API権限により表示されないパラメータもあります。