Sigfox APIを使ってデバイスメッセージの詳細を取得

技術情報

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