设备上线之前您需要对设备进行身份注册,标识您的设备。

接入物联网平台的设备身份注册有两种方式:

  • 使用一机一密的方式。首先,在物联网平台注册设备,获取设备证书信息(ProductKey、 DeviceName、 DeviceSecret)做为设备唯一标识。然后,将设备证书信息预烧录到固件,固件在完成上线建连后即可向云端上报数据。
  • 使用动态注册的方式,包括直连设备使用一型一密动态注册和子设备动态注册。
    • 直连设备使用一型一密动态注册的流程:
      1. 在物联网平台预注册设备,并获取产品证书(ProductKey和ProductSecret)。预注册设备时,可以使用设备的MAC地址或SN序列号等作为DeviceName。
      2. 在控制台开启设备所属产品的动态注册开关。
      3. 将产品证书烧录至固件。
      4. 设备向云端发起身份认证。云端认证成功后,下发DeviceSecret。
      5. 设备使用设备证书与云端建立连接。
    • 子设备动态注册流程:
      1. 在物联网平台预注册子设备,获取ProductKey。预注册设备时,可以使用设备的MAC地址或SN序列号等作为DeviceName。
      2. 在控制台开启子设备所属产品的动态注册开关。
      3. 将子设备ProductKey烧录至固件或网关上。
      4. 网关代替子设备向云端发起身份注册。

子设备的动态注册

数据上行。

  • 请求Topic:/sys/{productKey}/{deviceName}/thing/sub/register
  • 响应Topic: /sys/{productKey}/{deviceName}/thing/sub/register_reply

请求数据格式:

{
  "id": "123",
  "version": "1.0",
  "params": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554"
    }
  ],
  "method": "thing.sub.register"
}

响应数据格式:

{
  "id": "123",
  "code": 200,
  "data": [
    {
      "iotId": "12344",
      "productKey": "1234556554",
      "deviceName": "deviceName1234",
      "deviceSecret": "xxxxxx"
    }
  ]
}

参数说明如下表。

参数 类型 说明
id String 消息ID号。需定义为String类型的数字,且设备维度唯一。
version String 协议版本号,目前协议版本号为1.0
params List 设备动态注册的参数。
deviceName String 子设备的名称。
productKey String 子设备的产品Key。
iotId String 设备的唯一标识ID。
deviceSecret String 设备密钥。
method String 请求方法,取值thing.sub.register
code Integer 结果信息。

错误码说明如下表。

错误码 消息 描述
460 request parameter error 请求参数错误。
6402 topo relation cannot add by self 设备不能将自己添加为自己的子设备。
401 request auth error 签名校验失败。

直连设备使用一型一密动态注册

直连设备动态注册,通过HTTP发送请求。 需先在控制台上,开通该产品的一型一密动态注册功能。

  • URL模板: https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device
  • HTTP方法: POST

请求数据格式:

POST /auth/register/device  HTTP/1.1
Host: iot-auth.cn-shanghai.aliyuncs.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 123
productKey=1234556554&deviceName=deviceName1234&random=567345&sign=adfv123hdfdh&signMethod=HmacMD5

响应数据格式:

{
  "code": 200,
  "data": {
    "productKey": "1234556554",
    "deviceName": "deviceName1234",
    "deviceSecret": "adsfweafdsf"
  },
  "message": "success"
}

参数说明如下表。

参数 类型 说明
Method String POST
Host String Endpoint地址:iot-auth.cn-shanghai.aliyuncs.com
Content-Type String 设备发送给物联网平台的上行数据的编码格式。
productKey String 产品唯一标识。
deviceName String 设备名称。
random String 随机数。
sign String 签名。

加签方法:

  1. 将所有提交给服务器的参数(signsignMethod除外)按照字母顺序排序,然后将参数和值依次拼接(无拼接符号)。
  2. 通过signMethod指定的加签算法,使用产品的ProductSecret,对加签内容进行加签。

加签计算示例如下:

hmac_sha1(productSecret, deviceNamedeviceName1234productKey1234556554random123)
signMethod String 签名方法, 目前支持hmacmd5、hmacsha1、hmacsha256。
code Integer 结果信息。
deviceSecret String 设备密钥。