设备接入 IoTDA设备接入 IoTDA

计算
弹性云服务器 ECS
裸金属服务器 BMS
云手机 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器 HECS
VR云渲游平台 CVR
特惠算力专区
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属企业存储服务
云存储网关 CSG
专属分布式存储服务 DSS
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘小站 IES
智能边缘平台 IEF
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
园区智能体 CampusGo
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
视频分析服务 VAS
语音交互服务 SIS
知识图谱 KG
人证核身服务 IVS
IoT物联网
设备接入 IoTDA
设备管理 IoTDM(联通用户专用)
全球SIM联接 GSL
IoT数据分析
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
开发与运维
软件开发平台 DevCloud
项目管理 ProjectMan
代码托管 CodeHub
流水线 CloudPipeline
代码检查 CodeCheck
编译构建 CloudBuild
部署 CloudDeploy
云测 CloudTest
发布 CloudRelease
移动应用测试 MobileAPPTest
CloudIDE
Classroom
开源镜像站 Mirrors
应用魔方 AppCube
云性能测试服务 CPTS
应用管理与运维平台 ServiceStage
云应用引擎 CAE
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
资源管理服务 RMS
应用身份管理服务 OneAccess
区块链
区块链服务 BCS
可信跨链服务 TCS
可信分布式身份服务
智能协作
IdeaHub
开发者工具
SDK开发指南
API签名指南
DevStar
HCloud CLI
Terraform
Ansible
云生态
云市场
合作伙伴中心
华为云培训中心
其他
管理控制台
消息中心
产品价格详情
系统权限
我的凭证
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
应用编排服务 AOS
多云容器平台 MCP
基因容器 GCS
容器洞察引擎 CIE
云原生服务中心 OSC
容器批量计算 BCE
容器交付流水线 ContainerOps
应用服务网格 ASM
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB (for openGauss)
云数据库 GaussDB(for MySQL)
云数据库 GaussDB NoSQL
数据管理服务 DAS
数据库和应用迁移 UGO
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据湖治理中心 DGC
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
API网关 APIG
分布式缓存服务 DCS
分布式消息服务RocketMQ版
企业应用
域名注册服务 Domains
云解析服务 DNS
云速建站 CloudSite
网站备案
商标注册
华为云WeLink
会议
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMAExchange
API全生命周期管理 ROMA API
安全与合规
安全技术与应用
DDoS防护 ADS
Web应用防火墙 WAF
云防火墙 CFW
应用信任中心 ATC
企业主机安全 HSS
容器安全服务 CGS
云堡垒机 CBH
数据库安全服务 DBSS
数据加密服务 DEW
数据安全中心 DSC
云证书管理服务 CCM
SSL证书管理 SCM
漏洞扫描服务 VSS
态势感知 SA
威胁检测服务 MTD
管理检测与响应 MDR
安全治理云图 Compass
认证测试中心 CTC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
专属云
专属计算集群 DCC
解决方案
高性能计算 HPC
SAP
混合云灾备
华为工业云平台 IMC
价格
成本优化最佳实践
专属云商业逻辑
用户服务
帐号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
更新时间:2021-12-21 GMT+08:00
分享

创建设备

接口说明

应用服务器可调用此接口在物联网平台创建一个设备,仅在创建后设备才可以接入物联网平台。

  • 该接口支持使用gateway_id参数指定在父设备下创建一个子设备,并且支持多级子设备,当前最大支持二级子设备。
  • 该接口同时还支持对设备进行初始配置,接口会读取创建设备请求参数product_id对应的产品详情,如果产品的属性有定义默认值,则会将该属性默认值写入该设备的设备影子中。
  • 用户还可以使用创建设备请求参数shadow字段为设备指定初始配置,指定后将会根据service_id和desired设置的属性值与产品中对应属性的默认值比对,如果不同,则将以shadow字段中设置的属性值为准写入到设备影子中。

调试

您可以在API Explorer中调试该接口。

URI

请求方法

POST

URI

/v5/iot/{project_id}/devices

传输协议

HTTPS

请求参数

名称

必选/可选

类型

位置

说明

X-Auth-Token

必选

String

Header

参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证

Instance-Id

可选

String

Header

参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。

project_id

必选

String

Path

参数说明:项目ID。获取方法请参见 获取项目ID

device_id

可选

String

Body

参数说明:设备ID,用于唯一标识一个设备。如果携带该参数,平台将设备ID设置为该参数值;如果不携带该参数,设备ID由物联网平台分配获得,生成规则为"product_id" + "_" + "node_id"拼接而成。

取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。

node_id

必选

String

Body

参数说明:设备标识码,通常使用IMEI、MAC地址或Serial No作为node_id。

设备标识码长度为1到64个字符,包含英文字母、数字、连接号“-”和下划线“_”。

注意:NB设备由于模组烧录信息后无法配置,所以NB设备会校验node_id全局唯一。

取值范围:长度不超过64,只允许字母、数字、下划线(_)、连接符(-)的组合。

device_name

可选

String

Body

参数说明:设备名称。

取值范围:长度不超过256,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合

product_id

必选

String

Body

参数说明:设备关联的产品ID,用于唯一标识一个产品模型,创建产品后获得。方法请参见 创建产品

取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。

auth_info

可选

AuthInfo Object

Body

参数说明:设备的接入认证信息。

description

可选

String

Body

参数说明:设备的描述信息。

取值范围:长度不超过2048,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合

gateway_id

可选

String

Body

参数说明:网关ID,用于标识设备所属的父设备,即父设备的设备ID。携带该参数时,表示在该父设备下创建一个子设备,这个子设备不与平台直连,此时必须保证这个父设备在平台已存在,创建成功后子设备的gateway_id等于该参数值;不携带该参数时,表示创建一个和平台直连的设备,创建成功后设备的device_id和gateway_id一致。注意:当前平台最多支持二级子设备。

取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。

app_id

可选

String

Body

参数说明:资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数指定创建的设备归属到哪个资源空间下,否则创建的设备将会归属到默认资源空间下。

取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。

extension_info

可选

Object

Body

参数说明:设备扩展信息。用户可以自定义任何想要的扩展信息,如果在创建设备时为子设备指定该字段,将会通过MQTT接口“平台通知网关子设备新增“将该信息通知给网关。字段值大小上限为1K。

shadow

可选

List<InitialDesired>

Body

参数说明:设备初始配置。用户使用该字段可以为设备指定初始配置,指定后将会根据service_id和desired设置的属性值与产品中对应属性的默认值比对,如果不同,则将以shadow字段中设置的属性值为准写入到设备影子中。service_id的值和desired内的属性必须是profile中定义的。

表1 AuthInfo

名称

必选/可选

类型

说明

auth_type

可选

String

参数说明:鉴权类型。注意:不填写auth_type默认为密钥认证接入方式(SECRET)。

取值范围

  • SECRET:使用密钥认证接入方式。
  • CERTIFICATES:使用证书认证接入方式。

secret

可选

String

参数说明:设备密钥,认证类型使用密钥认证接入(SECRET)可填写该字段。注意:NB设备密钥由于协议特殊性,只支持十六进制密钥接入;查询设备列表接口不返回该参数。

取值范围:长度不低于8不超过32,只允许字母、数字、下划线(_)、连接符(-)的组合。

fingerprint

可选

String

参数说明:证书指纹,认证类型使用证书认证接入(CERTIFICATES)可填写该字段,注册设备时不填写该字段则取第一次设备接入时的证书指纹。

取值范围:长度为40的十六进制字符串或者长度为64的十六进制字符串。

secure_access

可选

Boolean

参数说明:指设备是否通过安全协议方式接入。

取值范围

  • true:通过安全协议方式接入。
  • false:通过非安全协议方式接入。非安全接入的设备存在被仿冒等安全风险,请谨慎使用。

timeout

可选

Integer

参数说明:设备接入的有效时间,单位:秒,默认值:0

若设备在有效时间内未接入物联网平台并激活,则平台会删除该设备的注册信息。若设置为“0”,则表示平台不会删除该设备的注册信息(建议填写为“0”)。

注意:只有注册设备接口或者修改设备接口修改timeout时返回该参数。

表2 InitialDesired

名称

必选/可选

类型

说明

service_id

必选

String

参数说明:设备的服务ID,在设备关联的产品模型中定义。

取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。

desired

必选

Object

参数说明:设备初始配置属性数据,Json格式,里面是一个个键值对,每个键都是产品模型中属性的参数名(property_name),目前如样例所示只支持一层结构;这里设置的属性值与产品中对应属性的默认值比对,如果不同,则将以该字段中设置的属性值为准写入到设备影子中;如果想要删除整个desired可以填写空object(例如"desired":{}),如果想要删除某一个属性期望值可以将属性置位null(例如{"temperature":null})

响应参数

名称

类型

说明

app_id

String

资源空间ID。

app_name

String

资源空间名称。

device_id

String

设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "_" + "node_id"拼接而成。

node_id

String

设备标识码,通常使用IMEI、MAC地址或Serial No作为node_id。

gateway_id

String

网关ID,用于标识设备所属的父设备,即父设备的设备ID。当设备是直连设备时,gateway_id与设备的device_id一致。当设备是非直连设备时,gateway_id为设备所关联的父设备的device_id。

device_name

String

设备名称。

node_type

String

设备节点类型。

  • ENDPOINT:非直连设备。
  • GATEWAY:直连设备或网关。
  • UNKNOWN:未知。

description

String

设备的描述信息。

fw_version

String

设备的固件版本。

sw_version

String

设备的软件版本。

device_sdk_version

String

设备的sdk信息。

auth_info

AuthInfo Object

设备的接入认证信息。

product_id

String

设备关联的产品ID,用于唯一标识一个产品模型。

product_name

String

设备关联的产品名称。

status

String

设备的状态。

  • ONLINE:设备在线。
  • OFFLINE:设备离线。
  • ABNORMAL:设备异常。
  • INACTIVE:设备未激活。
  • FROZEN:设备冻结。

create_time

String

在物联网平台注册设备的时间。格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。

tags

List<TagV5DTO>

设备的标签列表。

extension_info

Object

设备扩展信息。用户可以自定义任何想要的扩展信息,如果在创建设备时为子设备指定该字段,将会通过MQTT接口“平台通知网关子设备新增“将该信息通知给网关。

表3 AuthInfo

名称

类型

说明

auth_type

String

参数说明:鉴权类型。注意:不填写auth_type默认为密钥认证接入方式(SECRET)。

取值范围

  • SECRET:使用密钥认证接入方式。
  • CERTIFICATES:使用证书认证接入方式。

secret

String

参数说明:设备密钥,认证类型使用密钥认证接入(SECRET)可填写该字段。注意:NB设备密钥由于协议特殊性,只支持十六进制密钥接入;查询设备列表接口不返回该参数。

取值范围:长度不低于8不超过32,只允许字母、数字、下划线(_)、连接符(-)的组合。

fingerprint

String

参数说明:证书指纹,认证类型使用证书认证接入(CERTIFICATES)可填写该字段,注册设备时不填写该字段则取第一次设备接入时的证书指纹。

取值范围:长度为40的十六进制字符串或者长度为64的十六进制字符串。

secure_access

Boolean

参数说明:指设备是否通过安全协议方式接入。

取值范围

  • true:通过安全协议方式接入。
  • false:通过非安全协议方式接入。非安全接入的设备存在被仿冒等安全风险,请谨慎使用。

timeout

Integer

参数说明:设备接入的有效时间,单位:秒,默认值:0

若设备在有效时间内未接入物联网平台并激活,则平台会删除该设备的注册信息。若设置为“0”,则表示平台不会删除该设备的注册信息(建议填写为“0”)。

注意:只有注册设备接口或者修改设备接口修改timeout时返回该参数。

表4 TagV5DTO

名称

类型

说明

tag_key

String

参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。

取值范围:长度不超过64,只允许中文、字母、数字、以及_.-等字符的组合。

tag_value

String

参数说明:标签值。

取值范围:长度不超过128,只允许中文、字母、数字、以及_.-等字符的组合。

请求示例

POST https://{Endpoint}/v5/iot/{project_id}/devices
Content-Type: application/json
X-Auth-Token: ********
Instance-Id: ********

{
  "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
  "node_id" : "ABC123456789",
  "device_name" : "dianadevice",
  "product_id" : "b640f4c203b7910fc3cbd446ed437cbd",
  "auth_info" : {
    "auth_type" : "SECRET",
    "secure_access" : true,
    "fingerprint" : "dc0f1016f495157344ac5f1296335cff725ef22f",
    "secret" : "3b935a250c50dc2c6d481d048cefdc3c",
    "timeout" : 0
  },
  "description" : "watermeter device",
  "gateway_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
  "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka",
  "extension_info" : {
    "aaa" : "xxx",
    "bbb" : 0
  },
  "shadow" : [ {
    "desired" : {
      "temperature" : "60"
    },
    "service_id" : "WaterMeter"
  } ]
}

响应示例

Status Code: 201 Created

Content-Type: application/json

{
  "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka",
  "app_name" : "testAPP01",
  "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
  "node_id" : "ABC123456789",
  "gateway_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
  "device_name" : "dianadevice",
  "node_type" : "ENDPOINT",
  "description" : "watermeter device",
  "fw_version" : "1.1.0",
  "sw_version" : "1.1.0",
  "auth_info" : {
    "auth_type" : "SECRET",
    "secret" : "3b935a250c50dc2c6d481d048cefdc3c",
    "fingerprint" : "dc0f1016f495157344ac5f1296335cff725ef22f",
    "secure_access" : true,
    "timeout" : 0
  },
  "product_id" : "b640f4c203b7910fc3cbd446ed437cbd",
  "product_name" : "Thermometer",
  "status" : "INACTIVE",
  "create_time" : "20190303T081011Z",
  "tags" : [ {
    "tag_key" : "testTagName",
    "tag_value" : "testTagValue"
  } ],
  "extension_info" : {
    "aaa" : "xxx",
    "bbb" : 0
  }
}

错误码

HTTP状态码

错误码

错误码英文描述

错误码中文描述

处理建议

400

IOTDA.000008

Invalid input. Bad request, for more detail, refer to the error message.

请求的格式不正确,如json非法,mediaType不正确等。

请排查该请求的请求格式是否正确。

IOTDA.013000

The product does not exist.

产品不存在

请排查请求参数是否正确或产品是否已经在指定资源空间下注册

IOTDA.013002

The properties of deviceServiceCapability do not exist.

产品的属性不存在

请排查该产品是否有属性信息,若没有,可调用修改产品接口添加属性。

IOTDA.013003

Operation not allowed. The product is unavailable.

未知的产品类型

请排查设备是否有产品ID, 若没有,可调用修改设备信息接口添加产品ID。

IOTDA.014008

Invalid input. The nodeId is duplicated.

nodeId重复

请更换nodeId后再重试。

IOTDA.014009

Invalid input. The deviceName is duplicated.

deviceName重复

请更换deviceName后再重试。

IOTDA.014010

Invalid input. The secretDevice cannot be empty when authType is SECRET.

当authType是SECRET时, secretDevice不能为空

请联系华为工程师分析解决。

IOTDA.014011

Invalid input. The secretEncryptionType cannot be empty when authType is MQTT.

当authType为MQTT时,secretEncryptionType不能为空

请联系华为工程师分析解决

IOTDA.014012

Invalid input. The pskDevice cannot be empty when authType is PSK.

authType为PSK时,pskDevice不能为空

请联系华为工程师分析解决

IOTDA.014013

Invalid input. The isSecure must be true.

isSecure参数值必须为true

请将isSecure参数设置成true。

IOTDA.014023

Gateway and sensor auth type is inconsistent

网关和子设备的认证类型不一致。

请保证网关和子设备的认证类型一致。

IOTDA.014025

Invalid input. Invalid parameter 'serviceId'.

serviceId不合法

请排查请求参数serviceId是否符合华为云文档要求

IOTDA.014027

Invalid input. The initialization cannot be empty when mode is INITIALIZATION.

mode为INITIALIZATION时initialization参数不能为空

请联系华为工程师分析解决。

IOTDA.014031

Invalid input. The device already exists.

设备已存在

请更换参数后再重试。

IOTDA.014034

Invalid input. The serviceId or eventType do not match.

serviceId或eventType不匹配

请检查请求参数serviceId与eventType是否与profile中定义的相同。

IOTDA.014035

Invalid input. The size of extension_info has reach or exceed 1k.

extension_info字段大小超过1K

请将extension_info参数的大小限制在1K以内。

403

IOTDA.000022

Operation not allowed. The user does not have the permission

该用户没有权限

请排查该用户是否有权限访问。

IOTDA.001000

The application does not exist.

该应用不存在

请确定是否已在平台注册应用并检查应用ID是否正确。

IOTDA.001002

Operation not allowed. The application has not been authorized.

该应用没有权限访问

请检查该应用是否已被授权。

IOTDA.013004

Operation not allowed. You have no Write permission.

您没有可写的权限

请排查您的产品属性是否是可写的,若不是,可调用修改产品的接口将属性改成可写。

IOTDA.014019

Operation not allowed. The number of user's device has reached the limit.

用户下的设备数量达到上限

请删除无用设备或联系华为工程师分析解决。

IOTDA.014020

Operation not allowed. The number of device bound to this application has reached the limit.

应用下的设备数量超过最大上限

请删除无用设备或联系华为工程师分析解决。

IOTDA.014021

Operation not allowed. The number of device has reached the limit of ordered package.

套餐下的设备数量超过最大上限

请删除无用设备或联系华为工程师分析解决。

IOTDA.014022

Operation not allowed. The number of license resource has reached the limit.

许可证资源数量已达到上限

请联系华为工程师分析解决。

IOTDA.014026

Operation not allowed. The number of nonSecure device has reached the limit.

非安全设备的数量已达到上限

请删除无用的非安全设备或联系华为工程师分析解决。

IOTDA.014036

Operation not allowed. The product of this device has not defined service capabilities

该设备的产品未定义设备服务能力

请使用修改产品接口将该产品添加设备服务能力。

404

IOTDA.014000

The device does not exist.

设备不存在

请排查请求参数是否有误并确认是否有在平台注册该设备。

分享:

    相关文档

    相关产品

关闭导读