ノーコードを知る
Node-REDの評判・口コミは?利用方法や導入のメリット・デメリット!
カテゴリー1
2021-05-17

Node-REDは、 IoT向けのビジュアルなフロー記述言語 です。最近よく聞くIoTとは、Internet of Thingsの略。インターネットに接続されたさまざまな「もの」が、互いに情報を交換することで創出される新たな価値のことです。

Node-REDは、APIやオンラインサービスなどを相互接続するために生み出された「ノーコード」ツールです。このノーコードの出現によって、プログラミング言語の知識がない人でも、アプリ開発などのIT分野で活躍出来る可能性が出てきました。

中でもNode-REDは、現在オープンソースとなっていることから、たくさんのユーザーがいます。

そこでこの記事では、Node-REDユーザーの評判や口コミをご紹介します。利用方法やメリット・デメリットについても解説しますので、Node-REDに関する理解が深まります。Node-REDに興味のある方はぜひ最後までお読みください。

Node-REDとは?

Node-REDとはハードウェアデバイス、APIおよびオンラインサービスを相互接続するために開発されたツールです。 プログラミング言語を使わないフローベースドプログラミング手法で、多種多様なノードを結合させてフローを作成 します。

フローベースドプログラミングとは、言語ではなく視覚的な表現でプログラムを実現していく手法です。

最近は小学校からプログラミングを習いますが、子供向けの教材に使われる「Scratch」に似ています。

もともとはIBMが開発していましたが、現在はオープンソースとして公開されているツールです。

Node-REDを使うとできることは?

Node-REDを使うとどんなことができるのでしょうか。

ここでは、Node-REDを使ってできる基本的なことをご紹介します。


  • エラー検知/状態変更検知
  • 条件分岐
  • http通信
  • データの加工
  • ファイル
  • コマンド
  • メール
  • twitter
  • ループ
  • 同時並行アクセス
  • サブフロー化


Node-REDは、Node.jsで作られたフローベースの開発ツールです。フローを簡単に接続できるブラウザベースエディタを利用して、ノードと呼ばれるものを配置、結線していきます。

プログラミング言語を使わないNode-REDなら、初心者でもこのようなプログラムを製作できます。

Node-REDを導入するメリット

Node-REDを導入すると、以下の3つのメリットがあります。


  • 多機能なノード
  • ブラウザでのフロー編集が可能
  • Mac・Windows・Linux・ラズパイなど様々な環境で動作する


詳しく解説します。

多機能なノード

一つ目のメリットは、Node-REDは多機能なノードをはじめから備えていることです。

Node-REDには、各種通信が簡単に行えるHTTP・TCP・UDP・WEBソケット・MQTT・Twitterなどの 多機能で使いやすいノードが標準装備 されています。

さらに通信やデバイス制御、DBアクセス、SNS、BOTなどのノードが数多くコントリビュートされています。なかでもDashboardというライブラリは、Web画面を簡単に作成でき、デプロイなしにデータの出入力ができるのでおすすめです。このDashboardを使えば、テスト用のドライバ・スタブ・モックなどの、いわゆるテストダブルの開発が簡単にできます。

ブラウザでのフロー編集が可能

Node-REDの2つ目のメリットは、 ブラウザでのフロー編集が容易にできる ことです。

ブラウザベースのエディタにより、パレットに並ぶ多種多様なノードを結びつけて、容易にフローを作成できます。さらに、シングルクリックで実行環境に簡単にデプロイできます。

このデプロイは、コンパイルやビルドが不要で、一瞬で実行できるのが特徴です。

リッチテキストエディタでは、Javascriptプログラミングが行えるノードでプログラムを作成することも可能です。

作成したフローやテンプレートは、エディタに組込まれたライブラリへ保存することで再利用できます。

Mac・Windows・Linux・ラズパイなど様々な環境で動作する

3つ目のメリットは、Node-REDはMac・Windows・Linux・ラズパイなど、さまざまな環境で動作できる点です。

Node-REDは、Node.js上に構築されています。そのためイベント駆動型・ノンブロッキングモデルを活用でき、ラズパイのような 低コストのハードウェアでも動作します。 それだけではなく、クラウド上での実行も問題なく行えて理想的です。

また、多種多様のNode.jsモジュールを利用し、Node-REDの新しい機能を拡張・追加できる点もメリットのひとつです。

Node-REDを導入するデメリット

次は、Node-REDを導入した場合に考えられるデメリットについてお伝えします。

主なデメリットは、以下の2つです。


  • 単体テストができない
  • 大規模な設計には向いていない


それぞれみていきましょう。

単体テストができない

Node-REDを導入した場合、 アプリの開発段階で欠かせない単体テストができない 点がデメリットです。

単体テストでは、仕様書通りにアプリが動作し、データベースのデータが間違いなく登録されているかをテストします。

Node-REDを導入した場合、カスタムノードにユニットテストを組み込むことは可能ですが、フローの一部をテストする標準的な方法がないのが実情です。そのため、フロー全体をブラックボックステストする必要が出てきます。

また、Node-REDではコード検索ができないため、バグを見つけにくいのもデメリットです。

大規模なシステム構築には向いていない

Node-REDは、 大規模なシステム構築には向いていないところもデメリットの一つ です。

多機能のシステムを少ない工程で作れてしまうため、気づかないうちに複雑になり、混乱することがあります。小規模なシステムであれば、使いやすさを優先しても問題ないのですが、規模が大きくなると解析が難しくなってしまいます。

大規模になる場合は、従来のソフトウェア開発と同じような設計をする必要があるかもしれません。msgオブジェクトや永続化対象のデータ構造、ソフトウェアアーキテクチャなどの従来の設計方式も残した方が安心でしょう。

また、コード全体の検索ができないため、複雑なシステムは保守しにくくなるという課題もみえてきました。

Node-REDのインストール方法

ここでは、Node-REDのインストール方法を説明します。

まずNode.js をインストールした後、Node-RED本体のインストールを行います。

Windows

Windows 10 へのインストール方法は、以下の通りです。


Node.js LTS 8.x のインストール

  1. インストーラをダウンロード 「nodejs.org node-v8.11.3-x64.msi」
  2. インストーラを実行 「node-v8.11.3-x64.msi」
  3. バージョン出力でNode.jsの動作確認 「node -v」


Node-RED本体のインストール

  1. Administratorとしてコマンドプロンプトを起動
  2. インストーラを実行 「npm install -g --unsafe-perm node-red」
  3. コマンドプロンプトを終了


Node-REDの起動

  1. 一般ユーザーで、コマンドプロンプトを起動
  2. Node-REDを起動(Webサーバーが起動)
  3. Webブラウザで次のどちらかのURLを入力

   「http://localhost:1880/」

   「http://127.0.0.1:1880/」


ブラウザ上にNode-REDのエディタ画面が表示されます。このエディタ画面でフローの作成・編集・デプロイを行い、コマンドプロンプトを閉じると終了します。

ラズベリーパイ

ラズベリーパイへのインストール方法は以下の通りです。

(Raspbianを利用している場合、最低でもRaspbian Stretch以降のバージョンが必要。 Raspbian Busterは現在サポート中)


Node.js、npmおよび Node-REDをラズベリーパイにインストールするにはスクリプトが必要 です。このスクリプトは新しいリリースを入手した場合、 インストール済のアプリをアップグレードすることも可能です。


以下のコマンドを入力し、スクリプトをダウンロード・実行します。 スクリプトの中身をこちらで確認できます。

 
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)


このスクリプトはUbuntuやDiet-Piを含むDebianベースのオペレーティングシステムで有効です。 npmがインストールする必要のあるバイナリコンポーネントをビルドできることを保証するため、sudo apt install build-essential gitを実行する必要があるかもしれません。


このスクリプトは以下のことを実行します。


  • パッケージされているバージョンのNode-REDおよびNode.jsがあれば除去する
  • NodeSourceを利用して現行のNode.js LTSリリースをインストール
  • Node.jsが既にNodeSourceからインストールされていると認識され、それがNode 8以上と判断された場合、そのままにする
  • npmを利用して最新版のNode-REDをインストール
  • 有用なラズベリーパイ固有ノードのコレクションを、追加インストール
  • Node-REDを実行するように設定し、動作するためのコマンド一覧を提供

【初心者向け】Node-REDの使い方を簡単に説明!


Node-REDは「プログラミング言語って何?」というような初心者の方でも、アプリ開発ができるツールです。しかし、いきなり複雑な仕様を作ろうとするのは無謀です。まずは使い方から一つずつマスターしていきましょう

ここでは、初めてフローに触れる初心者に向けて、簡単に使い方を解説します。

エディタ紹介と Inject・Debug・Functionノードを使ったフローの作成

①エディタにアクセスする

Node-REDを起動し、ウェブブラウザでエディタを開く

Node-REDを実行中、同じコンピュータでブラウザを使っているならば、 以下のURLでアクセス可能: http://localhost:1880

他のコンピュータを使っている場合、 Node-REDを実行しているコンピュータのIPアドレスを使用する: http://<ip-address>:1880.

② Injectノードの追加

Injectノードはノード上のボタンをクリック、またはInject間隔を設定することにより、 フローにメッセージを流せる

パレットからワークスペース上にInjectノードをドラッグ

新規に追加したInjectノードを選択して情報サイドバーペインで そのプロパティ情報および何ができるかを確認

③Debugノードの追加

Debugノードはサイドバーのデバッグタブにメッセージを表示させるノードである

デフォルトではmsg.payloadを表示し、 設定次第ではmsg(メッセージオブジェクト全体)を表示させることも可能


④2つのノードをワイヤーでつなぐ

Inject/Debugノード双方のポートをドラッグし、 ワイヤーでつないで2つのノードを接続

⑤デプロイ

この時点ではノードやフローはエディタ上にしか存在しないので、 サーバにデプロイする

デプロイボタンをクリックするとサーバにデプロイできる

サイドバーのデバッグタブを選択した状態でInjectボタンをクリックするとデバッグタブに数字が表示される

デフォルトでは、Injectノードは1970年1月1日からのミリ秒数(タイムスタンプ)をペイロードとして利用する。ここでFunctionノードを追加してみる

⑥Functionノードの追加

Functionノードは実際にJavaScriptを書ける

今存在しているノードを一度削除(ワイヤを選択し、キーボードのDeleteキーを押す)

InjectノードとDebugノードの間にFunctionノードを配置する

配置したFunctionノードをダブルクリックすると設定ダイアログが開く

Functionノードのフィールドに次のコードをコピーして貼り付ける

 
// ペイロードから日付オブジェクトを生成
var date = new Date(msg.payload);
// 日付文字列に変換して再度ペイロードをセット
msg.payload = date.toString();
// 次のノードへmsgオブジェクトを返す
return msg;


完了ボタンをクリックして設定ダイアログを閉じる

デプロイボタンをクリックしてデプロイする

Injectボタンをクリックすると、サイドバーのデバッグタブに書式化されたタイムスタンプが表示される

作り方のまとめ

このフローは、フロー作成の基本的なコンセプトを説明しています。 

  • どのようにInjectノードを手動でフローを始動させるために使うのか
  • どのようにDebugノードがサイドバーに表示するのか
  • どのようにFunctionノードをメッセージに対して動作させるのか、また、カスタムJavaScriptコードを書くために使うのか

ソース

このチュートリアルで作成したフローは以下のJSONで示されます。 これをエディタにインポートするため、クリップボードにコピーし、読み込みダイアログにペーストします。

 
[{"id":"58ffae9d.a7005","type":"debug","name":"","active":true,"complete":false,"x":640,"y":200,"wires":[]},{"id":"17626462.e89d9c","type":"inject","name":"","topic":"","payload":"","repeat":"","once":false,"x":240,"y":200,"wires":[["2921667d.d6de9a"]]},{"id":"2921667d.d6de9a","type":"function","name":"Format timestamp","func":"// Create a Date object from the payload\nvar date = new Date(msg.payload);\n// Change the payload to be a formatted Date string\nmsg.payload = date.toString();\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"x":440,"y":200,"wires":[["58ffae9d.a7005"]]}]


出展: Node-RED User Group Japan


Node-REDの利用にかかる料金は?


ここまででNode-REDの機能面の解説中心にお伝えしてきました。ここでは、Node-REDのコストについてご説明します。


最初にお伝えした通り、Node-REDは現在オープンソースです。オープンソースとは、OSS(オープンソースソフトウェア)の略語で、 作成者がソースコードを無償で提供するサービス のことです。

オープンソースでは、ソースコードの改変や再配布が認められているため、急速に世の中に広まっていきます。そのなかでユーザーが利用しながらソースコードの中にバグを発見したり、不具合を修正したりといったサイクルが生まれます。このようなユーザーによる改変の積み重ねにより、ソフトウェアの安定性が高くなります。これが結果的に、低コストで高品質な開発が行われる仕組みです。


Node-REDは現在このオープンソースにより、シェアを高めています。無料で利用できるので、自分のスキルを伸ばせるチャンスと思って、ぜひチャレンジしてください。


Node-REDの評判・口コミは?

Node-REDを実際に使ってみたというユーザーの評判・口コミをご紹介します。

調査の結果、良い評判・口コミが多数見受けられました

特に多かったのは、以下のような口コミです。


  • フローを使って簡単に アプリ開発ができる
  • Node.jsの知識がなくても運用できる
  • GUIでプログラムの動きを定義できるようになったため、エンジニアでなくともプログラミングが可能になった
  • ノンプログラミング言語の一つで、IoTとの相性がとても良い
  • Webアプリやデータベースアクセスなどの機能が部品化されていて、簡単なWebサービスを開発することも可能


Node-REDのフローを使えば、 プログラミング言語の知識がなくてもアプリ開発が簡単にできる という口コミが多くみられました。IoTとの相性が良いという意見も多く、おおむね好評価のようです。


実際の口コミ

単一処理を行うプログラム「ノード」をビジュアルエディタで接続してフローを作成することで色々な処理を行うことができるツール。フローの入り口に「メールを受信する」「httpでアクセスされる」「特定の時間になったら」などを設置して処理のトリガとすることができ、受信したデータをフロー中で解析、分岐、ループなど処理して出口に「slackに通知する」「クラウドAPIに連携してメッセージを送信する」などのアウトプットを行うことができる。非常に簡単に APIを作成することができ、Node.jsの知識がなくても運用できる。

https://www.itreview.jp/products/node-red/reviews

フローを使って簡単にアプリケーションが開発できる事はもちろん、様々なプロトコルのノードを自作することも比較的簡単にできること。

例えば、FA系工場で使われる各社PLCの持つ独自プロトコルも、各社PLCの取説を読めば、ノード化することができます。

このようなゲートウェイ機能を持つハードやソフトは販売されていますが、それらを購入する必要が無くなります。

https://www.itreview.jp/products/node-red/reviews

データの発生、加工、他システムとの連携などのイベントドリブンな処理を、ノードと呼ばれる処理パーツをつなぎあわせてGUIでプログラミングできる。

WebAPIやデータベースアクセスなどの機能が部品化されていて、簡単なWebサービスを開発することも可能。

https://www.itreview.jp/products/node-red/reviews

ノンプログラミング言語の一つで、IoTとの相性がとても良い。

InputとOutputを自分のすきなものを設定でき、Shell実行も可能

https://www.itreview.jp/products/node-red/reviews


次に、改善してほしいポイントがいくつかあげられていましたので、ご紹介します。


  • ノードが Node.js のバージョンに依存するため、メンテ前の古いノードは最新の Node.js で動かせない。OSSの宿命なのでやむを得ないが、公式サポートなどがあるとうれしい。
  • 複雑なロジックを書く場合、ノード間をつなぐ線が重なり合って見にくいため、ノードを自動配置する機能がほしい。
  • ユーザーサイドでできる範囲が広がった一方で、プロのサービスを提供する技術者が少なく、サポート対応が不十分。


実際に利用すると見えてくるのが改善ポイントです。 現在日本語対応の公式サイトが無いため、サポートを求める声が多くみられます。 「十分便利だけど、ここがもっとこうだったらいいな」という意見はすぐに取り入れて、今以上に使いやすいツールに成長して欲しいですね。


実際の口コミ

ノードが Node.js のバージョンに依存するため、古いノードやメンテが行われていないノードなどは最新の Node.js で動かすことができない。(とはいえノードは OSSとして公開されているので、Node.jsや Javascriptの知識があれば手を入れて改修することが可能)

OSSの宿命なのでやむを得ないが、公式サポートなどがあるとうれしい。

https://www.itreview.jp/products/node-red/reviews

複雑なロジックを書こうとすると、ノード間をつなぐ線が重なり合ってスパゲティのようになってしまう。線が見やすくなるようにノードを自動配置する機能があると良い。

https://www.itreview.jp/products/node-red/reviews

ユーザーサイドでできる範囲が広がった一方で、プロフェッショナルサービスを提供する技術者が少なく、ユーザー側で使い始める際やサポートが必要な場合に対応が難しい印象。

https://www.itreview.jp/products/node-red/reviews


まとめ:Node-REDを試すならオープンソースの今がチャンス

Node-REDユーザーの評判や口コミを中心に、利用方法やメリット・デメリットについて解説してきました。

評判・口コミには好意的なものが多く、フローを使って簡単にアプリ開発ができる技術が受け入れられていることが分かります。

Node-REDのような新しいツールは、まだまだ成長過程です。IoTとも相性が良いので、さまざまなものと繋がっていくことでより使いやすく成長していくことでしょう。

無料で公開されている今のうちに、Node-REDにチャレンジしてみてはいかがでしょうか。


NoCode Dashに問い合わせるVIEW LIST
NEW