このトピックでは、次のシナリオで使用されるトピックとAlink JSON形式について説明します。デバイスはIoT Platformから設定情報を要求し、IoT Platformは設定情報をデバイスにプッシュします。
リモート設定機能の使用方法の詳細については、ユーザーガイドの「リモート設定」をご参照ください。
デバイスはIoT Platformから設定情報を要求します
次のトピックは、デバイスがIoT Platformにリクエストを送信し、IoT Platformがデバイスに応答を送信するときに使用されます。
- リクエストトピック:
/sys/${productKey}/${deviceName}/thing/config/get
- レスポンストピック:
/sys/${productKey}/${deviceName}/thing/config/get_reply
Alink JSON形式のサンプルリクエスト:
{
"id": 123,
"version": "1.0"、
"sys":{
"ack":0
},
"params": {
"configScope": "product",
"getType": "file"
},
"method": "thing.config.get"
}
Alink JSON形式のサンプル応答:
{
"id": "123",
"version": "1.0",
"code": 200,
"data": {
"configId": "123dagdah",
"configSize": 1234565,
"sign": "123214adfadgadg",
"signMethod": "Sha256",
"url": "https://iotx-config.oss-cn-shanghai.aliyuncs.com/nopoll_0.4.4.tar.gz?Expires=1502955804&OSSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&Signature=XfgJu7P6DWWejstKJgXJEH0qAKU%3D&security-token=CAISuQJ1q6Ft5B2yfSjIpK6MGsyN1Jx5jo6mVnfBglIPTvlvt5D50Tz2IHtIf3NpAusdsv03nWxT7v4flqFyTINVAEvYZJOPKGrGR0DzDbDasumZsJbo4f%2FMQBqEaXPS2MvVfJ%2BzLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B%2Fr6%2F5gdc9FcQSkL0B8ZrFsKxBltdUROFbIKP%2BpKWSKuGfLC1dysQcO1wEP4K%2BkkMqH8Uic3h%2Boy%2BgJt8H2PpHhd9NhXuV2WMzn2%2FdtJOiTknxR7ARasaBqhelc4zqA%2FPPlWgAKvkXba7aIoo01fV4jN5JXQfAU8KLO8tRjofHWmojNzBJAAPpYSSy3Rvr7m5efQrrybY1lLO6iZy%2BVio2VSZDxshI5Z3McKARWct06MWV9ABA2TTXXOi40BOxuq%2B3JGoABXC54TOlo7%2F1wTLTsCUqzzeIiXVOK8CfNOkfTucMGHkeYeCdFkm%2FkADhXAnrnGf5a4FbmKMQph2cKsr8y8UfWLC6IzvJsClXTnbJBMeuWIqo5zIynS1pm7gf%2F9N3hVc6%2BEeIk0xfl2tycsUpbL2FoaGk6BAF8hWSWYUXsv59d5Uk%3D" 、
"getType": "file"
}
}
下表に、各パラメーターを説明します。
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0〜4294967295。 各メッセージIDは、デバイスに対して一意である必要があります。 |
バージョン | String | プロトコルのバージョン。 有効値: 1.0 |
sys | オブジェクト | 拡張フィーチャのパラメータ。The parameter for extended features. 値には、各フィーチャのフィールドが含まれます。 説明 デバイスSDKを使用してデバイス機能を開発するときに拡張機能が設定されていない場合、このパラメーターは使用できません。 拡張機能はデフォルトの設定を使用します。 |
ack | Integer | sysパラメーターの拡張機能フィールド。 このフィールドは、IoT Platformが登録要求の応答データを返すかどうかを指定します。 有効な値:
重要 パラメーターの詳細については、「TSLモデルの使用方法の例」をご参照ください。 機能が設定されていない場合、このパラメーターは使用できません。 デフォルトでは、IoT Platformは登録リクエストの応答データを返します。 |
configScope | String | 設定スコープ。 IoT Platformは、製品レベルの設定のみをサポートします。 有効値: product |
getType | String | 設定が返される形式。 IoT Platformはファイル形式をサポートしています。 有効値: file |
メソッド | String | リクエスト方式。 有効値: thing.config.get |
configId | String | 設定ファイルのID。 |
configSize | Long | 構成ファイルのサイズ (バイト単位) 。 |
サイン | String | 署名。 |
signMethod | String | 署名方法。 IoT PlatformはSHA-256のみをサポートします。 |
url | String | Object Storage Service (OSS) に保存されている設定ファイルのURL。 |
コード | Integer | レスポンス内のHTTPステータスコード。 200が返された場合、リクエストは成功しました。 他のステータスコードが返された場合、リクエストは失敗しました。 詳細については、「デバイスの共通コード」をご参照ください。 |
次の表に、エラーコードを示します。
HTTPステータスコード | エラーメッセージ | 説明 |
6713 | thing config function is not available | 製品のリモート構成機能が無効になっている場合に返されるエラーメッセージ。 この問題を解決するには、次の手順を実行します。IoT Platformコンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。次に、製品のリモート構成機能を有効にします。 |
6710 | no data | 使用可能な構成データがない場合に返されるエラーメッセージ。 |
IoT Platformが設定情報をデバイスにプッシュ
次のトピックは、IoT Platformがデバイスにリクエストを送信し、デバイスがIoT Platformに応答を送信するときに使用されます。
- リクエストトピック:
/sys/${productKey}/${deviceName}/thing/config/push
- レスポンストピック:
/sys/${productKey}/${deviceName}/thing/config/push_reply
IoT Platformコンソールで複数のデバイスの設定プッシュを設定した後、IoT Platformは設定プッシュトピックをサブスクライブしているデバイスに設定情報を非同期にプッシュします。
Alink JSON形式のサンプルリクエスト:
{
"id": "123",
"version": "1.0"、
"params": {
"configId": "123dagdah",
"configSize": 1234565,
"sign": "123214adfadgadg",
"signMethod": "Sha256",
"url": "https://iotx-config.oss-cn-shanghai.aliyuncs.com/nopoll_0.4.4.tar.gz?Expires=1502955804&OSSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&Signature=XfgJu7P6DWWejstKJgXJEH0qAKU%3D&security-token=CAISuQJ1q6Ft5B2yfSjIpK6MGsyN1Jx5jo6mVnfBglIPTvlvt5D50Tz2IHtIf3NpAusdsv03nWxT7v4flqFyTINVAEvYZJOPKGrGR0DzDbDasumZsJbo4f%2FMQBqEaXPS2MvVfJ%2BzLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B%2Fr6%2F5gdc9FcQSkL0B8ZrFsKxBltdUROFbIKP%2BpKWSKuGfLC1dysQcO1wEP4K%2BkkMqH8Uic3h%2Boy%2BgJt8H2PpHhd9NhXuV2WMzn2%2FdtJOiTknxR7ARasaBqhelc4zqA%2FPPlWgAKvkXba7aIoo01fV4jN5JXQfAU8KLO8tRjofHWmojNzBJAAPpYSSy3Rvr7m5efQrrybY1lLO6iZy%2BVio2VSZDxshI5Z3McKARWct06MWV9ABA2TTXXOi40BOxuq%2B3JGoABXC54TOlo7%2F1wTLTsCUqzzeIiXVOK8CfNOkfTucMGHkeYeCdFkm%2FkADhXAnrnGf5a4FbmKMQph2cKsr8y8UfWLC6IzvJsClXTnbJBMeuWIqo5zIynS1pm7gf%2F9N3hVc6%2BEeIk0xfl2tycsUpbL2FoaGk6BAF8hWSWYUXsv59d5Uk%3D" 、
"getType": "file"
},
"method": "thing.config.push"
}
Alink JSON形式のサンプル応答:
{
"id": "123",
"code": 200,
"data": {}
}
下表に、各パラメーターを説明します。
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0〜4294967295。 各メッセージIDは、デバイスに対して一意である必要があります。 |
バージョン | String | プロトコルのバージョン。 有効値: 1.0 |
configScope | String | 設定スコープ。 IoT Platformは、製品レベルの設定のみをサポートします。 有効値: product |
getType | String | 設定が返される形式。 IoT Platformはファイル形式をサポートしています。 有効値: file |
configId | String | 設定ファイルのID。 |
configSize | Long | 構成ファイルのサイズ (バイト単位) 。 |
サイン | String | 署名。 |
signMethod | String | 署名方法。 IoT PlatformはSHA-256のみをサポートします。 |
url | String | OSSに保存されている設定ファイルのURL。 |
メソッド | String | リクエスト方式。 有効値: thing.config.push |
コード | Integer | レスポンス内のHTTPステータスコード。 詳細については、「デバイスの共通コード」をご参照ください。 |
IoT Platformのルールエンジンを使用して、デバイスから他のトピックまたは他のAlibaba Cloudサービスに応答を転送できます。 データ転送機能の使用方法の詳細については、「データ転送ルールの設定」をご参照ください。 デバイスの応答トピックとデータ形式の詳細については、「データ形式」トピックの「ダウンストリームリクエストへの応答の送信」セクションをご参照ください。