规则
功能介绍
规则引擎是指用户可以对平台接入的设备设定相应的规则,在条件满足所设定的规则后,平台会触发相应的动作来满足用户需求。包含设备联动和数据转发两种类型。
设备联动规则
设备联动通过条件触发,基于预设的规则,引发多设备的协同反应,实现设备联动、智能控制。当响应动作为“主题通知”时,IoT平台对接华为云的消息通知服务SMN,进行主题消息的设置和下发。
例如:设置水表的电池电量阈值为小于等于20%时,上报电池电量过低的告警,用户就能及时了解设备的供电情况,以便及时更换电池。
数据转发规则
- 对接数据接入服务DIS(待上线),实现数据高效采集、传输、分发。用户可以通过DIS提供的SDK/API等方式下载数据,完成后续自定义使用数据的业务开发场景;也可以通过转储任务进一步将数据转发到其他云服务(OBS、MapReduce、DWS、DLI),进行数据存储、数据分析等后续数据处理,便于用户进行更灵活、多样化的数据使用。
- 对接分布式消息服务DMS,为设备数据提供消息队列服务。DMS是一项基于高可用分布式集群技术的消息中间件服务,用于收发消息。IoT作为生产者发送消息到DMS消息队列里,用户的应用程序作为消费者从消息队列里消费消息,从而做到往用户多个应用程序组件之间传输消息。
- 对接对象存储服务OBS,实现设备数据持久存储(IoT平台支持设备数据存储,存储7天)。OBS是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,适用于对设备上报数据进行归档和备份存储。OBS也支持对接实时流计算CS云服务(待上线),实时分析数据流,分析结果对接到其他云服务或者第三方应用进行数据可视化等。
- 对接企业集成平台ROMA(待上线)的消息集成(Message Queue Service,简称MQS)组件,为IoT平台与应用服务器之间提供安全、标准化的消息通道。MQS是一款企业级消息中间件,基于Kafka协议,使用统一的消息接入机制,并具备消息发布订阅、Topic管理、用户权限管理、资源统计、监控报警等基础功能,以及消息轨迹、网络隔离、云上云下集成等高级特性,为企业数据管理提供统一的消息通道。
创建设备联动规则
- 单击页面右上角的“创建规则”,选择“设备联动规则”。
- 参考如下参数说明,设置规则。
表1 参数说明 参数名称
参数说明
示例
规则名称
创建的规则名称。
创建一条规则:
- 规则名称:test
- 立即触发:是
- 时间设置:总是
- 设备行为:水表温度达35℃
- 动作:上报“严重”告警。
规则创建完成后,当水表温度超过35℃时,会上报严重级别告警。
立即触发
平台创建规则前最后一次上报的数据满足触发条件,可以设置是否立即触发该规则。-
是:创建规则后规则立即生效,系统会对最近一次上报的数据做判断来触发规则。
-
否:创建规则后,系统对新上报的数据进行判断,然后触发规则。
规则类型
云端规则:设置直接接入到云端IoT平台的设备的规则。
边缘规则:设置通过边缘节点接入云端IoT平台的设备的规则。
边缘节点
“规则类型”选择为“边缘规则”时出现,选择规则针对的节点设备。
时间设置
- 总是:没有时间限制,持续检查当前规则条件是否满足。
- 在特定时间:可以选择时间段,在特定的时间检查规则条件是否满足。
条件
设备行为:单击“添加”,可以选择设置条件的设备,支持对某一设备或者某一类设备进行设置。- 条件类型:
- 设备:表示满足条件的数据是由单个设备上报到平台。
- 设备类型:表示满足条件的数据是由选择的某一设备类型的设备上报到平台。
- 设备群组:表示满足条件的数据是由所选设备群组的设备上报到平台。
- 选择设备模型:选择满足条件后上报数据的设备的模型。选择设备模型后需要选择对应的服务类型,并设置上报数据的规则。
- 数据时效(秒):数据有效时间,例如:设备产生数据时间为19:00,时效设为30分钟,平台收到数据时间为20:00,该情况下即使满足触发条件也不触发动作。
- 延后触发(分钟):满足条件后,动作延迟触发时间。默认为0,例如:设置门磁打开状态时触发门未锁告警。当监测到门磁打开时,则立即触发告警。
时间:单击“添加”,可以设置规则触发的时间点,该条件一般用于周期性的触发条件,如每天7:00,关闭路灯。- 时间点:可以选择规则触发的起始时间点。
- 重复次数:规则重复触发的次数(1~1440次)。
- 重复间隔(分钟):在起始时间点后,重复触发规则的时间间隔(1~1440分钟)。
动作
设备行为:单击“添加”,可以设置在规则触发后,需要执行相应动作的设备。
- 动作类型:执行动作的类型,默认选择“设备”,表示给单个设备下发命令。
- 选择设备模型:选择设置动作对应的设备模型,然后选择该模型下执行动作的设备。选择设备模型后需要选择对应的服务类型。
- 命令状态:动作有效性标志,默认选择“启用”。
- 启用:表示规则的执行动作有效,规则满足条件后会执行该动作。
- 禁用:表示规则执行的动作无效,规则满足条件后不会执行该动作。
- 命令请求ID:用于标识此次命令下发的ID。
- 回调地址:命令状态变化通知地址,当命令状态变化时(执行失败,执行成功,超时,发送,已送达)会通知北向应用服务器。
- 过期时间(秒):命令有效的超期时间,单位为秒。当为0时,表示立即下发命令,其他值表示缓存下发命令。不传时,默认为48小时。
发送消息或告警:单击“添加”,可以设置主题通知、事件告警。
描述
对该规则的描述。
- 单击“提交”,完成设备联动规则的创建。
新创建的规则默认状态为“激活”,您可以在列表中“规则状态”列,对规则进行禁用。
创建数据转发规则
- 单击页面右上角的“创建规则”,选择“数据转发规则”。
- 参考如下参数说明,设置规则。
表2 参数说明 参数名称
参数说明
示例
规则名称
创建的规则名称
创建一条规则:
- 规则名称:test
- 对象类型:所有设备
- 动作类型:DIS服务
- 区域:cn-north-1
- 通道:dis-DMPLiteTest
- 数据类型信息:JSON
规则创建完成后,平台会根据规则,通过dis-DMPLiteTest通道转发JSON格式的数据到区域为cn-north-1的DIS服务。
条件
- 对象类型:选择“所有设备”(只支持所有设备的数据转发)。
- 添加过滤条件:开关默认为“关闭”状态,当开关打开时,需要设置“属性名称”、“操作”、“值”参数,IoT平台对符合过滤条件的设备进行转发,详见转发数据样例。
动作
- 动作类型:根据实际情况,选择“DIS服务”(待上线)、“DMS服务”、“OBS服务”、或者“ROMA服务”(待上线)。
说明:
如果您没有开通服务,请参照以下步骤操作:
- 在系统管理->云服务配置管理,与华为云对接。
- 在本界面上点击具体的云服务链接,跳到华为云官网上开通相应的服务。其中:
- DMS服务(待上线):只支持转发到逻辑多租的普通队列和高级队列,不支持物理多租的RabbitMQ实例和Kafka专享版。
- ROMA服务(待上线):开通ROMA服务后,还需根据订阅推送服务(ROMA)进行对接。
- 数据转发至:如图 创建数据转发规则界面所示,选择您需要转发的服务所在的区域、通道、数据类型等信息,不同服务填写的信息稍有差别,请以界面选项为准。
描述
对该规则的描述。
- 转发数据样例:
IoT平台对编解码后的Json格式的设备数据进行解析匹配:
{ "deviceId": "6543214c-72bb-4131-9e14-fad974123456", "services": [{ "serviceId": "serviceId1", "data": { "property1": "reportValue1", "property2": "reportValue2", "property3": "reportValue3" }, "eventTime": "20190425T021157Z" }] }
数据转发添加过滤条件:- 根据deviceId过滤,转发单设备数据。
- 根据服务ID、或者上报数据属性property1/property2/property3过滤,转发批量设备数据。
- 根据deviceId过滤,转发单设备数据。
- 单击“提交”,完成设备联动规则的创建。
新创建的规则默认状态为“激活”,您可以在列表中“规则状态”列,对规则进行禁用。
数据转发方案对比
在许多场景中,您需要将设备上报给IoT平台的数据进行加工处理或用于业务应用。使用IoT平台提供的服务订阅推送功能和规则引擎数据转发功能,均可实现设备数据的转发。
- 规则引擎数据转发:提供初级的数据过滤能力。支持对设备数据进行过滤,然后再转发到其他华为云服务。
-
服务订阅推送:第三方应用可在IoT平台订阅相关业务数据,当业务信息发生变化时(如设备注册、设备数据上报、设备状态变更等),平台会向第三方应用发送通知消息,通知其具体的变化信息。可快速地获取设备消息,无数据过滤能力,功能较为单一,但是简单易用且高效。
数据转发方案
适用场景
优缺点
规则引擎数据转发
- 设备上报数据上云。
- 复杂场景。
优点:
- 支持将数据转发至其他华为云服务产品。
- 支持对数据进行条件过滤。
缺点:
只能转发设备上报数据,不支持设备注册、设备状态变更等数据的转发。
服务订阅推送
- 设备数据推送至第三方应用。
-
单纯的接收设备数据的场景。
优点:
- 支持将设备注册、设备数据上报、设备状态变更等多种数据推送至第三方应用。
缺点:
- 缺少过滤能力。
- 第三方应用需要自实现对推送数据的存储、分析等操作,无法使用其他华为云服务。
IoT平台默认只提供较弱的Http推送能力,高于10TPS的推送建议使用数据转发规则。