从 Tulip 向 Node-RED 发送消息

Prev Next

若要从 Tulip 发送消息(例如通过应用内触发器或自动化流程),可使用连接器。最简便的方法是在所有 Tulip 边缘设备上安装连接器主机。

使用 Tulip 边缘设备

将使用以下流程,从 Tulip 触发器向运行在 Tulip 边缘设备上的 Node-RED 发送消息:

Communicate with Machines using Edge MC's Connector Host & Node-RED_314676359.png

完成后,可在任何 Tulip 应用或自动化流程中使用新创建的连接器向 Node-RED 发送消息,例如设备命令或流程输入。

在 Tulip 中:配置连接器和连接器主机

注意:如果您不熟悉 Tulip 中的连接器主机和连接器函数,请参阅这篇文章。

  1. 在您的 Tulip 实例的**“连接器**”页面中创建一个新的连接器。
  2. 在弹出的模态窗口中,按以下说明填写信息:

名称:为连接器选择一个名称描述:为连接器主机选择一个描述连接器类型:选择HTTP

  1. 点击“保存”。
  2. 要指定连接器主机的详细信息,请点击左侧的**“生产、测试和开发**”按钮。在弹出的模态窗口中,输入以下信息:

运行于:选择目标边缘设备的连接器主机*注意:如果找不到边缘设备的连接器主机,请导航至该边缘设备的门户,并确保已启用“连接器主机”功能。*主机:输入 localhost 端口:输入 1880(这是 Node-RED 运行的端口)TLS:选择“否”无需添加头部信息或证书。

  1. 点击“测试”,验证连接是否成功。最后,点击“保存”。

现在,该连接器已能够与目标边缘设备上的 Node-RED 进行通信。


在 Node-RED 中:配置 HTTP IN 节点

This section assumes familiarity with Node-RED. Learn more here.

为了接收来自设备上连接器主机的消息,将使用一个 HTTP IN 节点。

  1. 点击并拖动,将左侧 Node-RED 编辑器调色板中的 HTTP IN 节点添加到流程中:

image.png

输入以下信息: **方法:**POST **URL:**任何用户自定义路径,例如 /nodeRED或/myMachine/0013。该路径将在 Node-RED 中被重复使用,因此应易于识别和记忆。下面的示例显示了配置为/test 的 URL:image.png

  1. 点击“完成”以保存更改。

如果未向服务器(本例中为 Tulip)返回响应,HTTP 请求将失败。1. 将一个HTTP 响应节点拖入流程。2. 将HTTP 请求节点连接到HTTP 响应节点。3. 双击HTTP 响应节点,将状态码输入为200。点击“完成”。

image.png

HTTP Responses and Advanced Feedback

Modify the Status Code and/or use the +add button in the HTTP Response node to modify or add to the Connector's response. These data (most often, system or device outputs generated by the Flow) will appear in the Connector's Response. Configure Connector Outputs with the guide here.

  1. 最后,从调色板中拖入一个**“调试”节点。通过“msg.”**下拉菜单将该节点配置为输出“完整的消息对象”:image.png

现在,此 Node-RED 流程将接收来自 Tulip 的消息,并将其显示在 Node-RED 调试日志中。

完成后的流程可能如下所示:image.png

点击右上角的**“部署**”以提交所有更改。

在 Tulip 中:配置和测试连接器函数

完成 Node-RED 流程配置后,返回 Tulip 中的连接器。1. 创建一个新的连接器函数。2. 将连接器函数的请求方法从 GET 改为 POST。3. 在 URL 中输入在 Node-RED 中配置的路径(本例中为/test)。4. (可选)若要向连接器添加内容(如消息或命令),请在连接器中添加一个输入。5. (可选)将输入添加到请求正文中:首先将内容类型更改为JSON,然后向根节点添加一个项。

下图所示的连接器已配置为连接上述指定的/test端点,并包含一个名为testValue 的输入:image.png

点击“运行”以测试连接器函数。成功时将出现以下两个指示:1. 连接器函数将收到200 OK响应,其中包含(如适用): 1. 配置到连接器的任何输入 2. 在 Node-RED 的HTTP 响应节点中配置的任何其他输出2. Node-RED 中的调试日志将显示连接器消息。 注意:根据 Node-RED 的当前版本,连接器请求正文可在以下任一位置找到: a.msg.payload,或 b.msg.req.body

以下展示了两种成功状态:

连接器成功:image.png

Node-RED 成功:image.png