典型场景

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

接口功能

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

接口描述

  1. Device::registerDevice($devicereginfoArray);

接口所属类

  1. iotyun\huaweiiot\Device;

参数说明

  1. $devicereginfoArray = array(
  2. 'platformIp' => '平台IP或者域名',
  3. 'platformPort' => '平台端口',
  4. 'appId' => '应用appId',
  5. 'accessToken' => '你系统存储的accessToken',
  6. 'rddInArray' => array(
  7. 'deviceInfoArray' => array(
  8. 'manufacturerId' => '',
  9. 'manufacturerName' => '',
  10. 'deviceType' => '',
  11. 'model' => '',
  12. 'protocolType' => ''
  13. ),
  14. 'imsi' => '',
  15. 'isSecure' => '',
  16. 'verifyCode' => '',
  17. 'nodeId' => '',
  18. 'endUserId' => '',
  19. //'psk' => '',
  20. 'timeout' => 0,
  21. 'productId' => ''
  22. )
  23. );
参数 必选/可选 类型 描述
platformIp 必选 String(256) 物联网平台的IP或者域名。
platformPort 必选 String(256) 物联网平台的端口。
appId 必选 String(256) 如果是本应用的设备,此参数值可以填写null,否则填写授权应用的appId。
accessToken 必选 String(256) 您当前有效的accessToken。
rddInArray 必选 array 具体参见rddInArray的描述。

rddInArray:

参数 必选/可选 类型 描述
deviceInfoArray 可选 array 设备信息。见下方deviceInfoArray说明。
imsi 可选 String(1-64) NB-IoT终端的IMSI。
isSecure 可选 Boolean 指定设备是否为安全设备,默认值为“false”。
- “true”:安全设备
- “false”:非安全设备

说明:
如果用户需要注册安全设备,isSecure参数必须填写。 | | verifyCode | 可选 | String(256) | 设备验证码,全局唯一,建议与nodeId设置成相同值。若在请求中指定verifyCode,则响应中返回请求中指定的verifyCode;若请求中不指定verifyCode,则由物联网平台自动生成。
在NB-IoT方案中,verifyCode为必填参数,且必须与nodeId设置成相同值。 | | nodeId | 必选 | String(256) | 设备的唯一标识,必须与设备上报的设备标识一致。通常使用MAC地址,Serial No或IMEI作为nodeId。
说明:
使用IMEI作为nodeId时,根据不同厂家的芯片有不同填写要求。
- 高通芯片设备的唯一标识为urn:imei:xxxx,xxxx为IMEI号
- 海思芯片设备的唯一标识为IMEI号
- 其他厂家芯片的设备唯一标识请联系模组厂家确认。
| | endUserId | 可选 | String(256) | 终端用户ID。
在NB-IoT方案中,endUserId设置为设备的IMSI号。在Smarthome解决方案中, endUserId设置为App账号。 | | psk | 可选 | String(8~32) | 请求中指定psk,则平台使用指定的psk;请求中不指定psk,则由平台生成psk。取值范围是a-f、A-F、0-9组成的字符串。 | | timeout | 可选 | Integer(>=0) | 超时时间。当调用API接口对设备开户,在超时时间内可绑定设备,若超过timeout时间且未绑定设备,则会删除超时的开户信息。
取值范围:0~2147483647。若填写为“0”,则表示设备验证码不会失效(建议填写为“0”)。
默认值:“0”(默认值可配置,具体配置值请咨询物联网平台运维人员。)
单位:秒。 | | productId | 可选 | String(256) | 设备所属的产品ID。 |

deviceInfoArray:

参数 必选/可选 类型 描述
manufacturerId 可选 String(256) 厂商ID,唯一标识一个厂商。
manufacturerName 可选 String(256) 厂商名称。
deviceType 可选 String(256) 设备类型,大驼峰命名方式,如MultiSensor、ContactSensor、CameraGateway。
model 必选 String(256) 设备的型号。
Z-Wave:ProductType + ProductId,16 进制格式 XXXX-XXXX 补0对齐,如:001A-0A12,其他协议的格式待定。
protocolType 可选 String(256) 设备使用的协议类型,当前支持的协议类型:CoAP,huaweiM2M,Z-Wave,ONVIF,WPS,Hue,WiFi,J808,Gateway,ZigBee,LWM2M。

返回值

RegDirectDeviceOutDTO

参数 类型 描述
deviceId String(256) 设备ID,用于唯一标识一个设备。
verifyCode String(256) 设备验证码,设备可以通过验证码完成物联网平台的接入认证。若在请求中指定verifyCode,则响应中返回请求中指定的verifyCode;若请求中不指定verifyCode,则由物联网平台自动生成。
timeout Integer 验证码有效时间,单位秒,设备需要在有效时间内接入物联网平台。若为“0”,则表示设备验证码不会失效。
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 Invalid access token or appId. 错误的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. 非安全设备数量已达到上限。
处理建议:
- 请注册安全设备(“isSecure”参数设置为“true”),即设备使用安全协议方式接入。
- 请联系物联网平台维护人员处理。
500 103026 The license is not exist. License不存在。
处理建议:物联网平台内部License问题,请联系物联网平台维护人员处理。
500 50252 Internal server error. 服务器运行内部错误。
处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。

使用说明

经过测试,如果同一nodeId多次注册设备,物联网平台会删除以前的设备,重新注册新的设备,原设备下的数据会丢失,因此如果不想删除原来设备重新添加,不要使用同一nodeId重复注册设备。