Ho fatto una nuova modifica alla mia centralina domotica.
Da qualche tempo avevo in mente d'installare sulla porta d'ingresso della mia abitazione un interrutore magnetico per allarmi tipo questo:
http://www.zetabishop.it/product/9299/Interruttori-Magnetici-per-antifurto-N.C-N.A.htmlLa mod ? molto semplice; ho pensato di sfruttare il tasto reg del mio router Pirelli AGPF andandoci a saldare sui piedini due cavetti che si collegano all'interruttore magnetico utilizzando il COMUNE e il NA.
Quando allontano i magneti il gpio 34 (quello del tasto reg) cambia di stato da HIGH a LOW.
Infine ho creato uno script che legge lo stato ogni 2 secondi (carico cpu irrilevante) e nel caso cambi attivi una sirena, collegata ad un rel? che avevo libero sulla mia scheda rel?.
Inoltre, nel mio caso, mi spedisce un e-mail e mi telefona sul cellulare tramite asterisk.
Lo script in questione ? molto semplice (la parte del codice di asterisk ? omessa):
#!/bin/sh
i=0
while [ "$i" == "0" ]; do
check="$(gpioctl get 34 | sed -n '/'is'/p' | awk '{ print $4 }')"
if [ "$check" == "LOW" ]; then
gpioctl dirout 24 > /dev/null #####attiva la sirena
/usr/sbin/send_allarmeporta.sh & > /dev/null ####script per l'invio email
sleep 10m
gpioctl set 24 > /dev/null
fi
sleep 2
done
exit 0
Lo script send_allarmeporta.sh che invia l'email:
root@OpenWrt:/usr/sbin# cat /usr/sbin/send_allarmeporta.sh invece:
#!/bin/sh
DATA=`date '+DATA: %d/%m/%y%nORA: %H:%M:%S'`
echo -e "Subject:*ALLARME*\n\n
*****ALLLARME*****\n
Intrusione porta d'ingresso rilevata!\n
*****ALLARME*****\n\n
$DATA" | msmtp mia_email@gmail.com
exit 0
Naturalmente bisogna aggiungere qualche riga nella pagina comandi per attivare/disattivare l'allarme:
.
.
.
pidsirena=`pidof allarme_magnetico.sh`
lamp="lamp1.jpg"
valore="ATTIVA"
if ! equal $pidsirena ""; then
lamp="lamp.jpg"
valore="DISATTIVA"
fi
cat <<EOF
<tr><td>Allarme :</td><td><center><img src="/images/$lamp"></td>
<td><center><input type="submit" name="allarmesirena" value="$valore"></td></tr>
EOF
.
.
.
.
if equal $FORM_allarmesirena "ATTIVA" ; then
/usr/sbin/allarme_magnetico.sh > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"1000")
</script>
EOF
exit
fi
if equal $FORM_allarmesirena "DISATTIVA" ; then
PID=`pidof allarme_magnetico.sh`
kill -SIGKILL $PID
gpioctl set 24 > /dev/null ####spegne la sirena
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"1000")
</script>
EOF
exit
fi
.
.
.
Per la gestione tramite asterisk il codice si complica un po' ma se qualcuno fosse interessato mi faccia sapere.