お問い合わせ
ご不明な点がございましたら、お気軽にお問い合わせ下さい。
ピクスー株式会社
- 所在地: 〒150-0002 東京都渋谷区渋谷1-20-9 co-factory渋谷402 ピクスー株式会社
- メール: info@webiot.io
- 電話番号: 090-9863-0987(担当:塩澤)
このページではウェビオのCO2センサーとGoogle Cloud Functionsを用いてSlackに通知する方法をご紹介します。
ウェビオのセンサーから直接Slackに通知はできないので、Google Cloud Functionsを用いて、CO2センサーからのHTTPリクエストをトリガーにしてGoogle Cloud Functionsに記述されている関数を実行します。
このシステムのメリットは
ここでは事前にbot_testというチャンネルを作成しておき、そのチャンネルにIncoming WebhooksというHTTPリクエストを受け取った時にメッセージをチャンネルに送信してくれるものを設定します。
Incoming Webhooksのページから通知したいチャンネルを選択します。
チャンネルを選択した後、Add Incoming WebHooks integrationをクリックします。 すると、WebhookのURLが表示されます。
このURLをあらかじめコピーしてメモ帳などに張り付けておきます。
BOTの名前やアイコンなどを設定したらSave Settingsをクリックします。
まず、Google Cloud Functionsで関数を作成していきます。Google Cloud プラットフォームにログインして左側のメニューからCloud Functionsを選択します。
さらに、関数を作成ボタンを押すと関数を記述できるページが現れます。
を設定してます。
以下は、CO2センサーから受け取った値が閾値を超えたらSlackに通知するindex.jsのサンプルコードです。
const request = require('request')
exports.notifyCO2Value = function (req, res) {
console.log(req.body)
const receivedCO2Value = Number(req.body.value)
const threshold = 950 // 警告閾値
const url = process.env.WEBHOOKURL // "https://hooks.slack.com/services/*****/****" Slackのwebhook url を環境変数に設定
//リクエストモジュールのオプション
const options = {
url: url,
method: 'POST',
json: true,
body: {
"text": `基準を超えました (${receivedCO2Value})`,
"username": "webhookbot",
"channel": "#bot_test"
}
}
//閾値以上の場合は、Slackにポスト
if(receivedCO2Value >= threshold) {
request.post(options, function(error, response, body){
if (!error && response.statusCode == 200) {
console.log("success")
} else {
console.error('error: '+ response.statusCode)
}
})
}
// ウェビオにレスポンスを戻す
res.json({msg:"OK"})
}
package.jsonはこちらです。
{
"name": "NotifyCO2Value",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Takayuki Miura",
"license": "MIT",
"dependencies": {
"request": "^2.88.0"
}
}
index.jsとpackage.jsonを記述した後、実行する関数を自分が設定した関数(notifyCO2Value)とし、
その他をクリックして環境変数を追加します。名前をWEBHOOKURL、値に先ほどWebhookをSlackに設定したときにコピーしたURLをペーストします。
最後に作成ボタンをクリックします。
ウェビオのセンサーからデータをPOSTするために、作成した関数のトリガータブからURLをコピーしておきます。
次に、ウェビオのCO2センサーのデータ連携設定を行います。ウェビオコンソールから左側のメニューのデータ連携をクリックし、下にあるルールを追加をクリックします。以下の画面からHTTP POSTを選択します。以下の画面からHTTP POSTを選択します。
次に、チームを選択し、送りたいセンサーの種類にチェックを付けます。ここではCO2センサーの値が知りたいので、該当するセンサーのCO2にチェックを入れ、次へをクリックします。
データ連携設定画面が表示されたら、送信先URLに先ほどGoogle Cloud Functionsで生成したURLを張り付け、BODY欄に以下のものをコピーして貼り付けます。
{
"value":"{{value}}"
}
次へをクリックし、テストボタンをクリックし、以下のように 200 { "msg": "OK" } となれば成功です。
最後に設定するボタンをクリックすれば設定完了です。
実際にSlackに通知が来ているか確認してみます。
bot_testチャンネルに通知が来ていることが確認できました。
今回は、ウェビオのCO2センサーを使って環境のモニタリングを行いました。CO2の濃度が高いと作業のパフォーマンスに影響が出るため、CO2の濃度を把握して換気などを行うことは大切です。ウェビオのセンサーとクラウドサービスを連携することで、柔軟に業務の改善に繋げることができます。ぜひあなたのIoTプロジェクトにご活用ください。
お問い合わせ
ご不明な点がございましたら、お気軽にお問い合わせ下さい。
ピクスー株式会社