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権限により表示されないパラメータもあります。