今回はABLICのPH-Bシリーズで積層表示灯を有線通信や、社内ネットワークではなく、メールサーバー(gmailやicloud)からの制御をしていきたいと思います。
これにより、積層表示灯やopenblocksの範囲を縛られることなく設置できます。
今回使うノード
今回は積層表示灯ということで、ablicさんのPH-Bのシリーズに変更をかけていきます。
今回追加するノードは以下の3つになります。
ノードの移動と無効化
現在あるデータを整理していきます。必ず図も合わせて確認してください。
まずパトライトIPアドレス設定とパトライト警報&接点ON/OFF設定を選択。
右クリックでノード内、選択したノードを無効化にします。すると枠が点線になり薄くなります。
そうしましたら、他のノードとつながっている線を削除し、切り離して下に移動させます。
次に、音声繰り返し回数設定とセンサー識別を繋げている線を削除します。(ノードは消さないでください)
そうしましたらセンサー番号取得とセンサー識別を線で繋ぎます。
次に、下図の方を変更していきます(右側の方)
音声&光switch、接点switch、パトライト光&音声、パトライト接点出力1の4つを無効化して切り離し下に移動させます。
この削除部分に、音声繰り返し回数設定を移動させ、左側にLED(赤黄緑)点灯設定1と接続、右側にdebugノードを接続します。
こちらで整理は完了になります。
ノードの追加
今回必要なノードを追加していきたいと思います。
左のノード一覧からchangeノードをドラック&ドロップします。
こちらの下図のように変更してください。
この音声切り替えを音声繰り返し回数設定と繋げます。
次に上にあるメール本文、メール件名、メール送信の3つをコピーします。
そうしましたら、名前を以下のように変更してください。
メールコマンド、メールサーバーは複雑なため、まずはメール件名から見ていきます。
こちらはその名の通り、メールの件名設定になります。
代入する値の右横の文字を変えることで、件名を変更することができます。
次にメール設定をしていきます。
メール送信設定(openblocks)
まずはopenblocksから見ていきます。
こちらのメールサーバーと書かれたノードを開き設定していきます。
宛先はお使いのメールサーバーを指定してください。
サーバー、ポートはgmailであれば上図の設定でお使いできます。
なお、サーバー、ポートはお使いのメール(gmail、icloudなど)にサーバーポートと検索すれば出てきますので、検索してください。
最後にユーザーIDとパスワードです。
ユーザーIDは送信元のメールアドレスを設定してください。
パスワードはアプリパスワードというものが必要になります。gmailの場合は以下の手順になります。
こちらをクリックしログインします。
上記にアプリ名を入れて作成をクリック
パスワードが表示されますのでそちらを控えてください。
パスワードは閉じると2度と確認できないため必ずメモに取ってください
こちらで発行したパスワードを、先ほどのノード内に設定することでメールを送信できるようになります。
一度injectノードを入れ、メールノードと繋ぎデプロイします。
デプロイ横の四角を押し、メールが送られているかを送信先メールアドレスから確認してください。
確認できましたら、次に積層表示灯の設定に移ります。
メールの受信設定(積層表示灯)
積層表示灯の設定画面を開きます。
左の一覧の監視設定を開き、メールサーバー設定をクリックします。
ここで、openblocksのノードと同じ設定をしていきます。
サーバーとポートの設定をし、ユーザー名はメールを受け取る側を設定します。
パスワードは先ほどと同じようにアプリパスワードで生成してください。(下記URLはgmailのもの)
こちらの設定ができましたら、右上にある設定をクリックして設定を保存してください。
次にメールサーバー設定の下にあるフィルタルール設定を開きます。
フィルタの設定は、差出人で判断するのがいいと思いますが、それ以外に件名、本文など設定は色々変えられますので、お好みで変更してください。
条件1-条件合致時動作に関しましては、設定を固定することもできますが、
今回はメール内容で制御するためメール内容で制御を選択してください。
これでメール受信設定が完了になります。
コマンドの設定
メールの送受信設定ができたので、最後にコマンドが送ることができれば動作させることができます。
まずは下記URLの73ページを開いてください。
制御コマンドがこちらに記載されています。
簡単に説明しますと、
まずはコマンド部分を下記で囲います。
<command></command>
次に操作させたいパラメーターを入力します。今回はランプの赤を光らせたいとしたとき
<command>led=10000</command>
となります。説明書ではled=<r><y><g><b><c>となっていますので、
led=10000は
led=赤、黄色、緑、青、白 となっており、数字は1が点灯、0が消灯のため
led=点灯、消灯、消灯、消灯、消灯 となっています。
こちらの通りにNodeREDのコマンドノードに入力していきます。NodeREDのメールコマンドを開き下記のコマンドを入力します。(コマンド一覧参照)
<command>led={{payload.sensor_red}}{{payload.sensor_yellow}}{{payload.sensor_green}}00&speech= {{payload.sensor_location}}で漏水を検知しました。確認してください&repeat={{payload.patlite_repeat}}&voice={{payload.patlite_voice}}</command>
先ほどのコードとはまた違うコードなのですが
{{なになに}}
というものがいくつかあります。
これは{{}}で囲まれているものの代入を表しており、コードコマンドの前にある
・LED(赤黄緑)点灯設定1
・音声繰り返し回数設定
・音声切り替え
の代入する値を変えることで変更できるようになっています。(要は変更の際見やすくしました)
最後に正常に動くかテストするために、injectノードを追加し設置場所に接続したらデプロイします。
追加したinjectノードの左の四角をクリックし、積層表示灯が動作すれば完了になります。