Push Motion Image Capture to Telegram
by Emile `iMil' Heitor - 2020-03-29
I use the fantastic motion project to monitor my apartment activity when I’m not home (not happening until God knows when these days…). I wanted it to warn me when there’s movement more interactively than with a basic email. Telegram and its very well documented bot API is really perfect for this task, so I came up with the following motion
configuration:
on_picture_save /bin/sh /home/imil/bin/on_picture_save.sh %f
and more importantly, the following script:
#!/bin/sh
. ${HOME}/.tg
ffile=${HOME}/tmp/motion_capture
f=${1%?????????}
mplayer ${HOME}/Music/42899__freqman__canon-dos-d30-no-focus.wav
[ -e ${ffile} ] && [ "$(cat $ffile)" = "$f" ] && exit 0
curl -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendPhoto" \
-F chat_id=${CHATID} -F photo="@$1"
echo $f > $ffile
the ~/.tg
file has the following content:
TELEGRAM_TOKEN="12345678:xxxxxxxxxxxxxxxxxx-yyyyyyyyyyyyyyyy"
CHATID="987654321"
export TELEGRAM_TOKEN CHATID
Now every time there’s movement I’ll receive a capture on my Telegram’s bot channel (plus I’ll locally play a cool Canon camera sound ;) ).