注意
本ページの内容はβテスト時点での提供内容であり内容が古い可能性があります。
最新情報を確認する場合は正式版マニュアルページをご確認ください。
データフォーマット¶
「さくらのモノプラットフォーム」で提供されるデータフォーマットについて説明します。
注意
本ページの内容はβテスト時点での提供内容であり、変更される可能性があります。
[更新: 2022年3月24日]
時刻関連のデータ型が変更されておりますので、本マニュアルも対応いたしました。
データフォーマットの全体像¶
1. データの構成¶
さくらのモノプラットフォームでは、サービスアダプタとアプリケーション間で以下のデータフォーマットを使ってやりとりが行われます。 なお、アプリケーションに送られるデータはJSON形式であり、エンコード方式はUTF-8です。
さくらのモノプラットフォームのデータフォーマット(値は仮のものです)
{
"id": "7addc9d0-f2cc-4d0e-b01f-d953dd1c5317",
"device_id": "1234567890",
"timestamp_src": "2022-03-24T00:00:00.000Z",
"timestamp_platform_from_src": "2022-03-24T00:00:00.000Z",
"timestamp_platform_to_dst": "2022-03-24T00:00:00.000Z",
"type": "object",
"payload": [
{
"type": "float32",
"tag": "00",
"value": 20.5
},
{
"type": "uint8",
"tag": "ff",
"value": 60
}
]
}
フィールド名 | 型 | 意味 |
id | string | デバイスから転送された一連のデータに対して付与される一意の転送ID(UUID)です。 このIDはデバイス側にも通知されます。 |
device_id | string | 送信元を一意に識別するためのIDです。 |
timestamp_src | string | デバイスからデータ送信時のデバイス側の時刻です。 RFC 3339 (ISO 8601)に準拠した文字列形式(ミリ秒精度)なので、PHPやJavaScript等の各種言語で簡単に読み込めます。 デバイス側で時刻を指定しなかった場合は 「1970-01-01T00:00:00.000Z」 が入ります。 現在のところ、お客様側でタイムゾーンの指定はできません。 |
timestamp_platform_from_src | string | デバイスから送信されたデータをモノプラットフォームが受信した時点のプラットフォーム側の時刻です。 RFC 3339 に準拠した文字列形式(ミリ秒精度)です。 現在のところ、お客様側でタイムゾーンの指定はできません。 |
timestamp_platform_to_dst | string | モノプラットフォームからアプリケーション側に向けてデータが送信された時点のプラットフォーム側の時刻です。 RFC 3339 に準拠した文字列形式(ミリ秒精度)です。 現在のところ、お客様側でタイムゾーンの指定はできません。 |
type | string | データの種類を表す文字列です。詳細は別表を参照ください。 |
payload | Array | デバイスから送信されたデータ(バイナリ表現)の解析結果が入った配列です。 |
payload[].type | string | データの形式を表す文字列です。詳細は別表を参照ください。 |
payload[].tag | string | データの種類を表す文字列表現です。 現時点ではデバイスから送信されたタグの数値(1オクテット)を16進文字列にしたものです。 |
payload[].value | ※ | データの値です。typeによって型が異なります。 |
type | 意味 |
object | デバイスから送られたデータ |
keepalive | 接続維持のためにWebSocketサーバから定期的に送られるデータ(読み捨てても問題ありません) |
type | valueの型 | 意味 |
uint8 | number | 8ビット符号なし整数 |
int8 | number | 8ビット符号つき整数 |
uint16 | number | 16ビット符号なし整数 |
int16 | number | 16ビット符号つき整数 |
uint32 | number | 32ビット符号なし整数 |
int32 | number | 32ビット符号つき整数 |
uint64 | number | 64ビット符号なし整数 |
int64 | number | 64ビット符号つき整数 |
float32 | number | 32ビット浮動小数点数(IEEE754 単精度) |
float64 | number | 64ビット浮動小数点数(IEEE754 倍精度) |
binary | string | 可変長オクテット列 (デバイスから受け取ったオクテット列をBase64でエンコードした文字列) |
string.utf8 | string | 可変長文字列 (デバイスから受け取ったオクテット列をUTF-8でデコードした文字列) |