更新时间:2022-02-21 GMT+08:00

规则

功能介绍

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

设备联动规则

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

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

数据转发规则

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

创建设备联动规则

  1. 单击页面右上角的“创建规则”,选择“设备联动规则”
  2. 参考如下参数说明,设置规则。

    表1 参数说明

    参数名称

    参数说明

    示例

    规则名称

    创建的规则名称。

    创建一条规则:

    • 规则名称:test
    • 立即触发:是
    • 时间设置:总是
    • 设备行为:水表温度达35℃
    • 动作:上报“严重”告警。

    规则创建完成后,当水表温度超过35℃时,会上报严重级别告警。

    立即触发

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

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

    规则类型

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

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

    边缘节点

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

    时间设置

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

    条件

    设备行为:单击“添加”,可以选择设置条件的设备,支持对某一设备或者某一类设备进行设置。
    • 条件类型:
      • 设备:表示满足条件的数据是由单个设备上报到平台。
      • 设备类型:表示满足条件的数据是由选择的某一设备类型的设备上报到平台。
      • 设备群组:表示满足条件的数据是由所选设备群组的设备上报到平台。
    • 选择设备模型:选择满足条件后上报数据的设备的模型。选择设备模型后需要选择对应的服务类型,并设置上报数据的规则。
    • 数据时效(秒):数据有效时间,例如:设备产生数据时间为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. 事件告警:定义告警级别、告警名称、告警内容等,表示在告警界面产生一条对应的设备告警。
      说明:

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

    描述

    对该规则的描述。

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

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

创建数据转发规则

  1. 单击页面右上角的“创建规则”,选择“数据转发规则”
  2. 参考如下参数说明,设置规则。

    表2 参数说明

    参数名称

    参数说明

    示例

    规则名称

    创建的规则名称

    创建一条规则:

    • 规则名称:test
    • 对象类型:所有设备
    • 动作类型:DIS服务
    • 区域:cn-north-1
    • 通道:dis-DMPLiteTest
    • 数据类型信息:JSON

    规则创建完成后,平台会根据规则,通过dis-DMPLiteTest通道转发JSON格式的数据到区域为cn-north-1的DIS服务。

    条件

    • 对象类型:选择“所有设备”(只支持所有设备的数据转发)。
    • 添加过滤条件:开关默认为“关闭”状态,当开关打开时,需要设置“属性名称”、“操作”、“值”参数,IoT平台对符合过滤条件的设备进行转发,详见转发数据样例

    动作

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

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

      1. 在系统管理->云服务配置管理,与华为云对接。
      2. 在本界面上点击具体的云服务链接,跳到华为云官网上开通相应的服务。其中:
        • 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过滤,转发批量设备数据。

    • 创建数据转发规则界面

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

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

数据转发方案对比

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

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

    数据转发方案

    适用场景

    优缺点

    规则引擎数据转发

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

    优点:

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

    缺点:

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

    服务订阅推送

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

    优点:

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

    缺点:

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

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