手把手教你玩转NB-IoT --- 第二弹:创建影子设备

NB的老王 发表于 2018/12/20 12:36:56 2018/12/20
【摘要】 (本章包括profile开发、编解码插件开发)设备能力描述文件profile开发新增产品 设备的Profile文件是用来描述设备类型和设备服务能力的文件。定义了同一类设备具备的服务能力,属性,命令等。Step 1 登录开发者Portal,单击“Profile开发>产品”,单击页面右上角的“自定义产品”,转至“产品模板”页面。 您可以使用模板定义您的产品,单击产品模板的“立即使用”,...

本章包括profile开发、编解码插件开发)

  • 设备能力描述文件profile开发

  1. 新增产品 

  设备的Profile文件是用来描述设备类型和设备服务能力的文件。定义了同一类设备具备的服务能力,属性,命令等
Step 1 

  登录开发者Portal,单击“Profile开发>产品”,单击页面右上角的“自定义产品”,转至“产品模板”页面。

  您可以使用模板定义您的产品,单击产品模板的“立即使用”,这里的参数需要根据您的设备进行定义。

   您也可单击右上角的“创建全新产品”,直接定义您的产品,这里以创建全新产品为例。         

                image.png

Step 2                                                          

 

根据实际填写“设备类型”、“设备型号”、“厂商ID”、“厂商名称”等数据。

单击“”,添加产品完成。

  

         设备类型(DeviceType): 设备的类型。下拉选择类型。这里以 MultiSensor为例。
         设备型号(Model)        : 设备的型号。这里以Light为例。
         厂商ID(ManufacturerId):   设备的厂商ID。这里以IOTCLUB为例。
         厂商名称(manufacturerName)设备的厂商名称。这里以IOTCLUB为例。 

     

Step 3 

        在产品详情页面单击“新建服务”,根据界面提示信息,增加基本信息,属性或命令,单击“保存”。

       新增服务基本信息,服务的名称采用驼峰的命名方式,这里以Light为例。描述可选,有多个服务就新增多条服务。   

          图片7.png

2)新增属性

    

属性名(propertyName)指示属性名称。这里以Light为例。
属性类型(dataType):指示数据类型。取值范围:int、float、datetime、string、jsonObject、array。这里以int类型为例。
DateTime:yyyyMMdd’T’HHmmss’Z’如:20151212T121212Z
jsonObject: 自定义json结构体,平台不理解只透传。
最小(min)/最大值(max):指示最小/最大值。仅当dataType为int、float时生效,逻辑大于等于/ 小于等于,这里以最小值0,最大值65535为例。
步长(step): 指示步长。暂不使用,可填0即可。
单位(unit):  指示单位,英文,取值根据参数确定。如:温度单位:“°C”;百分比单位:“%”。
长度(maxLength):指示字符串长度。仅当dataType为string、datetime、jsonObject、array时生效。
枚举值(enumList)如烟感属性activityStatus可有如下取值[ "STANDBY", "RECORDING", "LIVING" ]。
访问模式(method):指示访问模式。R:可读;W:可写;E可订阅。取值范围:R、RW、RE、RWE、null。


3)新增命令

 命令名称:指示设备可以执行的命令。如门磁的Lock命令、摄像头的VIDEO_RECORD命令。这里以Control为例。        

          图片8.png

                            图片11.png

 

4)新增命令下发字段

命令名与参数 共同构成一个完整的命令,在页面上单击“新增字段”。这里以字段

名:LED;属性类型:String;长度:3;枚举值:ON,OFF为例子

      图片8.png

    


                123332jteh6ks7up8tt0el.png


完成设备能力描述文件profile开发...

 

  • 设备数据编解码中间件开发(仅适用于与NB-IoT场景)

开发完Profile文件后,可以在界面上通过图形化的方式完成设备与平台之间的消息映射。在平台中预集成了编解码插件的模板,

可以根据设备类型和接入协议在插件模板中选择模板修改开发编解码插件。

登录开发者Portal,单击“插件开发”,单击右上角的“添加插件”,转到“插件模板”页签,单击“查看”,您可以查看各个模板的内容。

· 若您的业务和模板中类似,可使用模板再根据实际来修改。

· 若您不需要使用模板,则可自己新建插件。下面以新建插件来说明如何开发编解码插件。使用模板的类似修改即可。

              image.png


1) 新建插件

Step 1 单击上图右上角的“新建插件”,进入设计插件页面,选择前面做的Profile

       2图片15.png 

说明:您可以单击右上角的“新手指导”,查看插件的实现原理。


Step 2 

  新增数据上报消息。单击“新增消息”,输入消息的名称(这里以light为例)、描述和消息类型(这里选数据上报)。

               

              1744353niprp0xt57hdjcy.png

 


Step 3 

添加字段。单击“添加字段”,添加上数据的字段。

名字: 建议和profile文件中设置的保持一致。便于和profile文件中的字段进行对应。本例以Light例。
数据类型:包括int8u,int16u,int24u,int32u,string,variablelength string,array,variant。本例为string例。
长度:指示该字段占多少字节长度。若长度为1,则在上报码流时,这个字段占一位,即一个16进制的数值。本例均以长度为5为例。
默认值:该字段在码流中的参考值。
偏移值:当前字段到本条消息码流起始位置的字节数,比如设置为2-3,则这个字段在码流中的第2-3位。这个为插件设置自动分配的

            2图片18.png      

             2图片19.png

Step 4 

  新增命令下发消息。单击“新增消息”,输入消息的名称(这里以Control为例)、描述和消息类型(这里选命令下发)。

     2图片20.png 

Step 5 添加字段。单击“添加字段”,添加命令下发的字段。

名字:本例以Switch例。
数据类型:本例为string例。
长度:本例均以长度为3为例。
默认值:该字段在码流中的参考值。
偏移值:

当前字段到本条消息码流起始位置的字节数,比如设置为2-3

,则这个字段在码流中的第2-3位。这个为插件设置自动分配的 


    2图片22.png
  
     

Step 5 

  建立profile属性、命令与消息的映射关系。根据自己定义的profile,来设计插件中的消息。通过拖拉服务中的属性或命令,与消息中的字段进行关联。

属性对应于数据上报中的字段列表。有多个服务就新增多个消息。为便于理解,字段名称建议和属性名设置为相同。   

               2图片23.png

Step 6

 完成映射关系后,单击页面右上角的“部署”,部署成功后,系统会将您的设计结果自动生成编解码插件包。最后通过设备唯一标识号IMEI号注册设备。

  图片26.png



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。