更新时间:2022-02-24 GMT+08:00

注册设备(验证码方式)

典型场景

在设备接入物联网平台前,第三方应用需要调用此接口在物联网平台注册设备,并把设备的唯一标识码(如IMEI)设置为设备接入平台的验证码。在设备接入物联网平台时携带设备唯一标识,完成设备的接入认证。

接口功能

支持第三方应用在物联网平台注册设备,完成注册后设备方可接入物联网平台。

接口描述

1
def regDirectDevice(self, rddInDto, appId, accessToken)

接口所属类

DeviceManagement

参数说明

参数

必选/可选

类型

位置

描述

rddInDto

必选

RegDirectDeviceInDTO

body

见下表RegDirectDeviceInDTO的描述。

appId

可选

String

query

如果是本应用的设备,此参数值可以填写None,否则填写授权应用的appId。

accessToken

必选

String

header

填写鉴权接口获取的accessToken。

RegDirectDeviceInDTO

参数

必选/可选

类型

位置

描述

customFields

可选

List<CustomField>

Body

自定义字段列表,用户可设置自定义字段。

deviceInfo

可选

DeviceInfoDTO

Body

设备信息。

deviceInfo2

可选

DeviceInfo2

Body

设备信息2。

deviceName

可选

String(256)

Body

设备名称。

endUserId

可选

String(256)

Body

终端用户ID。

在NB-IoT方案中,endUserId设置为设备的IMSI号。在Smarthome解决方案中, endUserId设置为App账号。

groupId

可选

String(256)

Body

设备所属的设备组ID。

imsi

可选

String(1-64)

Body

NB-IoT终端的IMSI。

isSecure

可选

Boolean

Body

指定设备是否为安全设备,默认值为“false”

  • “true”:安全设备
  • “false”:非安全设备
说明:

如果用户需要注册安全设备,isSecure参数必须填写。

location

可选

Location

Body

设备位置信息。

nodeId

必选

String(256)

Body

设备的唯一标识,必须与设备上报的设备标识一致。通常使用MAC地址,Serial No或IMEI作为nodeId。

说明:

使用IMEI作为nodeId时,根据不同厂家的芯片有不同填写要求。

  • 高通芯片设备的唯一标识为urn:imei:xxxx,xxxx为IMEI号
  • 海思芯片设备的唯一标识为IMEI号
  • 其他厂家芯片的设备唯一标识请联系模组厂家确认。

psk

可选

String(8-32)

Body

请求中指定psk,则平台使用指定的psk;请求中不指定psk,则由平台生成psk。取值范围是“a-f、A-F、0-9”组成的字符串。

tags

可选

List<TagDTO2>

Body

设备的标签信息。

timeout

可选

Integer(>=0)

Body

超时时间。当调用北向接口对设备开户,在超时时间内可绑定设备,若超过timeout时间且未绑定设备,则会删除超时的开户信息。

取值范围:0~2147483647。若填写为“0”,则表示设备验证码不会失效(建议填写为“0”)。

默认值:“180”(默认值可配置,具体配置值请咨询物联网平台运维人员。)

单位:秒。

verifyCode

条件可选

必选

String(256)

body

设备验证码,若在请求中指定verifyCode,则响应中返回请求中指定的verifyCode;若请求中不指定verifyCode,则由物联网平台自动生成。

在NB-IoT方案中,verifyCode为必填参数,且必须与nodeId设置成相同值。

productId

可选

String(256)

Body

设备所属的产品ID。

account

可选

String

Body

IPC设备账户。

CustomField:

参数

必选/可选

类型

位置

描述

fieldName

可选

String(256)

Body

字段名字。

fieldType

可选

String(256)

Body

字段类型。

fieldValue

可选

String(256)

Body

字段值。

DeviceInfoDTO:

参数

必选/可选

类型

位置

描述

nodeId

可选

String(256)

Body

设备的唯一标识。

name

可选

String(256)

Body

设备名称。

description

可选

String(2048)

Body

设备的描述信息。

manufacturerId

可选

String(256)

Body

厂商ID,唯一标识一个厂商。

manufacturerName

可选

String(256)

Body

厂商名称。

mac

可选

String(256)

Body

设备的MAC地址。

location

可选

String(2048)

Body

设备的位置信息。

deviceType

可选

String(256)

Body

设备类型,大驼峰命名方式,如MultiSensor、ContactSensor、CameraGateway。

model

必选

String(256)

Body

设备的型号。

Z-Wave:ProductType + ProductId,16 进制格式 XXXX-XXXX 补0对齐,如:001A-0A12,其他协议的格式待定。

swVersion

可选

String(256)

Body

设备的软件版本。

Z-Wave:主版本号.次版本号,如:1.1。

fwVersion

可选

String(256)

Body

设备的固件版本。

hwVersion

可选

String(256)

Body

设备的硬件版本。

protocolType

可选

String(256)

Body

设备使用的协议类型,当前支持的协议类型:CoAP,huaweiM2M,Z-Wave,ONVIF,WPS,Hue,WiFi,J808,Gateway,ZigBee,LWM2M。

bridgeId

可选

String(256)

Body

Bridge标识,表示设备通过哪个Bridge接入物联网平台。

status

可选

String

Body

设备的状态,表示设备是否在线,取值范围:“ONLINE”“OFFLINE”“INBOX”“ABNORMAL”

statusDetail

可选

String(256)

Body

设备的状态详情,跟status取值对应。

  • status为“ONLINE”时,取值“NONE ”“COMMUNICATION_ERROR”“CONFIGURATION_ERROR ”“BRIDGE_OFFLINE”“FIRMWARE_UPDATING ”“DUTY_CYCLE ”“NOT_ACTIVE”
  • status为“OFFLINE”时,取值“NONE ”“CONFIGURATION_PENDING”

mute

可选

String

Body

表示设备是否处于冻结状态,即设备上报数据时,平台是否会管理和保存。

  • “TRUE”:冻结状态
  • “FALSE”:非冻结状态

supportedSecurity

可选

String

Body

表示设备是否支持安全模式。

  • “TRUE”:支持安全模式
  • “FALSE”:不支持安全模式

isSecurity

可选

String

Body

表示设备当前是否启用安全模式。

  • “TRUE”:启用
  • “FALSE”:未启用

signalStrength

可选

String(256)

Body

设备的信号强度。

sigVersion

可选

String(256)

Body

设备的sig版本。

serialNumber

可选

String(256)

Body

设备的序列号。

batteryLevel

可选

String(256)

Body

设备的电池电量。

说明:

设备向物联网平台上报设备状态时需要status、statusDetail成对上报。statusDetail建议仅用作显示,不建议用于逻辑判断。

DeviceInfo2:

名称

必选/可选

类型

位置

说明

region

可选

String(256)

Body

设备所在区域。

timezone

可选

String(256)

Body

设备所在时区。

activeServiceCount

可选

Integer

Body

设备的活跃服务数量。

Location:

名称

必选/可选

类型

位置

说明

accuracy

可选

Double

Body

精确度,最小值为“0”

crashInformation

可选

String

Body

紧急信息。

description

可选

String

Body

位置描述信息。

heading

可选

String

Body

设备的方向信息。

language

可选

String

Body

语言信息。

latitude

可选

Double

Body

设备所在的纬度,取值“-90~90”

longitude

可选

Double

Body

设备所在的经度,取值“-180~180”

numberOfPassengers

可选

String

Body

乘客数量。

region

可选

String

Body

设备所在区域。

time

可选

DateTime

Body

时间信息。

vehicleSpeed

可选

String

Body

车辆速度。

TagDTO2:

参数

必选/可选

类型

位置

描述

tagName

必选

String(1-128)

body

标签名称。

tagValue

必选

String(1-1024)

body

标签值。

返回值

RegDirectDeviceOutDTO

参数

类型

描述

deviceId

String(256)

设备ID,用于唯一标识一个设备。

verifyCode

String(256)

验证码,设备可以通过验证码获取设备ID和密码。若在请求中指定verifyCode,则响应中返回请求中指定的verifyCode;若请求中不指定verifyCode,则由物联网平台自动生成。

timeout

Number

验证码有效时间,单位秒,设备需要在有效时间内接入物联网平台。

psk

String(32)

随机psk参数,若请求中携带了psk,则使用请求中的psk,否则由平台生成随机psk参数。

错误码

Http状态码

错误码

错误描述

说明

200

103028

The license pool resources.

License资源用尽。

400

100003

Invalid verify code.

验证码无效。

处理建议:请检查接口请求中的verifyCode是否有误。若请求参数中未带verifyCode,请联系物联网平台维护人员处理。

400

100007

Bad request message.

参数不合法。

处理建议:deviceId未赋值,请参考请求参数说明填写请求。

400

100416

The device has already been binded.

设备已经绑定。

处理建议:请检查设备是否已经注册。

400

100426

The nodeId is duplicated.

nodeId重复。

处理建议:请检查接口请求中nodeId是否有误。

400

50400

The input is invalid.

输入参数无效。

处理建议:请检查接口调用请求中携带参数的合法性。

401

100025

AppId for auth not exist.

获取不到appId鉴权信息。

处理建议:

  • 请检查请求结构体的Header头域中是否给字段app_key赋值。
  • 若通过HTTP调用,请联系物联网平台维护人员确认Header头域中放置appId的字段名是app_key还是x-app-key。

403

100203

The application is not existed.

应用不存在。

处理建议:

  • 请检查HTTP请求头域中携带的appId是否有误。
  • 请检查请求路径(url)中传入的appId是否有误。

403

100217

The application hasn't been authorized.

应用未被授权。

处理建议:若非应用授权场景,请确认请求参数中的appId为空。

403

1010009

app throttle exceed.

应用调用接口过于频繁,超过流控值(默认值是100次/60s)。

处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。

403

1010005

App_key or access_token is invalid.

错误的token信息。

处理建议:请检查接口请求中所携带的accessToken是否有误。

403

600002

The product not existed.

产品不存在。

处理建议:物联网平台未找到productId对应的产品,请检查productId是否有误。

500

100001

Internal server error.

服务内部处理错误。

处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。

500

100203

The application is not existed.

授权应用不存在。

处理建议:

  • 请检查HTTP请求头域中携带的appId是否有误。
  • 请检查请求路径(url)中传入的appId是否有误。

500

100412

The amount of device has reached the limit.

当前应用下设备数量达到上限。

处理建议:请检查当前应用下的设备数量是否已达到所申请资源的上限。

500

100441

The amount of nonSecure device has reached the limit.

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

500

103026

The license is not exist.

License不存在。

处理建议:物联网平台内部License问题,请联系物联网平台维护人员处理。

500

50252

Internal server error.

服务器运行内部错误。

处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。