文档首页 > > 使用指南> 规则引擎

规则引擎

分享
更新时间: 2019/12/03 GMT+08:00

概述

规则引擎是指用户可以在物联网平台上可以对接入平台的设备设定相应的规则,在条件满足所设定的规则后,平台会触发相应的动作来满足用户需求。包含设备联动和数据转发两种类型。

设备联动规则

设备联动通过条件触发,基于预设的规则,引发多设备的协同反应,实现设备联动、智能控制。当响应动作为“主题通知”时,物联网平台对接华为云的消息通知服务SMN,进行主题消息的设置和下发。

例如:设置水表的电池电量阈值为小于等于20%时,上报电池电量过低的告警,用户就能及时了解设备的供电情况,以便及时更换电池。

数据转发规则

数据转发无缝与华为云其他服务对接,实现设备数据按需转发和处理,您无需线下购买和部署服务器,即可实现设备数据的存储、计算、分析的全栈服务:
  • 对接数据接入服务DIS,实现数据高效采集、传输、分发。用户可以通过DIS提供的SDK/API等方式下载数据,完成后续自定义使用数据的业务开发场景;也可以通过转储任务进一步将数据转发到其他云服务(OBSMapReduceDWSDLI),进行数据存储、数据分析等后续数据处理,便于用户进行更灵活、多样化的数据使用。
  • 对接分布式消息服务DMS,为设备数据提供消息队列服务。DMS是一项基于高可用分布式集群技术的消息中间件服务,用于收发消息。IoT作为生产者发送消息到DMS消息队列里,用户的应用程序作为消费者从消息队列里消费消息,从而做到往用户多个应用程序组件之间传输消息。
  • 对接对象存储服务OBS,实现设备数据持久存储(设备管理服务支持设备数据存储,存储7天)。OBS是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,适用于对设备上报数据进行归档和备份存储。OBS也支持对接实时流计算CS云服务,实时分析数据流,分析结果对接到其他云服务或者第三方应用进行数据可视化等。
  • 对接企业集成平台ROMA的消息集成(Message Queue Service,简称MQS)组件,为物联网平台与应用服务器之间提供安全、标准化的消息通道。MQS是一款企业级消息中间件,基于Kafka协议,使用统一的消息接入机制,并具备消息发布订阅、Topic管理、用户权限管理、资源统计、监控报警等基础功能,以及消息轨迹、网络隔离、云上云下集成等高级特性,为企业数据管理提供统一的消息通道。

数据转发方案对比

在许多场景中,您需要将设备上报给物联网平台的数据进行加工处理或用于业务应用。使用物联网平台提供的订阅推送功能和数据转发功能,均可实现设备数据的转发。

  • 数据转发:提供初级的数据过滤能力。支持对设备数据进行过滤,然后再转发到其他华为云服务。
  • 订阅推送:第三方应用可在物联网平台订阅相关业务数据,当业务信息发生变化时(如设备注册、设备数据上报、设备状态变更等),平台会向第三方应用发送通知消息,通知其具体的变化信息。可快速地获取设备消息,无数据过滤能力,功能较为单一,但是简单易用且高效。

    数据转发方案

    适用场景

    优缺点

    数据转发

    • 设备上报数据上云。
    • 复杂场景。

    优点:

    • 支持将数据转发至其他华为云服务产品。
    • 支持对数据进行条件过滤。

    缺点:

    只能转发设备上报数据,不支持设备注册、设备状态变更等数据的转发。

    订阅推送

    • 设备数据推送至第三方应用。
    • 单纯的接收设备数据的场景。

    优点:

    • 支持将设备注册、设备数据上报、设备状态变更等多种数据推送至第三方应用。

    缺点:

    • 缺少过滤能力。
    • 第三方应用需要自实现对推送数据的存储、分析等操作,无法使用其他华为云服务。

    物联网平台默认只提供较弱的Http推送能力,高于10TPS的推送建议使用数据转发规则。

云服务配置管理

物联网平台支持与华为云其它服务进行对接。首先通过华为云管理控制台获取“访问密钥(AK)”和“加密访问密钥(SK)”,在界面上输入AK和SK完成物联网平台与华为云的对接;然后用户在购买华为云其它云服务后,通过规则引擎功能将物联网平台的数据转发到用户购买的其它服务,或通过规则引擎功能与华为云的SMN服务对接。

AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和加密访问密钥一起使用,对请求进行加密签名。SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。

AK和SK的获取方法

  1. 登录华为云,并进入管理控制台。
  2. 单击用户名下的“账号中心”,如下图所示。

  3. 在基本信息中,单击“管理我的凭证”,如下图所示。

  4. 在“我的凭证”页面中,选择“访问密钥”页签,并单击“新增访问密钥”。
  5. 输入当前用户的华为云登录密码,并输入短信验证码,单击“确定”按钮后,会自动下载访问密钥信息,包括“访问密钥(AK)”和“加密访问密钥(SK)”信息,请妥善保管。
  6. 登录园区物联网平台Console,点击右上角“进入园区物联网平台服务”。单击页面右上角的用户头像,在下拉菜单中选择“云服务配置管理”,输入AK和SK,点击“保存”,完成和华为云的对接。

创建设备联动规则

  1. 登录物联网平台控制台,点击右上角“进入设备管理服务”。
  2. 单击左下角,选择“规则”,单击页面右上角的“创建规则”,选择“设备联动规则”
  3. 参考如下参数说明,设置规则。

    参数名称

    参数说明

    最佳实践

    规则名称

    创建的规则名称。

    立即触发

    平台创建规则前最后一次上报的数据满足触发条件,可以设置是否立即触发该规则。
    • 是:创建规则后规则立即生效,系统会对最近一次上报的数据做判断来触发规则。

    • 否:创建规则后,系统对新上报的数据进行判断,然后触发规则。

    规则类型

    云端规则:设置直接接入到云端物联网平台的设备的规则。

    边缘规则:设置通过边缘节点接入云端物联网平台的设备的规则。

    边缘节点

    “规则类型”选择为“边缘规则”时出现,选择规则针对的节点设备。

    时间设置

    • 总是:没有时间限制,持续检查当前规则条件是否满足。
    • 在特定时间:可以选择时间段,在特定的时间检查规则条件是否满足。

    条件

    设备行为:单击“添加”,可以选择设置条件的设备,支持对某一设备或者某一类设备进行设置。
    • 条件类型:
      • 设备:表示满足条件的数据是由单个设备上报到平台。
      • 设备类型:表示满足条件的数据是由选择的某一设备类型的设备上报到平台。
      • 设备群组:表示满足条件的数据是由所选设备群组的设备上报到平台。
    • 选择设备模型:选择满足条件后上报数据的设备的模型。选择设备模型后需要选择对应的服务类型,并设置上报数据的规则。
    • 数据时效(秒):数据有效时间,例如:设备产生数据时间为19:00,时效设为30分钟,平台收到数据时间为20:00,该情况下即使满足触发条件也不触发动作。
    • 延后触发(分钟):满足条件后,动作延迟触发时间。默认为0,例如:设置门磁打开状态时触发门未锁告警。当监测到门磁打开时,则立即触发告警。
    时间:单击“添加”,可以设置规则触发的时间点,该条件一般用于周期性的触发条件,如每天7:00,关闭路灯。
    • 时间点:可以选择规则触发的起始时间点。
    • 重复次数:规则重复触发的次数(1~1440次)。
    • 重复间隔(分钟):在起始时间点后,重复触发规则的时间间隔(1~1440分钟)。

    动作

    设备行为:单击“添加”,可以设置在规则触发后,需要执行相应动作的设备。

    • 动作类型:执行动作的类型,默认选择“设备”,表示给单个设备下发命令。
    • 选择设备模型:选择设置动作对应的设备模型,然后选择该模型下执行动作的设备。选择设备模型后需要选择对应的服务类型。
    • 命令状态:动作有效性标志,默认选择“启用”。
      • 启用:表示规则的执行动作有效,规则满足条件后会执行该动作。
      • 禁用:表示规则执行的动作无效,规则满足条件后不会执行该动作。
    • 命令请求ID:用于标识此次命令下发的ID。
    • 回调地址:命令状态变化通知地址,当命令状态变化时(执行失败,执行成功,超时,发送,已送达)会通知应用服务器。
    • 过期时间(秒):命令有效的超期时间,单位为秒。当为0时,表示立即下发命令,其他值表示缓存下发命令。不传时,默认为48小时。

    发送消息或告警:单击“添加”,可以设置主题通知、事件告警。

    1. 主题通知:需要开通SMN云服务,然后再此页面进行主题内容的配置。
      1. 在系统管理->云服务配置管理,与华为云对接。
      2. 在本界面上点击SMN云服务链接,跳到华为云官网上开通SMN云服务。
      3. 在本界面上选择SMN云服务对应所在区域,选择主题名称,设置消息标题和消息内容。
    2. 事件告警:定义告警级别、告警名称、告警内容等,表示在告警管理界面产生一条对应的设备告警。
      说明:

      设置上报事件告警的执行动作,则条件中不能设置“时间”的触发条件。

    描述

    对该规则的描述。

  4. 单击“提交”,完成设备联动规则的创建。

    新创建的规则默认状态为“激活”,您可以在列表中“规则状态”列,对规则进行禁用。

创建数据转发规则

  1. 登录物联网平台控制台,点击右上角“进入设备管理服务”。
  2. 进入“规则”页面,单击页面右上角的“创建规则”,选择“数据转发规则”
  3. 参考如下参数说明,设置规则。

    参数名称

    参数说明

    最佳实践

    规则名称

    创建的规则名称

    条件

    • 对象类型:选择“所有设备”(只支持所有设备的数据转发)。
    • 数据类型:转发的数据类型。
      • 设备上报的数据:设备根据Profile中定义的字段上报的数据。
      • 设备信息:设备注册时填写的设备静态信息数据,如设备位置信息、IMEI等。
    • 添加过滤条件:开关默认为“关闭”状态,当开关打开时,需要设置“属性名称”、“操作”、“值”参数,物联网平台对符合过滤条件的设备进行转发,详见转发数据样例

    动作

    • 动作类型:根据实际情况,选择“DIS服务”“DMS服务”“OBS服务”、或者“ROMA服务”
      说明:

      如果您没有开通服务,请参照以下步骤操作:

      1. 在系统管理->云服务配置管理,与华为云对接。
      2. 在本界面上点击具体的云服务链接,跳到华为云官网上开通相应的服务。其中:
        • DMS服务:只支持转发到逻辑多租的普通队列和高级队列,不支持物理多租的RabbitMQ实例和Kafka专享版。
        • ROMA服务:开通ROMA服务后,还需要在“应用详情->服务设置”里填写“订阅推送服务(ROMA)”,完成与ROMA服务的对接。
    • 数据转发至:如图创建数据转发规则界面所示,选择您需要转发的服务所在的区域、通道、数据类型等信息,不同服务填写的信息稍有差别,请以界面选项为准。

    描述

    对该规则的描述。

    • 转发数据样例:

      物联网平台对编解码后的Json格式的设备数据进行解析匹配:

      {
             "deviceId": "6543214c-72bb-4131-9e14-fad974123456",
             "services": [{
                    "serviceId": "serviceId1",
                    "data": {
                           "property1": "reportValue1",
                           "property2": "reportValue2",
                           "property3": "reportValue3"
                    },
                    "eventTime": "20190425T021157Z"
             }]
      }
      数据转发添加过滤条件:
      • 根据deviceId过滤,转发单设备数据。

      • 根据服务ID、或者上报数据属性property1/property2/property3过滤,转发批量设备数据。

    • 创建数据转发规则界面

  4. 单击“提交”,完成数据转发规则的创建。

    新创建的规则默认状态为“激活”,您可以在列表中“规则状态”列,对规则进行禁用。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区