GravioのカメラAIやIoTセンサーで取得したデータをもとに「Slack」にメッセージ通知を送ってみた
こんにちは、Gravio担当のアベです。
AIやIoTを活用した「現場DX」において重要なのは、カメラやセンサーにより収集されたデータを現場の仕事にどうやって役立てるか、ということです。
基本はエッジ環境で動作するGravioですが、実は、お好きなクラウドサービスに連携することも得意としています。特に現場では「通知」や「周知」などリアルタイムの情報が必要なケース、多いですよね。このような場合、メッセージング系のサービスが即時性と情報共有のしやすさから良く使われます。
そこで今回は、弊社が標準でご提供しているメッセージング系サービスへの接続先の一つとして、「Slack」連携の設定方法をご紹介します。
ちなみに、同じようなサービスとして、「LINE」や「LINEWORKS」への連携方法もそれぞれ別ブログで解説してますので、ご興味ございましたらあわせてご覧ください。
今回は、センサーが温度を取得するたび、Slackにその温度を通知する、という通知をするように設定します。定期的にデータを見たい場合に適した機能です。もちろん、特定の温度になったときのみに通知するようなことも可能です(設定は後述)。
ちなみに、通知の条件となるトリガーは、今回使用する温度センサー以外のセンサーやカメラでももちろん設定できます。
必要なもの
- Slackのワークスペース(既存で利用されているものがあれば新規作成は不要です)
- Gravio Basic以上のご契約
使用環境
- Gravio Studio4.4.4(macOS版) ※Windows版でも同様に設定可能です
- Gravio HubKit4.4.4(macOS版) ※Windows版、Gravio Hub版でも同様に設定可能です
手順(もくじ)
まずは、Slack APIのWebサイトにアクセスしてログインします。
ログインが完了したら、「Create New App」をクリックします。
以下キャプチャのように、アプリを作成します。
下画像、「①任意のApp名」についてですが、ここで決めたApp名からメッセージが送付されますので、分かりやすい名前をおすすめします。
上記作成後、自動で遷移した画面にて「Bots」をクリックします。
遷移先の画面にて、「Review Scopes to Add」をクリックします。
同一画面を下へスクロールし、「Add an OAuth Scope」をクリックします。
Scopesは以下の様に設定します。
OAuth Scope:chat:write
Description: Send messages as 〇〇
※〇〇は、先程設定したApp名が表示されます。
上記設定後、同一ページを上にスクロールし、「Install to Workspace」をクリックして、許可します。
その後、自動で表示される「Bot User OAuth Token」をコピーしてメモ帳などに保管します。後ほどGravio Studioでの設定時に使用します。
以下の画像に沿って、Slackの設定を実施します。
Slack APIのWebページで作成したAppを追加します。
こちらでSlack側での設定は完了です。
Gravio Studioを開き、以下の説明に沿ってアクションを新規で作成します。
まずは動作テストとして、正常にSlackへ連携できるかを確認します。
- アクションコンポーネント:Slack Post Message
- チャンネル:送信先となるSlack側のチャンネル名を記載
- テキスト:動作テストとして送信したい内容を記載
- トークン:Slack APIのWebページでコピーしたトークンをペースト
上記入力が完了しましたら、動作テストとして右上の「▶」ボタンをクリックします。
※チャンネル欄にSlackのユーザーIDを入力することで、そのユーザーにダイレクトメッセージを送信することも可能です。
設定内容が正しければ、以下のようにメッセージが送信されます。
上記で動作確認が取れましたので、本番設定となります。
本ブログでは温度センサーのデータを基準に、取得した温度データを含めた形で、メッセージを送信するように設定します。
以下画像のようにPre Mappingsを設定します。
cp.Text = “現在の温度は” + tv.Data + “℃です。"
※「tv.Data」の箇所に、センサーのデータが入ります。
動作テストを実行すると、以下のようにメッセージが送信されます。
こちらのテスト送信では、引用するデータが無いため、「0」と表示されますが問題ありません。
最後に、作成したアクション(Slackに通知する)を動かす基準となる「トリガー」を設定します。
今回は、温度情報がセンサーから来るたび、Slackにその温度を通知する、という仕組みですので、そのようにトリガーを設定します。
温度情報以外を基準値にする場合は、お好きなデータをトリガーに設定してください。
センサーの値でも、カメラAIの推論結果データでも、Gravioで取ることができるデータであれば、同様に設定できます。
下記画像の下部にて、「Temperature:任意の値」と設定したため、温度センサーのデータを受信するたびに起動するような設定になります。
もちろん、この部分を変えることで、特定の条件(例:温度が○℃を超えたら)でメッセージを通知することも可能です。熱中症対策や冷蔵庫などの故障検知などには有効ですね。冷蔵庫などであれば、あわせて開閉センサーを取り付けることで、開けっ放しによる温度上昇なのか、機器の不具合による障害なのか、も判断できるというわけです。
本トリガーで動作させるアクションとして、先ほど作成したアクションを選択します。
トリガーの作成が完了したら、有効化するためにチェックを入れます。
その後は、作成したトリガーの基準を満たすたびに、Slackへ自動でメッセージが送信されます。
※本ブログの設定では、温度が送信されます。
Slackへの連携設定は以上です。
Slackへの連携の仕方を解説しましたが、いかがでしたでしょうか。
それぞれのメッセージサービスごとの個性でしょうか、すでに別ブログで解説をした「LINE連携」と比較すると、APIの取得手順は変わってきますね。
とはいえ、手順を追っていけばどなたでも実施できるような仕組みになっています。本ブログが参考になれば幸いです。
エッジで取得した様々なデータを、エッジの仕組みやクラウドサービスとつないで簡単に活用できるGravioについて、今後も様々な活用法をご紹介しますので、ご期待ください。