摘要:本文将从设备联动的触发条件和执行动作,以及数据转发的触发事件和转发目标两大部分,具体阐述规则引擎的原理。
规则引擎就是指用户在华为云平台对接入的设备设定相应的规则,然后在条件满足响应的规则后,平台便会触发的动作来满足用户需求。规则引擎包含了设备联动和数据转发两个部分。
规则引擎思维导图:
设备联动
设备联动是通过条件触发,基于预设的规则,引发多设备的协同反应,实现设备联动、智能控制。例如,当执行动作为“发送通知”时,物联网平台对接华为云的消息通知服务SMN,进行主题消息的设置和下发。
触发条件:
要想触发一个规则动作,就必须首先要有个触发条件,在华为云设备联动的规则有匹配设备触发、指定设备触发、定时触发三个部分。
指定设备触发:对使用相同产品模型的设备进行条件设置。
指定设备出发:对指定设备进行条件设置。
定时触发:可以设置规则触发的时间点。值得注意的是当指定的触发条件选择“定时触发”,则执行动作中不能设置为“发送通知”、“上报告警”、“恢复告警”的动作。
执行动作:
当拥有一个触发条件的时候,必定会有一个与之对应的执行动作,执行动作可分为下发命令、发送通知、上报告警、恢复告警。
下发命令:下发命令时需指定要执行的设备,对服务的执行命令参数进行重新配置下发给设备。
发送通知:发送通知需要您授权当前设备接入服务(IoTDA) 访问所有区域的消息通知服务(SMN) 的权限。即对接华为云的消息通知服务SMN,进行主题消息的设置和下发。
上报告警:定义告警级别、告警名称、告警内容等。当满足触发设置的条件后,产生的告警将统一上报到应用运维管理服务(AOM)管理界面。
恢复告警:定义告警级别、告警名称、告警内容等,当满足触发设置的条件后,产生的告警将统一上报到应用运维管理服务(AOM)管理界面。
数据转发
设备接入IOTDA能与华为云上的其他服务实现无缝对接,就是借助于规则引擎中的数据转发来实现的。当满足数据转发的触发条件时,iotDA便能根据所设定的触发事件将数据转发到其他服务或是推送给应用。例如DIS、OBS等。
触发事件:
在设备接入IOTDA与其他服务对接,首先需要确认需要转发的事件,触发事件主要有设备的添加更新或删除、设备属性的上报、设备消息状态的变更、设备状态变更、批量任务变更。
设备添加更新与删除:是指新增一个设备、删除、更新一个设备时触发规则引擎,然后将数据转发到所设定的转发目标服务。值得注意的是设备更新指的是设备的一些基本信息,如设备名称、描述、版本信息等,而是不是所属服务的属性。
设备属性上报:是指当设备上报其属性时触发规则通过设定的转发目标将其转发到其他的华为云服务或是推送给应用。
设备消息上报:是指当设备上报其消息时触发规则通过设定的转发目标将其转发到其他的华为云服务或是推送给应用。
设备消息状态变更:是指当设备消息状态发生变更时触发规则通过设定的转发目标将其转发到其他的华为云服务或是推送给应用。消息的状态分为以下四种:PENDING,DELIVERED,FAILED和TIMEOUT,PENDING指设备不在线,消息被缓存起来,等设备上线之后下发: DELIVERED指消息发送成功;FAILED消息发送失败;TIMEOUT指消息在平台默认时间内(1天)还没有下发送给设备,则平台会将消息设置为超时,状态为TIMEOUT。
设备状态变更:是指当设备的状态发生变更时触发规则通过设定的转发目标将其转发到其他的华为云服务或是推送给应用。设备的状态分为以下四种:未激活,在线、离线、异常。
设备批量任务变更:是指针对任务类型为固件升级或是软件升级的任务状态发生变更时触发规则通过设定的转发目标将其转发到其他的华为云服务或是推送给应用。设备的批量任务状态分为以下六种:任务正在等待被执行、任务正在被执行、任务成功、任务部分成功、任务失败、任务被停止。
转发目标
在我们对触发事件设置完成之后,就会设置其转发的目标。转发目标可以是华为云上的其他服务,也可以直接是通过http推送的方式推送给第三方应用又或者是AMQP消息队列.
关于规则引擎的黑名单:
规则引擎的黑名单是指:当触发规则引擎时,根据触发事件将数据推送给应用,但是由于应用服务器问题推送失败,并且连续推送十次失败,这时这个应用地址便会被平台加入到黑名单,不再进行推送,当三十秒过后,这时平台将会放开黑名单名单一次,此时当条件满足时再去推送,如果成功则成功,如果即又连续十次失败,便又会加入黑名单。如此反复。
根据上述,其实规则引擎的黑名单是针对那些条件触发频繁、推送频繁的情况。
本文分享自华为云社区《规则引擎》,原文作者: 华为IoT云服务 。
点击关注,第一时间了解华为云新鲜技术~
本文章来源于互联网,如有侵权,请联系删除!