Node-RED 2.1の新機能: ツアー機能

　日立製作所OSSソリューションセンタの横井一仁です。2021年も[Node-RED Con](https://nodered.jp/noderedcon2021/#speaker)、[OpenJS World](https://openjsf.org/openjs-world-2021/speakers/)などのカンファレンスで講演する機会を頂け、充実した1年でした。講演内容をNode-RED公式Twitterで紹介して頂けるという、嬉しい出来事もありました！(下の2つ目のツイートです)
<blockquote class="twitter-tweet">https://twitter.com/NodeRED/status/1451791296339787776</blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## ツアー機能
　さてNode-REDは、2021年12月現在でNode-RED v2.1.4が最新バージョンです。筆者が注目した機能の1つは、本記事でご紹介する「ツアー」機能です。この機能は、Node-REDのユーザーがNode-REDの新機能や操作を学びやすくするために、フローエディタ上で順次、操作説明をガイドしてくれる機能です。Node-RED v2.1.4から本機能が日本語化され、日本のユーザーが文章を読みやすくなりました。

## ツアー機能が作られた背景と課題
　Node-REDのフローエディタの見た目は、v0.11以降一貫性が保たれており、ほとんど変わっていません。そのため、Node-REDを使いこなしているユーザーでも、[公式サイトのリリースブログ](https://nodered.org/blog/2021/10/21/version-2-1-released)をよく確認しないと、新しいバージョンでどんな新機能が追加されたのか把握することは難しいという状況でした。

　また、今Node-REDを使いこなせている方は、最初にどうやってNode-REDの使い方を学んだでしょうか。おそらくハンズオンなどに参加したり、人から聞いたりして、injectノードとdebugノードから成る最もシンプルなフローを作成したと思います。パレットにある沢山のノード群からこれらを選び、フローを作成し、injectノードのボタンをクリックする...という操作を、一人で気づくことはできないでしょう。現在、コロナ禍で対面のやり取りはほとんどないため、初心者ユーザーは、自身でNode-REDの操作を習得する必要があるという状況でした。

これらの問題を解決できるのが、今回ご紹介するツアー機能です。

## ウェルカムガイドツアーによる解決
　最新のNode-REDではフローエディタを起動すると、以下の様に新機能を順次表示する画面が表示されます。これによって、新しいバージョンにどんな機能が追加されたか把握できるようになりました。

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/eb641f42-afe6-9541-42d2-061aaee656f4.gif)

ウェルカムツアーガイドでは、以下の機能が説明されています。

- 新しい編集メニュー
- ノードの配置
- タブの非表示
- タブメニュー
- フローとグループの環境変数
- Link Callノードを追加
- MQTTノードが動的接続をサポート
- ファイルノードの名前変更
- Changeノードのディープコピーオプション

ウェルカムツアーガイドを見て、これら機能を試してみようと思った方も多いのではと思います。

　このツアーガイドは、新しいバージョンのNode-REDのフローエディタを初めて開いた時に表示されます。もし、バージョンアップする度に表示されてしまうことが困る様な場合は、設定ファイルsettings.jsに以下の設定を追加します。

```
    editorTheme: {
        tours: false, // この行を追加
        palette: {
```

その他、環境変数`NODE_RED_ENABLE_TOURS`を`false`にすることでも、無効化できます。

　これによって、カスタマイズしたNode-RED環境や、リードオンリーでフローエディタを表示する際などで、ツアーガイドを表示したくないケースにも対応できます。


## チュートリアルによる解決
　ウェルカムツアーガイドは、最新のNode-REDのフローエディタを開けば表示されるため、誰もが気づく機能です。ツアー機能には、この初回起動時の新機能紹介以外も目的としています。それは、インタラクティブな「チュートリアル」です。チュートリアルは、エディタの操作手順を順にフローエディタ自身が説明して、ガイドしてくれる機能です。

　Node-RED v2.1.4には、injectノードとdebugノードのみから成るフローを作成するためのチュートリアルのみサンプルで取り込まれています。現在、本チュートリアルはフローエディタ上から実行することはできず、デベロッパーツール上で操作が必要です。Chromeの場合は、デベロッパーツールを開き、Console上で「RED.tourGuide.run("./tours/first-flow.js")」を実行します。

![devtool.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/56614912-fc9e-ceae-e0ce-40d7e37c397c.png)

　すると以下の様な「はじめてのフロー」を作成するチュートリアルが表示されます。ユーザーは手順通りにフローエディタを操作することで、シンプルなフローの作り方を学ぶことができます。

![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/7b84e7bc-9f95-9667-3b7e-8fef0b9807b0.gif)

チュートリアルの作り方の詳細については、今後ドキュメントが公開されていくことでしょう。

## 最後に
　Node-REDは、産業向けIoTや、DXを実現するローコード開発ツールの業界標準として、広く普及してきました。既に[Fortune Globalに掲載されているテック企業の半分以上](https://static.sched.com/hosted_files/ossalsjp20/41/OSSJ_NodeRED.pdf)、[Gartnerのレポートに掲載されている産業向けIoTのリーディングカンパニーの半数以上](http://www.mstc.or.jp/iaf/event/2021f/D3-1_IAFf2021_yokoi.pdf)がNode-REDを用いたビジネスを進めています。中でも日本市場では、[Node-RED User Group Enterprise](https://node-red.connpass.com/event/234084/)、[製造科学技術センター](https://ia-cloud.com/)、[My-IoTコンソーシアム](https://www.my-iot.jp/)、[Edgecross](https://www.edgecross.org/ja/dounyu_kentou/pdf/poc_manual.pdf)などの中立的な組織によって、Node-REDを用いた企業のエコシステムが形成されてきました。グローバルでは、[FlowForge社のサイト](https://flowforge.com/handbook/company/strategy/#node-red)(ページ一番下)でも宣言して頂いているように、Node-RED ConもUS、EU向けに準備が進んでいます。

来年もNode-REDコミュニティでどんな広がりが見えるか、楽しみです。

## Node-RED 2.1の新機能紹介

- [Node-RED 2.1の新機能: フローおよびグループに対する環境変数の定義](https://qiita.com/HiroyasuNishiyama/items/ca6a255760e40b247187)
- [Node-RED 2.1の新機能: HTTP Requestノードのログ機能強化](https://qiita.com/k-toumura/items/294aa189c59333e2dd18)
- Node-RED 2.1の新機能: ツアー機能 (本記事)

**商標について**

- Node-REDは、米国その他の諸国におけるOpenJS Foundationの登録商標です。
- Google Chromeは、米国その他の諸国におけるGoogle LLCの登録商標です。
- Edgecrossは、一般社団法人Edgecrossコンソーシアムの登録商標です。
- その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。