单元 2:配置路由规则


路由规则是由一系列的规则节点组成,用于处理来自设备的信息。

步骤 1:创建规则

  1. 登录至 EnOS 管理控制台,点击左侧导航栏中的 路由规则
  2. 点击 新建路由规则
  3. 输入规则名称 温度传感器规则 和描述,然后点击 确定

步骤 2:设计规则

你将进入带有 Rule Entry 节点的画布页面。


按照以下节点所示顺序设计并连接规则。


../../_images/s1_rule.png

Rule Entry 节点

每个路由规则必须以 Rule Entry 节点起始。

  1. 点击 Rule Entry 节点。
  2. 网关类型 下拉列表中选择 EnOS IoT
  3. 产品 下拉列表中选择 温度传感器产品。所有从该产品下的设备传入的数据都将进入该规则进行处理。


../../_images/s1_rule_rule_entry.png


有关 Rule Entry 节点的更多信息,参见 Rule Entry

Message Type Switch 节点

温度传感器产品 下的设备上报测点时,Message Type Switch 节点将路由传入的消息。

  1. 点击 Message Type Switch 节点。
  2. 消息类型 下拉列表中选择 上报测点


../../_images/s1_rule_msg_type_switch.png


有关 Message Type Switch 节点的更多信息,参见 Message Type Switch

Multicast 节点

Multicast 节点将输入转发到多个节点以不同的方式进行处理。在本教程中,输入将以两种方式处理:如果温度高于 30,则向空调设备发送指令,并将规则路由到 EnOS_default 规则,该规则会将测点发送到 Kafka 主题并保存发布到 EnOS 的测点值。


有关 Multicast 节点的更多信息,参见 Multicast

Script Switch 节点

Script Switch 节点根据编写的 JavaScript 脚本的结果路由 Multicast 节点的输出。在本教程中,脚本将检查输入的温度值是否为数字,如果该值高于 30,则将路由到下一个节点。

  1. 点击 Script Switch 节点。
  2. 点击 Script 标签,并输入以下脚本。


if (typeof msg.temperature === 'number') {
  return msg.temperature > 30;
} else {
  throw new Error('Temperature type unsupported');
}


../../_images/s1_rule_script_switch.png


有关 Script Switch 节点的更多信息,参见 Script Switch

Send Command 节点

Send Command 节点向 空调设备 发送指令,将温度调整为 26。

  1. 点击 Send Command 节点。

  2. 消息来源 下拉列表中选择 固定消息

  3. 产品 下拉列表中选择 空调产品,然后在 设备 下选择 设备名称空调设备

  4. 下发指令消息类型 下选择 调用服务

  5. 模型服务 下拉列表中选择 ctrlTemperature,然后为 消息内容 输入以下内容。


    {
     "ctrlTemperature": 26
    }
    


  6. 方式 下拉列表中选择 直接发送指令


../../_images/s1_rule_send_command.png


有关 Send Command 节点的更多信息,参见 Send Command

Checkpoint 节点

Checkpoint 节点将规则路由到 EnOS_default 默认规则。

  1. 点击 Checkpoint 节点。
  2. 操作 下拉列表中选择 Use Default Rule


../../_images/s1_rule_checkpoint.png


有关 Checkpoint 节点的更多信息,参见 Checkpoint