これを知っていると困った時に役に立つTips インターネット Node-RED 編

今回のTALKでは、今年に入ってから書き溜めた、インターネットや”Node-RED“に関する個人的な備忘録をご紹介します。いずれも、ちょっとした内容ですが、知っていると何かと役立つTipsです。

 

< injectノードだけでは不足のcronを設定する >

Node-RED“標準ノードの”inject”でも、ある程度、定期的な実行条件を設定することができます。

でも、cronのように、ある時間帯の間だけ毎時5分に実行したい、といった設定はできません。

そんなニーズに応えてくれるノードが”node-red-contrib-cron“です。

このノードは、プロパティ画面の”CRON Expression”欄にcron特有の”* * * * *”部分を入力し、

後続のフローと接続するだけで、フロー全体をCRONの記述に従って実行してくれます。

 

< NodejsスクリプトからNode-REDをフローを呼び出す >

Nodejsスクリプト内から”Node-RED“の特定のフローを呼び出したい時は、”http in”ノードをフローの先頭に配置して、プロパティ画面の”URL”欄に”/◯◯”というパスを入力します。

そして、Nodejsスクリプト内で、URLを”http://localhost:1880/◯◯”と定義して”request”すれば、”Node-RED”のノードを呼び出すことができます。”inject”ノードのhttpバージョンということですね。問題なく実行できる点は良いのですが、同期処理をしているからなのか、”Error: socket hang up”というエラーが発生します。この点は気になるものの、実害はないので様子見モードです。

 

< ダッシュボードに動画や静止画を表示する >

ダッシュボードに動画や静止画を表示するなら、”template”ノードでHTMLやCSSを描くのが常套手段らしいのですが、HTMLはともかくCSSとなると敷居が高くなりますよね。

そんな時には、”node-red-contrib-ui-media“ノードを利用するとお手軽です。

例えば、先日のTALK “Raspberry Pi + Node-RED + ダッシュボード で室内と屋外のコンディションを可視化“で紹介したダッシュボードに、天気図を追加する場合を考えてみましょう。

※ 著作物を考慮し、天気図やURLはボカシを入れています。

まず、Nodejsのスクリプトを書いて、ラズパイ上でcronを使い、1時間に一度程度のサイクルで、最新の天気図をダウンロードします。

下図の例では、”request-promise“と”date-utils“を使用しています。

npm install --save request-promise

npm install date-utils

先日作成したフローに、下図のように”node-red-contrib-ui-media”ノードを追加します。

※ “node-red-contrib-ui-media”でダッシュボードにコンテンツを表示するためには、一度だけラズパイまたは”Node-RED”をリブートする必要があるようです。

 

“node-red-contrib-ui-media”のプロパティ画面では、写真や動画が保存されるパスを指定するのですがちょっとユニークです。

下図を例にすると、

“./.node-red/lib/ui-media/lib/weather/weathermap.jpg“というパスに天気図を保存するという設定になります。ですので、ダッシュボード上で、動的に表示するコンテンツを変化させたいのであれば、このパスに最新の天気図などを保存し直すといったアプローチになります。

 

< 開発環境から本番環境に完成したフローを移行する >

Tipsというより、むしろ”Node-RED“の標準機能ですが、”書き出し”と”読み込み”はとても役立つ機能です。

POOHの場合は、開発用のラズパイで動作確認を終えた”Node-RED”のフロー全体を”書き出し”機能でJSONファイルに保存します。

買い出したファイルはバックアップ用に保存するとともに、本番環境のラズパイに反映します。

“読み込み”機能で、”Node-RED”のフロー全体を本番用の”Node-RED”に展開すれば、フローは元の状態でリストアされます。

読み込んだ後は、”Node-RED”標準にはないノードがあれば追加し、”デプロイ”すれば即稼働状態にもっていけます。

 

 

 

 

ホームページ “THE POOH FILES”にも是非お立ち寄り下さい。
Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す