投稿日

バイナリパーサー機能に「定義済みフォーマット」が追加されました

テック・エバとして全国を駆け回ってます、松下です。

先日開始したSigfoxデバイスの出荷ですが、その中でも6種のセンサーを搭載したSens’itが大変好評をいただいております!

一方でSens’itが出力するデータはバイナリパーサー機能を駆使する必要があるため、「データを手軽に展開できないか?」というご要望も多くいただいております

そこで今回、バイナリパーサー機能に新たなフォーマット 定義済みフォーマット が追加されました!

「定義済みフォーマット」

Sens’itをご利用いただいている方は、まずバイナリパーサー機能のフォーマットに @sensit とのみ入れて保存してみてください

@sensit

すると、次のデータから下記のようなJSONが出力されるようになります!
(下記は整形済み)

{
    "device": "XXXXXX",
    "time": "1504856794",
    "station": "XXXX",
    "lat": "36.0",
    "lng": "140.0",
    "rssi": "-126.00",
    "data": "816c1e71",
    "seqNumber": "1406",
    "mode": 1,
    "modeText": "Temperature + Humidity",
    "timeframe": 0,
    "timeframeText": "10 mins",
    "type": 0,
    "typeText": "Regular, no alert",
    "battery": 4.1,
    "tempCLowPrecision": 23,
    "tempFLowPrecision": 73.4,
    "tempC": 26.75,
    "tempF": 80.15,
    "reedSwitchState": 0,
    "humidity": 56.5,
    "binaryParserEnabled": true
}

従来は data というキーに入っている値 816c1e71 をバイナリパーサー機能で解く必要がありました
注目いただきたいのは humiditytempC という値が出るようになっています。他のモードで送信すれば、モードに合わせたJSONが出力されます
このJSONはSORACOM Harvestはもちろん、SORACOM FunnelやSORACOM Beamでの送信時のデータペイロードになりますので、今まで以上にクラウド活用が容易となるわけです

解説

バイナリパーサー機能は、バイト/ビットをデータ仕様に従ってフォーマット文字列を組み立てることで利用ができます

今回使えるようになりました @ から始まるフォーマットは SORACOM で実装&提供するフォーマットであり、ご利用者がフォーマット文字列を組み立てる必要はありません

注) @sensit は Sens’it v2 に対応しています。Sens’it v3 には対応していません。当社で販売しているSens’itは Sens’it v2 となります。

対応デバイスと定義済みフォーマット文字列

全2種です(2017年10月現在)

注) @sensit は Sens’it v2 に対応しています。Sens’it v3 には対応していません。当社で販売しているSens’itは Sens’it v2 となります。

binaryParserEnabled について

よく見るとJSONデータの中に binaryParserEnabled: true というキー/値が入っています
今回のアップデートで一緒に入った機能で、出力されたJSONがバイナリパーサーによる解析済みなのか否かを判定することができます

  • バイナリパーサー機能によって解析済み: "binaryParserEnabled": true
  • バイナリパーサー機能を利用していない: "binaryParserEnabled": false もしくは このキー/値自体が存在しない

定義済みフォーマットの充実に向けて

現在は解析がかなり難しいデバイスに絞って定義済みフォーマットを実装&提供しています
また、SigfoxのみならずLoRaWANデバイスでも利用できる機能であるため、今後より多くのデバイスのフォーマットに対応させたいと思っておりますので、是非とも皆さんのお声をいただけると助かります!

ソラコム 松下