Wi-Fi を使用するデバイスは、指定されたトピックを使用して IoT Platform にネットワークステータスを報告できます。この記事では、デバイスがネットワークステータスを報告するために使用するトピックとデータ形式、および報告できるネットワークエラーについて説明します。
説明 デバイスで AliOS Things V3.0 以降を使用している場合、デバイスはネットワークステータスデータを自動的に監視および報告します。
IoT Platform にネットワークステータスを自動的に報告する
デバイスが IoT Platform にリクエストを送信し、IoT Platform がデバイスに応答を送信するときに、次のトピックが使用されます。
リクエストトピック: /sys/${productKey}/${deviceName}/_thing/diag/post
レスポンストピック: /sys/${productKey}/${deviceName}/_thing/diag/post_reply
Alink JSON 形式のリクエスト例:
- 現在のデータ: デバイスによってデータが収集された直後に報告されるデータ。
デバイスは、次の 2 つのシナリオでネットワークステータスデータをすぐに報告します。
- ネットワークエラーが検出されると、デバイスはすぐにエラーを IoT Platform に報告します。
- スケジュールされた収集を設定している場合、デバイスは指定された時間にデータを収集し、すぐにデータを報告します。
たとえば、デバイスは 2019 年 8 月 22 日の 08:10:29 にネットワークエラーを検出し、すぐにデータを報告します。デバイスがネットワークエラーを検出したときにデータを報告するリクエスト例:
{ "id": "123", "version": "1.0", "params": { "p": { "wifi": { "rssi": 75, "snr": 20, "per": 10, "err_stats":"10,02,01;10,05,01" }, "_time": 1566432629000 }, "model": "quantity=single|format=simple|time=now" } }説明 スケジュールされた収集中にエラーが検出されない場合、err_stats パラメーターは空になります。 - 履歴データ: すぐに報告されないデータ。ほとんどの場合、デバイスは収集されたネットワークメトリックの報告を遅らせる可能性があります。デバイスが履歴データを報告する場合、デバイスは一度に複数のデータレコードを報告できます。
リクエスト例:
{ "id": "123", "version": "1.0", "params": { "p": [ { "wifi": { "rssi": 75, "snr": 20, "per": 10, "err_stats":"10,02,01;10,05,01" }, "_time": 1566432629000 } ], "model": "format=simple|quantity=batch|time=history" } }説明 エラーが検出されない場合、err_stats パラメーターは空になります。
| パラメーター | タイプ | 説明 |
| id | String | メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、デバイスに対して一意である必要があります。 |
| version | String | プロトコルのバージョン。有効な値: 1.0。 |
| params | Object | リクエストパラメーター。 |
| wifi | Object | ネットワークステータスのメトリック。デバイスが Wi-Fi を使用している場合、4 つのメトリックが報告されます。 |
| rssi | integer | 受信した無線信号の強度。 |
| snr | integer | 無線信号の信号対雑音比。 |
| per | integer | パケット損失率。 |
| err_stats | String | ネットワークエラーメッセージ。このパラメーターは、デバイスがネットワークエラーを検出した場合にのみ、報告されるデータに含まれます。 形式: ネットワークエラーメッセージのフィールド:
特定のエラーの詳細については、「err_stats」をご参照ください。 |
| _time | Long | ネットワークステータスが収集された日時を示すタイムスタンプ。 説明 タイムスタンプは空にすることができます。空の場合、IoT Platform コンソールの [デバイスのネットワークステータス] タブには、データが収集された時間は表示されません。 |
| model | String | メッセージ本文のモデル。パラメーター値には、次のフィールドが含まれます:
|
| エラータイプ | 説明 | 原因 |
| 0x00 | 無線ネットワーク環境のパラメーター。 |
|
| 0x10 | デバイスが IoT Platform に接続できませんでした。 |
|
| 0x20 | デバイスと IoT Platform の間でネットワーク例外が発生しました。 |
|
| 0x30 | デバイスで例外が発生しました。 |
|
| 0x40 | メモリ情報。 |
|
| 0x50 | Bluetooth Low Energy (BLE) 例外が発生しました。 | BLE 例外。 |
Alink JSON 形式のレスポンス例:
{
"id": "123",
"version": "1.0",
"code": 200,
"data": {}
}| パラメーター | タイプ | 説明 |
| id | String | メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、デバイスに対して一意である必要があります。 |
| code | Integer | レスポンスの状態コード。値 200 は、リクエストが成功したことを示します。 |
| version | String | プロトコルのバージョン。有効な値: 1.0。 |
| data | Object | 値は空です。 |