• V
 

ローカルでNode-REDを実行する

必須条件

ローカル環境にNode-REDをインストールするためにはサポートされているNode.jsのバージョンが必要です。

Raspberry PiまたはUbuntuまたはDiet-Piを含むDebianベースのオペレーティングシステムの場合、 こちらのRaspberry Piのインストールスクリプトを利用できます。

npmによってインストールする

Node-REDをインストールするため、Node.jsに同梱のnpmコマンドを利用できます:

sudo npm install -g --unsafe-perm node-red
Windowsを利用している場合、このコマンドをsudoから始めません。

このコマンドは、依存関係とともにNode-REDをグローバルモジュールとしてインストールします。

コマンドの出力の最後が以下のようになった場合、インストールが成功したと確認できます。

+ [email protected]
added 364 packages from 350 contributors and audited 1493 packages in 16.606s
found 0 vulnerabilities

Snapでインストールする

OSがSnapをサポートしている場合、 以下のようにNode-REDをインストールすることができます:

snap install node-red

Snapパッケージとしてインストールした場合、 利用しなくてはならない以下のような外部の機能へのアクセスを持っていないセキュアなコンテナで実行できます:

  • gcc - インストールしたいノードのバイナリコンポーネントをコンパイルするために必要です
  • git - プロジェクト機能を利用したい場合、必要になります
  • GPIOハードウェアへの直接アクセス権
  • フローの(例えば)Execノードで実行される外部コマンドへのアクセス権

コンテナのセキュリティは低下するものの より幅広いアクセスが可能な「クラシック」モードで実行することもできます。

実行する

一度グローバルモジュールとしてインストールしたら、 ターミナルにおいてnode-redコマンドを使ってNode-REDを起動することができます。 Ctrl-Cを使うか、ターミナルウィンドウを閉じることでNode-REDを停止することができます。

$ node-red

Welcome to Node-RED
===================

25 Mar 22:51:09 - [info] Node-RED version: v0.20.5
25 Mar 22:51:09 - [info] Node.js  version: v10.15.3
25 Mar 22:51:09 - [info] Loading palette nodes
25 Mar 22:51:10 - [warn] ------------------------------------------
25 Mar 22:51:10 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
25 Mar 22:51:10 - [warn] ------------------------------------------
25 Mar 22:51:10 - [info] Settings file  : /home/nol/.node-red/settings.js
25 Mar 22:51:10 - [info] Context store  : 'default' [module=localfilesystem]
25 Mar 22:51:10 - [info] User Directory : /home/nol/.node-red
25 Mar 22:51:10 - [warn] Projects disabled : set editorTheme.projects.enabled=true to enable
25 Mar 22:51:10 - [info] Server now running at http://127.0.0.1:1880/
25 Mar 22:51:10 - [info] Creating new flows file : flows_noltop.json
25 Mar 22:51:10 - [info] Starting flows
25 Mar 22:51:10 - [info] Started flows

そして、ブラウザでhttp://localhost:1880を指定することでNode-REDエディタにアクセスすることができます。

ログ出力は様々な情報を提供してくれます。

  • Node-REDおよびNode.jsのバージョン
  • パレットにノードをロードしようとしたときに発生したエラー
  • 設定ファイルおよびユーザディレクトリの位置
  • 利用しているフローファイルの名称

Node-REDはデフォルトのフローファイルとしてflows_<hostname>.jsonを利用します。 node-redコマンドの引数としてフローファイル名を渡すことで、 これを変更することができます。

コマンドラインの使い方

Node-REDはnode-redコマンドを使うことで起動できます。 このコマンドは様々な引数をとることができます:

node-red [-v] [-?] [--port PORT] [--safe] [--settings settings.js]
         [--title TITLE] [--userDir DIR] [flows.json|projectName]
オプション 詳細
-p, --port PORT ランタイムが待ち受けているTCPポートを設定します。デフォルト: 1880
--safe フローを起動せずにNode-REDを起動します。このオプションはエディタでフローを開き、フローを起動せずに変更をおこなえるようにします。変更をデプロイしたとき、フローは起動されます。
-s, --settings FILE 利用する設定ファイルを設定する。デフォルト: settings.js in userDir
--title TITLE プロセスウィンドウタイトルを設定する。
-u, --userDir DIR 利用するユーザディレクトリを設定する。デフォルト: ~/.node-red
-v 冗長な出力を取得します。
-?, --help コマンドラインの使い方を表示し、終了します。
flows.json|projectName プロジェクト機能を有効にしていない場合、作業したいフローファイルをこのオプションで指定します。プロジェクト機能が有効な場合、どのプロジェクトを利用するのかを指定します。

Node-REDはデフォルトのフローファイルとしてflows_<hostname>.jsonを利用します。 実行しているコンピュータがホスト名を変更した場合、 静的なファイル名をコマンドライン引数または設定ファイル内のflowsFileオプションとして、 提供することを保証する必要があります。

Passing arguments to the underlying Node.js process

基盤であるNode.jsプロセスに引数を渡さなければならない機会はあります。 例えば、Raspberry PiやBeagleBone Blackのように、 メモリ容量が制限されたデバイスで実行する場合です。

これをおこなうためには、起動スクリプトのnode-redの代わりにnode-red-piを利用する必要があります。 Note: このスクリプトはWindowsでは利用できません。

反対に、nodeコマンドを利用してNode-REDを起動した場合、 red.jsおよびNode-RED自体に渡す引数を指定する前に Nodeプロセスに引数を渡す必要があります。

以下の2つのコマンドは2種類のアプローチを紹介しています:

node-red-pi --max-old-space-size=128 --userDir /home/user/node-red-data/
node --max-old-space-size=128 red.js --userDir /home/user/node-red-data/

Node-REDをアップグレードする

Raspberry Piスクリプトを利用してNode-REDをインストールした場合、それを再利用することでアップグレードすることができます。 スクリプトはこちらで入手できます。

グローバルnpmパッケージとしてNode-REDをインストールした場合、 以下のコマンドによって最新版にアップグレードすることができます:

sudo npm install -g --unsafe-perm node-red
Windowsを利用している場合、コマンドの先頭にsudoは不要です。

次のステップ