解説:メールで通知するフロー

今回は、Node-RED con 2023の発表で使用したフローの解説を行います。

全3回のうち、今回は2回目です。

1回目はセンサーデータをデータストアに保存するフローについて解説しました。2回目は、メール通知するフローについて解説します。

メール通知するフロー

このフローはデバイスではなくエネブラーのクラウド実行環境で動作させるので、LCDPノードで囲む必要があります。

Changeノードでは、msg.topicにメールの件名をセットします。

Templateノードでは、mustache記法で

{{payload.newItem.label}}の室温は、{{payload.newItem.temp}}度です。

と記載します。これがメールの本文になりますので、出力形式は平文です。

payload.newItem.labelが、テーブル更新後のデータのlabel、payload.newItem.tempが、テーブル更新後のtempを示しています。

メールノードの設定は、ユーザIDとパスワードを入れてください。

Gmailのアプリパスワードを使う方法もあります。詳しくは、enebular blogのメール・ノードを使おうという記事をご覧ください。

コンプリートノードは、メール通知が完了したことを受け取って、LCDPノードに処理が終了したことを知らせるために使用します。ノードのプロパティは以下の通りです。

最後にInjectノードをクリックして、正しくメールが送信されてくるかどうかを確認しましょう。

もちろん、LCDPノードからの通知情報がないので、メール本文のうち、{{}}でくくった部分はブランクになります。

クラウドでフローを動作させる

クラウド実行環境の準備

クラウド実行環境は左のメニューから右下の+ボタンで作成できます。フリープランだと2個まで作ることができます。

クラウド実行環境ができたら、実行環境の設定タブをクリックして、下のほうにあるデータストア接続をONにします。

データストアの準備

一つ設定を忘れていました。データストアの更新を先ほど作ったクラウド実行環境に通知させる必要があります。

データストアの設定タブを見て、以下の通り設定してください。

実行環境からのアクセス:ON

テーブルの更新時に呼び出し:ON

テーブル更新時の呼び出し先:先ほど作成したクラウド実行環境をプルダウンメニューから選択

呼び出しを行う更新種別: INSERTにチェック

フローのデプロイ

それでは、フローの画面に戻ってデプロイしましょう。デプロイボタンをクリックします。

クラウド実行環境を選択とします。

デプロイ対象のクラウド実行環境(先ほど作ったもの)が見えているので、そちらにチェックを入れて次へボタンをクリックします。

デプロイ対象のバージョンは、ここではフローの最新なので、masterを選択して、デプロイボタンをクリックします。

デプロイが完了したら、ステータスが変更されます。

動作確認

動作を確認するには、テーブルを更新する必要があるので、データストアのテーブルの画面で追加ボタンをクリックします。

必要なデータを入力してOKボタンをクリックすると、データストアにデータが登録されます。

しばらくすると、データ登録をきっかけにフローが起動して、メールを送信します。

まとめ

今回は、メール通知をするフローについて解説しました。データが更新されたかどうかをenebularのデータストアが判断してくれるので、メール通知のフローに専念できました。

もちろん、デバイス側に通知するフローを追加すれば同じ結果が得られます。しかし、デバイスが増えてきた場合などで、共通化できる箇所でクラウド実行環境を使えば全体としてシンプルな構成にできるのでメンテナンスしやすくなるというメリットもあります。

全部説明し切れていない部分もあるかと思います。不明な点がありましたら、お気軽にサポートまでご連絡ください。

次回は、地図表示を実現するフローについて解説します。