规模设备管理与消息通信 | 学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
表格存储 Tablestore,50G 2个月
简介: 快速学习规模设备管理与消息通信

开发者学堂课程【物联网应用开发课程规模设备管理与消息通信学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1055/detail/15307


规模设备管理与消息通信


内容介绍:

一、大规模设备管理概述

二、大规模设备管理原理详情

三、大规模设备管理接入流程

四、大规模设备管理接入实践

五、物联网平台消息通信概述

六、物联网平台消息通信案例演示

七、物联网平台消息通信案例小结

本节课主要学习的是大规模设备管理与消息通信通过本节课程,大家可以独立完成设备的创建管理,以及使用物联网平台进行消息通信。

本节课的分为大规模设备管理与消息通信两部分,大规模设备管理主分为以下三个部分内容概述原理详情接入实践;物联网平台消息通信主要包括三部分:物联网平台架构和消息通信原理、案例演示和案例小结。


一、大规模设备管理概述

1、大规模设备管理

以下大规模设备管理示意图:

image.png

通过观察上图可以发现,我们整个联网的生态圈划分五个梯度,依次为客户层应用开发者物联网平台集成商设备厂商。

简单来说,首先由集成商制定设备协议定数据格式为设备厂商提供一些协议,并将其设备去通过某种协议传输到我们的物联网平台,使得设备上传的数据存放在物联网平台进行统一管理

物联网平台不仅能接收下游设备的数据还可以将数据提供给上层,如为应用开发者客户提供一个统一的API以供他们进行设备的管理

2、设备圈选

如今物联网的发展越来越快设备的数量与日俱增,对这些数量庞大的设备进行高效统一、优良的管理的是非常必要的一个问题接下来介绍一下物联网平台如何有效高效的管理设备在物联网平台,将与之有关的功能定义为设备圈选

设备圈选又分为基础设备管理检索基础能力

(1)基础设备管理

这是一种较为简单的管理功能,它可以给设备进行标签分组即给设备打上标签通过标签筛选一些目的设备还有静态分组,其实标签比较相像,但相当于是一个非常独立的功能,因为它有单独的页面,可以根据分组展示当前分组下所有的设备,比标签更加灵活的。

(2)检索基础能力

该功能其实比较复杂,也是最为灵活的一种圈选方式,它最为典型的就是可以通过运行检索。上面所的基础设备管理其实是基于元信息的管理而所谓元信息,就是指从创设备创建开始便基本不发生改变的一种信息,运行检索的信息则不同该种状态下,设备通不停地向云端传输最新的数据,属性事件服务等这些更新非常频繁的的数据客户的数据是这种频繁更新的数据,运行数据检索,其实是一个非常大的挑战而这一功能阿里云物联网平台可以实现运行时检索

通过运行时检索延伸出了新的功能——动态分组,动态分组静态分组都具有分组能力后者是基于非常静态的规则,其是通过产品标签进行匹配动态分组,它是可以基于运行时的属性去筛选设备,分组的设备是不是固定的,可以通过云端的规则动态匹配设备。


二、大规模设备管理原理详情

该部分介绍各类设备圈选的原理:

1、标签

可以为不同产品设备设备或设备分组贴上不同标签是说标签的圈选不仅限于设备维度,还可以在产品设备分组进行圈选产品标签分组标签的统一结构都是通过键值对Key-Value贴标签的。在阿里云物联网平台,标签的限制产品设备和设备分组三个维度,每种维度下的分组(如单一分组单一设备和单一产品限制100个。这一点也是考虑到总体性能瓶颈决定的

2、分组

包括静态分组和动态分组两种不同类型的分组。

静态分组相当于是依靠用户手动添加设备到分组,也支持分组中的设备移出重点在于手动平台不会自动某些设备添加到某一分组中。而动态分组静态分组最大的区别即在于“手动自动的区别,前者在创建之初就会给动态分组配置分组条件规则然后基于配置好的条件规则动态匹配符合条件的设备的分组需要用户或者开发者手动地将设备添加或者移出

两种不同的分组都有各自的限制。当前阿里云物联网平台账号下静态分组最多只能创建1000个分组且这1000个分组包含所有分组所有分组下的子分组分组层级也有限制的,一共三层分组子分组子子分组,每层下的子分组只能有100个。以上即为静态分组的三个限制,如今,静态分组也在不断进行优化,后期对于总的分组数可能会逐步放开到1万、10万个动态分组限制目前仍处于观望状态,单个账号只能创建10个,这是考虑到运行时数据的匹配的复杂度决定的

3、运行时检索

叫做高级检索,检索的难度复杂度较高的功能通过类SQL语句进行快速搜索满足决定条件的设备。例如,匹配圈选一些在线设备运行检索的主要功能在管理设备设备分组设置动态分组和OTA升级三个方面有非常广泛的应用

进行运行检索的支持类SQL语句,类似与SQL的where语句,只要填写where条件即可如:

product_key= "al*****"order by active_time

//利用基础元信息匹配激活时间进行排序使得product_key等于特定的值。

这条SQL语序不是非常典型因为它的条件是基于元信息匹配的,但是高级检索最重要的特性使通过运行时的数据进行匹配,就如:设备上报的数据温度是20度,匹配温度大于15度的条件,则temperature>15可通过高级检索把此时温度大于15度的所有设备全部圈选出来提供下载csv列表的功能把所有匹配的设备通过csv的文件形式导出,方便开发者和客户使用。


三、大规模设备管理接入流程

1、简单设备圈选使用流程

1标签

需要通过填写相关信息编辑标签,在创建标签时弹出如下窗口

image.png

地理位置标签

是一个预定义的标签,如果没有给设备分组产品打上位置标签的特殊需求,可不填,可以选填

设备标签

一个输入填写标签的key,第二个输入中填写标签的value这里以为设备打标签为例填写完标签之后,就会在设备页面上显示当前的设备的keylocation和value(bedroom)

image.png

2分组

以下为创建静态分组时弹出的窗口

image.png

在该窗口中首先需注意的是分组类型选择默认即可是指在创建分组时,可以指定分组是要隶属于其他的分组如果不是要创建子分组,可以不填,反之,则可以通过该项对分组进行层级管理,创建新分组时指定组隶属于分组下分组名称即对分组进行命名分组描述为了后的开发,即描述该分组的功用以上最重要的选择默认分组类型静态分组),并填写分组名称

以下为创建好的分组的例子

image.png

显示在分组的页面下。

2、复杂设备圈选使用流程

该过程为高级检索,即运行时检索,目前阶段其功能仅体现在企业实例中,因此,要体验高级检索需要注意是否为企业实例。

首先,高级检索支持的检索大体上分为四类一、通过基本信息圈选元信息,图上显示的pk产品设备名称设备激活时间,这些都是固定的值通过运行时数据圈选这是高级检索主打的功能可以通过设备下的物模型所有的属性事件服务进行检索通过分组进行圈选;通过标签进行圈选。如刚刚所说,可以通过sql语句把分组标签融合在一起进行检索。

其体现在设备页面下一个高级索的tab以下为主要信息示意图:

image.png

高级检索其实把所有的基础检索再加上运行检索融合在一起的么功能。

 

四、大规模设备管理接入实践

1、运行时检索实例

(1)创建新产品

进入物联网平台,选取企业实例,进入企业实例iot-060a0bah

image.png

为了进行测试可以创建新产品将产品名称命名为XLY_TEXT,并选定所属品类(图中以“空调温控器”为例),其他选项选择默认即可

image.png

(2)创建并激活设备

image.png

基于产品创建设备,定义设备名称即可创建成功。

在设备创建完成后,该设备显示激活在“监控运维”中设备模拟器功能,通过该功能可以模拟设备的上线计划。

image.png

选取刚创建的产品和设备,进行调试启动模拟器,模拟把设备激活。

以下为进行属性上报的测试的案例:

image.png

当前页面显示设备下的模型模块,模块下有各种属性,可以选择当前温度进行上报,模拟上报时写24度,即可模拟发送成功。

进入设备核实设备是否到属性上报信息。点击“物模型数据”,该页面显了刚输入的模拟

image.png

显示当前的温度是27度,表示模拟上报成功接下来,尝试一下高级搜索功能

(3)高级检索功能演示

进入到设备页面下的“高级搜索选项,下面是一些搜索案例:

这里以“通过物模型数据搜索“为例:

首先需要配置物模型索引属性,点击“配置索引”可以发现,已经配置过了当前温度属性,无需再额外配置,点击确定即可没有配置过,则应先把属性配置到引中才会去被高级搜索检索到,否则,无法检索到该属性

若要通过当前的设备的温度进行匹配,可以直接点击属性标识符property.float TEXT>11或者进行复制粘贴到搜索框中,并对其中参数进行适当修改property表示要通过属性进行搜索float TEXT是一个需要填写字段,因此需要找到“float TEXT”字段,即current temperature属性,将属性标识符中的“float TEXT”改为“current temperature”,即基于检索的目标字段。

此处模拟检索匹配大于室温25℃)的设备:

image.png

由于刚在上报的温度是27℃,因此该设备会被检索到条件保持不变,重新上报为24℃,再次进行搜索该设备不会被搜索到。总之,高级检索会时时基于物模型假设的数据进行上报。

2、动态分组实例

动态分组基于高级检索所衍生的功能,的创建逻辑普通的静态分组相同。在创建分组时,分组类型选择动态,动态规则与上面演示的高级检索的检索条件相同,如动态规则property.current temperature>20,即分组会去自动当前实例下包含current temperature字段且温度大于20的设备添加到分组可以将分组名称命名为“高于室温”最终进程符合该条件的动态分组。

关于动态规则其是它单指运行检索运行的动态规则也可以根据其他的方式分组标签OTA信息匹配等的动态规则。

image.png

创建分组选择动态动态规则为“property.current temper

ature>25”,分组名称命名为“greaterThanRoomTemp”,点击“确认”创建成功当前设备列表没有任何设备因为刚上报过温度是24重新上报温度“26℃”,刷新后该设备就会动态去匹配到动态分组中。

3、代码Demo-门禁定制OTA升级场景

该场景为基于以上所有的设备圈选功能的场景大家之后可以根据实际需求仿照代码Demo编写。

我们生活中有很多智能设备需要经常进行OTA升级,CV技术计算机视觉技术的人脸识别门禁设备,因为在AI方面CV技术人脸识别模型是高速迭代的需要设备(如识别门禁具备可常更新的能力,但终端设备门禁往往由于技术硬件有限,导致限制条件较为复杂,因为设备硬件条件不一,可以通过设备圈选能力把符合条件的门禁圈选出来,再把OTA升级包推送给符合升级条件的设备

这里的代码Demo会去模拟这个场景为特定状况的设备进行过OTA推送以下为实现过程:

(1)提供自动创建设备自动上线的脚本

①初始化

在该自动化的脚本中,最开始textswitch开关为INIT

private static final Testswitch testswitch=TestSwitch.INIT;

②创建产品、设备分组动态分组

image.png

运行主程序,结果显示了许多设备以及产品创建成功。

image.png

可以去在控制台上去确认一下点击返回控制台的“产品”“设备”“分组”中可以查看到刚刚创建的设备、产品和动态分组

自动上线激活

把刚刚创建的设备去进行自动激活上线入Mockbridge模块比赛模拟网桥实现云云对接,一个网桥下挂九个设备来进行模拟上线脚本如下:

public static void main(string[] args) {

inito

activate();

pushToDevice();

}

(2)提供数据自动上报脚本

image.png

运行脚本即可以自动激活上线可以再去控制台确认一下,发现刚刚创建的设备未激活状态变为了在线状态。任意点击一个设备,可以查看其物模型数据,由于刚才脚本不止是激活和上线而是一个随机脚本,将附加的属性各个字段进行随机上报。

把各个门禁中各个字段进行随机的刚才显示的数据都是成功上报的数据

在刚刚创建的动态分组其动态规则是预先定义好的,门禁设备的动态规则包括两个,即人脸识别级大小小于10万人脸识别级的存储能力大于17万由此圈选符合两个条件的门禁设备因为,圈选的目的是筛选具有更多剩余容量的门禁设备避免导致设备的终端的存储能力不够的状况出现

确认手续申报完毕后,查看动态分组中是否有满足条件的设备存在

image.png

结果显示有三个设备,再次确认是符合动态规则的两点识别级,点设备查看物模数据,发现圈选的动态分组中的单个设备均符合接下来对这些设备进行OTA升级

(3)OTA升级

添加OTA升级包并进行配置:

image.png

对升级包不进行平台验证,因为只是一个演示创建好升级包之后可以基于刚才的动态分组,创建动态升级的任务。

4OTA升级包任务创建

选择刚创建好的升级包进行批量升级

image.png

升级方式选择动态升级,通过态分组的方式圈选设备,升级范围选择分组升级,分组列表选择刚刚创建的动态分组点击下一步,恒定速率升级是每分钟推送的设备数设置为“10”其他保持默认点击“完成”,设备状态从被升级变为“升级中,设备列表圈选在动态分组的三个设备的状态显示“已推送

5清除数据脚本

如果以上过程中遇到问题,可以初始化把创建的产品设备都删除

image.png

初始化之后返回控制台可以发现创建的态分组中的设备产品都已经删除了。

此外附录中还包括标签分组高级检索的开放接口的文档以及演示的整个代码Demo,可以多进行实操

 

五、物联网平台消息通信概述

1、物联网平台架构

image.png

在设备侧可以通过物联网平台提供的SDK实现设备的接入,在物联网平台提供了消息通信设备管理监控运数据分析等服务,同时也提供了安全认证全线策略的服务,以确保设备和云端数据的安全。物联网平台同阿里云产品也可以进行数据的流转,将设备上报的数据流转到阿里云产品进行存储,或者进一步的实时处理。

2、消息通信介绍

1通信过程

设备可以通过SDK进入到物联网平台,进入时支持多种的协议选择,MQTT、CoAP、HTTPS

image.png

设备接入之后,上报消息到物联网平台,首先,消息会到达消息中心做进一步的存储和分发处理消息中心做了计算和存储分离的架构,在架构层面可以支持水平扩容以应对海量的设备消息。消息中心一方面可以将消息分发到规则引擎,进一步对消息数据进行计算过滤等处理之后流转到原产品另一方面,也可以通过消息列的形式推送到消息的消费端

消息具有实时优先推拉结合特点所谓的实时优先,设备上报的消息会实时的通过列网关推送到应用的消费端,如果消费端有不在线或者推送失败的情况,会把消息堆积起来。列网关会不断拉取堆积的消息,进一步重新投递。最后,在应用提供了API,能够下行控制设备。

2通信方式

整体物联网平台提供以下消息通信方式

设备商报数据

设备可以通过MQTT等协议与物联网平台建联,基于topic的形式上报数据上报的数据可以是用户自定义的,也可以是通过模型定义的一些数据。

规则引擎流转到云产品

在规则引擎中,可以通过SQL或者脚本的形式对数据做进一步的处理和过滤,流转的云产品也相对来说比较丰富。消息队列MQ、DataHub函数计算FC或直接存储的数据库,RDS、表格存储TSDB

服务端订阅

服务端订阅即队用户的应用服务器可以通过开源的AMQP协议接入接入之后,设备上报的消息优先会时推送到消费端,如果设备消费端不在线或实时推送失败,将进入堆积队列,堆积的消息不会影响实时的消息推送即实时优先的策略。

应用服务器下行控制设备

通过API的形式来远程控制设备,应用服务器可以调用Pub API向设备发送消息或调用Rrpc API向设备发送消息并且同步获取设备响应结果,或者说是直接调用BroadcastAPI向设备广播消息。

以上是物联网平台比较常见的四种消息通信的方式。


六、物联网平台消息通信案例演示

1、案例分析

1业务背景

A在某个物业大厦物业技术部工作,某一天他接到了大厦的环境智能化升级的任务。因此,他决定将大厦类的环境监测能耗统计等设备都接入物联网平台,并且通过物联网平台将数据流转到自己设计的智能化应用系统当中,对监测的数据进行分析计算在计算后,可以自动的去控制大厦中的一些相关设备,从而提升大厦整体的环境质量,降低能源消耗。

要实现业务,可以抽象出来几个跟物联网平台相关的功能列表。

2功能列表

设备上报监测数据到物联网平台

将数据流转到表格存储供后续的统计和分析

③若监测的环境指标超过了预警,可以将消息流转到消息列去做预警的通知,发送钉钉通知到相关的人员

可以通过AMPQ队列将设备的监测数据推送到小a自己实现的智能化应用系统,当中做实时的业务处理

应用系统可以控制空调或者通风设备,做一些指定的操作

(3)整体设计

包括七个步骤

监测设备

环境数据的监测设备将数据上报到物联网平台,从物联网平台将数据流转到云用作存储,以供后续的统计分析以及预警通知设备上报的监测数据可以通过AMQP服务端订阅的形式实时推送到智能化应用系统当中,做一些实时的业务处理判断。温度超,可以调用下行控制的app直接去控制空调或者通风设备,开启通风或设定空调的温度

image.png

4相关定义

①Topic定义

整个通信是基于Topic的,Topic是消息的发布和订阅之间的传输中介设备可以通过Topic实现消息的发送和接收,从而实现服务端和设备端的通信。

案例,我们定义两个Topic

一个Topic设备监测数据的上报  

Topic:/${productKey}/${deviceName}/user/data/post

第二个Topic用在服务端下行去控制设备

Topic:/${productKey}/${deviceName}/user/invoke

②数据格式定义

针对设备监测信息的上报,数据可以定义为以下JSON对象

/${productKey}/${deviceName}/user/data/post

{

"location:"A 03F_001"     //设备所在位置,如A幢3楼001

"metricType":"temperature   //监测设备监测的指标:温度指标

"timestamp:1656484971847873.    //当前时间,即监测数据上报的时间

"metricValue:25    //监测值,温度值25摄氏度

}

对于服务器下行控制设备的Topic数据格式,相对来说比较简单定义开关打开的格式

/${productKey}//${deviceName}/user/invoke

"switch:"on //设备开关打开

(5)操作演示

创建产品设备及 topic

要完成系统的接入,首先需要创建产品和设备进入到物联网平台看是否页面有相关的实,如果没有,则需要购买实例。在有实例的情况下,进入实例创建产品,之前创建好楼宇环境智能化的产品,在产品下建了两个设备,温度转改器空调设备,因此,可以模拟温度传感器检测到数据上报到物联网平台,空调接受服务端的控制打开空调或调整温度。

设备和产品创建好之后,再进一步的做消息流转的一些配置。

②云产品流转

所谓的云产品流转将设备上报的数据流转到里云的其他的云产品,表格存储或消息服务MQ进入到规则引擎栏目,在云产品流转里面,先创建一下那解析器用来处理消息的实体信息

image.png

创建好解析器之后前往编辑。

首先,第一步是关联数据源,那所谓的数据源解析器要处理数据。若没有关联数据可以新建数据,有了数据之后,可以把它关联过来。TEST数据源具体要去处理哪些数据呢?在整个物联网平台消息通信都是基于Topic点击添加Topic整个数据的通信都是基于自定义的Topic因此选择自定义的Topic选择产品楼宇环境智能化产品,设备可以选所有的设备所有设备上报的消息都会由解析器来处理Topic余下的部分因为这里主要是处理设备上报的Topic因此选择设备上报的Topic :user/data/post,确定。如果设备上报了Topic :user/data/post数据解析器就会处理数据。

第二步关联数据目的,所谓的数据目的是指我们要把消息流转到哪地方,可以点关联数据目的,若没有数据目的,可以创建数据目的。要流转table store中,就创建table store数据目的,地域取华2,“例”选择之前创建过数据表选择之前创建表device_metric,角色需要访问物联网平台OTS获取角色授权。填好之后,点击确定,就创建好了数据目的将其把它关联进来创建流转到MQ的视频,“地域按提示选择填写,利用之前创建例,topic也选用之前建好post topic,如果没有,可以点击创建Topic进行创建,同样也需要做授权,物联网平台才能访问MQ,将数据流转过去之后,确定,并将之关联过来。

第三脚本编辑。将之前好的脚本拷过来。在脚本编辑时注意以下几点:首先可以简单的看一下脚本意思脚本的语法与JS的语法比较类似

//获取消息payload数据

var data=payloadC"json");

//payload是系统内置的函数,它的含义是将消息上报取出设备上报topicpayload数据取出来而上报的是JSON格式的数据

if(data.metricType"temperature’&&datametricValue>28) {

//如果温度大于28度时,流转当前消息到MQ,并发起预警

//数据目的Id1005需与当前规则配置关联数据id保持一致

writeMq(1005.data);

}

//所有上报消息都流转到TableStore,用于统计分析

//数据目的Id1005需要与当前规则配置关联的数据id保持一致

writeTableStore(1004{"deviceName":deviceName(),"type":

data.metricType,"value":data.metricValue"timestamp": data.timestamp});

//把数据流转ots的存储,前面1004也是数据目的id后面是JSON结构的内容,deviceName,deviceName()是deviceName的函数,取当前设备上报的消息的设备名有typevalue段,增加timestamp字段把数据流转到TableStore保存如果是在平时使用的时候,还可以利用调试功能做一下调试,如调试脚本是否有语法错误,计算逻辑是正确?无误后,把它发布脚本发布成功之后,可以看到解析器,他还是不会启动状态,将其启动,当启动解析器之后如果此时设备上报一条数据,解析器就能够进行监听和处理了。

最后再看一下服务端订阅的配置,默认已经有消费无需再新把消费创建一下订阅,订阅刚刚的产品所要监听的消息即为设备上报的消息,点击确认。相对来说,消费组的配置是非常的简单的只需要配置一下订阅关系即可

整个消息使用在控制台的配置已经完成了。

设备和服务端订阅

设备上面运行的代码如下:

这里有两个Python脚本,使用Python脚本来模拟设备端,大家可以根据自己的具体情况参考官方文档使用对应的语言stk来处理。

以下为温度传感器的脚本,具体分析Python脚本中的代码:

image.png

配置设备信息,设备的device_name、密钥最后要做认证

image.png

定义了很多回调函数,以后断联以后收到消息订阅取消订阅发送消息等等

image.png

初始化sdk最后调用最后一行,发起

image.png

模拟设备定时上报温度,温度从25到35随机取值。上报格式前面提到过。有了内容之后,调用方法publish_topic把数据上报,通过topic上报到物联网平台,这里做了定时器,每十秒钟上报数据。

以下为空调的脚本,具体分析Python脚本中的代码:

初始化的配置相同,即一些设备信息还有一些监听的回调函数,对于空调设备,需要处理服务端控制下行的topic因此设备需要订阅topic否则,服务端下行控制的指令发送后,并不会推送到设备上。因此在建联成功后需要topic订阅函数。

image.png

建联发起连接设备 

对于空调来说,在案例,只是订阅了topic做对应的响应在收到消息以后,调用topic_message的回调函数,显示当前设备收到了topic的消息打印一行>”,不做额外的处理

image.png

如果结果中有一行>,说明设备收到了下行控制的消息了。在实际使用当中,可以自己定义收到控制的消息。

以上是两个设备端的代码,最后再看一下服务端订阅代码

image.png

服务端订阅通过MQP协议接入,简单分析一下

image.png

拼接认证参数,具体的些参数格式如何去拼接签名可以参考对应的文档进行操作。

image.png

通过sdk建立连接消费端同MPP网关建立连接这里的messageListener,即收到推送消息之后的处理逻辑。

image.png

处理逻辑直接把它提交到了另外线程池处理可以看一下process_message函数,函数种进行了比较简单的处理,如果我们上报的数据是温度数据,并且当前的温度已经大30,开启空调设备。那如何去开启?服务端控制设备,那我们可以发送topic到物联网平台,物联网平台会把topic推送到订阅过topic的设备中。

Pub调用Pub API,

image.png里可以看一下,怕怕不的话也就掉了,怕没API,后面大家可以去看API的具体的文档实例里面发送数据switch on后,打开空调,打印日志

启动设备代码服务器订阅代码首先,运行服务端订阅的代码一下,显示启动成功再启动空调设备代码,可以看到里面显示订阅topic成功的的日志。再把温度传感器建联成功十秒钟成功上报一条数据以看到publish topic success即已发送了topic数据到服务端了,再过十秒再次发送数据。

停止不再上报数据,可以看一下服务端订阅已经收到了两条消息,上报的温度是29℃和28两条消息两个温度都没有触发预期的30℃进而去控制设备。

在物联网平台上有日志服务功能,其中可以看到刚上报的消息其中包括设备到云的消息,也设备上报的消息,那消息可以看一下税。服务器订阅收到了一条消息,通过规则引擎流转到了OTSMQ在OTS中可以看到上报的数据显示为当前时间温度28℃。

device_name即刚刚上报的温度设备是device 1。检查消息MQ是否发生流转?从刚刚的日志服务里可以看到有流转到OST的消息,因为脚本是写的温度大于28发生流转,因此可以看到其中产生了一条消息。

刚上报的消息是28℃、29,有一条信息是流转到MQ中,另外的其他的表格存储里面,由于组件是device_name设备链,里面只存储了当前设备最新的温度值。如果想要存储温度序列,需要把时间戳作为组件,就会不停的记录更多的数据。

刚刚停止了温度上此时继续将其开启,开启后可以再观察是否有上报的温度到30的。

或者将动态规则改为超过25就打开空调。当上报温度达到29,就会命中条件,调用Pub API,Switch on condition打开空调观察空调是否收到信息收到

可以发现收到了服务端下发过来的消息打开空间

以上即为整个消息通信,从设备上报到服务端的处理,最后再到下行控制整体的流程,都一一做了演示

 

七、物联网平台消息通信案例小结

1、配置流程小结

首先要创建产品之后要定义两个topic,用来上报数据以及做下行控制最后,做服务端订阅的配置规则脚本的配置。总体来说,消息通信就以上几个步骤

image.png

首先是在控制台上面做各种配置根据业务的诉求,设备上报消息,或设备订阅消息,接收消息并处理。最后一部分应用系统处理上报的数据,或者根据各个业务的结果调用相关的API控制设备。

2、附录

1规则引擎配置脚本(后续大家可以作为参考):

image.png

(2)更多参考资料

大家可以参照官方的一些文档。如下:

image.png

以上对整个消息通信的演示课程学习云模组安卓设备接入物联网平台。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
6月前
|
数据采集 边缘计算 UED
必知的技术知识:iNeuOS工业互联平台,机床&PLC硬件网关与平台无缝对接,进行数据交互
必知的技术知识:iNeuOS工业互联平台,机床&PLC硬件网关与平台无缝对接,进行数据交互
37 0
|
消息中间件 移动开发 运维
消息队列和应用工具产品体系-14-容量规划及不同模式的适用场景
消息队列和应用工具产品体系-14-容量规划及不同模式的适用场景
消息队列和应用工具产品体系-14-容量规划及不同模式的适用场景
|
存储 弹性计算 资源调度
K8S下一代设备管理机制:DRA
背景Kubernetes从1.8开始引入了Device Plugin机制,用于第三方设备厂商以插件化的方式将设备资源(GPU、RDMA、FPGA、InfiniBand等)接入Kubernetes集群中。用户无需修改Kubernetes代码,只需在集群中以DaemonSet方式部署设备厂商提供的插件,然后在Pod中申明使用该资源的使用量,容器在启动成功后,便可在容器中发现该设备。然而,随着Kuber
2506 1
K8S下一代设备管理机制:DRA
|
传感器 物联网 智能硬件
IoT设备与手机App之间实时消息通信解决方案
PLC 工控机和管理人员 App 的联动
1499 15
IoT设备与手机App之间实时消息通信解决方案
EMQ
|
消息中间件 存储 安全
千万级车联网 MQTT 消息平台架构设计
本文我们将讨论车联网场景中的 MQTT 消息采集与传递,以及如何构建一个千万级车联网 MQTT 消息平台。
EMQ
946 0
千万级车联网 MQTT 消息平台架构设计
|
存储 数据采集 运维
物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践
物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践
1298 0
物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践
|
存储 云安全 消息中间件
任务管理入门:如何有效控制大规模设备
在IoT领域核心的场景之一就是云和设备交互。
任务管理入门:如何有效控制大规模设备
|
存储 云安全 消息中间件
任务管理轻松实现大规模设备管理控制
本文介绍阿里云物联网平台任务管理能力, 介绍任务管理功能和背后技术实践,助力简单方便稳定的大规模设备管理控制。
任务管理轻松实现大规模设备管理控制
|
前端开发 数据挖掘 5G
云无线接入网络的前向回传感知设计 | 带你读《5G系统关键技术详解》之十一
云无线接入网络(C-RAN,Cloud Radio Access Network)是第五代(5G,Fifth Generation)无线蜂窝网络的新兴范例,传统的物理层基站(BS,Base Station)传输和接 收基础设施使用云计算技术进行虚拟化。
云无线接入网络的前向回传感知设计  | 带你读《5G系统关键技术详解》之十一
|
数据采集 边缘计算 物联网
iNeuOS工业互联平台,机床&PLC硬件网关与平台无缝对接,进行数据交互
iNeuLink边缘计算网关,在iNeuOS云端操作中起到对下分布式采集数据、对上透明转发数据的作用。对下数据采集支持PLC协议包括:发那科(Fanuc)、西门子(Siemens)、三菱(Mitsubishi)、哈斯(Hass)、凯恩帝(knd)、海德汉(Heidenhain)、兄弟(Brother)、广州数控(GSK)、新代(Syntec),PLC协议包括:ModBus、西门子(Siemens)、三菱(Mitsubishi)、欧姆龙(Omron),其他协议可以定制化扩展。iNeuLink与iNeuKernel(设备容器)进行数据交互,最终使用iNeuView对数据进行视图组态和建模,完成数据
346 0
iNeuOS工业互联平台,机床&PLC硬件网关与平台无缝对接,进行数据交互