Raspberry Pi で温度・湿度・気圧を Mattermost に投稿する
Raspberry Pi で計測した温度・湿度・気圧を Twitter や Slack に投稿する方法について書いた。
Slack をやめて Mattermost へ移行したので、Raspberry Pi の計測を Mattermost へ通知するようにした。
今回も湿度が 60% を超えたときのみ通知するようにしたが、Slack のときと手順は同じだ。
シェルスクリプトに関しては変更が必要だった。最後の curl コマンドの部分で、—insecure というオプションを書かないと「curl: (60) SSL certificate problem: certificate has expired」などと表示されてエラーになる。つまり、以下のようなシェルスクリプトにすればいい。
#!/bin/bash
date=`date '+%Y/%m/%d %H:%M:%S'`
#Mattermost用の設定
url="[Mattermost の Incoming Webhook URL]"
channel=town-square
username=PiSensorBot
icon_emoji=:clipboard:
#センサーデータ
result1=`python /home/pi/bme280_sample.py | grep hum | cut -d' ' -f4`
result2=`python /home/pi/bme280_sample.py | grep temp | cut -d' ' -f3`
result3=`python /home/pi/bme280_sample.py | grep pressure | cut -d' ' -f3`
if [ $? -gt 0 ]; then
exit 1;
fi
#湿度が60%以上のときのみ投稿
if [ `echo "$result1 > 60" | bc` == 1 ]; then
message="【${date}】湿度:${result1}% 温度:${result2}度 気圧:${result3}hPa 60%を超えています!";
curl --insecure --data-urlencode "payload={\"channel\":\"$channel\",\"username\":\"$username\",\"text\":\"$message\",\"icon_emoji\":\"$icon_emoji\"}" $url
fi
これでうまくいった。
参考:
curl: (60) Issuer certificate is invalid.となった時の対応方法 - Qiita
https://qiita.com/ponsuke0531/items/224e4cba2a8c8def5987