(转载)OneNet--设备自动注册

在OneNET的使用过程中,创建设备是一个必要的步骤,当使用者需要大量创建设备的时候,除了使用平台的设备复制以及批量创建以外,有没有其他的方式呢?
 
答案是肯定的,本文要介绍的就是一种让终端可以自动在平台创建设备的方法,从而让使用者省去了繁琐的设备创建过程。
 
注册码
OneNET3.1更新后,一个重要的新特性就是在公有协议中,增加了一个全新的参数:注册码


<ignore_js_op>

注册码实际是一个只有设备创建功能的KEY,其只能够用来创建设备,而不能进行其他的操作,即使在传输过程中被他人截获,不会对其他已有设备产生危害,是比较推荐使用的一种创建设备方法。
 
注册码的使用
3.1提供了一个全新的API,即 使用设备注册码创建设备

<ignore_js_op>


在这个API中,使用注册码作为参数HTTP内容为相关设备属性,包括鉴权信息等,返回值为设备的api-key设备id
 
这里需要注意的是
1、  返回的设备API-KEY只对该设备有效,不能对其他设备进行操作;
2、  调用当allow_duptrue时,使用同一鉴权信息重复调用该API,可作为查询功能使用;当allow_dupfalse时,当使用同一鉴权信息重复调用该API时,回返回错误信息。
 
下面使用fiddler工具演示一下该API的使用
 
1、打开工具
2、填写URL以及相关参数(这里以图1中的产品为例)
    URL为:http://api.heclouds.com/register_de?register_code=cba89peVvQ7p28sD


3、填写HTTP内容:{"sn":"201608160001","title":"0001"}唯一序列号为201608160001,设备名为0001
<ignore_js_op>
 
4、点击execute,并查看返回的数据

<ignore_js_op>

有图可知,返回的新创建的设备ID3264364


该设备的设备keyeJQHvJoUww=ibaHKt=uW5=pXZZM=
 
OneNET上查看执行结果:
产品下有一个新增设备,名称为0001ID3264364且权限为私密
<ignore_js_op>


查看其设备详情:
<ignore_js_op>


各项属性均与创建API中的参数与返回值吻合。


值得一提的是,这里的接入方式为EDP,因为本例中的产品是EDP产品,这里是继承了产品的属性
 
注意,在默认情况下,是允许提交相同的设备序列号的,当我们再次调用相同的API时,会得到如下结果:
<ignore_js_op>


OneNET上该项目下,仍然只有一个设备,该API会将鉴权信息为201608160001是设备的id以及key返回,即为查询功能

 

完成设备创建之后,就可以利用产品ID鉴权信息或者设备key设备ID来进行数据上传等后续操作。
 
利用产品ID(本例中为70921)、唯一标识(SN:201608160001)进行设备登陆

<ignore_js_op>

<ignore_js_op>
 
用户在有大批量设备需要进行创建的时候,使用注册码是一个较好的动态创建方式。
终端必须要包含以下参数
1、产品注册码;
2、产品ID;
3、唯一的设备编码(即设备唯一标识 SN)
 


终端与平台的通用性交互流程如下:
1、与平台HTTP服务器建立TCP连接,api.heclouds.com  / 80
2、以注册码设备唯一标识(SN)为参数(设备名为可选),调用api,获取设备ID以及设备KEY


3、断开该TCP连接
     至此,终端已经获取到 设备ID、设备KEY、产品ID、设备唯一标识(SN)。

4、与EDP服务器建立TCP连接, jjfaedp.hedevice.com / 876


5、以上述参数为参数建立EDP连接

另外,用户在新的设备中,不需要提前创建数据流,当用户使用协议上传数据点的时候,平台会自动创建数据流,采用这样的方式就能省去数据流创建工作。

posted @ 2021-08-18 16:10  M&D  阅读(1314)  评论(0编辑  收藏  举报