Node-RED 0.10.1 现已可供下载或通过 npm 安装

请阅读升级说明,并且在获取最新代码后,不要忘记运行 npm update

新功能

子流

此版本的主要新功能之一是引入了子流。它们允许您将一组节点组合在一起,并将它们折叠成一个单一节点,然后该节点会出现在子流面板类别中。然后,您可以根据需要将任意数量的子流实例拖到工作区中。

Subflow editing

要开始使用,请选择创建子流菜单选项。

新的部署菜单

在某些情况下,仅仅为了添加一个新节点或调整一个现有节点而重新启动您的流程是不方便的。例如,如果您的流程包含 Twitter 输入节点,并且您在15分钟内过于频繁地重新部署,您可能会很快达到 Twitter API 的速率限制。如果您有一个节点正在捕获数据并将其存储在数据库中,重新部署会导致中断,可能会丢失一些数据。

此版本增加了一些新的部署选项,旨在帮助避免这些问题。现在有三种部署模式:

  • 完整部署 - 我们一直以来的模式,并且仍然是默认模式。
  • 修改的节点 - 只有包含更改的节点才会被停止和重新创建。如果添加/删除了任何新的连线,它们将被修补进去,而不会重新启动连线两端的节点(除非它们有其他实质性变化)。
  • 修改的流 - 与修改的节点在同一流程中的节点将被停止和重新创建。对流程连线的更改会导致整个流程被停止和重新创建。

为了展示这些选项,部署按钮旁边现在有一个下拉菜单,用于选择按下按钮时发生的部署类型。

New deploy menu

关于子流的一个补充说明,因为它们的处理方式略有不同。如果子流定义内部有任何变化,整个子流将被视为一个“已更改”的节点——换句话说,我们不会对正在运行的子流进行修补更改,我们总是会停止整个子流并重新创建它。

保护编辑器

在以前的版本中,可以通过在设置文件中硬编码用户名/密码来使用 HTTP 基本认证来保护编辑器。虽然这对于简单的本地 Node-RED 安装是可行的,但它从来不是一个真正好的解决方案。

此版本为保护编辑器带来了更好的框架。

我们已经从使用基本认证转向了基于访问令牌的系统。当用户登录时,我们用他们的用户名/密码交换一个访问令牌,然后该令牌可用于向 API 发出经过身份验证的请求。对于技术人员来说,我们实现了 OAuth 2.0 的资源所有者密码凭据授权(RFC 6749, 第 4.3 节)。

如果适合您,您仍然可以硬编码用户名/密码,但您也可以插入自己的代码来验证用户。

我们还添加了用户权限的概念;识别单个用户可以做什么和不能做什么。这使得为用户提供对编辑器的只读访问变得简单——这样他们可以查看流程,但不能部署任何更改。

有关如何配置和启用此功能的更多详细信息,请参见文档

其他编辑器更改

  • 节点状态选项现已默认启用。编辑器会记住您设置的状态(以及侧边栏是否打开)。
  • 面板类别的顺序可以在设置文件中自定义——例如,如果您想将一些自定义节点放在面板的顶部,这会很有用。

树莓派 GPIO 节点

树莓派 GPIO 节点有了一次重大更新。

它们现在基于内置的 RPi.GPIO python 库运行——只要该库版本为 0.5.8 或更新,它就会使用中断来检测输入,因此响应速度更快,并且比以前的轮询方法消耗更少的 CPU。

它们现在还支持所有输出的软件 PWM,因此可以实现 LED 的渐变和电机的速度控制。

这个 RPI.GPIO 库是所有近期 Raspbian 发行版的一部分,因此除非您很久没有升级,否则应该默认存在。如果您的安装损坏,您需要升级您的 Pi 以确保拥有必要的文件。

sudo apt-get update
sudo apt-get install python-dev python-rpi.gpio

然后您应该能够运行

<node-red install dir>/nodes/core/hardware/nrgpio ver 0

它应该返回 0.5.8(或更高版本)——这是 RPi.GPIO 库的版本。

最新说明在此

节点更新

  • Function 节点 - 报告运行时错误时会带上行号
  • MQTT - 接收二进制有效载荷
  • HTTP 请求 - 接收二进制有效载荷
  • IRC 节点 - 提高了连接可靠性
  • Debug 节点 - 您现在可以设置应该发送到调试的属性,而不是假设是 msg.payload
  • Mongo 节点 - 新增 skip 选项用于结果分页
  • Switch 节点 - 规则可以通过在列表中拖动来重新排序。
  • 树莓派鼠标节点 - 这允许 USB 连接的鼠标提供点击作为流程的输入。它支持2键或3键鼠标,并且专门为树莓派设计。

已弃用的节点

我们在过去几个版本中已弃用的节点已被移除。

支持的 Node 版本

目前,我们不支持在最新发布的 node v0.12上运行。我们将努力增加支持,但这将主要取决于我们使用的模块的维护者在缺少支持的地方添加支持。对于许多 node.js 应用程序来说,这种情况可能会持续一段时间。

添加对 v0.12 支持的一个后果是,在此版本之后,我们将放弃对 v0.8 的支持

树莓派 2

随着树莓派 2 的惊喜发布(好吧,对我们来说是惊喜),自然有很多人有兴趣在它上面运行 Node-RED。主要的障碍是在上面获得一个正确构建的 node.js 版本。这个页面有一个应该可以帮助安装的指南。

请注意,目前已知 GPIO 节点无法工作;它们正在等待底层库的更新,最终通过 apt-get upgrade 应该可以获取到。