了解了什么是物模型,接下来我们看看腾讯IotHub(以下简称腾讯)、华为设备接入IotDA(以下简称华为)、阿里云物联网平台(以下简称阿里)这三个平台在平台端怎么让用户来实现物模型的使用的。 产品的基本信息是用户在物联网平台上创建产品时必填的一些信息,创建完成后基本不能修改。物模型的建立的前提是产品的创建,只有创建好了产品,才能给这个产品创建物模型。
在线开发
这种方法是每个物联网平台的标配,用户将产品功能细化、拆分、归类,在Web界面端通过复合表格的形式填写属性、事件、方法的基本信息,就能完成物模型的创建,之后就能一键生成符合平台标准的json格式文档。
腾讯IotHub
阿里云物联网平台
对比两个平台的在线开发方式,方法都一样,每个选项卡里面的内容也基本一致,不同的是阿里在服务/行为里面相对于腾讯多了一个“调用方式”的属性。
离线开发
产品模型本质上就是一个devicetype-capability.json文件和若干个serviceType-capability.json文件,按照如下目录打包的一个zip包。其中WaterMeter是deviceType,TestUtf8Manuld是manufactureId,WaterMeterBasic/WaterMeterAlarm/Battery是服务类型。 所以离线开发产品模型就是按照产品模型编写规则和JSON格式规范在devicetype-capability.json中定义设备能力,在servicetype-capability.json中定义服务能力。因此离线开发产品模型需要熟悉JSON的格式。 ——华为云-离线开发产品模型
离线开发的本质是直接通过json文件定义产品,然后上传关联产品。这种方法只有部分平台有这个功能,相对于在线开发,离线开发比较费时,一般也不建议用户使用。
Excel表格导入
Excel表格导入的方法本质上和在线开发的方法是一样的,不同的是在线开发是在Web端实现, Excel表格导入是在Excel里面填写相关信息,之后上传到Web端。两种方法填写的内容也一样。
这种方法也是只有部分平台有。
对于有集成能力的客户,这种方法比较适用,可以很方便的发给客户。
我的理解是在线开发的方式,是从设备端出发的,嵌入式设备端开发人员可以很清楚的知道自己的产品该怎么定义,通过点点点的方法就能实现开发json物模型,而离线方法比较适用于软件端,直接用自己最擅长的方式去定义产品。
但是这三种方法是互通的,且达到的效果是一样的。比如在线开发最终也是产生了离线开发的json文件,并且可以自动生成Excel文件供用户下载。而在线开发的方式相对于用户来说比较直观,也是最省时省力的方法,所以也是最为推荐的方法。