なんとなくコマンド 第88回 Node-REDからコマンドを実行する(3)
2025年5月20日(火)14時3分 マイナビニュース
今回はNode-REDを使ってネットワーク処関係の処理を行ってみます。
その前に作成したプログラム(フロー)を保存しておきましょう。
○フローの保存
作成したフローを保存するには保存したいフローのタブ上で右ボタンをクリックします。メニューが表示されるので「書き出し」の項目を選択します。
ここではダウンロードしてフローを保存することにします。「ダウンロード」ボタンをクリックします。
ダウンロードフォルダにJSON形式でフローのプログラムが保存されているのがわかります。
無事に保存できたので新たなフローを作成しましょう。フローのタブがある右側に+ボタンがあります。この+ボタンをクリックすると新たなフロー(タブ)が作成されます。
○pingノードのインストール
ネットワークのカテゴリにpingノードのブロックが見当たらない場合は追加する必要があります。追加するには右上のメニュー(三)をクリックして表示されるメニュー項目からパレットの管理の項目を選択します。
ノードを追加のタブをクリックします。
検索ボックスにpingと入力します。すると該当するノードの一覧が表示されます。追加したいノードの項目内にある「ノードを追加」ボタンをクリックします。
確認のダイアログが表示されるので「追加」ボタンをクリックします。
ノードが追加されます。追加されたのを確認したら「閉じる」ボタンをクリックします。ネットワークのカテゴリにpingノードが追加されていればOKです。
○pingの結果を出力
それではpingノードを使ってみましょう。図のようにpingノードとdebugノードを繋ぎます。
このままではping先を指定していないため動きません。pingノードをダブルクリックして設定画面を開きます。ターゲットを8.8.8.8にしていますが、ここはドメイン名でもローカルルーターでも構いません。Ping(秒)は5にします。設定が終わったら完了ボタンを押します。
デプロイすると自動的にping処理が開始されます。
このままでは永遠とpingが繰り返されてしまいます。次にinjectノードのボタンをクリックしたらpingの結果を表示するように変更します。
pingノードをダブルクリックして設定画面を開きます。モードを「トリガー」に変更します。変更したら完了ボタンをクリックします。
この状態では先ほどのping処理が動いたままなので一旦ノード間を繋いでいる線を削除します。削除したらデプロイボタンをクリックします。
次にinjectノードを配置します。pingノードなどを図のように繋ぎます。
タイムスタンプと表示されたノードの左側の□をクリックします。するとデバッグメッセージサイドバーにpingの結果が表示されます。
○Webサーバーを作成
次にNode-REDでは定番(?)のWebサーバー(ローカル上でのみ動作する前提です)を作成してみましょう。まず、新規にフローを作成します。
ネットワークのカテゴリからhttp inのノードをドラッグドロップして配置します。
配置したらhttp inノードをダブルクリックして設定画面を表示します。URLの部分に/p1と入力します。このp1は「http://192.168.11.52:1880/p1/」のようなURLを構成する文字列になります。
次にWebブラウザでアクセスした場合の文字列を準備します。機能のカテゴリからtemplateノードを配置します。
templateノードをダブルクリックして設定画面を開きます。テンプレートのところに表示する文字列を入力します。入力が終わったら完了ボタンをクリックします。
次に結果を返すためのhttp responseノードを配置します。このノードは特に何も設定しません。
それぞれのノードを図のように繋ぎます。繋いだらデプロイします。無事にデプロイできたら、すでにWebサーバーとして動作しています。
Webブラウザで以下のURLにアクセスするとtemplateノードで入力した文字が表示されます。
http://192.168.11.52:1880/p1/
.