ばかおもちゃ本店:Youtube twitter:@sashimizakana Amazon.co.jpアソシエイト

2021年1月10日日曜日

Switchbotの温湿度計のデータをDiscordに定期的に投稿する

 Switchbotの温湿度計を買ったので、子供にプログラムを教えがてらデータをAPI経由で取得して、家庭用のDiscordの特定のチャンネルに投稿するというようなものを作った。

SwitchbotはBLEで直接データを拾う記事が割と目についたけど、WebAPI経由の方が楽そうだったのでそちらを使った。単体だとWifiに接続できないはずなので、Switchbot Hub が必要な気がする(うちにはSwitchbot Hub Miniがある)。

https://github.com/OpenWonderLabs/SwitchBotAPI

上のドキュメント読めば簡単にやれるんだけど、トークンの取得がちょっと面白くて、プロフィール>設定からアプリケーションのバージョン表記を10連打すると開発者向けオプションが表示されるので、そこからトークンの取得ができる。

あとはこれをAuthorizationヘッダにつければ自分のデータにアクセスできる。

GET /v1.0/devices で自分のデバイス一覧を取得できるんで、そこからdeviceIdを見つけて、GET /v1.0/devices/{deviceId}/statusで、温度・湿度を取得できる。

Discordは単純な投稿だけなら、slackとかと同じでWebフックの作成で専用のURLが発行されるので、そこにcontentsに投稿したい内容を付けてPOSTするだけで投稿できる。

あとはRpi上でcronで実行したらOK。

簡単。