联犀 联犀
首页
使用指南
开发指南
技术分享
  • 中台接口 (opens new window)
  • 物联网接口 (opens new window)
在线体验 (opens new window)
  • gitee (opens new window)
  • github (opens new window)
  • 边缘网关-RHILEX (opens new window)
  • 边缘网关-opengw (opens new window)
首页
使用指南
开发指南
技术分享
  • 中台接口 (opens new window)
  • 物联网接口 (opens new window)
在线体验 (opens new window)
  • gitee (opens new window)
  • github (opens new window)
  • 边缘网关-RHILEX (opens new window)
  • 边缘网关-opengw (opens new window)
  • 介绍

  • 快速开始

  • 设备接入

    • 联犀协议

      • 设备身份认证
      • mqtt认证
      • http协议接入
      • 自定义协议
      • mqtt认证主要流程
      • 设备动态注册
        • 简介
        • 应用场景
        • 使用步骤
        • mqtt自动注册
          • 参数说明
          • 登录
          • topic
          • 请求参数
          • 签名生成步骤:
          • 平台返回参数
        • http自动注册
          • 参数说明
          • 请求参数
          • 签名生成步骤:
          • 平台返回参数
      • 物模型协议
      • OTA升级
      • NTP时间同步
      • 网关子设备
      • 设备本地日志上报
      • 设备远程配置
      • RHILEX接入
      • openGW接入
    • 第三方协议

  • 系统管理模块

  • 合作案例

  • 使用指南
  • 设备接入
  • 联犀协议
godLei6
2024-08-29
目录

设备动态注册

# 设备动态注册

# 简介

用户可以通过设备向云平台发送注册请求实现在云平台上注册设备。

# 应用场景

  • 对于一机一密的场景,需要在生产环节将为每一个设备烧录由平台生成的唯一设备信息。
  • 对于一型一密场景,同一产品类型的设备只要预置产品级密钥,可省去工厂的设备信息烧录。设备出厂后,在第一次开机且成功联网的情况下, 可发起动态注册,通过产品密钥鉴权,从平台获取设备信息,然后存在本地,达成和工厂烧录一样的效果。

# 使用步骤

  1. 在控制台使能产品的动态注册功能。

使能动态注册后才有产品密钥。

产品密钥:

  1. 选择是否使能自动设备创建。这个选项决定动态注册的时候的设备名,是设备自定义的(需要保证统一产品下设备名唯一),还是使用平台预定义的设备名
  2. 调用设备动态注册接口进程设备注册。

# mqtt自动注册

# 参数说明

# 登录

mqtt的clientID使用register&{productID}&{deviceName},userName和password可以随便填

# topic

  • 设备属性上行请求 Topic: $ext/up/register/{productID}/{deviceName}
  • 设备属性下行响应 Topic: $ext/down/register/{productID}/{deviceName}

# 请求参数

示例:

{
  "payload":{
    "nonce":123,
    "timestamp":123123123,
    "signature":"wefwefwegefsfsef"
  }
}
1
2
3
4
5
6
7
参数名称 类型 必须 说明
nonce int64 是 随机数
timestamp int64 是 秒级时间戳
signature string 是 签名信息

# 签名生成步骤:

  1. 对参数(deviceName、nonce、productID、timestamp)按字典序升序排序。
  2. 将以上参数,按参数名称 = 参数值 & 参数名称 = 参数值拼接成字符串, 如:"deviceName=xxx&nonce=2125656451&productID=xxx&timestamp=1687525491"。
  3. 使用 HMAC-sha1 算法对上一步中获得的字符串进行计算,密钥为 ProductSecret。
  4. 将生成的结果使用 Base64 进行编码,即可获得最终的签名串放入 signature。

# 平台返回参数

示例:

{
  "timestamp":1709968346811,
  "code":200,
  "msg":"ok",
  "data":
    {
      "len":10,
      "payload":"xxxxxxx"
    }
}
1
2
3
4
5
6
7
8
9
10
参数名称 类型 描述
code string 错误码
msg string 错误信息
data object
- len int64 长度
- payload string 设备连接信息的 AES 加密后内容

说明: 加密过程将原始 JSON 格式的 payload 转为字符串后进行 AES 加密,再进行 base64 加密。AES 加密算法为 CBC 模式,密钥长度128,取 productSecret 前16位,偏移量为长度16的字符“0”。

原始 payload 内容说明:

key value 描述
encryptionType 1 加密类型,1表示证书认证,2表示签名认证
psk 1239465801 设备密钥,当产品认证类型为签名认证时有此参数
clientCert - 设备证书文件字符串格式,当产品认证类型为证书认证时有此参数
clientKey - 设备私钥文件字符串格式,当产品认证类型为证书认证时有此参数

# http自动注册

# 参数说明

设备动态注册时需携带 ProductID、ProductSecret 和 DeviceName 向平台发起 http/https 请求,请求接口及参数如下:

请求的 URL 为:

  • https://127.0.0.1:7777/api/v1/things/device/auth/register
  • http://127.0.0.1:7777/api/v1/things/device/auth/register

请求方式:Post。

# 请求参数

参数名称 类型 必须 说明
productID string 是 产品 ID
deviceName string 是 设备名称
nonce int64 是 随机数
timestamp int64 是 秒级时间戳
signature string 是 签名信息

# 签名生成步骤:

  1. 对参数(deviceName、nonce、productID、timestamp)按字典序升序排序。
  2. 将以上参数,按参数名称 = 参数值 & 参数名称 = 参数值拼接成字符串, 如:"deviceName=xxx&nonce=2125656451&productID=xxx&timestamp=1687525491"。
  3. 使用 HMAC-sha1 算法对上一步中获得的字符串进行计算,密钥为 ProductSecret。
  4. 将生成的结果使用 Base64 进行编码,即可获得最终的签名串放入 signature。

# 平台返回参数

参数名称 类型 描述
code string 错误码
msg string 错误信息
data object
- len int64 长度
- payload string 设备连接信息的 AES 加密后内容

说明: 加密过程将原始 JSON 格式的 payload 转为字符串后进行 AES 加密,再进行 base64 加密。AES 加密算法为 CBC 模式,密钥长度128,取 productSecret 前16位,偏移量为长度16的字符“0”。

原始 payload 内容说明:

key value 描述
encryptionType 1 加密类型,1表示证书认证,2表示签名认证
psk 1239465801 设备密钥,当产品认证类型为签名认证时有此参数
clientCert - 设备证书文件字符串格式,当产品认证类型为证书认证时有此参数
clientKey - 设备私钥文件字符串格式,当产品认证类型为证书认证时有此参数
上次更新: 2025/02/17, 09:47:32
mqtt认证主要流程
物模型协议

← mqtt认证主要流程 物模型协议→

Theme by Vdoing | Copyright © 2022-2025 昆明云物通科技有限公司|GNU | 滇ICP备2024043132号-1 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式