© Hitachi, Ltd. 2021. All rights reserved.
株式会社 日立製作所 OSSソリューションセンタ
2021/8/10
横井 一仁
Node-RED v2.0新機能紹介
1
© Hitachi, Ltd. 2021. All rights reserved.
名前: 横井 一仁 (よこい かずひと)
所属: GitHub上のNode-RED開発チーム、
Node-RED User Group Japan運営、
日立製作所 OSSソリューションセンタ
実績: Node-RED貢献量 世界4位、
Node-REDのサブプロジェクトのメンテナ、
グローバルカンファレンス登壇
自己紹介
4年8ヶ月
Node-RED開発の歴史の
半分に関われました
https://github.com/node-red/node-red/graphs/contributors GitHubでのコミット状況
2
© Hitachi, Ltd. 2021. All rights reserved.
Node-REDとは
IoTおよびWebアプリケーション向けのローコードプログラミングツール
• ブラウザベースの開発環境
• 3000個を超える追加モジュール
• 産業用IoTプロトコル
• データの視覚化
• 画像認識 など
• チップからクラウドまでリアルタイム
につなげたシステムを構築可能
• OpenJS Foundation管理下のOSS エッジ
デバイス
ローカル
PC
クラウド
Node-REDのフローエディタの画面
© Hitachi, Ltd. 2021. All rights reserved.
1. Node-RED開発の歴史
2. Node-RED v2.0の新機能
3. 今後のリリース計画
コンテンツ
3
4
© Hitachi, Ltd. 2021. All rights reserved.
1. Node-RED開発の歴史
5
© Hitachi, Ltd. 2021. All rights reserved.
• Node-REDは、8年間で120回以上のバージョンアップを経て、v2.0に到達
• ダウンロード数は順調に伸び、2021年には10万ダウンロード/月超
Node-REDのリリースとダウンロード数
Node-REDのダウンロード数
0
2
4
6
8
10
12
2015年 2016年 2017年 2018年 2019年 2020年 2021年
万ダウンロード/月
v0.16リリース、
エディタの日本語化
(2017/1)
v0.12リリース、
Raspberry Pi OS搭載
(2015/11) Node-RED Con
初開催
(2019/7)
v1.0リリース
(2019/9)
v2.0リリース
(2021/7)
Node-RED Con
オンライン開催
(2020/10)
v0.1リリース
(2013/9)
v0.18リリース、
Git連携機能
(2018/1)
https://npm-stat.com/charts.html?package=node-
red&from=2015-03-01&until=2021-07-31
6
© Hitachi, Ltd. 2021. All rights reserved.
初期のノードは見た目が現在と異なっていたが、フローフォーマットや操作感、
開発できるフローは現在とほぼ同じであり完成度が高い。
• v0.1 最初のリリース
• v0.7 ヘッドレスモード
• v0.8 タッチUI、
ノードインストール機能
• v0.10 サブフロー対応、
catchノード追加
2013年 初期のフローエディタ (Node-RED v0.1~0.10)
初期のフローエディタ
7
© Hitachi, Ltd. 2021. All rights reserved.
フローエディタがより見やすく、一貫性のあるデザインに変更された。
• v0.11 ノードの見た目変更
• v0.12 設定ノード対応、
statusノード追加
• v0.13 プロパティ設定UIの
デザイン変更
• v0.14 Linkノード追加、
split/joinノード追加
2015年 デザインが変更されたフローエディタ (Node-RED v0.11~)
デザインが変更された
フローエディタ
8
© Hitachi, Ltd. 2021. All rights reserved.
フローエディタが日本語化され、日本のユーザーが使いやすくなった。
• v0.16 エディタの日本語化、
フローのdiff表示、
JSONata対応
• v0.17 ポートラベル機能
• v0.18 Git連携機能、
ノードアイコン変更機能、
sort/batchノード追加
2017年 日本語化されたフローエディタ (Node-RED v0.16~)
日本語化されたフローエディタ
9
© Hitachi, Ltd. 2021. All rights reserved.
品質が高くなり、仕様も安定したため、正式版のv1.0がリリースされた。
• v1.0 サブフローのプロパティUI、
ビジュアルJSONエディタ
• v1.1 グループ化機能
• v1.2 ブラガブルメッセージルーティング
• v1.3 プラグインフレームワーク、
外部npmモジュール
インストール機能
2019年 Node-RED v1.0正式版リリース
https://twitter.com/NodeRED/status/1178655249130758144
10
© Hitachi, Ltd. 2021. All rights reserved.
2. Node-RED v2.0の新機能
11
© Hitachi, Ltd. 2021. All rights reserved.
主に、フロー開発に役立つ便利機能が拡充されたメジャーリリース
7月20日にNode-RED v2.0がリリースされました
[ 主な新機能 ]
• Visual Studio Codeと同じ、Monacoテキストエディタ
• functionノードの外部モジュールインストール機能のデフォルト化
• フローデバッガ
• フローリンター
• 設定ファイルsettings.jsを
生成するウィザード
• delayノードの流量制御機能の拡張
Node-RED v2.0リリースのアナウンス
https://nodered.org/blog/2021/07/20/version-2-0-released
12
© Hitachi, Ltd. 2021. All rights reserved.
Visual Studio Codeと同じ、Monacoテキストエディタ
主にfunctionノードで使われるエディタUIで、Monacoが利用できる様になった。
• VS Codeと同じ操作感
• 構文サポート
• 豊富なヒント
Monacoテキストエディタを有効にしたプロパティ設定UI
入力可能な
変数名を表示
JSONの構造
エラーを表示
13
© Hitachi, Ltd. 2021. All rights reserved.
• functionノードのプロパティUI上で外部npmモジュールをインストールできる機能
• Node-RED v1.3から存在する本機能がv2.0でデフォルトで有効に
functionノードの外部モジュールインストール機能のデフォルト化
(1) npmモジュール名
を入力すると
自動でインストール
(2) コードから
呼び出し可能
14
© Hitachi, Ltd. 2021. All rights reserved.
ノードの端子にブレイクポイントを設定し、メッセージを一時停止し、
内容確認やステップ実行ができるプラグイン
フローデバッガ
debugノードを追加して
メッセージの内容を確認
 全てのワイヤーへ
debugノードを挿入
 フローを変更せず
ブレイクポイントのみを設定
 ステップ実行で
メッセージの仕様を確認
 メッセージが一度に
出力され確認困難
従来の問題 フローデバッガを用いた解決
15
© Hitachi, Ltd. 2021. All rights reserved.
フローの静的解析を行い、バグにつながるフローや
分かりづらいフローを検出するためのプラグイン
フローリンター
http inとhttp responseノード
が接続されていない
名前がない
ノード
重なっているノード
名前がないノード
エラーが検出されるフロー例 警告をサイドバーに出力
16
© Hitachi, Ltd. 2021. All rights reserved.
コマンドラインで実行できる
フローリンター
• フローファイルと、ルールの
定義ファイルを引数として
実行すると警告の一覧を出力
• GitHub Actionsなどの
デプロイメントパイプラインに
組み込むことが可能
コマンドライン版フローリンター
>_
(1) フローファイルを指定して
nrlintコマンドを実行
(2) 警告の一覧
を出力
フロー
ファイル
17
© Hitachi, Ltd. 2021. All rights reserved.
設定ファイルsettings.jsを生成するウィザード
Node-REDの設定方法の質問に答えてゆくだけで
設定ファイルsettings.jsを自動生成できる機能
[ 設定可能な項目 ]
• フローエディタのログイン認証有効化、
ユーザー名とパスワードの設定
• Git連携機能の有効化
• フローエディタのテーマ設定
• テキストエディタをmonacoへ変更
• functionノードの外部モジュール
インストール機能の無効化
従来はテキスト
エディタで編集
ウィザードで
設定可能に
従来
設定ウィザード
18
© Hitachi, Ltd. 2021. All rights reserved.
delayノードの流量制御機能の拡張
delayノードの流量制御機能に対して拡張が行われた。
• 流量値を設定したメッセージをdelayノードに渡して、動的に流量を変更
• 流量を超えた際は、捨てられたメッセージをcatchノードで取得
大量のアクセス
Node-RED
V2.0.0~
~Node-RED
V1.3.5
大量のアクセス
クラッシュ回避のため
ドロップしたメッセージをキャッチ
msg.rateで
動的に流量変更
19
© Hitachi, Ltd. 2021. All rights reserved.
その他の変更点
(2) 本ボタンから
メッセージを送信
• injectノードのプロパティ設定UIからメッセージを送信できる「inject実行」ボタン
• rbeノードがfilterノードという名前に変更
• tailノードが標準ノードから削除
injectノードのプロパティ設定UI
(1) メッセージを編集
20
© Hitachi, Ltd. 2021. All rights reserved.
3. 今後のリリース計画
21
© Hitachi, Ltd. 2021. All rights reserved.
Node-REDのリリース計画
• 2021年5月: Node-RED v1.3.5 リリース
• 2021年7月: Node-RED v2.0 リリース
• 2021年10月末: Node-RED v2.1 リリース予定
Node-REDのリリース計画
https://nodered.org/blog/2020/07/01/release-plans
現在
22
© Hitachi, Ltd. 2021. All rights reserved.
• Node-REDの最新機能を使いこなしたい方は、
Node-RED v2.0にアップデートしましょう。
• Node-RED v1.3.xは、今後も1年間メンテナンスが行われるため、
既に製品やサービスで採用している場合は、継続利用もできます。
まとめ
23
© Hitachi, Ltd. 2021. All rights reserved.
GitHubのWatch機能を用いることで、最新リリースの情報をメール受信可能
最新リリースの通知を受信するには
Releasesのみに
チェックを入れる
新しいバージョンが
リリースされると
メールが届く
メール受信したリリース情報
GitHub上のリポジトリ
https://github.com/node-red/node-red
© Hitachi, Ltd. 2021. All rights reserved. 24
END
Node-RED v2.0新機能紹介
2021/8/10
日立製作所 OSSソリューションセンタ
横井 一仁
25
© Hitachi, Ltd. 2021. All rights reserved.
• Node-REDは、米国その他の諸国における
OpenJS Foundationの登録商標です。
• Raspberry Pi is a trademark of the Raspberry Pi Foundation.
• GitHubは、米国その他の諸国におけるGitHub, Inc.の登録商標です。
• Visual Studio Codeは、米国その他の諸国における
Microsoft Corporationの登録商標です。
• その他記載の会社名、製品名などは、
それぞれの会社の商標もしくは登録商標です。
他社商品名、商標などの引用に関する表示

Node-RED v2.0新機能紹介

  • 1.
    © Hitachi, Ltd.2021. All rights reserved. 株式会社 日立製作所 OSSソリューションセンタ 2021/8/10 横井 一仁 Node-RED v2.0新機能紹介
  • 2.
    1 © Hitachi, Ltd.2021. All rights reserved. 名前: 横井 一仁 (よこい かずひと) 所属: GitHub上のNode-RED開発チーム、 Node-RED User Group Japan運営、 日立製作所 OSSソリューションセンタ 実績: Node-RED貢献量 世界4位、 Node-REDのサブプロジェクトのメンテナ、 グローバルカンファレンス登壇 自己紹介 4年8ヶ月 Node-RED開発の歴史の 半分に関われました https://github.com/node-red/node-red/graphs/contributors GitHubでのコミット状況
  • 3.
    2 © Hitachi, Ltd.2021. All rights reserved. Node-REDとは IoTおよびWebアプリケーション向けのローコードプログラミングツール • ブラウザベースの開発環境 • 3000個を超える追加モジュール • 産業用IoTプロトコル • データの視覚化 • 画像認識 など • チップからクラウドまでリアルタイム につなげたシステムを構築可能 • OpenJS Foundation管理下のOSS エッジ デバイス ローカル PC クラウド Node-REDのフローエディタの画面
  • 4.
    © Hitachi, Ltd.2021. All rights reserved. 1. Node-RED開発の歴史 2. Node-RED v2.0の新機能 3. 今後のリリース計画 コンテンツ 3
  • 5.
    4 © Hitachi, Ltd.2021. All rights reserved. 1. Node-RED開発の歴史
  • 6.
    5 © Hitachi, Ltd.2021. All rights reserved. • Node-REDは、8年間で120回以上のバージョンアップを経て、v2.0に到達 • ダウンロード数は順調に伸び、2021年には10万ダウンロード/月超 Node-REDのリリースとダウンロード数 Node-REDのダウンロード数 0 2 4 6 8 10 12 2015年 2016年 2017年 2018年 2019年 2020年 2021年 万ダウンロード/月 v0.16リリース、 エディタの日本語化 (2017/1) v0.12リリース、 Raspberry Pi OS搭載 (2015/11) Node-RED Con 初開催 (2019/7) v1.0リリース (2019/9) v2.0リリース (2021/7) Node-RED Con オンライン開催 (2020/10) v0.1リリース (2013/9) v0.18リリース、 Git連携機能 (2018/1) https://npm-stat.com/charts.html?package=node- red&from=2015-03-01&until=2021-07-31
  • 7.
    6 © Hitachi, Ltd.2021. All rights reserved. 初期のノードは見た目が現在と異なっていたが、フローフォーマットや操作感、 開発できるフローは現在とほぼ同じであり完成度が高い。 • v0.1 最初のリリース • v0.7 ヘッドレスモード • v0.8 タッチUI、 ノードインストール機能 • v0.10 サブフロー対応、 catchノード追加 2013年 初期のフローエディタ (Node-RED v0.1~0.10) 初期のフローエディタ
  • 8.
    7 © Hitachi, Ltd.2021. All rights reserved. フローエディタがより見やすく、一貫性のあるデザインに変更された。 • v0.11 ノードの見た目変更 • v0.12 設定ノード対応、 statusノード追加 • v0.13 プロパティ設定UIの デザイン変更 • v0.14 Linkノード追加、 split/joinノード追加 2015年 デザインが変更されたフローエディタ (Node-RED v0.11~) デザインが変更された フローエディタ
  • 9.
    8 © Hitachi, Ltd.2021. All rights reserved. フローエディタが日本語化され、日本のユーザーが使いやすくなった。 • v0.16 エディタの日本語化、 フローのdiff表示、 JSONata対応 • v0.17 ポートラベル機能 • v0.18 Git連携機能、 ノードアイコン変更機能、 sort/batchノード追加 2017年 日本語化されたフローエディタ (Node-RED v0.16~) 日本語化されたフローエディタ
  • 10.
    9 © Hitachi, Ltd.2021. All rights reserved. 品質が高くなり、仕様も安定したため、正式版のv1.0がリリースされた。 • v1.0 サブフローのプロパティUI、 ビジュアルJSONエディタ • v1.1 グループ化機能 • v1.2 ブラガブルメッセージルーティング • v1.3 プラグインフレームワーク、 外部npmモジュール インストール機能 2019年 Node-RED v1.0正式版リリース https://twitter.com/NodeRED/status/1178655249130758144
  • 11.
    10 © Hitachi, Ltd.2021. All rights reserved. 2. Node-RED v2.0の新機能
  • 12.
    11 © Hitachi, Ltd.2021. All rights reserved. 主に、フロー開発に役立つ便利機能が拡充されたメジャーリリース 7月20日にNode-RED v2.0がリリースされました [ 主な新機能 ] • Visual Studio Codeと同じ、Monacoテキストエディタ • functionノードの外部モジュールインストール機能のデフォルト化 • フローデバッガ • フローリンター • 設定ファイルsettings.jsを 生成するウィザード • delayノードの流量制御機能の拡張 Node-RED v2.0リリースのアナウンス https://nodered.org/blog/2021/07/20/version-2-0-released
  • 13.
    12 © Hitachi, Ltd.2021. All rights reserved. Visual Studio Codeと同じ、Monacoテキストエディタ 主にfunctionノードで使われるエディタUIで、Monacoが利用できる様になった。 • VS Codeと同じ操作感 • 構文サポート • 豊富なヒント Monacoテキストエディタを有効にしたプロパティ設定UI 入力可能な 変数名を表示 JSONの構造 エラーを表示
  • 14.
    13 © Hitachi, Ltd.2021. All rights reserved. • functionノードのプロパティUI上で外部npmモジュールをインストールできる機能 • Node-RED v1.3から存在する本機能がv2.0でデフォルトで有効に functionノードの外部モジュールインストール機能のデフォルト化 (1) npmモジュール名 を入力すると 自動でインストール (2) コードから 呼び出し可能
  • 15.
    14 © Hitachi, Ltd.2021. All rights reserved. ノードの端子にブレイクポイントを設定し、メッセージを一時停止し、 内容確認やステップ実行ができるプラグイン フローデバッガ debugノードを追加して メッセージの内容を確認  全てのワイヤーへ debugノードを挿入  フローを変更せず ブレイクポイントのみを設定  ステップ実行で メッセージの仕様を確認  メッセージが一度に 出力され確認困難 従来の問題 フローデバッガを用いた解決
  • 16.
    15 © Hitachi, Ltd.2021. All rights reserved. フローの静的解析を行い、バグにつながるフローや 分かりづらいフローを検出するためのプラグイン フローリンター http inとhttp responseノード が接続されていない 名前がない ノード 重なっているノード 名前がないノード エラーが検出されるフロー例 警告をサイドバーに出力
  • 17.
    16 © Hitachi, Ltd.2021. All rights reserved. コマンドラインで実行できる フローリンター • フローファイルと、ルールの 定義ファイルを引数として 実行すると警告の一覧を出力 • GitHub Actionsなどの デプロイメントパイプラインに 組み込むことが可能 コマンドライン版フローリンター >_ (1) フローファイルを指定して nrlintコマンドを実行 (2) 警告の一覧 を出力 フロー ファイル
  • 18.
    17 © Hitachi, Ltd.2021. All rights reserved. 設定ファイルsettings.jsを生成するウィザード Node-REDの設定方法の質問に答えてゆくだけで 設定ファイルsettings.jsを自動生成できる機能 [ 設定可能な項目 ] • フローエディタのログイン認証有効化、 ユーザー名とパスワードの設定 • Git連携機能の有効化 • フローエディタのテーマ設定 • テキストエディタをmonacoへ変更 • functionノードの外部モジュール インストール機能の無効化 従来はテキスト エディタで編集 ウィザードで 設定可能に 従来 設定ウィザード
  • 19.
    18 © Hitachi, Ltd.2021. All rights reserved. delayノードの流量制御機能の拡張 delayノードの流量制御機能に対して拡張が行われた。 • 流量値を設定したメッセージをdelayノードに渡して、動的に流量を変更 • 流量を超えた際は、捨てられたメッセージをcatchノードで取得 大量のアクセス Node-RED V2.0.0~ ~Node-RED V1.3.5 大量のアクセス クラッシュ回避のため ドロップしたメッセージをキャッチ msg.rateで 動的に流量変更
  • 20.
    19 © Hitachi, Ltd.2021. All rights reserved. その他の変更点 (2) 本ボタンから メッセージを送信 • injectノードのプロパティ設定UIからメッセージを送信できる「inject実行」ボタン • rbeノードがfilterノードという名前に変更 • tailノードが標準ノードから削除 injectノードのプロパティ設定UI (1) メッセージを編集
  • 21.
    20 © Hitachi, Ltd.2021. All rights reserved. 3. 今後のリリース計画
  • 22.
    21 © Hitachi, Ltd.2021. All rights reserved. Node-REDのリリース計画 • 2021年5月: Node-RED v1.3.5 リリース • 2021年7月: Node-RED v2.0 リリース • 2021年10月末: Node-RED v2.1 リリース予定 Node-REDのリリース計画 https://nodered.org/blog/2020/07/01/release-plans 現在
  • 23.
    22 © Hitachi, Ltd.2021. All rights reserved. • Node-REDの最新機能を使いこなしたい方は、 Node-RED v2.0にアップデートしましょう。 • Node-RED v1.3.xは、今後も1年間メンテナンスが行われるため、 既に製品やサービスで採用している場合は、継続利用もできます。 まとめ
  • 24.
    23 © Hitachi, Ltd.2021. All rights reserved. GitHubのWatch機能を用いることで、最新リリースの情報をメール受信可能 最新リリースの通知を受信するには Releasesのみに チェックを入れる 新しいバージョンが リリースされると メールが届く メール受信したリリース情報 GitHub上のリポジトリ https://github.com/node-red/node-red
  • 25.
    © Hitachi, Ltd.2021. All rights reserved. 24 END Node-RED v2.0新機能紹介 2021/8/10 日立製作所 OSSソリューションセンタ 横井 一仁
  • 26.
    25 © Hitachi, Ltd.2021. All rights reserved. • Node-REDは、米国その他の諸国における OpenJS Foundationの登録商標です。 • Raspberry Pi is a trademark of the Raspberry Pi Foundation. • GitHubは、米国その他の諸国におけるGitHub, Inc.の登録商標です。 • Visual Studio Codeは、米国その他の諸国における Microsoft Corporationの登録商標です。 • その他記載の会社名、製品名などは、 それぞれの会社の商標もしくは登録商標です。 他社商品名、商標などの引用に関する表示