はじめに
数年前から家庭内で運用しているRaspberryPi人感センサーについて、かなり重宝していて
今やこれが無い生活は想像し難くなっている
特に不満なく運用していたが、最近Slackに興味が出てきたので、なんとか絡ませようと思索し
家庭内Slackを作ってRaspberryPiからのセンサー通知を投稿しようと考えた
環境
・RaspberryPi 3
(前回記事のセンサーが正常起動する環境が前提)
Slack準備
- チャンネル準備
・適当なチャンネルを作成する - IncomingWebHooksインストール
・Apps&Integrationsから"Incoming WebHooks"をインストール
・IncomingWebHooksに対象チャンネルの設定(1.で準備したチャンネルを指定)
・WebHookURL取得(センサー側で使用するのでメモっておく)
センサー側スクリプト
前回作成したPythonスクリプトにSlack通知メソッドを1行加えるだけにしたかったので
以下クラスを作成して元から呼び出すようにした
import requests
import json
def slackPost():
url = 'https://hooks.slack.com/services/**************************'
payload = {'channel':'#投稿チャンネル名','username':'投稿ユーザ名','text':'投稿内容'}
response = requests.post(url,data=json.dumps(payload))
※1. requestsは事前にpip installしておく
※2. urlはSlack準備のIncomingWebHook設定で取得したWebHookURLをコピペ
あとは、呼び出し元スクリプトの適当なところに"post.slackPost()"を書けば完了
所感
検索したら関連情報が豊富であったため、思っていたより簡単にできたし作業量も少なかった
(ゆえにQiitaに投稿する意味もさほどない)
あと、今までは事前に準備したPCにしか通知できなかったが、Slackが使える端末であれば
スマホやタブレット、Macなどなんでも即時通知できてすごくいい
タイムラグも心配していたが全然気にならない
Slackすごい
(仕事でSlackが使えずmattermostを使っているため、情報量の違いを感じ少し悲しかった)