(转载)OneNet--设备自动注册
设备注册:官方文档中心『OneNET设备云平台』云平台对接服务_智能设备 (10086.cn)
在OneNET的使用过程中,创建设备是一个必要的步骤,当使用者需要大量创建设备的时候,除了使用平台的设备复制以及批量创建以外,有没有其他的方式呢?
答案是肯定的,本文要介绍的就是一种让终端可以自动在平台创建设备的方法,从而让使用者省去了繁琐的设备创建过程。
注册码
OneNET3.1更新后,一个重要的新特性就是在公有协议中,增加了一个全新的参数:注册码
<ignore_js_op>
注册码实际是一个只有设备创建功能的KEY,其只能够用来创建设备,而不能进行其他的操作,即使在传输过程中被他人截获,不会对其他已有设备产生危害,是比较推荐使用的一种创建设备方法。
注册码的使用
3.1提供了一个全新的API,即 使用设备注册码创建设备
<ignore_js_op>
在这个API中,使用注册码作为参数,HTTP内容为相关设备属性,包括鉴权信息等,返回值为设备的api-key和设备id
这里需要注意的是
1、 返回的设备API-KEY只对该设备有效,不能对其他设备进行操作;
2、 调用当allow_dup为true时,使用同一鉴权信息重复调用该API,可作为查询功能使用;当allow_dup为false时,当使用同一鉴权信息重复调用该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>
有图可知,返回的新创建的设备ID为3264364
该设备的设备key为eJQHvJoUww=ibaHKt=uW5=pXZZM=
在OneNET上查看执行结果:
产品下有一个新增设备,名称为0001,ID为3264364且权限为私密
<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连接
另外,用户在新的设备中,不需要提前创建数据流,当用户使用协议上传数据点的时候,平台会自动创建数据流,采用这样的方式就能省去数据流创建工作。