4.3 haas506问题汇总-关于动态注册失败

本文介绍了HaaS506设备动态注册失败的常见原因,包括未开启动态注册功能和设备已被注册。当设备被动态注册后,其devicesecret保存在本地,如果切换产品,会导致密钥对应不上,进而注册失败。解决方法包括检查并删除本地保存的旧devicesecret,以及删除并重新创建阿里云物联网平台的设备。
摘要由CSDN通过智能技术生成

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







1.失败原因

动态注册失败原因大致有以下几种:
(1)未在产品的详情页打开“动态注册”功能
(2)该硬件设备已经被动态注册过了,设备被动态注册过一次后,会将阿里云物联网平台中的产品–设备中的devicesecret值保存在本地。如果不切换产品的话,联云是不会出现问题的;但是在切换产品时,即A设备在A产品下注册过一次,然后将A设备放到B产品下,再次动态注册,就会出现问题。

2.若设备已经被动态注册过

问题复现:
先创建一个产品,然后在产品的详情页上找到“动态注册”并“开启”,最后在该产品下创建一个设备
在这里插入图片描述
在这里插入图片描述

在产品的详情页中,找到产品证书


在这里插入图片描述
将产品的productKey和productSecret这两个值复制到代码的相应位置
在这里插入图片描述
烧录代码,然后打开串口助手查看日志信息。如下图所示,虽然串口助手上打印的日志显示“动态注册成功”,但是在阿里云物联网平台可以看到,新创建的设备并没有被激活。
在这里插入图片描述

在这里插入图片描述
回到串口助手上,按下ctrl+c终止当前程序运行,输入下面的代码查询一下:

2.0以上固件版本操作

import kv
kv.get('_amp_customer_devicesecret')
kv.remove('_amp_customer_devicesecret')

在这里插入图片描述

1.17固件版本操作

>>> from driver import KV
>>> kv=KV()
>>> kv.getStorageSync('_amp_customer_devicesecret')
{'_amp_customer_devicesecret': 'a98379cff70992578cee9dbacbbe7165'}
>>> 

在这里插入图片描述

可以知道当前设备的devicesecret是a98379cff70992578cee9dbacbbe7165,是之前一次动态注册成功后,保存在本地的值。而我们新创建的设备的devicesecret却是36c287a3f1ae25bb6d47d0e1d292a58b,所以密钥对应不上,导致动态注册失败。
在这里插入图片描述

3.解决办法

在串口助手上,输入下面代码:
(1)先查询该设备在本地是否保存devicesecret值,若存在且与当前设备的devicesecret值不一致,则删除该值

>>> from driver import KV
>>> kv=KV()
>>> kv.getStorageSync('_amp_customer_devicesecret')
{'_amp_customer_devicesecret': 'a98379cff70992578cee9dbacbbe7165'}
>>> kv.removeStorageSync('_amp_customer_devicesecret')
0

(2)顺便将阿里云物联网平台创建的设备也删除掉,然后再新建一个设备
删除
在这里插入图片描述
再建
在这里插入图片描述
在这里插入图片描述

(3)重新烧录一下代码,看看结果
设备已被激活
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值