Raspberry Pi で温度・湿度・気圧を Mattermost に投稿する

Raspberry Pi で計測した温度・湿度・気圧を Twitter や Slack に投稿する方法について書いた。

Slack をやめて Mattermost へ移行したので、Raspberry Pi の計測を Mattermost へ通知するようにした。

環境:
・Raspberry Pi Zero W(Raspberry Pi OS Stretch)、AE-BME280(温湿度・気圧センサモジュールキット)
・WebARENA Indigo Linux 1GB(Ubuntu 22.04)
・macOS Catalina Version 10.15.6 から SSH 接続

今回も湿度が 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


いいなと思ったら応援しよう!