场景简介

已对接存量设备的网关,不用迁移就可以实现对既有设备和新设备的兼容控制。

该场景主要描述的是设备可以通过MQTT协议与物联网平台进行交互,用户可以在控制台产品详情中自定义Topic,通过应用侧接口或控制台创建数据转发规则,把设备上报的消息转发给其他华为云服务,供应用侧用户主动去消费。

核心知识点:产品模型、消息上报、消息下发、MQTT协议、数据转发规则、自定义Topic。

场景流程

流程解释:

  1. 创建网关产品:物联网平台是以产品为粒度管理批量设备,产品的创建与管理,可以通过平台提供的API接口或控制台。

  2. 自定义topic:您可以在产品详情中自定义topic,该产品下的所有设备都将可以通过自定义topic,与平台间进行数据上下行交互。

  3. 注册网关设备:平台提供了应用侧API接口可以注册设备,也可以通过控制台注册。注册的设备ID,是设备侧与平台交互的唯一标识。这里是用手机APP进行应用侧接口调用注册,就如前面概念串联时提到的,应用侧不局限于web服务端。

  4. 创建数据转发规则:网关APP可以通过API接口创建规则,也可以通过控制台创建,指定过滤指定的属性,给指定的通道转发数据。

  5. 开通DIS通道/OBS服务:华为公有云上有丰富的SaaS服务和PaaS服务,供您结合自己的业务需要进行组合使用。DIS服务提供高效采集、传输、分发能力,支持多种IoT协议,OBS服务提供海量、安全、高可靠、低成本的数据存储能力,可以开通该两个服务(或之一),通过IoTDA规则引擎,把网关的数据转发给DIS/OBS。

  6. 设备建链:MQTT设备是指通过MQTT协议接入的设备,不论是集成了华为IoT Device SDK,还是原生MQTT协议接入,只要是json数据格式传输给平台,平台就无需使用编解码插件。如果是二进制上传,则需要先做编解码插件的开发。MQTT是长连接,需要先建链才能进行数据传输,可以通过安全加密方式8883端口接入(推荐),也可以通过非安全加密方式1883端口接入。

  7. 订阅消息下发Topic:MQTT设备与平台建立长连接后,可以订阅平台下行的topic,实现对平台下发消息的实时监听。

  8. 网关消息上报:网关设备把数据透传到平台,由平台不做任何处理按规则转发给DIS/OBS等存储通道。消息跟属性的主要区别是不用指定产品模型,平台对上报的消息不做处理(包括存储和快照都没有),仅做纯数据转发。

  9. 按规则数据转发:平台收到设备上报的属性后,规则引擎会进行过滤(不论属性还是消息,平台都会做规则过滤),把设定好的消息值转发到指定的DIS通道,放到消息队列中。或者转发到OBS做对象存储。

  10. 消费消息数据:由于平台对消息仅做透传,而且APP无法配置订阅通知的callback url,所以将设备上报的数据通过消息转储到DIS/OBS,再由APP调用DIS/OBS的接口或集成SDK,消费设备数据,进而实现对网关设备上报消息的接收。

  11. 消息下发:网关APP通过应用侧接口下发消息,平台同样不会做任何的处理,消息下发是异步的,不用等到设备侧网关的响应。

  12. 消息下发:平台通过消息下发的下行topic把消息透传给网关。这个需要前面网关设备订阅了消息下发的topic,否则接收不到平台下行消息。

最佳实践

场景说明

自定义Topic功能用于MQTT协议设备接入物联网平台的场景,支持设备消息上报、平台消息下发的Topic进行自定义。根据Topic不同,应用侧可实现不同的业务逻辑处理,也适用于应用侧和设备侧之间,设备无法按照产品模型中定义的属性或命令进行数据上报的场景。

本示例中,应用服务器收到设备上报Topic为室内温度的数据,判断是否开启或关闭室内空调。

新增自定义Topic

具体操作细节请参考新增自定义Topic。

1、在产品详情页中,选择“可选配置”页签,点击“新增自定义topic”按钮。

Topic类别

描述

系统Topic

平台预先定义了各种设备和平台通信的Topic,具体Topic列表和功能说明可参考Topic定义。

自定义Topic

用户可以自定义Topic,设备和平台间可以基于用户自定义的Topic进行通信。每个产品模型最多支持10个自定义Topic。

自定义Topic适用于:

  • 基于自定义Topic进行消息流转

  • 通过自定义topic进行消息下发

2、在弹出的页面中,选择设备操作权限,填写topic名称。

参数名称

描述

设备操作权限

发布:设备侧消息上报时,可按配置中自定义的topic进行消息上报;数据流转时,设备消息中会携带topic参数标识该消息从哪个topic上报。

订阅:设备侧消息下发时,可在消息内容中指定此消息下发使用哪个topic;消息发往设备时,可以根据指定的topic下发。

发布和订阅:同时具备发布和订阅的权限。

topic名称

自定义。支持英文字母、数字、下划线,+和#(仅权限是订阅时支持),长度限制64。

描述

关于该topic的描述。

3、点击“确认”,完成新增自定义topic。

自定义Topic添加成功后,您可以在自定义topic列表执行修改和删除操作。

MQTT设备消息上报

1、登录控制台,进入指定设备详情页,启动消息跟踪。

2、以MQTT.fx模拟器(请参考设备快速接入)为例,模拟设备上报自定义Topic消息。

使用IoT Device SDK或原生MQTT协议接入的设备,需要在设备程序中,设置设备上报的自定义Topic名称。

3、登录控制台,在设备详情消息跟踪页面,查看设备上报的自定义Topic消息。

4、应用侧通过数据转发的方式,获取MQTT设备上报的自定义Topic消息。更多数据转发方式,请参考数据转发。您也可以参考最佳实践案例数据转发到OBS长期存储。

MQTT设备消息下发

应用侧收到MQTT设备上报的自定义Topic消息后,需要进行相应的业务处理。本示例通过自定义Topic,下发开启室内空调指令。

MQTT设备需要先订阅自定义Topic,才可以接收应用侧下发的自定义Topic消息。

  • 确保创建自定义Topic时,设备操作权限包含“订阅”功能,详细操作请参考设备操作权限。

  • 使用IoT Device SDK或者原生MQTT协议接入的设备,需要在设备程序中,设置设备订阅的自定义Topic名称。

1、本文使用postman工具模拟应用侧调用下发设备消息接口,下发开启室内空调的命令。

2、调用查询设备消息接口,查看下发命令是否成功。

至此,通过该文档的学习,您应该对智能网关和自定义Topic场景有了一定的了解。接下来,可以在系列后续文章中,可以学习到更多的物联网业务场景。

干货分享丨玩转物联网IoTDA服务系列四-智能网关相关推荐

  1. 干货分享丨玩转物联网IoTDA服务系列五-智能家居煤气检测联动

    场景简介 煤气检测器发现煤气浓度超标时,自动关联无线推窗器把窗户打开,起到通风的作用. 该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,用户可以在控制台或通过应用侧接口创建设备联动规 ...

  2. 【华为云技术分享】玩转华为物联网IoTDA服务系列三-自动售货机销售分析场景示例

    [摘要] 通过收集自动售货机系统的销售数据,EI数据分析售货销量状况. 场景简介 通过收集自动售货机系统的销售数据,EI数据分析售货销量状况. 该场景主要描述的是设备可以通过MQTT协议与物联网平台进 ...

  3. 【华为云技术分享】玩转华为物联网IoTDA服务系列六-恒温空调

    摘要:本文主要讲述空调接入到物联网平台后,通过恒温空调控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节. 场景简介 通过恒温控制系统,不论空调是否开机,都可以调 ...

  4. 【华为云技术分享】解析:物联网数据分析服务如何做?

    [摘要] 物联网设备正在产生大量的数据,如何为开发者提供简单有效的数据分析服务,简化开发过程,提升开发效率,让IoT数据快速变现是一个摆在我们面前的问题. 没有疑问,我们已经身处物联网时代了,每天都有 ...

  5. android分享文件分享结果_干货分享丨DM删除归档日志文件的多种方法

    上一期我们讲解了DM数据库归档日志的切换,本期我们讲解DM数据库归档日志文件的删除. 本章内容已在如下环境上测试: ①操作系统:中标麒麟7: ②数据库版本:达梦8: 相关关键字:DM数据库.归档日志文 ...

  6. dts数据库迁移工具_干货分享丨DM8 DTS工具使用小技巧

    DTS工具的介绍 DM数据库为迁移提供了图形化工具--DTS.DTS可以从主流大型数据库迁移到DM.DM到DM.文件迁移到DM以及DM迁移到文件的功能,极大的简化了迁移操作,让数据迁移变得简单. DT ...

  7. 达梦数据库删除用户_干货分享丨DM8用户管理

    原标题:干货分享丨DM8用户管理 用户介绍 安装创建达梦企业版数据库后,系统会默认创建四类数据库账号,分别是: SYS:达梦数据库内置管理用户,不能登录,数据库使用的大部分的数据字典和动态性能视图. ...

  8. 【Linux服务器开发系列】详解多线程网络编程丨百分百干货分享丨学到就是赚到

    90分钟搞懂多线程网络编程模型 1. 网络编程关注的问题 2. 网络编程的几种模型reactor,one loop per thread及其变种 3. skynet,redis,nginx,memca ...

  9. 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台

    国内物联网平台(5) --机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测. ...

最新文章

  1. 【Unity】使用Resources类管理资源
  2. vs2015改程序名字
  3. 汽车线束测试软件,Aigtek线束测试仪,汽车线束测试_高精度自动测试_操作简单...
  4. dpkg: 处理软件包 xxx (--configure)时出错解决方法
  5. 计算圆形是否和正方形相交 【微软面试100题 第二十三题】
  6. 用java实现冒泡排序_Java实现冒泡排序
  7. flutter usb串口_Flutter 调试方式
  8. 索引-linux-技术大钢
  9. CCF2016-4-2 俄罗斯方块
  10. 亲和数(220/284)
  11. ubuntu 12.04 源码安装 Xen 4.2
  12. 网上书店系统源代码java_java版网上书城系统
  13. 小米笔记本pro充电测试软件,一款给人心理落差较大的笔记本--小米笔记本Pro测评...
  14. 基于raspbian+motion的家庭监控网络
  15. WPF与3D 模型(一)把Solidworks里的模型导入进WPF程序
  16. stack.peek
  17. 【Pyhton TurtleArt】画一幅极简渐变风景图
  18. AtCoder - agc005_b(单调栈)
  19. codeforces 1509 B. TMT Document
  20. 深入理解计算机系统(CSAPP) attack-lab详解

热门文章

  1. es6 __proto__属性,Object.setPrototypeOf(),Object.getPrototypeOf()
  2. c语言去掉数组中重复的,C语言删除无序整型数组中的重复元素及时间复杂度
  3. oracle中@,深入理解Oracle中的DBCA
  4. django,form表单,数据库增删改查
  5. 【NOIP2004】【Luogu1088】火星人(枚举排列)
  6. Oracle PLSQL 客户端 连接Oracle12.2 出现权限问题的解决办法以及绿色版Oracle客户端的使用....
  7. CentOS 6.6 搭建Zabbix 3.0.3 过程
  8. java多线程synchronized底层实现
  9. (原创) cocos2d-x 3.0+ lua 学习和工作(4) : 公共函数(5): 返回指定表格中的所有键(key):table.keys...
  10. 赢在中国 第3讲思维篇