GB/T 32960 クラウドゲートウェイデバイスを使用している場合、データ転送機能を使用して、デバイスのメッセージをユーザー管理サーバーに転送できます。メッセージには、デバイスのログインおよび検証メッセージ、デバイスの登録解除メッセージ、デバイスのデータ送信メッセージが含まれます。Advanced Message Queuing Protocol(AMQP)サブスクリプション機能を使用して、デバイスからサーバーに送信されたメッセージをプッシュできます。このトピックでは、データ転送機能を使用してメッセージを転送する方法について説明します。また、必要なトピックとデータ型についても説明します。
使用上の注意
メッセージを転送する場合は、次の点に注意してください。
クラウドゲートウェイデバイスのデータ転送ルールを設定するには、新しいバージョンのデータ転送機能のみを使用できます。詳細については、「データ転送パーサーを設定する」をご参照ください。
GB/T 32960 クラウドゲートウェイデバイスのトピックをサブスクライブすることはできません。したがって、GB/T 32960 クラウドゲートウェイデバイスのデータをトピックから別のトピックに転送することはできません。
GB/T 32960 クラウドゲートウェイデバイスのメッセージを転送する場合、データソースとして次のタイプのトピックを追加できます。[カスタム]、[デバイスステータス変更通知]、[ライフサイクル全体のデバイス変更]。カスタムトピックをデータソースとして追加する場合は、トピック名に車両の[車両識別番号(VIN)]を指定する必要があります。詳細については、「データソースを作成する」をご参照ください。
サーバー側サブスクリプションを使用して、次のタイプのデータのみをプッシュできます。[デバイスアップストリーム通知]、[デバイスステータス変更通知]、[ライフサイクル全体のデバイス変更]。詳細については、「AMQP サーバー側サブスクリプションを設定する」をご参照ください。
デバイスメッセージのパラメーターは、GB/T 32960 プロトコルに準拠している必要があります。詳細については、GB/T 32960-2016 を参照してください。
デバイスログイン
トピック: /sys/${productKey}/${deviceName}/device/message/uplink。
{
"header": {
"command": 1,
"responseFlag": 254,
"vin": "onepart1234567891"
},
"body": {
"iccid": "12345678901234567890",
"month": 3,
"hour": 16,
"year": 23,
"subSystemNumber": 2,
"systemEncode": [
"12345678",
"87654321"
],
"systemEncodeLength": 8,
"day": 21,
"serialNo": 1,
"minute": 20,
"second": 12
}
}パラメーター | 型 | 説明 |
header | オブジェクト | メッセージヘッダーのデータ。 |
command | 整数 | コマンドの ID。 |
responseFlag | 整数 | レスポンスの ID。 |
vin | 文字列 | 車両の VIN。 |
body | オブジェクト | メッセージ本文のデータ。 |
iccid | 文字列 | 車両の ICCID。 |
year | 整数 | 車両がシステムにログインした年。 |
month | 整数 | 車両がシステムにログインした月。 |
day | 整数 | 車両がシステムにログインした日。 |
hour | 整数 | 車両がシステムにログインした時刻。 |
minute | 整数 | 車両がシステムにログインした分。 |
second | 整数 | 車両がシステムにログインした秒。 |
subSystemNumber | 整数 | 充電および電気を蓄えることができるサブシステムの数。 |
systemEncode | リスト | サブシステムのコード。 |
systemEncodeLength | 整数 | コードの長さ。 |
serialNo | 整数 | 車両ログインのレコード番号。 |
デバイスステータスの送信
トピック: /sys/${productKey}/${deviceName}/device/status/notify。
デバイスがオンラインになったときにデバイスから送信されるデータの形式:
{ "protocol": "gb32960", "status":"online", "iotId":"4z819VQHk6VSLmmBJfrf00107e****", "productKey":"al12345****", "deviceName":"deviceName1234", "time":"2018-08-31 15:32:28.205", "utcTime":"2018-08-31T07:32:28.205Z", "lastTime":"2018-08-31 15:32:28.195", "utcLastTime":"2018-08-31T07:32:28.195Z", "clientIp":"192.0.2.1" }デバイスがオフラインになったときにデバイスから送信されるデータの形式:
{ "protocol": "gb32960", "status":"offline", "iotId":"4z819VQHk6VSLmmBJfrf00107e****", "offlineReasonCode":427, "productKey":"al12345****", "deviceName":"deviceName1234", "time":"2018-08-31 15:32:28.205", "utcTime":"2018-08-31T07:32:28.205Z", "lastTime":"2018-08-31 15:32:28.195", "utcLastTime":"2018-08-31T07:32:28.195Z", "clientIp":"192.0.2.1" }
パラメーターの説明
フィールド | カテゴリ | 説明 |
protocol | 文字列 | GB/T 32960 クラウドゲートウェイを使用する場合は、値を |
status | 文字列 | デバイスのステータス。有効な値:
|
iotId | 文字列 | IoT Platform 内のデバイスの一意の識別子。 |
offlineReasonCode | 整数 | デバイスがオフラインになったときに返されるエラーコード。詳細については、「デバイスの動作に関連するエラーコード」をご参照ください。 |
productKey | 文字列 | デバイスが属するプロダクトの一意の識別子。 |
deviceName | 文字列 | デバイスの DeviceName。 |
lastTime | 文字列 | これらのパラメーターはもう有効ではありません。 |
utcLastTime | 文字列 | |
time | 文字列 | デバイスがオンラインまたはオフラインになった時刻。 返されるメッセージは時間順にソートされていません。メッセージを手動でソートする必要があります。 たとえば、次のメッセージを順番に受信したとします。
上記のメッセージは、デバイスが切断され、再接続され、再び切断されたことを示しています。 |
utcTime | 文字列 | デバイスがオンラインまたはオフラインになった時刻。時刻は UTC 形式です。 |
clientIp | 文字列 | デバイスのパブリック IP アドレス。 |
デバイスデータの送信
トピック: /sys/${productKey}/${deviceName}/device/message/uplink。
{
"header": {
"command": 123,
"responseFlag":1,
"vin":""
},
"body": {
"data":""
}
}パラメーター名 | データ型 | 説明 |
header | オブジェクト | メッセージヘッダーのデータ。 |
command | 整数 | コマンドの ID。 |
responseFlag | 整数 | レスポンスの ID。 |
vin | 文字列 | 車両の VIN。 |
body | オブジェクト | メッセージ本文のデータ。data は Base64 でエンコードされています。 |
デバイスの登録解除
トピック: /sys/${productKey}/${deviceName}/device/message/uplink。
{
"header": {
"command": 4,
"responseFlag": 254,
"vin": "onepart1234567891"
},
"body": {
"month": 3,
"hour": 16,
"year": 23,
"day": 21,
"minute": 20,
"second": 12,
"serialNo": 1
}
} パラメーター名 | データ型 | 説明 |
header | オブジェクト | メッセージヘッダーのデータ。 |
command | 整数 | コマンドの ID。 |
responseFlag | 整数 | レスポンスの ID。 |
vin | 文字列 | 車両の VIN。 |
body | オブジェクト | メッセージ本文のデータ。 |
year | 整数 | 車両が登録解除された年。 |
month | 整数 | 車両が登録解除された年。 |
day | 整数 | 車両が登録解除された月。 |
hour | 整数 | 車両が登録解除された時刻。 |
minute | 整数 | 車両が登録解除された分。 |
second | 整数 | 車両が登録解除された秒。 |
serialNo | 整数 | 車両登録解除のレコード番号。 |