MQTTの記事 を読んでいて、「そういえば昔、Node-REDを使ってIoTセンサーを管理していたな」と思い出しました。
当時は仕事で毎日のように触っていましたが、最近はすっかり名前を聞かなくなった気がします。
「今でも開発は続いているのだろうか?」
そんな疑問から、久しぶりにNode-REDを触ってみることにしました。
Node-REDとは
Node-RED(ノード・レッド)は、ブラウザ上でアイコン(ノード)を線でつなぐだけで、IoTデバイスやAPI、Webサービスを簡単に連携できるビジュアルプログラミングツールです。
プログラムの記述を最小限に抑え、直感的に自動化の仕組みを構築できます。
特徴
- ローコード/ノーコード開発:プログラミング経験が少なくても利用可能
- 拡張性:コミュニティ製ノードを追加可能
- 共有性:フローはJSON形式でエクスポート/インポート可能
- IoT適性:MQTTやHTTPなどのプロトコルを簡単に扱える
何ができるの?(活用例)
- IoT・スマートホーム:部屋の温度が上がったら自動でエアコンや扇風機をONにする。
- 業務の自動化:特定のメールが届いたら添付ファイルをクラウドに保存し、チャットツールに通知を送る。
- データの可視化:取得したセンサーデータをリアルタイムでダッシュボード(グラフなど)に表示する。
筆者がNode-REDを利用していたのは、IoTセンサーを利用した設備監視システムの開発に携わっていた頃です。
MQTTを利用してセンサー情報を収集し、Node-REDでデータの受信や状態管理を行っていました。
利用例
-
ドアの開閉センサー:商業施設のトイレ個室に設置されたセンサーから開閉情報を取得し、利用者向けに空き状況を表示する。
-
圧力センサー:オフィスのフリーアドレス席に設置し、座席の利用状況をリアルタイムで可視化する。
-
フィルターセンサー:油の汚れを取るフィルターを監視して、交換時期が来たら通知する。
こんな感じでした。
なぜNode-REDを選んだのか
当時はクラウドIoT基盤が今ほど充実しておらず、
- MQTTとの接続が簡単
- フローを見れば処理内容が分かる
- 試作が速い
という大きなメリットがありました。
今見るとどうだったか
良かった点
- 開発速度が速い
- 非エンジニアにも説明しやすい
- IoTとの相性が良い
困った点
- フローが巨大化すると管理が大変
- Gitで差分管理しづらい
- 複雑なロジックはコードの方が楽
2026年に改めて調べたら、まだ開発が続いており驚かされました。
Dockerで起動してみる
Dockerがあれば、以下のコマンドだけでNode-REDを起動できます。
docker run -it -p 1880:1880 nodered/node-red
起動後はブラウザで http://localhost:1880 にアクセスすると、Node-REDのエディタが表示されます。久しぶりに画面を開いてみると、懐かしいフローエディタがそのままで、「ああ、これこれ」と思わず当時を思い出しました。
適当な inject と function 、debug を作成してみました。
inject ノードの左側にあるボタンを押すと、function ノードが実行され、debug ノードにメッセージが表示されます。
Node-REDはHTTP APIを数分で作成できます。
http inノードがリクエストを受け取り、functionノードでレスポンスを生成し、http responseノードでブラウザへ返却します。
http in を作成し、function、http responseを置いて配線してあげます。
function には以下のコードを記載します。
function randomStatus() {
return Math.random() > 0.5 ? "空席" : "使用中";
}
msg.payload = {
facility: "○○デパート",
floor: "3F",
updated: new Date().toLocaleString(),
toilets: [
{ booth: "1", status: randomStatus() },
{ booth: "2", status: randomStatus() },
{ booth: "3", status: randomStatus() },
{ booth: "4", status: randomStatus() }
]
};
return msg;
http in の URLに /toilet を設定します。
そうすることにより、ブラウザから http://localhost:1880/toilet にアクセスすれば……
{
"facility":"○○デパート",
"floor":"3F","updated":"7/15/2026, 9:11:48 PM",
"toilets":[
{"booth":"1","status":"使用中"},
{"booth":"2","status":"空席"},
{"booth":"3","status":"使用中"},
{"booth":"4","status":"空席"}
]
}
といったJSONを返すようになります。
function は random に返すようになっているので、アクセスするたびに内容が変わるようになっています。
久しぶりにNode-REDを触ってみましたが、昔と変わらない使いやすさに少し感動しました。
当時はIoT開発の現場で活躍していましたが、現在でもDockerで手軽に始められ、Home AssistantやAlexaとの連携など新しい活用方法も増えています。
「もう使われていないのでは?」と思っていましたが、Dockerで簡単に起動でき、UIも大きく変わっていませんでした。
数分でHTTP APIを作成できる手軽さは今でも健在で、改めてNode-REDの魅力を実感しました。
以上

