AblicさんのPH-BシリーズからTeamsにメッセージを送ってみた

今回はABLICのPH-Bシリーズを使って、異常検知された際にTeamsに通知が行くよう設定していきたいと思います。

teamsの設定

teamsのメッセージ送信設定は、個人チャットやグループではできず、チーム内でのみ設定できます。
そのため、まずチーム作成をします。
左のタブからチームを選択し、+ボタンでチームを作成を選択します。

チーム名などは何でも大丈夫です。

作成しましたら、下図の赤い四角い部分をクリックします。すると、右側にタブが出てきます。

出てきたタブのチャンネルを管理をクリックします。一番下にあるコネクタの編集をクリックしてください。

「自分はこの後のすべての作業で、次のページに進まないことが何度かあり間違ったかと思いましたが、気長に待ったり何度かやり直したらできました。特に何もせずただやり直しただけです。」

すると複数のコネクタが出てきますので、左の検索欄から「incoming」と入れると「Incoming Webhook」が出てきますので、Addをクリック。

追加をクリックします。

下図のページになりましたら、赤い四角の中に「追加したいチャンネル名」をいれてCreateをクリックします。

すると下にURLが発行されますので、これをコピーしてメモしてください。メモが終わったら、下にあるDoneをクリックします。

すると元のページに戻ってきますので、Incoming WebhookがConfigureとなっていることを確認し、ページを閉じてください。

これでTeamsの設定は完了になります。

OpenBlockの設定

今回はPH-Bの中身を変えていきます。

まずは必要な下図の3つのノードを追加していきます。

3つのノードをメール本文1の上に追加し、ノードを接続します。

次にfunctionノードの中身を開き、下記の内容を書きます。
このfunctionの理由は、webhookではJavaScriptで送るのが基本のためメール本文が使えないためです。

const location = msg.payload.sensor_location;
const data = msg.payload.data_Dec;

const test = {"text": "場所:" +location+ "(センサー番号:" +data+ "番)で漏水を検知しました。"};
msg.payload = test;

中身を簡単に説明しますと、設置場所のノードで「msg.payload.sensor_location」、センサー識別のノードで「msg.payload.data_Dec」が決まっていますので、2つをデータとして移し替えtest部分で文字として表示しています。
要するにメールの中身を作っています。

次にhttp requestを開きます。

この中の、メソッドをGETからPOSTに変更し、URLをTeamsでコピーしたURLにしてください。

http requstはこれで完了です。
次にdebugノードを開き、対象をmsgオブジェクト全体に設定します。

最後にfunctionノードと設置位置のノードを繋げて、右上のデプロイをクリックします。

これで完成になります。

デバックとして、テストメール送信をクリックしていただき、Teamsにメッセージが届いていれば成功です。