首页 › 博客, 媒体, 实战教程, 技术文章
场景解析:长期使用MQTT协议建立服务器设备连接的厂商,受限于原有的业务系统和硬件更改繁琐的因素,希望在不更改主题订阅的条件下对接新的物联网平台。同时,有的设备Topic中携带许多关键参数为标识,但是一般的云平台都有规定的格式要求所以无法正常使用。所以Dgiot通过规则引擎技术完成非平台标准MQTT协议的数据对接。
MQTT设备Topic请求格式: 主题发布格式:${自定义}/${自定义}/${设备名称}/${设备ID}/${自定义}/${请求方式} 主题发布实例:test/test/devicename/123456789/test/request 内容发布实例:{"abc":"123"}
平台订阅格式:$dg/thing/${productid}/${deviceid}/properties/report 平台订阅实例:$dg/thing/a8857a1c96/123456789/properties/report
1.在平台创建Dlink采集通道(老版本用的的MQTT采集通道同理)。注意网络组件设置为MQTT服务器,用于接收MQTT协议的数据。 2.创建产品。在设备云内创建产品,对应用户的产品型号。 3.建立物模型。进入创建的产品内,选择物模型模块,新建物模型。 这里我们用到Dlink协议,所以标识符设置成我们mqtt报文内的数据标识。可结合下述规则引擎内保留的参数设置。 4.手动创建设备。在设备管理出点击“新增”,选择设备所属的产品,然后手动填入设备的id号(此处对应实际设备的编号,在mqtt上报的报文内为唯一标识)。 5.配置规则引擎。在云函数内选择规则管理,新增规则。 这里分为两块,第一部分是SQL规则配置用于拦截非标MQTT报文后取值。第二部分是重定向mqtt,用第一部分获得的数据映射来拼接出平台标准的mqtt报文然后转发到服务器上处理。 (1)SQL规则 这里有“select”“FROM”“where”三个方法。 第2行:对非标报文内的值进行赋值。 第3行:这个数字对应第2步内新建产品的id。 第4行:切割非标主题内容的字节块。这里是取主题里第4个值赋值成为设备id。 第6行:筛选MQTT主题,这里用“+”把设备id这个唯一标识排除。 (2)响应动作 通道、资源和信息重定向图上固定。目标主题可以参考产品详情捏的Topic列表。 消息内容模板内的数据是sql规则筛选出来的数据映射,也是重新生成的主题中的内容。 6.建立MQTT连接,发送信息。
7.数据验证。 这张图可以看到我们非标的信息转化后成为了平台标准协议然后存库处理。
[小 迪 点 评]
想了解更多 dgiot 的具体细节,欢迎大家在GitHub上查看相关源代码。
加微信咨询
请填写下面表单,我们的工作人员会与您联系。
培训咨询企业版咨询渠道伙伴集成 & 技术伙伴OEM伙伴云服务伙伴
请填写下面表单,我们会即时将最新版本下载地址发到您的邮箱。
最新版本最新代码开发环境dgiot手机端Android版dgiot_windows体验版
加小迪为好友即可加入交流群