创建你的第二个流程

概述

本教程基于第一个教程,创建一个流程,开始从外部源获取数据,以在本地做一些有用的事情。

该流程将

  • 以固定间隔从网站检索信息
  • 将信息转换为有用形式
  • 在调试侧边栏中显示结果

1. 添加一个 Inject 节点

之前的教程中,Inject 节点用于在其按钮被点击时触发流程。在本教程中,Inject 节点将被配置为以固定间隔触发流程。

从面板中将一个 Inject 节点拖到工作区。

双击该节点以调出编辑对话框。将重复间隔设置为 每5分钟

点击“完成”关闭对话框。

2. 添加一个 HTTP 请求节点

HTTP 请求节点可以在被触发时用于检索网页。

将其添加到工作区后,编辑它以将 URL 属性设置为

https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/significant_month.csv

然后点击“完成”关闭对话框。

此 URL 是美国地质调查局网站过去一个月重大地震的提要。该网站提供了许多其他选项,你可以在完成本教程后尝试使用。

3. 添加一个 CSV 节点

添加一个 CSV 节点并编辑其属性。启用“第一行包含列名”选项。

然后点击“完成”关闭。

4. 添加一个 Debug 节点

在输出中添加一个 Debug 节点。

5. 将它们连接起来

添加连接线

  • 将 Inject 节点的输出连接到 HTTP 请求节点的输入。
  • 将 HTTP 请求节点的输出连接到 CSV 节点的输入。
  • 将 CSV 节点的输出连接到 Debug 节点的输入。

6. 添加一个 Switch 节点

向工作区添加一个 Switch 节点。编辑其属性并配置它以检查属性 msg.payload.mag,测试条件为 >=,将其更改为测试 number 类型的值 7。点击“完成”关闭。

从 CSV 节点再添加一条线到此 Switch 节点。

7. 添加一个 Change 节点

添加一个 Change 节点,连接到 Switch 节点的输出。配置它以将 msg.payload 设置为字符串 PANIC!

8. 添加一个 Debug 节点

将一个新的 Debug 节点连接到 Change 节点的输出

9. 部署

点击“部署”按钮,将流程部署到运行时。

在 Debug 侧边栏选项卡打开的情况下,点击 Inject 按钮。你应该看到一个条目列表,其中包含类似以下内容:

msg.payload : Object
{"time":"2017-11-19T15:09:03.120Z","latitude":-21.5167,"longitude":168.5426,"depth":14.19,"mag":6.6,"magType":"mww","gap":21,"dmin":0.478,"rms":0.86,"net":"us","id":"us2000brgk","updated":"2017-11-19T17:10:58.449Z","place":"68km E of Tadine, New Caledonia","type":"earthquake","horizontalError":6.2,"depthError":2.8,"magError":0.037,"magNst":72,"status":"reviewed","locationSource":"us","magSource":"us"}

现在,您可以点击每个属性左侧的小箭头来展开它们并检查内容

如果有任何震级大于 7 的地震,你还会看到类似以下的调试消息

msg.payload : string(6)
"PANIC!"

你可以将开关值 7 改小一点来测试你的程序。更改后记得点击部署。***

摘要

此流程每 5 分钟自动触发一次,并从 URL 检索数据。它解析数据并显示在调试侧边栏中。它还检查数据中的震级值,并对震级大于或等于 7 的任何消息进行流程分支。这些消息的 payload 被修改并显示在调试侧边栏中。

来源

本教程中创建的流程由以下 JSON 表示。要将其导入编辑器,请将其复制到剪贴板,然后粘贴到导入对话框中。

[{"id":"e36406f2.8ef798","type":"inject","z":"f03b57d5.e525f8","name":"","topic":"","payload":"","payloadType":"str","repeat":"300","crontab":"","once":false,"x":130,"y":900,"wires":[["c3c50023.3bbed"]]},{"id":"c3c50023.3bbed","type":"http request","z":"f03b57d5.e525f8","name":"Recent Quakes","method":"GET","url":"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/significant_month.csv","tls":"","x":300,"y":900,"wires":[["8afc6cac.e0812"]]},{"id":"8afc6cac.e0812","type":"csv","z":"f03b57d5.e525f8","name":"","sep":",","hdrin":true,"hdrout":"","multi":"one","ret":"\\n","temp":"","x":470,"y":900,"wires":[["44779781.4190f8","6f0eb546.9e208c"]]},{"id":"44779781.4190f8","type":"debug","z":"f03b57d5.e525f8","name":"","active":true,"complete":false,"x":630,"y":900,"wires":[]},{"id":"6f0eb546.9e208c","type":"switch","z":"f03b57d5.e525f8","name":"","property":"payload.mag","propertyType":"msg","rules":[{"t":"gte","v":"7","vt":"num"}],"checkall":"true","outputs":1,"x":510,"y":960,"wires":[["d78d4aa8.8c8208"]]},{"id":"d78d4aa8.8c8208","type":"change","z":"f03b57d5.e525f8","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"PANIC!","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":1020,"wires":[["72fddece.fac0d"]]},{"id":"72fddece.fac0d","type":"debug","z":"f03b57d5.e525f8","name":"","active":true,"complete":false,"x":750,"y":960,"wires":[]}]