修改产品
功能介绍
应用服务器可调用此接口修改已导入物联网平台的指定产品模型,包括产品模型的服务、属性、命令等。此接口仅修改了产品,未修改和安装插件,如果修改了产品中的service定义,且在平台中有对应的插件,请修改并重新安装插件。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
PUT /v5/iot/{project_id}/products/{product_id}
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数说明:项目ID。获取方法请参见 获取项目ID。 |
product_id |
是 |
String |
参数说明:产品ID,用于唯一标识一个产品,在物联网平台创建产品后由平台分配获得。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
否 |
String |
参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 |
Instance-Id |
否 |
String |
参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考 查看实例详情。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
app_id |
否 |
String |
参数说明:资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数,指定要修改的产品属于哪个资源空间;若不携带,则优先修改默认资源空间下产品,如默认资源空间下无对应产品,则按照产品创建时间修改最早创建产品。如果用户存在多资源空间,同时又不想携带该参数,可以联系华为技术支持对用户数据做资源空间合并。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
name |
否 |
String |
参数说明:产品名称。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
device_type |
否 |
String |
参数说明:设备类型。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
protocol_type |
否 |
String |
参数说明:设备使用的协议类型。注:禁止其他协议类型修改为CoAP。 取值范围:MQTT,CoAP,HTTP,HTTPS,Modbus,ONVIF,OPC-UA,OPC-DA,TCP,UDP,Other。 |
data_format |
否 |
String |
参数说明:设备上报数据的格式。 取值范围:
|
service_capabilities |
否 |
Array of ServiceCapability objects |
参数说明:设备的服务能力列表。 |
manufacturer_name |
否 |
String |
参数说明:厂商名称。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
industry |
否 |
String |
参数说明:设备所属行业。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
description |
否 |
String |
参数说明:产品的描述信息。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
service_id |
是 |
String |
参数说明:设备的服务ID。注:产品内不允许重复。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 |
service_type |
是 |
String |
参数说明:设备的服务类型。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 |
properties |
否 |
Array of ServiceProperty objects |
参数说明:设备服务支持的属性列表。 取值范围:数组长度大小不超过500。 |
commands |
否 |
Array of ServiceCommand objects |
参数说明:设备服务支持的命令列表。 取值范围:数组长度大小不超过500。 |
events |
否 |
Array of ServiceEvent objects |
参数说明:设备服务支持的事件列表。目前暂未支持自定义事件,创建/修改产品时无需定义该字段。 取值范围:数组长度大小不超过500。 |
description |
否 |
String |
参数说明:设备服务的描述信息。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 |
option |
否 |
String |
参数说明:指定设备服务是否必选。目前本字段为非功能性字段,仅起到标识作用。 取值范围:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
property_name |
是 |
String |
参数说明:设备属性名称。注:设备服务内不允许重复。属性名称作为设备影子JSON文档中的key不支持特殊字符:点(.)、dollar符号($)、空char(十六进制的ASCII码为00),如果包含了以上特殊字符则无法正常刷新影子文档。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
data_type |
是 |
String |
参数说明:设备属性的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 |
required |
否 |
Boolean |
参数说明:设备属性是否必选。默认为false。 |
enum_list |
否 |
Array of strings |
参数说明:设备属性的枚举值列表。 |
min |
否 |
String |
参数说明:设备属性的最小值。 取值范围:长度1-16。 |
max |
否 |
String |
参数说明:设备属性的最大值。 取值范围:长度1-16。 |
max_length |
否 |
Integer |
参数说明:设备属性的最大长度。 |
step |
否 |
Double |
参数说明:设备属性的步长。 |
unit |
否 |
String |
参数说明:设备属性的单位。 取值范围:长度不超过16。 |
method |
是 |
String |
参数说明:设备属性的访问模式。 取值范围:RWE,RW,RE,WE,E,W,R。
|
description |
否 |
String |
参数说明:设备属性的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 |
default_value |
否 |
Object |
参数说明:设备属性的默认值。如果设置了默认值,使用该产品创建设备时,会将该属性的默认值写入到该设备的设备影子预期数据中,待设备上线时将该属性默认值下发给设备。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
command_name |
是 |
String |
参数说明:设备命令名称。注:设备服务内不允许重复。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
paras |
否 |
Array of ServiceCommandPara objects |
参数说明:设备命令的参数列表。 |
responses |
否 |
Array of ServiceCommandResponse objects |
参数说明:设备命令的响应列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
response_name |
是 |
String |
参数说明:设备命令响应名称。 取值范围:长度不超过128,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
paras |
否 |
Array of ServiceCommandPara objects |
参数说明:设备命令响应的参数列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
event_type |
是 |
String |
参数说明:设备事件类型。注:设备服务内不允许重复。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
paras |
否 |
Array of ServiceCommandPara objects |
参数说明:设备事件的参数列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
para_name |
是 |
String |
参数说明:参数的名称。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
data_type |
是 |
String |
参数说明:参数的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 |
required |
否 |
Boolean |
参数说明:参数是否必选。默认为false。 |
enum_list |
否 |
Array of strings |
参数说明:参数的枚举值列表。 |
min |
否 |
String |
参数说明:参数的最小值。 取值范围:长度1-16。 |
max |
否 |
String |
参数说明:参数的最大值。 取值范围:长度1-16。 |
max_length |
否 |
Integer |
参数说明:参数的最大长度。 |
step |
否 |
Double |
参数说明:参数的步长。 |
unit |
否 |
String |
参数说明:参数的单位。 取值范围:长度不超过16。 |
description |
否 |
String |
参数说明:参数的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
app_id |
String |
资源空间ID。 |
app_name |
String |
资源空间名称。 |
product_id |
String |
产品ID,用于唯一标识一个产品,在物联网平台创建产品后由平台分配获得。 |
name |
String |
产品名称。 |
device_type |
String |
设备类型。 |
protocol_type |
String |
设备使用的协议类型。取值范围:MQTT,CoAP,HTTP,HTTPS,Modbus,ONVIF, OPC-UA,OPC-DA,TCP,UDP,Other。 |
data_format |
String |
设备上报数据的格式,取值范围:json,binary。 |
manufacturer_name |
String |
厂商名称。 |
industry |
String |
设备所属行业。 |
description |
String |
产品的描述信息。 |
service_capabilities |
Array of ServiceCapability objects |
设备的服务能力列表。 |
create_time |
String |
在物联网平台创建产品的时间,格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 |
参数 |
参数类型 |
描述 |
---|---|---|
service_id |
String |
参数说明:设备的服务ID。注:产品内不允许重复。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 |
service_type |
String |
参数说明:设备的服务类型。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 |
properties |
Array of ServiceProperty objects |
参数说明:设备服务支持的属性列表。 取值范围:数组长度大小不超过500。 |
commands |
Array of ServiceCommand objects |
参数说明:设备服务支持的命令列表。 取值范围:数组长度大小不超过500。 |
events |
Array of ServiceEvent objects |
参数说明:设备服务支持的事件列表。目前暂未支持自定义事件,创建/修改产品时无需定义该字段。 取值范围:数组长度大小不超过500。 |
description |
String |
参数说明:设备服务的描述信息。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 |
option |
String |
参数说明:指定设备服务是否必选。目前本字段为非功能性字段,仅起到标识作用。 取值范围:
|
参数 |
参数类型 |
描述 |
---|---|---|
property_name |
String |
参数说明:设备属性名称。注:设备服务内不允许重复。属性名称作为设备影子JSON文档中的key不支持特殊字符:点(.)、dollar符号($)、空char(十六进制的ASCII码为00),如果包含了以上特殊字符则无法正常刷新影子文档。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
data_type |
String |
参数说明:设备属性的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 |
required |
Boolean |
参数说明:设备属性是否必选。默认为false。 |
enum_list |
Array of strings |
参数说明:设备属性的枚举值列表。 |
min |
String |
参数说明:设备属性的最小值。 取值范围:长度1-16。 |
max |
String |
参数说明:设备属性的最大值。 取值范围:长度1-16。 |
max_length |
Integer |
参数说明:设备属性的最大长度。 |
step |
Double |
参数说明:设备属性的步长。 |
unit |
String |
参数说明:设备属性的单位。 取值范围:长度不超过16。 |
method |
String |
参数说明:设备属性的访问模式。 取值范围:RWE,RW,RE,WE,E,W,R。
|
description |
String |
参数说明:设备属性的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 |
default_value |
Object |
参数说明:设备属性的默认值。如果设置了默认值,使用该产品创建设备时,会将该属性的默认值写入到该设备的设备影子预期数据中,待设备上线时将该属性默认值下发给设备。 |
参数 |
参数类型 |
描述 |
---|---|---|
command_name |
String |
参数说明:设备命令名称。注:设备服务内不允许重复。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
paras |
Array of ServiceCommandPara objects |
参数说明:设备命令的参数列表。 |
responses |
Array of ServiceCommandResponse objects |
参数说明:设备命令的响应列表。 |
参数 |
参数类型 |
描述 |
---|---|---|
response_name |
String |
参数说明:设备命令响应名称。 取值范围:长度不超过128,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
paras |
Array of ServiceCommandPara objects |
参数说明:设备命令响应的参数列表。 |
参数 |
参数类型 |
描述 |
---|---|---|
event_type |
String |
参数说明:设备事件类型。注:设备服务内不允许重复。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
paras |
Array of ServiceCommandPara objects |
参数说明:设备事件的参数列表。 |
参数 |
参数类型 |
描述 |
---|---|---|
para_name |
String |
参数说明:参数的名称。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
data_type |
String |
参数说明:参数的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 |
required |
Boolean |
参数说明:参数是否必选。默认为false。 |
enum_list |
Array of strings |
参数说明:参数的枚举值列表。 |
min |
String |
参数说明:参数的最小值。 取值范围:长度1-16。 |
max |
String |
参数说明:参数的最大值。 取值范围:长度1-16。 |
max_length |
Integer |
参数说明:参数的最大长度。 |
step |
Double |
参数说明:参数的步长。 |
unit |
String |
参数说明:参数的单位。 取值范围:长度不超过16。 |
description |
String |
参数说明:参数的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 |
请求示例
修改一个产品,将产品名称修改为Thermometer,服务能力修改为temperature。
PUT https://{endpoint}/v5/iot/{project_id}/products/{product_id} { "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "name" : "Thermometer,", "device_type" : "Thermometer", "protocol_type" : "MQTT", "data_format" : "json", "service_capabilities" : [ { "service_id" : "temperature。", "service_type" : "temperature", "properties" : [ { "property_name" : "temperature", "data_type" : "decimal", "required" : true, "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "centigrade", "method" : "RW", "description" : "force", "default_value" : { "color" : "red", "size" : 1 } } ], "commands" : [ { "command_name" : "reboot", "paras" : [ { "para_name" : "force", "data_type" : "string", "required" : false, "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ], "responses" : [ { "response_name" : "ACK", "paras" : [ { "para_name" : "force", "data_type" : "string", "required" : false, "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ] } ] } ], "events" : [ { "event_type" : "reboot", "paras" : [ { "para_name" : "force", "data_type" : "string", "required" : false, "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ] } ], "description" : "temperature", "option" : "Mandatory" } ], "manufacturer_name" : "ABC", "industry" : "smartCity", "description" : "this is a thermometer produced by Huawei" }
响应示例
状态码: 200
Successful response
{ "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "app_name" : "testAPP01", "product_id" : "5ba24f5ebbe8f56f5a14f605", "name" : "Thermometer", "device_type" : "Thermometer", "protocol_type" : "MQTT", "data_format" : "json", "manufacturer_name" : "ABC", "industry" : "smartCity", "description" : "this is a thermometer produced by Huawei", "service_capabilities" : [ { "service_id" : "temperature", "service_type" : "temperature", "properties" : [ { "property_name" : "temperature", "required" : true, "data_type" : "decimal", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "centigrade", "method" : "RW", "description" : "force", "default_value" : { "color" : "red", "size" : 1 } } ], "commands" : [ { "command_name" : "reboot", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ], "responses" : [ { "response_name" : "ACK", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ] } ] } ], "events" : [ { "event_type" : "reboot", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ] } ], "description" : "temperature", "option" : "Mandatory" } ], "create_time" : "20190303T081011Z" }
状态码
状态码 |
描述 |
---|---|
200 |
Successful response |
400 |
Bad Request |
401 |
Unauthorized |
403 |
FORBIDDEN |
404 |
Not Found |
500 |
Internal Server Error |
错误码
请参见错误码。