ATOMCam2でIFTTTやLINEで通知を送る(webhookを利用する)
これもコミュニティで何度も話題となりつつスルーされている外部連係機能ですが、例によって無理やり実装してみます。
Cam1の時にも実装した、通知用のmp4ファイルが作成され、AWSにアップロードされた後に削除しようとする動作をフックしてファイルを横取りする、という部分
を改造し、ここでWebhookを行うことで各種通知サービスを利用することとします。
まず、rm.shというスクリプトを作成しておき、そこから呼び出される alarmhook.sh を作成します。
さらに、起動時スクリプトで、/bin/rm が呼び出される際に、代わりにrm.shが呼び出されるようにシンボリックリンクを書き換えます。
それらの内容はこんな感じ。
この方法で、webhookを利用する連携サービスを使って検知画像を飛ばしたり、自動で何かを行うようなことが可能となります。
rm.shを書き換える方法だと、ATOMのAWS に画像を転送してから実行するのでちょっとタイムラグが発生してしまうことは留意する必要があります。
もうちょっと工夫すれば、その前に引っ掛けることはできると思いますが、まあいいでしょ。
では、実際に動かしてみた感じを貼っておきます。
IFTTTからTwitter投稿を行ってみました。
The event named "called" at July 17, 2021 at 08:55AM pic.twitter.com/cXz4W6PRne
— ひろみつ(honeylab) (@bakueikozo) July 16, 2021
このように、いきなりTweetすることができます。
…が、スクリプトを見るとわかるように、どうもIFTTT経由で画像をTweetしたり、gmailで添付させようとすると、いったんHTTPアクセス可能な外部サーバーに画像を保存する方法でしかできないように見えます…
もしもほかの方法でできることを知っている方がいれば教えてください。
IFTTTだとそこから先の連係機能がかなり強いので、IoTホームを作るにはなかなかいいと思います。
そのほか、LINE Notify APIを使ってみました。
上の画像のように、直接LINEのトーク画面に送られてきます。
参考にしたのは公式のこちらのブログです。
LINE Notifyだと、画像の添付に外部サーバを必要とせず、直接curlで投げ込むことができて便利です。
まあ、Lineに通知を放り込む場面がまだいまいち思いつきませんが…
家族・会社グループチャットに投げ込む、とかはできて便利だとは思います。
また、slackの投稿APIもどうやら画像を直接投げ込めるようです。
まだ試していませんが、たぶんできると思いますw
そのほか、何か外部連係周りでできたらいいなと思うもの、あったら教えてください。