Nabuk Wireless Community

Apparati => Firmware (di classe WRT) => Topic aperto da: truthahn - Settembre 22, 2010, 10:09:51 pm

Titolo: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Settembre 22, 2010, 10:09:51 pm
Stasera ho realizzato un semplice impianto di videosorveglianza wireless del mio eremo con openwrt una Vodafone station, una webcam creative vista (per ora), un allarme sonoro (lo fa partire la solita centralina gpio collegata alla scheda rele), e apoggiandomi al "mio" asterisk, la possibilit? di gestirlo oltre che ricevere una chiamata in caso di allarme. Ho integrato il tutto nella centralina gpio gi? funzionante sulla vs, attraverso la quale, in locale o remoto, si pu? gestire, oltre agli altri comandi, anche l'allarme.
Prima di tutto bisogna installare la webcam usb, la vs dispone di porte usb e di diversi driver ma occhio a scegliere una webcam compatibile, mi sono sfinito a far "quasi" andare 'sta creative e ci sono ancora un bel po' di problemi che spero si risolvano all'allrivo di una "nuova" gi? ordinata.
Per gestirla ho usato "motion", anche lui presente negli opk.
Dopo aver caricato motion, configurare /etc/motion.conf  nella riga riportata (ha molte opzioni, per ora l'ho lascito "tranquillo")...

Codice: [Seleziona]

# Command to be executed when a motion frame is detected (default: none)
on_motion_detected /usr/sbin/allarme.sh

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
#target_dir /motion


... e creare la cartella /motion. (ho preferito mettere l? per ora le immagini ma sarebbe importante registrarle su un supporto esterno o ancora meglio in remoto con wput o scp)

bene, ora motion ? a posto...

Visto che non sono ancora riuscito a far andare la key come gateway gsm sulla vs per gli allarmi mi sono appoggiato ad un asterisk esterno. per fare questo invio un file che sar? processato da asterisk e far? la chiamata e ,chiamando un numero registrato su asterisk, si pu? gestire motion da remoto. Qui il problema nasce perch? per trasferire il file, usando scp, viene richiesta una password dal server e quindi bisogna creare le chiavi di autenticazione privata/pubblica per bypassare il problema. Openwrt utilizza dropbear e quindi utilizziamo i suoi tool per creare le chiavi. Spostiamoci in /etc/dropbear sulla vs...

Codice: [Seleziona]
dropbearkey -t rsa -f id_rsa

che dar? a video qualcosa del genere...

Codice: [Seleziona]
Will output 1024 bit rsa secret key to 'id_rsa'
Generating key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgwCagAvA7/EdxINoRzHoIYDUf4sE24VZZG4N+VHFVDKDrekvCtKDkdmUnbyP8bZqLtH6rSFyLeI1qAeU/cREQcwhsnOTwxesfe1dvZthUnbSfQ9nm7MVRZCUPZO4lAQZ+tW2vFHaoSPE3fSYA3B+ObkygKP8CxzvOsmN4AHklXB0YbRD root@openwrt
Fingerprint: .....................

copiamo la chiave pubblica (da ssh-rsa a root@openwrt compresi) in un file di testo nominandolo "authorized_keys" e andiamo a copiarlo sul server con asterisk in /root/.ssh/ usando uno strumento per trasferirlo come scp o ftp o...

nella cartella ora troveremo pure un file nominato "id_rsa" che rinomineremo in "dropbear_rsa_host_key".


diamo un...
Codice: [Seleziona]
dbclient -f -N -K 60 -L 3306:127.0.0.1:3306 -y -i /etc/dropbear/dropbear_rsa_host_key root@ipserver -p numero_eventuale_porta

ora scp potr? trasferire i file senza passare una pass.

Ho creato poi due file in (usr/sbin con permessi di esecuzione naturalmente, uno per getire motion (motion.sh) da shell e uno (allarme.sh)che manda il file all'asterisk sul server remoto quando motion lo invoca..

Codice: [Seleziona]
root@OpenWrt:/usr/sbin# cat motion.sh
#!/bin/sh
case $1 in
start)
/usr/bin/motion
;;
stop)
PID=`pidof motion`
kill $PID
killall allarme.sh
gpioctl dirin 12
;;
esac

il "gpioctl dirin 12" lo capirete dopo.

Codice: [Seleziona]
root@OpenWrt:/usr/sbin# cat allarme.sh
#!/bin/sh
cat << EOF > /motion/allarme.call
Channel: SIP/202
Callerid: ALLARME
MaxRetries: 2
RetryTime: 20
WaitTime: 20
Context: allarme
Extension: s
Priority: 1
EOF
scp -i /etc/dropbear/dropbear_rsa_host_key /motion/allarme.call root@ip_server:/var/spool/asterisk/outgoing
gpioctl dirout 12
sllep 180
gpioctl dirin 12
exit

Il primo script ? chiaro, "motion.sh start" attiva motion, e "motion.sh stop lo disattiva". "gpioctl dirin 12" spegne la "sirena" collegata alla centralina gpio sul gpio 12.

Il secondo script crea il file "/motion/allarme.call" con il contenuto tra i due EOF e poi lo trasferisce con scp utilizzando le chiavi create prima in "/var/spool/asterisk/outgoing" dove asterisk processa i file che vi trova. il "Channel: SIP/202" corrisponde ad un mio interno, naturalmente si pu? mettere un altro channel che corrisponde ad un vostro numero. "Callerid: ALLARME" ? quello che comparir? sul vostro telefono come mittente della chiamata.

Vediamo ora l'asterisk sul server, ho inserito in extension.conf queste parti...

Codice: [Seleziona]
[macro-allarme]
   exten => s,1,Answer()
   exten => s,n,Read(INPUT|agent-pass|0||3|10)
   exten => s,n,SayDigits(${INPUT})
   exten => s,n,AGI(allarme.sh,${INPUT})
   exten => s,n,Hangup()

exten => numerodachiamare,1,Macro(allarme,205)

[allarme]
   exten => s,1,Set(LANGUAGE()=IT)
   exten => s,n,Answer
   exten => s,n,Wait(2)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Hangup

dove [macro-allarme] chiede una pass (si pu? scegliere tra due codici uno per attivare motion sulla vs e uno per disabilitarlo ) che passa a "allarme.sh" sul server con asterisk (nella cartella /var/lib/asterisk/agi-bin del vostro asterisk). "exten => numerodachiamare,1,Macro(allarme,205)" ? il numero da chiamare sull'asterisk (dev'essere naturalmente registrato) per gestire motion sulla vs. Il file "allarme" chiamato da "Playback" ? quello che una volta creato sentirete alla chiamata.
il file "allarme.sh"...

Codice: [Seleziona]
#!/bin/sh
lynx http://ip_della_vs/cgi-bin/gesallarme.sh?pass=$1
exit

ok sull'asterisk ? tutto. Ritorniamo sulla vs e creiamo il file "/www/cgi-bin/gesallarme.sh" che deve contenere..
Codice: [Seleziona]
root@OpenWrt:/www/cgi-bin# cat gesallarme.sh
#!/usr/bin/webif-page

<?

. /usr/lib/webif/webif.sh
 
#header

file=/etc/centralina/allarme
righe=$(wc -l /etc/centralina/allarme | awk '{print $1}')
passon="$(echo "$riga" | awk '{split ($0, a, " ");print a[1]}')"
passoff="$(echo "$riga" | awk '{split ($0, a, " ");print a[2]}')"

#attiva allarme
if equal $FORM_pass "$passon";then
/usr/bin/motion
fi
#Disattiva allarme
if equal $FORM_pass "$passoff";then
PID=`pidof motion`
kill $PID
killall allarme.sh
gpioctl dirin 12
fi
exit
?>

che va a leggere il file "/etc/centralina/allarme" che contiene i codici per attivare e disattivare motion e se corrispondono a quelli passati dalla telefonata esegue.
Codice: [Seleziona]
root@OpenWrt:~# cat /etc/centralina/allarme
 1111  2222
root@OpenWrt:~#

il primo numero ? il codice di attivazione e il secondo quello di disattivazione.

Ora provo a integrare lo streaming sulla webif....

Consigli??
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Settembre 22, 2010, 11:13:50 pm
Funziona!! :-D
(http://82.186.215.122/images/motion.png)
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Settembre 23, 2010, 11:18:38 pm
Non riesco a far partire motion dalla webif, cio? se inserisco in una pagina il comando "motion" s'impalla la pagina che vedete sopra e non compare lo steaming... vado a vedere con "ps" i processi e lo trovo attivo, poi vado a vedere lo steaming alla porta 8081 e la schermata del video ? grigia. Se lo faccio partire da shell invece funziona.
Anche a spegnerlo da webif ? un problema: con il tasto che vedete sopra che comanda un"killall motion" o un kill 'pidof motion' (con le virgolette giuste)  funziona una volta su 100. Che sia un conflitto del server web? :|
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Settembre 28, 2010, 12:58:41 pm
Risolto tutto!! :-D
Ragazzi funziona alla grande!!! :-D :-D :-D

Allora nella pagina comandi della webif...

Codice: [Seleziona]
if equal $FORM_motion1 "ATTIVA" ; then
/usr/sbin/gsmotion.sh start > /dev/null
sleep 5
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_motion1 "DISATTIVA" ; then
/etc/init.d/gesmotion stop > /dev/null
sleep 5
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"100")
</script>
EOF
exit
fi

/usr/sbin/gsmotion.sh
Codice: [Seleziona]
oot@OpenWrt:~# cat /usr/sbin/gsmotion.sh
#!/bin/sh
case $1 in
start)
/usr/bin/motion &
;;
stop)
PID=`pidof motion`
kill $PID
killall allarme.sh
;;
esac
root@OpenWrt:~#

e la pagina video.sh della webif...

Codice: [Seleziona]
root@OpenWrt:~# cat /www/cgi-bin/webif/centralina/video.sh
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
############################################################################
#
# Descrizione:
# Mostra lo streaming video
#
#
#               truthahn - Nabuk Family - vonkosta@gmail.com
#############################################################################
header "Info" "System" "<img src=\"/images/telecamera.jpg\">@TR<< Telecamera>>"

indirizzo="$(uci get network.lan.ipaddr)"
if equal $FORM_motion1 "DISATTIVA" ; then
elinks http://$indirizzo:8080/0/detection/pause > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/video.sh\"',"100")
</script>
EOF
fi
if equal $FORM_motion1 "ATTIVA" ; then
elinks http://$indirizzo:8080/0/detection/start > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/video.sh\"',"100")
</script>
EOF
exit
fi
pidmotion=`pidof motion`
if ! equal $pidmotion "";then
cat <<EOF
<form method="get" action="video.sh">
<center><img src="http://$indirizzo:8081" ><br>
EOF
status=$(elinks http://$indirizzo:8080/0/detection/status)
stato="$(echo $status | sed -n '/status/p'| awk '{ print $7 }')"
if  equal $stato "ACTIVE"; then
cat <<EOF
<center>
Il videocontrollo ? attivo.<p>
<input type="submit" name="motion1" value=DISATTIVA></form>
EOF
else
cat <<EOF
<center>
Il videocontrollo funziona solo in streaming.<br>
Per attivare la cattura delle immagini clicca sotto.<p>  
<input type="submit" name="motion1" value=ATTIVA></form>
EOF
fi
else
cat <<EOF
<center>
Nessuna videocamera collegata.<br>
Per attivare la videocamera vai alla pagina COMANDI.<p>
EOF
fi
footer
?>
root@OpenWrt:~#

La pagina comandi fa partire motion o lo arresta, la pagina video.sh lo mette in pausa (quindi funziona lo streaming ma non cattura le immagini) o lo attiva.
Le immagini le salvo su una key usb e le trasferisco automaticamente su un server remoto con wput..

nel file motion.conf..

Codice: [Seleziona]
# Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
# To give the filename as an argument to a command append it with %f
on_picture_save wput ftp://username:pass@ip_server/motion/ %f

Sul server poi ho creato uno script, dopo aver installato "mencoder" che trasforma le immagini in avi e lo pone nella dir del server web per poterlo vedere. Questo pu? essere attivato con cron ogni giorno o in altro modo (naturalmente anche a mano).

Codice: [Seleziona]
#!/bin/bash
DATA=`date +%d-%m-%s`
FOLDER="/home/truthahn/motion"
cd ${FOLDER}
ls ${FOLDER}/*.jpg >tmplist_$DATA
mencoder "mf://${FOLDER}/*.jpg" -ovc lavc -o motion${DATA}.avi
cat $FOLDER/tmplist_$DATA|xargs rm --
rm tmplist_$DATA
mv motion${DATA}.avi /var/www/motion
chmod a+r /var/www/motion/motion${DATA}.avi


(http://82.186.215.122/motion3.png)
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: Avatar - Settembre 28, 2010, 11:39:12 pm
Bel lavoro Truthahn   :-)

Ho fatto un lavoro simile ma con serverino atom330
Installato Asterisk, Motion, e gestione dei relay via rs232
come gi? parlato in altro post  :wink:


(http://avatar.myftp.org/public_upload/portable.jpg)

questa ? la pagina che uso per comandare serranda e luci dal Nokia N95
poi ho sviluppato una pagina + complessa per le altre 2 webcam interne
e alcune altre cosucce :)

Per non impegnare troppa cpu qnando non serve ho fatto 2 script
start.sh e stop.sh che comandano motion e che partono all'inizio e alla fine della sessione.


Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Settembre 28, 2010, 11:54:49 pm
Grazie. Si mi ricordo il tuo post, anch'io ho per le mani una main itx ma devo ancora metterci le mani... ci lavorer? nel lungo inverno che ci attende. :-D
Intanto volevo integrare la video sorveglianza nel centro comunale e non pensavo che la vs si prestasse cos? bene :-)
Domande (se hai voglia di rispondere):
1. Asterisk lo usi per comandare anche la videosorveglianza? Hai usato qualcosa simile a quello che ho fatto io o altro?
2. trasferisci in remoto le immagini (per evitare un furto anche di quelle :|)? Se s? come?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: Avatar - Settembre 29, 2010, 12:23:27 am
Citazione
Domande (se hai voglia di rispondere):

e quale sarebbe il problema :D

Citazione
1. Asterisk lo usi per comandare anche la videosorveglianza? Hai usato qualcosa simile a quello che ho fatto io o altro?
per giochicchiare sul telefono, guardo le immagini e se nessuno ? appoggiato alla serranda alzo/abbasso :)
Nel dialplan ho configurato anche un ivr per accendere/spegnere luci e aprire/chiudere serranda
Ho 2 numerazioni Eutelia, 1 la uso per lavoro, l'altra dedicata ai giochini :D
Arriva la chiamata
inserire password
1 per avere lo stato degli apparati ( ti elenca: serranda chiusa/aperta, luce scrivania accesa/spenta ecc)
2  per chiudere serranda fare 2  (controlla lo stato e cambia il messaggio a seconda se aperto/chiuso)
3  per accendere luce scrivania fare 3
4  ecc..

Citazione
2. trasferisci in remoto le immagini (per evitare un furto anche di quelle )? Se s? come?
Uso un dvr professionale per le telecamere di sorveglianza ;)
salvataggio su hd interno e email e upload su ftp in caso di motion detect nelle ore prestabilite.
Dvr Avtech che di sicuro ha un cuore linux :D
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Settembre 29, 2010, 11:19:29 pm
L'eseguibile video.sh perch? possa funzionare anche da remoto e quindi con un ip di classe diversa da quella nattata e rediretta in entrata dal firewall dev'essere cambiato... soatituire la riga

indirizzo="$(uci get network.lan.ipaddr)"

con

indirizzo="$(echo $HTTP_REFERER | awk 'BEGIN { FS="/" } { print $3 }')"

cos? funziona sia in locale che da remoto prendendo l'indirizzo richiesto, dividendo i campi tra i "/" e andando a prendere il terzo...

ad esempio... http://79.145.166.23/cgi-bin/webif/centralina/video.sh (che corrisponde alla variabile della webif $HTTP_REFERER... simile al php  :wink:)
estrae 79.145.166.23.
sul firewall poi bisogna reindirizzare anche le porte 8080 e 8081 (che usa motion) sempre sull'ip della vs.


@kidy ... cambia la stessa variabile anche nel file swich.sh per lo stesso motivo... scusa ma ci son venuto su ora :roll:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Ottobre 01, 2010, 12:33:09 pm
cambiato un po' anche lo script sul server remoto che crea il filmato dalle immagini trasferite da wput..

Codice: [Seleziona]
#!/bin/bash
numero=`ls /home/truthahn/motion | wc -l`
if [ "$numero" -gt "100" ]; then
DATA=`date +%d-%m-%Y-%H-%M`
FOLDER="/home/truthahn/motion"
cd ${FOLDER}
ls ${FOLDER}/*.jpg >tmplist_$DATA
#mencoder "mf://${FOLDER}/*.jpg" -ovc lavc -o motion${DATA}.avi
mencoder "mf://${FOLDER}/*.jpg" -mf type=jpg:fps=2 -o motion${DATA}.avi -ovc l$
cat $FOLDER/tmplist_$DATER|xargs rm --
rm tmplist_$DATA
mv motion${DATA}.avi /var/www/motion
chmod a+rw /var/www/motion/motion${DATA}.avi
fi
exit

Controlla la cartella e se ci sono pi? di 100 immagini mi crea il file avi, l'opzione di mencoder fps=2 lo crea usando 2 immagini per secondo, uguali a quelle impostate su motion, cos? il filmato ? leggibile e non corre come un missile. :-D

Lo script si avvia ogni mezz'ora da cron

Codice: [Seleziona]
*/30 * * * * /usr/local/bin/creamovie

Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: kidy - Gennaio 05, 2011, 10:16:30 pm
Noooo daii mi fate sentire scemo + scemo :cry:
truthahn io vengo a dormire a casa tua per un paio di anni per imparare giusto le basi!!!!!!!!! :-D :-D
Che spettacolo!!!!!!!
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Gennaio 05, 2011, 10:33:40 pm
b?, un letto l'ho sempre per gli ospiti... certo che due anni :?  :-D
Niente di speciale Kidy, solo che da 10 anni non ho pi? la tv.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: kidy - Gennaio 05, 2011, 10:59:57 pm
Ecco lo vedi!! Io invece dovrei eliminare il pc per concentrarmi meglio!!!! :-D :-D :-D :-D

Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: marco1979 - Gennaio 23, 2011, 11:31:33 pm
1 per avere lo stato degli apparati ( ti elenca: serranda chiusa/aperta, luce scrivania accesa/spenta ecc)

@Avatar
 ...puoi spiegarmi come hai fatto a far leggere ad asterisk lo stato degli apparati?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: Avatar - Gennaio 24, 2011, 01:29:26 pm
1 per avere lo stato degli apparati ( ti elenca: serranda chiusa/aperta, luce scrivania accesa/spenta ecc)

@Avatar
 ...puoi spiegarmi come hai fatto a far leggere ad asterisk lo stato degli apparati?

tramite script legge lo stato del PLC su porta seriale e setto le variabili.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: marco1979 - Gennaio 25, 2011, 09:19:10 pm
Ok grazie, ma ? proprio questo che mi sfugge,... Puoi riportarmi un esempio dello script che fa questo lavoro?...
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Febbraio 14, 2011, 03:13:10 pm
1 per avere lo stato degli apparati ( ti elenca: serranda chiusa/aperta, luce scrivania accesa/spenta ecc)

@Avatar
 ...puoi spiegarmi come hai fatto a far leggere ad asterisk lo stato degli apparati?

Guarda qui se ? quello che ti interessava: http://www.nabuk.org/f/index.php?topic=2895.msg25894#msg25894
Il codice va migliorato comunque ...
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: MikeJ - Febbraio 15, 2011, 05:24:17 pm
ma quindi se poi riuscito a far funzionare asterix su VS?
Nell altra discussione mi sono perso :-)))
Riesci a gestire anche gli sms?
magari si potrebbe combinare l accensione luci con gli sms
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Marzo 08, 2011, 04:18:17 pm
Ho installato motion sull'AGPF ma, mentre Firefox carica tranquillamente il video, IE8 mi mostra un quadrato vuoto. La riga di codice che utilizzo ?:

<img src="http://$indirizzo:8081/" alt="Live Stream" width="480" height="360">

Come dovrei riscriverla per farla funzionare anche in IE8?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Marzo 08, 2011, 05:05:55 pm
Son anni che non utilizzo IE... non saprei... forse serve qualche plugin?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Marzo 08, 2011, 10:06:41 pm
Ho fatto il debug in IE8 e sembra che non accetti la variabile $indirizzo passata nel codice HTML:

<img src="http://$indirizzo:8081/" alt="Live Stream" width="480" height="360">

mi fa vedere questo in debug:

<img src="http://:8081" alt="Live Stream" width="480" height="360"><br>

Truthahn, potresti provare, per cortesia, la pagina della Telecamera sulla machcina x86 con Internet Explorer 7 o 8.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Marzo 09, 2011, 04:53:14 pm
Son anni che non utilizzo IE... non saprei... forse serve qualche plugin?

Avevi ragione. Va utilizzato un plugin Java per Internet Explorer ... cambozola. Non sono riuscito a farlo funzionare sull'AGPF. :-D
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Marzo 15, 2011, 12:18:18 pm
Il problema che ho adesso sull'AGPF ? che la pagina video.sh ? molto lenta nel caricarsi. Il video si carica abbastanza veloce ma poi, per caricare il resto del form (il pulsante ATTIVA/DISATTIVA controllo) ci mette una vita. Motion l'ho impostato a 12 fps.

Era cosi lento anche sulla VS?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Marzo 31, 2011, 03:13:54 pm
Il primo script ? chiaro, "motion.sh start" attiva motion, e "motion.sh stop lo disattiva". "gpioctl dirin 12" spegne la "sirena" collegata alla centralina gpio sul gpio 12.
Ciao trythahn mi diresti che sirena hai collegato ed eventualmente il link dove acquistarla.
Grazie.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Marzo 31, 2011, 04:15:57 pm
una campanella della scuola dismessa :-D
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Marzo 31, 2011, 04:56:17 pm
una campanella della scuola dismessa :-D
ihihihihi....non sei un tacchino ma una volpe  :-D
Sapresti consigliarmi qualcosa per lo scopo?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Marzo 31, 2011, 08:09:56 pm
Penso che una vera sirena costi parecchio... per un campanello con una elettrocalamita molto meno e che si trovi facilmente anche in rete. Penso. :roll:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: kidy - Marzo 31, 2011, 08:15:12 pm
una campanella della scuola dismessa :-D

Quando io dico che Truthahn ? un grande !!!!!!!!!!!!!!!!!!
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 04, 2011, 04:30:33 pm
Ciao thruthan ho un problemino ho installato il tuo opk per la VS per il controllo dei gpio con la scheda rel? e funziona alla grande, adesso vorrei far funzionare la webcam LifeCam VX-5500 per la videosorveglianza.
Installato motion e funziona tutto bene ma non riesco ad integrare il tutto nella tua webif.In sostanza ho i problemi che hai riscontrato tu inizialmente: se lancio motion da console mi funziona lo streaming nella video.sh (puntando con il browser all'indirizzo), invece se lo lancio da webif ho la schermata grigia che mi dice che non pu? connetere il device.(ps mi dice che motion ? attivo)


Allora nella pagina comandi.sh della webif ho questo:

Codice: [Seleziona]
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
############################################################################
#
#               truthahn - Nabuk Family - vonkosta@gmail.com
#############################################################################

header "Info" "System" "<img src=\"/images/telecomando.jpg\" alt=\"@TR<<>>\"/>@TR<< Comandi >>"

ngpio1="$(cat /etc/centralina/device | sed -n '/Device1/p'| awk '{ print $3 }')"
ngpio2="$(cat /etc/centralina/device | sed -n '/Device2/p'| awk '{ print $3 }')"
ngpio3="$(cat /etc/centralina/device | sed -n '/Device3/p'| awk '{ print $3 }')"
ngpio4="$(cat /etc/centralina/device | sed -n '/Device4/p'| awk '{ print $3 }')"


periferica2="Apriporta"

for n in $ngpio2  $ngpio3  $ngpio4 ;do
        gpio=FORM_gpio$n
eval gpio=\$$gpio
if equal $gpio "ACCENDI" ; then
gpioctl dirout $n > /dev/null
fi
if equal $gpio "SPEGNI" ; then
gpioctl dirin $n > /dev/null
fi
done

if equal $FORM_gpio1 "APRI" ; then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto aprendo la porta..."

           gpioctl dirout $ngpio1 > /dev/null
           sleep 1
           gpioctl dirin $ngpio1 > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"100")
</script>
EOF
exit
fi

if equal $FORM_internet "ABILITA";then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto abilitando l'accesso a Internet"
uci set network.eth0.vlan0="0 1 2 3 5*"
/etc/init.d/network restart > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"3")
</script>
EOF
exit
fi

if equal $FORM_internet "DISABILITA";then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto disabilitando l'accesso a Internet"
uci set network.eth0.vlan0="2 3 5*"
/etc/init.d/network restart > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"3")
</script>
EOF
exit
fi


if equal $FORM_generale "SPEGNI_TUTTO" ; then
echo "Attendi... sto chiudendo tutto..."
echo "<img src=\"../../../images/clessidra.gif\">"
for n in $ngpio1 $ngpio2 $ngpio3 $ngpio4;do
gpioctl dirin $n > /dev/null

done
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"300")
</script>
EOF
exit
fi


if equal $FORM_motion "ATTIVA" ; then
/usr/sbin/gsmotion.sh start > /dev/null
sleep 5
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_motion "DISATTIVA" ; then
/etc/init.d/gesmotion stop > /dev/null
sleep 5
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"100")
</script>
EOF
exit
fi



###########################################

#
#display_form <<EOF
# start_form|@TR<<&nbsp;>>
# end_form
#EOF

cat <<EOF
<form method="get" action="comandi.sh">
<p><p>
<center>
<table width="40%">
<tr><td><strong></td><td><strong><center>STATO</td>
<td><strong><center>COMANDO</strong></td></tr>
EOF



for n in $ngpio2 $ngpio3 $ngpio4;do
gp="$(gpioctl get $n | sed -n '/Pin/p'| awk '{ print $4 }')"
per="$(cat /etc/centralina/device | sed -n '/ '$n'/p'| awk '{ print $2 }')"
per="$(echo "$per" | sed '/_/s// /g')"
# echo $n
if equal $gp "LOW"; then
cat <<EOF
<tr><td>$per:</td><td><center><img src="/images/lamp.jpg"></td>
<td><center><input type="submit" name="gpio$n" value=SPEGNI ></td></tr>
EOF
else
cat <<EOF
<tr><td>$per :</td><td><center><img src="/images/lamp1.jpg"></td>
<td><center><input type="submit" name="gpio$n" value=ACCENDI ></td></tr>
EOF
fi
done

cat <<EOF
<tr><td>$periferica2 :</td><td><center><center><img src="/images/chiave.jpg"></td>
<td><center><input type="submit" name="gpio1" value=APRI
onClick="javascript:return confirm('Vuoi veramente aprire la porta?');"></td></tr>
EOF
#accesso="$(echo "$(uci get network.eth0.vlan0)" |  awk '{ print $1 }' )"
#if equal $accesso "2";then
#cat <<EOF
#<tr><td>Internet :</td><td><center><img src="/images/internet1.jpg"></td>
#<td><center><input type="submit" name="internet" value="ABILITA"
#onClick="javascript:return confirm('Vuoi veramente abilitare Internet?');"><td></tr>
#EOF
#else
#cat <<EOF
#<tr><td>Internet :</td><td><center><img src="/images/internet.jpg"></td>
#<td><center><input type="submit" name="internet" value="DISABILITA"
#onClick="javascript:return confirm('Vuoi veramente dasabilitare Internet?');"></td></tr>
#EOF
#fi

cat <<EOF
<tr><td>Generale :</td><td></td><td><center><input type="submit" name="generale" value="SPEGNI_TUTTO" ></td></tr>
</table></form>
&nbsp;<p>&nbsp;<p>
EOF

pidmotion=`pidof motion`
lamp="lamp1.jpg"
valore="ATTIVA"
if ! equal $pidmotion ""; then
lamp="lamp.jpg"
valore="DISATTIVA"
fi
cat <<EOF
<td><strong>Videocontrollo:</strong></td><td><center><center><img src="/images/$lamp"></td>
<td><center><input type="submit" name="motion" value="$valore"></td></tr>
EOF

display_form <<EOF
start_form|@TR<<&nbsp;>>
end_form
EOF

presenza="$(cat /etc/centralina/presenza)"
if ! equal $presenza "" ; then
echo "Il centro ? attualmente utilizzato da:<strong> $presenza </strong>"
fi


cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"30000")
</script>
EOF

footer
 
?>

nella video.sh ho questo:
Codice: [Seleziona]
root@OpenWrt:~# cat /www/cgi-bin/webif/centralina/video.sh
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
############################################################################
#
# Descrizione:
#       Mostra lo streaming video
#
#
#               truthahn - Nabuk Family - vonkosta@gmail.com
#############################################################################
header "Info" "System" "<img src=\"/images/telecamera.jpg\">@TR<< Telecamera>>"

indirizzo="$(uci get network.lan.ipaddr)"
if equal $FORM_motion "DISATTIVA" ; then
elinks http://$indirizzo:8080/0/detection/pause > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/video.sh\"',"100")
</script>
EOF
fi
if equal $FORM_motion "ATTIVA" ; then
elinks http://$indirizzo:8080/0/detection/start > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/video.sh\"',"100")
</script>
EOF
exit
fi
pidmotion=`pidof motion`
if ! equal $pidmotion "";then
cat <<EOF
<form method="get" action="video.sh">
<center><img src="http://$indirizzo:8081" ><br>
EOF
status=$(elinks http://$indirizzo:8080/0/detection/status)
stato="$(echo $status | sed -n '/status/p'| awk '{ print $7 }')"
if  equal $stato "ACTIVE"; then
cat <<EOF
<center>
Il videocontrollo ? attivo.<p>
<input type="submit" name="motion" value=DISATTIVA></form>
EOF
else
cat <<EOF
<center>
Il videocontrollo funziona solo in streaming.<br>
Per attivare la cattura delle immagini clicca sotto.<p>
<input type="submit" name="motion" value=ATTIVA></form>
EOF
fi
else
cat <<EOF
<center>
Nessuna videocamera collegata.<br>
Per attivare la videocamera vai alla pagina COMANDI.<p>
EOF
fi
footer
?>



e nel gsmotion.sh ho questo (sto trascurando tutta la parte relativa ad asterisk)

Codice: [Seleziona]
root@OpenWrt:~# cat /usr/sbin/gsmotion.sh
#!/bin/sh
case $1 in
start)
/usr/bin/motion &
;;
stop)
PID=`pidof motion`
kill $PID
;;
esac


Sto impazzendo perch? non capisco il problema.
Help me  :cry:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 04, 2011, 04:50:03 pm
Ciao thruthan ho un problemino ho installato il tuo opk per la VS per il controllo dei gpio con la scheda rel? e funziona alla grande, adesso vorrei far funzionare la webcam LifeCam VX-5500 per la videosorveglianza.
Installato motion e funziona tutto bene ma non riesco ad integrare il tutto nella tua webif.In sostanza ho i problemi che hai riscontrato tu inizialmente: se lancio motion da console mi funziona lo streaming nella video.sh (puntando con il browser all'indirizzo), invece se lo lancio da webif ho la schermata grigia che mi dice che non pu? connetere il device.(ps mi dice che motion ? attivo)


Allora nella pagina comandi.sh della webif ho questo:

Codice: [Seleziona]
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
############################################################################
#
#               truthahn - Nabuk Family - vonkosta@gmail.com
#############################################################################

header "Info" "System" "<img src=\"/images/telecomando.jpg\" alt=\"@TR<<>>\"/>@TR<< Comandi >>"

ngpio1="$(cat /etc/centralina/device | sed -n '/Device1/p'| awk '{ print $3 }')"
ngpio2="$(cat /etc/centralina/device | sed -n '/Device2/p'| awk '{ print $3 }')"
ngpio3="$(cat /etc/centralina/device | sed -n '/Device3/p'| awk '{ print $3 }')"
ngpio4="$(cat /etc/centralina/device | sed -n '/Device4/p'| awk '{ print $3 }')"


periferica2="Apriporta"

for n in $ngpio2  $ngpio3  $ngpio4 ;do
        gpio=FORM_gpio$n
eval gpio=\$$gpio
if equal $gpio "ACCENDI" ; then
gpioctl dirout $n > /dev/null
fi
if equal $gpio "SPEGNI" ; then
gpioctl dirin $n > /dev/null
fi
done

if equal $FORM_gpio1 "APRI" ; then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto aprendo la porta..."

           gpioctl dirout $ngpio1 > /dev/null
           sleep 1
           gpioctl dirin $ngpio1 > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"100")
</script>
EOF
exit
fi

if equal $FORM_internet "ABILITA";then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto abilitando l'accesso a Internet"
uci set network.eth0.vlan0="0 1 2 3 5*"
/etc/init.d/network restart > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"3")
</script>
EOF
exit
fi

if equal $FORM_internet "DISABILITA";then
echo "<img src=\"../../../images/clessidra.gif\">"
echo "Attendi... sto disabilitando l'accesso a Internet"
uci set network.eth0.vlan0="2 3 5*"
/etc/init.d/network restart > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"3")
</script>
EOF
exit
fi


if equal $FORM_generale "SPEGNI_TUTTO" ; then
echo "Attendi... sto chiudendo tutto..."
echo "<img src=\"../../../images/clessidra.gif\">"
for n in $ngpio1 $ngpio2 $ngpio3 $ngpio4;do
gpioctl dirin $n > /dev/null

done
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"300")
</script>
EOF
exit
fi


if equal $FORM_motion "ATTIVA" ; then
/usr/sbin/gsmotion.sh start > /dev/null
sleep 5
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_motion "DISATTIVA" ; then
/etc/init.d/gesmotion stop > /dev/null
sleep 5
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"100")
</script>
EOF
exit
fi



###########################################

#
#display_form <<EOF
# start_form|@TR<<&nbsp;>>
# end_form
#EOF

cat <<EOF
<form method="get" action="comandi.sh">
<p><p>
<center>
<table width="40%">
<tr><td><strong></td><td><strong><center>STATO</td>
<td><strong><center>COMANDO</strong></td></tr>
EOF



for n in $ngpio2 $ngpio3 $ngpio4;do
gp="$(gpioctl get $n | sed -n '/Pin/p'| awk '{ print $4 }')"
per="$(cat /etc/centralina/device | sed -n '/ '$n'/p'| awk '{ print $2 }')"
per="$(echo "$per" | sed '/_/s// /g')"
# echo $n
if equal $gp "LOW"; then
cat <<EOF
<tr><td>$per:</td><td><center><img src="/images/lamp.jpg"></td>
<td><center><input type="submit" name="gpio$n" value=SPEGNI ></td></tr>
EOF
else
cat <<EOF
<tr><td>$per :</td><td><center><img src="/images/lamp1.jpg"></td>
<td><center><input type="submit" name="gpio$n" value=ACCENDI ></td></tr>
EOF
fi
done

cat <<EOF
<tr><td>$periferica2 :</td><td><center><center><img src="/images/chiave.jpg"></td>
<td><center><input type="submit" name="gpio1" value=APRI
onClick="javascript:return confirm('Vuoi veramente aprire la porta?');"></td></tr>
EOF
#accesso="$(echo "$(uci get network.eth0.vlan0)" |  awk '{ print $1 }' )"
#if equal $accesso "2";then
#cat <<EOF
#<tr><td>Internet :</td><td><center><img src="/images/internet1.jpg"></td>
#<td><center><input type="submit" name="internet" value="ABILITA"
#onClick="javascript:return confirm('Vuoi veramente abilitare Internet?');"><td></tr>
#EOF
#else
#cat <<EOF
#<tr><td>Internet :</td><td><center><img src="/images/internet.jpg"></td>
#<td><center><input type="submit" name="internet" value="DISABILITA"
#onClick="javascript:return confirm('Vuoi veramente dasabilitare Internet?');"></td></tr>
#EOF
#fi

cat <<EOF
<tr><td>Generale :</td><td></td><td><center><input type="submit" name="generale" value="SPEGNI_TUTTO" ></td></tr>
</table></form>
&nbsp;<p>&nbsp;<p>
EOF

pidmotion=`pidof motion`
lamp="lamp1.jpg"
valore="ATTIVA"
if ! equal $pidmotion ""; then
lamp="lamp.jpg"
valore="DISATTIVA"
fi
cat <<EOF
<td><strong>Videocontrollo:</strong></td><td><center><center><img src="/images/$lamp"></td>
<td><center><input type="submit" name="motion" value="$valore"></td></tr>
EOF

display_form <<EOF
start_form|@TR<<&nbsp;>>
end_form
EOF

presenza="$(cat /etc/centralina/presenza)"
if ! equal $presenza "" ; then
echo "Il centro ? attualmente utilizzato da:<strong> $presenza </strong>"
fi


cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"30000")
</script>
EOF

footer
 
?>

nella video.sh ho questo:
Codice: [Seleziona]
root@OpenWrt:~# cat /www/cgi-bin/webif/centralina/video.sh
#!/usr/bin/webif-page
<?
. /usr/lib/webif/webif.sh
############################################################################
#
# Descrizione:
#       Mostra lo streaming video
#
#
#               truthahn - Nabuk Family - vonkosta@gmail.com
#############################################################################
header "Info" "System" "<img src=\"/images/telecamera.jpg\">@TR<< Telecamera>>"

indirizzo="$(uci get network.lan.ipaddr)"
if equal $FORM_motion "DISATTIVA" ; then
elinks http://$indirizzo:8080/0/detection/pause > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/video.sh\"',"100")
</script>
EOF
fi
if equal $FORM_motion "ATTIVA" ; then
elinks http://$indirizzo:8080/0/detection/start > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/video.sh\"',"100")
</script>
EOF
exit
fi
pidmotion=`pidof motion`
if ! equal $pidmotion "";then
cat <<EOF
<form method="get" action="video.sh">
<center><img src="http://$indirizzo:8081" ><br>
EOF
status=$(elinks http://$indirizzo:8080/0/detection/status)
stato="$(echo $status | sed -n '/status/p'| awk '{ print $7 }')"
if  equal $stato "ACTIVE"; then
cat <<EOF
<center>
Il videocontrollo ? attivo.<p>
<input type="submit" name="motion" value=DISATTIVA></form>
EOF
else
cat <<EOF
<center>
Il videocontrollo funziona solo in streaming.<br>
Per attivare la cattura delle immagini clicca sotto.<p>
<input type="submit" name="motion" value=ATTIVA></form>
EOF
fi
else
cat <<EOF
<center>
Nessuna videocamera collegata.<br>
Per attivare la videocamera vai alla pagina COMANDI.<p>
EOF
fi
footer
?>



e nel gsmotion.sh ho questo (sto trascurando tutta la parte relativa ad asterisk)

Codice: [Seleziona]
root@OpenWrt:~# cat /usr/sbin/gsmotion.sh
#!/bin/sh
case $1 in
start)
/usr/bin/motion &
;;
stop)
PID=`pidof motion`
kill $PID
;;
esac


Sto impazzendo perch? non capisco il problema.
Help me  :cry:
Hai verificato i permessi dei file?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 04, 2011, 04:57:25 pm
Ciao....uhm... si penso vadano bene....
Codice: [Seleziona]
root@OpenWrt:/www/cgi-bin/webif/centralina# ls -la
drwxr-xr-x    3 1000     1000             0 Jan  1 01:24 .
drwxr-xr-x    3 1000     1000             0 Jan  1 02:46 ..
-rw-r--r--    1 1000     1000            47 Jan  1  2000 .categories.gpio
-rw-r--r--    1 1000     1000           295 Jan  1  2000 .categories.ori
-rwxr-xr-x    1 1000     1000          6912 Feb  4  2010 backup.sh
-rwxr-xr-x    1 1000     1000          5614 Jan  1 01:36 comandi.sh
-rwxr-xr-x    1 1000     1000          9026 Apr  6  2010 cron.sh
-rwxr-xr-x    1 1000     1000          1264 Jan  1  2000 info-about.sh
-rwxr-xr-x    1 1000     1000         12602 Apr  3  2010 log.sh
-rwxr-xr-x    1 1000     1000          8673 Feb  6  2010 permessitel.sh
-rwxr-xr-x    1 1000     1000          1456 May 18  2010 swich.sh
-rwxr-xr-x    1 root     root          1714 Jan  1 02:45 video.sh
-rwxr-xr-x    1 root     root          5902 Jan  1  1970 video_truth.sh

Codice: [Seleziona]
root@OpenWrt:/www/cgi-bin/webif/centralina# ls -la /usr/sbin/gsmotion.sh
-rwxr-xr-x    1 root     root            92 Jan  1 02:16 /usr/sbin/gsmotion.sh
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 04, 2011, 05:07:31 pm
Nel file motion.conf c'? una riga riguardo la possibilit? bloccare l'utilizzo di motion su localhost. Non ricordo esattamente la voce ma era una cosa simile a: local control on. Mettilo su off e riavvia motion

Dimenticavo: a me funzionava con Mozilla Firefox (con IE no)
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 04, 2011, 05:57:29 pm
Nel file motion.conf c'è una riga riguardo la possibilità bloccare l'utilizzo di motion su localhost. Non ricordo esattamente la voce ma era una cosa simile a: local control on. Mettilo su off e riavvia motion

Dimenticavo: a me funzionava con Mozilla Firefox (con IE no)
Già fatto ma non funge.
Ho notato però un'anomalia, quando lancio motion da webif.
Questo è il ps che mi dice che motion è avviato dall' utente 1000
Codice: [Seleziona]
15832 1000      7740 S    /usr/bin/motion
invece quando lo lancio da console viene avviato da root e funziona corretamente.
Sarà questo il problema?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 04, 2011, 06:27:35 pm
Funziona!! :-D
(http://82.186.215.122/images/motion.png)
Ma questo ? l'opk della VS?
Quello che ho scaricato io non ha il codice della telecamera.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 04, 2011, 09:47:56 pm
Prova ad impostare come owner dei file "root"
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 04, 2011, 10:38:16 pm
Prova ad impostare come owner dei file "root"
chi deve essere owner di video.sh?
riguardando i miei post precedenti ho notato che i ile di centralina sono tutti ownerati (si può dire?...ihihih)da 1000 mentre video.sh da root.
Ho provato a settare /sbin/gsmotion.sh e video.sh a 1000 ma niente sempre schermata della web grigia con il messaggio "unable connect to device"
Comunque grazie
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Aprile 04, 2011, 11:19:52 pm
vedi qua (http://www.nabuk.org/f/index.php?topic=2638.msg24647#msg24647)
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 05, 2011, 11:25:03 am
vedi qua (http://www.nabuk.org/f/index.php?topic=2638.msg24647#msg24647)
Ciao thruthan provato a mofificare ma niente.
Il problema e che se lancio /usr/bin/motion da shell ho questo:

Codice: [Seleziona]
PID USER       VSZ STAT COMMAND
1160 root      8348 S    /usr/bin/motion
e puntando a http://192.168.1.11/cgi-bin/webif/centralina/video.sh vedo lo streming correttamente (e comunque la cattura non sembra funzionare)

Se attivo la cam dalla pagina comandi della webif:
Codice: [Seleziona]
PID USER       VSZ STAT COMMAND
1230 1000     8356 S    /usr/bin/motion
puntando a http://192.168.1.11/cgi-bin/webif/centralina/video.sh vedo la schemata grigia che mi avverte che il device è scollegato.
Ho postato il codice inserito nel post di sopra.
Non c'è un opk con la cam già integrata?
Ho trovato quello per x86 ma mi sembra un tantino diverso.

Grazie
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Aprile 05, 2011, 03:25:07 pm
forse nell'opk non ho fatto attenzione ai permessi...
metti tutto di propriet? di root e vediamo...

Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 05, 2011, 06:12:44 pm
forse nell'opk non ho fatto attenzione ai permessi...
metti tutto di proprietà di root e vediamo...
infatti era una questione di permessi...ho messo tutto sotto l'egemonia di root  :-D e adesso si avvia correttamente !!!
Poi ho modificato lo script originale comandi.sh per killare motion:
Codice: [Seleziona]
if equal $FORM_motion "DISATTIVA" ; then
pidmotion=`pidof motion`   ----> inserito questo
kill $pidmotion   ------------------> inserito questo
#/etc/init.d/gsmotion stop > /dev/null   ---> ho eliminato questo perchè non lo trovava e rimaneva attivo
sleep 5
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"100")
</script>
EOF
exit
fi

Grazie mille
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Aprile 05, 2011, 08:46:33 pm
Bene!!! Avanti allora!! :-D
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 05, 2011, 09:13:15 pm
Bene!!! Avanti allora!! :-D

Mi piacerebbe ma risolto un problema eccone un 'altro  :-o
Non funziona il link per stoppare la cattura delle immagini.
Purtroppo non ho installato il firmware di ramponis e ci sar? qualche problema di allineamento con i pacchetti....bo!
Secondo me ? perch? il mio elinks non funge e ho visto che il tuo script legge lo stato di motion dal browser.
Questa ? la mia situazione:

Codice: [Seleziona]

root@OpenWrt:/usr/local/apache2/htdocs/cam1# ldd /usr/bin/openssl
       
        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x2aac0000)
        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x2ab10000)
        libdl.so.0 => /lib/libdl.so.0 (0x2ac42000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ac55000)
        libc.so.0 => /lib/libc.so.0 (0x2ac77000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)


root@OpenWrt:/usr/local/apache2/htdocs/cam1# ldd /usr/bin/elinks
       
        libssl.so.0.9.8 => not found
        libcrypto.so.0.9.8 => not found
        libdl.so.0 => /lib/libdl.so.0 (0x2aac0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aad3000)
        libc.so.0 => /lib/libc.so.0 (0x2aaf5000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)


Ad elinks mancano queste librerie :  libssl.so.0.9.8 => not found
                                                libcrypto.so.0.9.8 => not found

infatti quando lo lancio da shell:

Codice: [Seleziona]
root@OpenWrt:~# elinks http://192.168.1.11:8080/0/detection/pause
elinks: can't load library 'libssl.so.0.9.8'

Consigli?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 05, 2011, 10:10:15 pm
Per la mancanza di quella libreria: installa libopenssl_0.9.8m-3_brcm63xx.ipk (prima fai un opkg update).
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 06, 2011, 10:58:41 am
Per la mancanza di quella libreria: installa libopenssl_0.9.8m-3_brcm63xx.ipk (prima fai un opkg update).
Si ci avevo pensato ma il problema è che con il kernel 2.6.35.11 questo pacchetto che mi consigli non riesco ad installarlo e farlo funzionare.
Dal repositorie ufficiale mi scarica una versione di libopenssl che non ha le librerie per elinks che risulta essere più vecchio...mah!!!
Non mi resta che dare ad elinks 5 euro per mandarlo in libreria a comprarsi ciò che gli serve!!! ihihihihi

La soluzione potrebbe essere riuscire a leggere lo stato di motion senza elinks ma non ci arrivo a questo.  :cry:

Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 06, 2011, 12:16:44 pm
Che errore ti da quando provi ad installarla? Alcune volte puoi provare un force upgrade (c'? il parametro di opkg ... lo potresti vedere con opkg -h)
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 06, 2011, 12:37:18 pm
Che errore ti da quando provi ad installarla? Alcune volte puoi provare un force upgrade (c'? il parametro di opkg ... lo potresti vedere con opkg -h)
be io ho trovato force downgrade....comunque il messaggio ? sempre:
Codice: [Seleziona]
root@OpenWrt:/# opkg install  --force-downgrade http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/&file=libopenssl_0.9.8m-3_brcm63xx.ipk
[1]-  Done(255)                  opkg install http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/
root@OpenWrt:/# Downloading http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/.
Collected errors:
 * deb_extract: /tmp/opkg-lRw3uT/packages: invalid magic
 * pkg_init_from_file: Failed to extract control file from /tmp/opkg-lRw3uT/packages.

Mi sa che i pacchetti non sono allineati con il kernel...possibile che per risolvere devo ricorrere all'ennesima volta alla seriale?  :x
Ero ad un passo dalla fine...azz
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 06, 2011, 12:45:01 pm
Che scheda wireless ha il tuo AGPF? Io ho Broadcom e ho utilizzato l'immagine di esteban. Se ti serve, fammi sapere.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 06, 2011, 12:48:05 pm
Che errore ti da quando provi ad installarla? Alcune volte puoi provare un force upgrade (c'? il parametro di opkg ... lo potresti vedere con opkg -h)
be io ho trovato force downgrade....comunque il messaggio ? sempre:
Codice: [Seleziona]
root@OpenWrt:/# opkg install  --force-downgrade http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/&file=libopenssl_0.9.8m-3_brcm63xx.ipk
[1]-  Done(255)                  opkg install http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/
root@OpenWrt:/# Downloading http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/.
Collected errors:
 * deb_extract: /tmp/opkg-lRw3uT/packages: invalid magic
 * pkg_init_from_file: Failed to extract control file from /tmp/opkg-lRw3uT/packages.

Mi sa che i pacchetti non sono allineati con il kernel...possibile che per risolvere devo ricorrere all'ennesima volta alla seriale?  :x
Ero ad un passo dalla fine...azz

Hai provato ad installare il pacchetto direttamente dall'interfaccia X-Wrt oppure ti da una versione aggiornata? (System - Packages)
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 06, 2011, 12:51:43 pm
Che errore ti da quando provi ad installarla? Alcune volte puoi provare un force upgrade (c'? il parametro di opkg ... lo potresti vedere con opkg -h)
be io ho trovato force downgrade....comunque il messaggio ? sempre:
Codice: [Seleziona]
root@OpenWrt:/# opkg install  --force-downgrade http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/&file=libopenssl_0.9.8m-3_brcm63xx.ipk
[1]-  Done(255)                  opkg install http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/
root@OpenWrt:/# Downloading http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/21342%20%28Backfire%20OK%29/packages/.
Collected errors:
 * deb_extract: /tmp/opkg-lRw3uT/packages: invalid magic
 * pkg_init_from_file: Failed to extract control file from /tmp/opkg-lRw3uT/packages.

Mi sa che i pacchetti non sono allineati con il kernel...possibile che per risolvere devo ricorrere all'ennesima volta alla seriale?  :x
Ero ad un passo dalla fine...azz

Hai provato ad installare il pacchetto direttamente dall'interfaccia X-Wrt oppure ti da una versione aggiornata? (System - Packages)
Si certo ? la prima cosa che ho fatto ma mi da i paccheti aggiornati per il mio kernel.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 06, 2011, 12:53:41 pm
Prova qui: http://mirror1.ku.ac.th/openwrt/snapshots/trunk/brcm63xx/packages/libopenssl_0.9.8o-1_brcm63xx.ipk
Ci sono 2 pacchetti diversi... magari funziona (dovrebbero essere compilati per 2.6.35.11)
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 06, 2011, 12:55:10 pm
Prova qui: http://mirror1.ku.ac.th/openwrt/snapshots/trunk/brcm63xx/packages/libopenssl_0.9.8o-1_brcm63xx.ipk
Ci sono 2 pacchetti diversi... magari funziona (dovrebbero essere compilati per 2.6.35.11)
ok provo grazie mille
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 06, 2011, 01:03:11 pm
Prova qui: http://mirror1.ku.ac.th/openwrt/snapshots/trunk/brcm63xx/packages/libopenssl_0.9.8o-1_brcm63xx.ipk
Ci sono 2 pacchetti diversi... magari funziona (dovrebbero essere compilati per 2.6.35.11)
ok provo grazie mille
uhm...questa ? la versione che ho installato precedentemente...mancano le librerie per elinks
Ramponis mi aveva consigliato questo: http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/19530/ (http://repofulm.dyndns.org/index.php?dir=ramponis/AGPF/19530/)
per far funzionare anche i driver b43 ma avevo gi? installato l'ultimo firmware con il wi-fi funzionante e sono andato avanti.

Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 06, 2011, 01:13:38 pm
Apriamo una parantesi perchè a meno di un lampo di genio di qualcuno penso che flasharò di nuovo  :roll:
Un'altra cosa che modem/router hai per la connesione ad internet.Ho installato asterisk sul secondo agpf, funziona in lan, funziona in uscita ma non in ingresso.Penso che sia un problema di nat simmetrico del mio zyxel. (avevo lo stesso problema sul mio linux ubuntu)
A te funzionano le chiamate in ingresso?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 06, 2011, 01:53:47 pm
Io c'ho un Netgear per la connessione ad internet. A me funzionano sia le chiamate in ingresso che in uscita. Dovresti inoltrare le porte 5060 e 10000-20000 UDP (io l'ho messo nella DMZ)

In sip.conf io c'ho: externip=123.123.123.123


Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 06, 2011, 04:39:08 pm
Si lo so ho fatto mille tentativi ma sono arrivato alla conclusione che ? il tipo di nat che ho sul router.
Scusa ma cos'? externip=123.123.123.123  :? Non dovrebbe essere il tuo ip pubblico o la massimo exterhost=tuo.dyndns.org ?
Uhm... DMZ... :-o attento alla sicurezza l'altro giorno mentre provavo e stavo facendo un debug del sip mi sono accorto di un attacco di forza bruta...(e l'avevo avviato da pochi minuti!!!)
Ci sono dei bot sulla rete in ascolto sulle porte di asterisk che provano a registrarsi.Non sottovalutare la situazione...potresti ritrovarti senza credito  :wink:

uffa non voglio riflashare per colpa di elinks  :cry:
Attendiamo thruthan vediamo se mi illumina  :lol:



Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 06, 2011, 07:38:32 pm
Si, quello dovrebbe essere l'IP pubblico. Per il fatto di aver messo asterisk nella DMZ non ho problemi ... ? solo per i test  :wink:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 07, 2011, 02:37:45 pm
Codice: [Seleziona]
root@OpenWrt:/usr/local/apache2/htdocs/cam1# ldd /usr/bin/openssl
       
        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x2aac0000)
        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x2ab10000)
        libdl.so.0 => /lib/libdl.so.0 (0x2ac42000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ac55000)
        libc.so.0 => /lib/libc.so.0 (0x2ac77000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)


root@OpenWrt:/usr/local/apache2/htdocs/cam1# ldd /usr/bin/elinks
       
        libssl.so.0.9.8 => not found
        libcrypto.so.0.9.8 => not found
        libdl.so.0 => /lib/libdl.so.0 (0x2aac0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aad3000)
        libc.so.0 => /lib/libc.so.0 (0x2aaf5000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)


Ad elinks mancano queste librerie :  libssl.so.0.9.8 => not found
                                                libcrypto.so.0.9.8 => not found

infatti quando lo lancio da shell:

Codice: [Seleziona]
root@OpenWrt:~# elinks http://192.168.1.11:8080/0/detection/pause
elinks: can't load library 'libssl.so.0.9.8'

Ho risolto!!!
Bisognava fare solo un downgrade della libreria libopenssl
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 07, 2011, 03:01:25 pm
Avevo sbagliato io ... invece di dirti di utilizzare force downgrade ti ho detto force upgrade ....  :|
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 07, 2011, 08:53:05 pm
Avevo sbagliato io ... invece di dirti di utilizzare force downgrade ti ho detto force upgrade ....  :|
No tu avevi detto giusto per? mi dava un errore...sono andato a spulciare nei package dei vecchi firmware e ho trovato quello giusto.  :-D
L'ho installato normalmente da webif.
Grazie comunque dell'aiuto sempre utile!!!!
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: rino77 - Aprile 09, 2011, 04:05:04 pm
Grazie truthahn  , con il tuo aiuto la webcam funziona (su agpf).

(http://img25.imageshack.us/img25/8665/immagine2hlt.jpg) (http://img25.imageshack.us/i/immagine2hlt.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

Ringrazio anche fpaliuc per la disponibilit?.

Mi manca per? ancora una piccola cosa da risolvere, la mia rete ? fatta cos?:

Router (IP 192.168.1.1) <--- Wi-Fi---> (IP 192.168.1.2) Agpf-OpenWrt (IP 192.168.2.1)<--- Lan ---> PC (IP 192.168.2.x)

Dalla lan dell'agpf (openwrt) riesco ad accedere alla webif, invece dalla lan o wifi del router non riesco.
Ho fatto una marea di prove con il firewall di openwrt, ma senza successo..
Quello che mi interessa ? poter accedere dall'esterno alla pagine della webcam.
Quali sono le regole che dovrei impostare in openwrt???

Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 09, 2011, 06:38:45 pm
Ciao Rino!

Come funziona la webcam sul tuo AGPF? Sul mio ci metteva un p? per caricare l'intera pagina viseo.sh
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: rino77 - Aprile 09, 2011, 07:33:09 pm
Ciao Rino!

Come funziona la webcam sul tuo AGPF? Sul mio ci metteva un p? per caricare l'intera pagina viseo.sh

? una scheggia! Avevo letto del problema che avevi avuto sull'agpf, e stavo quasi per rinunciare, per? poi ho voluto provare ugualmente e devo dire che il risultato ? soddisfacente. La pagina si carica all'istante, l'unico problema ? la poca ram (32MB) che ? occupata al 97%, per il resto sembra andare bene.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 09, 2011, 09:20:30 pm
Sul mio caricava il flusso video ma poi ci metteva parecchio a caricare il resto della pagina: il pulsante attiva e il testo sotto.

Per la RAM potresti aggiungere un achiavetta USB con una partizione swap. (io non ho mai provato ma lo prover? appena riesc a capire se chan_datacard funziona o no sull'AGPF).
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: rino77 - Aprile 13, 2011, 06:01:30 pm
Con questa configurazione:
Codice: [Seleziona]
Router (IP 192.168.1.1) <--- Wi-Fi---> (IP 192.168.1.2) Agpf-OpenWrt (IP 192.168.2.1)<--- Lan ---> PC (IP 192.168.2.x)non riesco in nessun modo ad accedere alla webif collegandomi al router.

Invece, con questa configurazione:
Codice: [Seleziona]
Router (IP 192.168.1.1) <--- lan---> (IP 192.168.1.2) Agpf-OpenWrt (IP 192.168.2.1)<--- Lan ---> PC (IP 192.168.2.x)ed impostando questa regola:
Codice: [Seleziona]
iptables -I INPUT -p tcp --dport 80 -j ACCEPTaccedo alla webif e alla pagina video.

Con la prima configurazione non posso controllare la telecamera in remoto, con la seconda si.
Per quanto riguarda la visualizzazione remota delle immagini dell webcam, basta collegarsi a http://ip:8081 e le immagini sono disponibili ma come si può fare per evitare che chiunque possa accedervi???




Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 13, 2011, 06:42:41 pm
Con questa configurazione:
Codice: [Seleziona]
Router (IP 192.168.1.1) <--- Wi-Fi---> (IP 192.168.1.2) Agpf-OpenWrt (IP 192.168.2.1)<--- Lan ---> PC (IP 192.168.2.x)non riesco in nessun modo ad accedere alla webif collegandomi al router.

Invece, con questa configurazione:
Codice: [Seleziona]
Router (IP 192.168.1.1) <--- lan---> (IP 192.168.1.2) Agpf-OpenWrt (IP 192.168.2.1)<--- Lan ---> PC (IP 192.168.2.x)ed impostando questa regola:
Codice: [Seleziona]
iptables -I INPUT -p tcp --dport 80 -j ACCEPTaccedo alla webif e alla pagina video.

Con la prima configurazione non posso controllare la telecamera in remoto, con la seconda si.
Per quanto riguarda la visualizzazione remota delle immagini dell webcam, basta collegarsi a http://ip:8081 e le immagini sono disponibili ma come si pu? fare per evitare che chiunque possa accedervi???


Ciao anch'io sto facendo mille prove per accedere in wi-fi ma ancora niente.
Comunque per accedere da remoto ti consiglio di usare ssh con chiave pubblica, creare quindi un tunnel e raggiungere ll tuo agpf.
In questo modo viaggi su una rete criptata e stai "tranquillo".  :-D

I
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 13, 2011, 09:28:26 pm
Un esempio su come configurare il tunnel ssh?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 13, 2011, 10:14:14 pm
In effetti la sicurezza ? importante.
Visto che ho appena effettuate le modifiche per effettuare il tunnel ti posto i passi da seguire.
In primis devi avere openssh (se usi linux) o putty (se usi winzoz) installato sul pc client.
La rete ? piena di guide per effettuare questa operazione quindi la saltiamo (magari ce l'hai gi?)
Configurare, per maggior sicurezza, dropbear ad accettare accessi con chiave pubblica piuttosto che tramite user e password e magari cambiare anche la porta in ascolto (consigliato!)
Puoi trovare una guida qua: http://wiki.openwrt.org/oldwiki/DropbearPublicKeyAuthenticationHowto (http://wiki.openwrt.org/oldwiki/DropbearPublicKeyAuthenticationHowto)
Fatto questo siamo a met? dell'opera.
Adesso da linux lanciare il comando:
Codice: [Seleziona]
ssh  -p5555  root@192.168.1.11 -L 12345:127.0.0.1:80 -L 12346:127.0.0.1:8080 -L 12347:127.0.0.1:8081

Puoi farti anche un semplice script per evitare di lanciare periodicamente questa riga cos?:

Codice: [Seleziona]
#!/bin/sh
ssh  -p2225  root@192.168.1.11 -L 12345:127.0.0.1:80 -L 12346:127.0.0.1:8080 -L 12347:127.0.0.1:8081
exit

dove:
root@192.168.1.11 -->  ? l'indirizzo locale della mia centralina (potrebbe essere del tipo dyndns.org o ip statico pubblico)
5555  --------------->  ? la porta dove ssh ? in ascolto (di default ? la 22)
12345  -------------->  ? la porta in ascolto su dropbear che effettua il forwarding sulla 80
12346  -------------->  ? la porta in ascolto sul dropbear che effettua il forwarding sulla 8080
12347  -------------->  ? la porta in ascolto sul dropbear che effettua il forwarding sulla 8081

N.B Queste associazioni di porte devono essere rispettate se vogliamo che tutto funzioni! (tranne che per la 5555)

Da windows devi usare Putty ma sorvoliamo.  :-D

Adesso dobbiamo modificare qualche linea di codice negli script di truthahn.

In video.sh modificare:
Codice: [Seleziona]
indirizzo="$(echo $HTTP_REFERER | awk 'BEGIN { FS="/" } { print $3 }')"

in

Codice: [Seleziona]
indirizzo_test="$(echo $HTTP_REFERER | awk 'BEGIN { FS="/" } { print $3 }')"
if equal $indirizzo_test "127.0.0.1:12345" ; then
indirizzo="127.0.0.1"
porta_motion="12347"
else
indirizzo="$indirizzo_test"
porta_motion="8081"
fi

e pi? in basso cambiare:

Codice: [Seleziona]
<center><img src="http://$indirizzo:8081" ><br>

in

Codice: [Seleziona]
<center><img src="http://$indirizzo:$porta_motion" ><br>

In swich.sh cambiare:

Codice: [Seleziona]
indirizzo="$(uci get network.lan.ipaddr)"

in

Codice: [Seleziona]
indirizzo="$(echo $HTTP_REFERER | awk 'BEGIN { FS="/" } { print $3 }')"

L'ultimo passo da eseguire ? di aprire la porta tcp del firewall dove sta in ascolto dropbear (in questo caso la 5555) e fare un forwarding della stessa porta verso l'indirizzo locale della centralina.
Puntare con il proprio browser a: http://127.0.0.1:12345/cgi-bin/webif/centralina/comandi.sh (http://127.0.0.1:12345/cgi-bin/webif/centralina/comandi.sh)
Questo ? tutto.
Adesso viaggeremo su connessioni criptate e la nostra centralina sar? raggiungibile in modo sicuro da internet.
Naturalmente bisogna cambiare :
Codice: [Seleziona]
ssh  -p2225  root@192.168.1.11 -L 12345:127.0.0.1:80 -L 12346:127.0.0.1:8080 -L 12347:127.0.0.1:8081

in

Codice: [Seleziona]
ssh  -p2225  root@tuo_nick.dyndns.org -L 12345:127.0.0.1:80 -L 12346:127.0.0.1:8080 -L 12347:127.0.0.1:8081
Testato e funzionante con Firefox.


Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 13, 2011, 10:18:55 pm
Molto chiaro. Grazie  :wink:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 13, 2011, 10:30:56 pm
Molto chiaro. Grazie  :wink:
Figurati quando posso con piacere.
La cosa importante ? che apriamo una sola porta sul router verso l'esterno (solo quella di dropbear) al resto ci pensa ssh  :lol:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 14, 2011, 09:57:35 am
Le modifiche fatte ti consentono di accedere alla webcam attraverso il tunel SSH ma volendo accedere anche all'interfaccia di controllo della centralina? (questa ? in ascolto sulla porta 80). Va cambiata la porta del server web e poi seguire la tua guida?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 14, 2011, 10:05:52 am
Le modifiche fatte ti consentono di accedere alla webcam attraverso il tunel SSH ma volendo accedere anche all'interfaccia di controllo della centralina? (questa è in ascolto sulla porta 80). Va cambiata la porta del server web e poi seguire la tua guida?
Ho appena aggiornato la guida.
L'avevo scordato!  :wink:
Non devi cambiare altro!
Basta seguire la guida facendo attenzione all'associazione delle porte
Bisogna puntare a: http://127.0.0.1:12345/cgi-bin/webif/centralina/comandi.sh (http://127.0.0.1:12345/cgi-bin/webif/centralina/comandi.sh)
o a: http://127.0.0.1:12345 (http://http://127.0.0.1:12345)
Appena testato il tutto su internet e funziona alla grande senza evidenti differenze di velocità con la lan nonostante il protocollo ssh risulti un po più lento.  :-D
Non ho riscontrato i tuoi problemi di lentezza nel caricamento di video.sh
Fammi sapere
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 23, 2011, 09:50:48 am
Le modifiche fatte ti consentono di accedere alla webcam attraverso il tunel SSH ma volendo accedere anche all'interfaccia di controllo della centralina? (questa ? in ascolto sulla porta 80). Va cambiata la porta del server web e poi seguire la tua guida?
Ho appena aggiornato la guida.
L'avevo scordato!  :wink:
Non devi cambiare altro!
Basta seguire la guida facendo attenzione all'associazione delle porte
Bisogna puntare a: http://127.0.0.1:12345/cgi-bin/webif/centralina/comandi.sh (http://127.0.0.1:12345/cgi-bin/webif/centralina/comandi.sh)
o a: http://127.0.0.1:12345 (http://http://127.0.0.1:12345)
Appena testato il tutto su internet e funziona alla grande senza evidenti differenze di velocit? con la lan nonostante il protocollo ssh risulti un po pi? lento.  :-D
Non ho riscontrato i tuoi problemi di lentezza nel caricamento di video.sh
Fammi sapere

Sto ancora combattendo con chan_datacard (senza risultati fino adesso). Volendo potrei mettere la centralina online cosi potresti vedere come si muove. Adesso c'ha solo asterisk installato perch? sto facendo queste prove.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 24, 2011, 06:27:47 pm
Come vuoi, si pu? fare una prova  :wink:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: fpaliuc - Aprile 24, 2011, 06:51:33 pm
Dovrei rimettere tutti i pacchetti ... Dammi qualche settimana :) Grazie
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Aprile 25, 2011, 01:19:12 pm
no problem  :lol:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 03, 2011, 02:34:03 pm
Allora Thruthan la prima parte mi funziona bene ovvero la chiamata quando motion rileva un movimento ma ho problemi nel 'attivazione/disattivazione.
Riporto brevemente il tuo codice:

Vediamo ora l'asterisk sul server, ho inserito in extension.conf queste parti...
Codice: [Seleziona]
[macro-allarme]
   exten => s,1,Answer()
   exten => s,n,Read(INPUT|agent-pass|0||3|10)
   exten => s,n,SayDigits(${INPUT})
   exten => s,n,AGI(allarme.sh,${INPUT})
   exten => s,n,Hangup()

exten => numerodachiamare,1,Macro(allarme,205)

[allarme]
   exten => s,1,Set(LANGUAGE()=IT)
   exten => s,n,Answer
   exten => s,n,Wait(2)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Hangup

dove [macro-allarme] chiede una pass (si pu? scegliere tra due codici uno per attivare motion sulla vs e uno per disabilitarlo ) che passa a "allarme.sh" sul server con asterisk (nella cartella /var/lib/asterisk/agi-bin del vostro asterisk). "exten => numerodachiamare,1,Macro(allarme,205)" ? il numero da chiamare sull'asterisk (dev'essere naturalmente registrato) per gestire motion sulla vs. Il file "allarme" chiamato da "Playback" ? quello che una volta creato sentirete alla chiamata.
il file "allarme.sh"...

Codice: [Seleziona]
#!/bin/sh
lynx http://ip_della_vs/cgi-bin/gesallarme.sh?pass=$1
exit

Trhuthan come si chiama questo script e dove va inserito?

Codice: [Seleziona]
#!/bin/sh
lynx http://ip_della_vs/cgi-bin/gesallarme.sh?pass=$1
exit

E' allarme.sh?
Non era gi? stato definito diversamente nella prima pagina di questo 3d che aveva la funzione di chiamare un interno con il messaggio d'allarme?

Da quanto capisco io dovrebbe essere questo richiamato da Macro.

Codice: [Seleziona]
exten => numerodachiamare,1,Macro(allarme,205)

Cos'e inoltre l'argomento 205
Confusione





Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Maggio 03, 2011, 03:38:19 pm
ci son due aspetti da considerare:
1:  motion rileva un movimento e chiama un numero, e questo ci sei
2: da remoto dobbiamo essere in grado di attivare o disattivare l'allarme

exten => s,1,Answer()
   exten => s,n,Read(INPUT|agent-pass|0||3|10)
   exten => s,n,SayDigits(${INPUT})
   exten => s,n,AGI(allarme.sh,${INPUT})
   exten => s,n,Hangup()

questa parte semplicemente passa a allarme.sh la pass inserita con il telefono (tieni presente che con la vs per asterisk io mi appoggiavo ad un server esterno)

Asterisk ca a cercare allarme.sh in /usr/lib/asterisk/agi-bin (quindi le agi-bin devono essere incluse nei moduli di asterik)

e...

#!/bin/sh
lynx http://ip_della_vs/cgi-bin/gesallarme.sh?pass=$1
exit

chiaramente punta al file della cengtralina gesallarme.sh passando la pass $1... e qui fai tu quello che vuoi.

Se asterisk risiede sulla stessa vs le cose naturalmente cambiano..


Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 03, 2011, 08:02:03 pm
ci son due aspetti da considerare:
1:  motion rileva un movimento e chiama un numero, e questo ci sei
2: da remoto dobbiamo essere in grado di attivare o disattivare l'allarme

exten => s,1,Answer()
   exten => s,n,Read(INPUT|agent-pass|0||3|10)
   exten => s,n,SayDigits(${INPUT})
   exten => s,n,AGI(allarme.sh,${INPUT})
   exten => s,n,Hangup()

questa parte semplicemente passa a allarme.sh la pass inserita con il telefono (tieni presente che con la vs per asterisk io mi appoggiavo ad un server esterno)

Asterisk ca a cercare allarme.sh in /usr/lib/asterisk/agi-bin (quindi le agi-bin devono essere incluse nei moduli di asterik)

e...

#!/bin/sh
lynx http://ip_della_vs/cgi-bin/gesallarme.sh?pass=$1
exit

chiaramente punta al file della cengtralina gesallarme.sh passando la pass $1... e qui fai tu quello che vuoi.

Se asterisk risiede sulla stessa vs le cose naturalmente cambiano..



Allora le modifiche fondamentali che ho fatto riguardano la parte che nei tuoi script facevano uso di scp.
Nel mio caso non occorre visto che asterisk risiede sul router. E' bastato cambiare i percorsi assoluti dei file e qualche modifica all'asterisk.conf per evitare che asterisk salvi alcuni file nella memoria volatile del router che non si ritroverebbero al riavvio.
Ho verificato i vari script e non vedo errori.
Quello a cui sono arrivato adesso è che telefonando al numero geografico asterisk risponde (senza dire una parola  :lol: e inoltre dalla cornetta non sento gli squilli di chiamata) e si mette in attesa di ricevere un input.
Sia che io digiti qualcosa o no si avvia motion che poi non riesco a killare nemmeno con il bazooka  :-D in quanto fra i processi vedo anche elinks (non ho usato lynx perchè come sappiamo non c'è su wrt) che anche se killato resuscita  :x.

Codice: [Seleziona]
#!/bin/sh
elinks http://127.0.0.1/cgi-bin/gesallarme.sh?pass=$1
exit

Questo il debug di asterisk
Codice: [Seleziona]
*CLI>       
       > doing dnsmgr_lookup for 'voip.eutelia.it'
       > ast_get_srv: SRV lookup for '_sip._udp.voip.eutelia.it' mapped to host                                                                                                                 voip.eutelia.it, port 5060
       > doing dnsmgr_lookup for 'voip.eutelia.it'
       > ast_get_srv: SRV lookup for '_sip._udp.voip.eutelia.it' mapped to host                                                                                                                              voip.eutelia.it, port 5060
    -- Executing [0917481324@macro-allarme:1] Macro("SIP/EuteliaVoIP-00000000", "allarme,205") in new stack
    -- Executing [s@macro-allarme:1] Answer("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:2] Read("SIP/EuteliaVoIP-00000000", "INPUT|agent-pass |0||3|10") in new stack
[May  3 17:25:51] WARNING[1597]: pbx.c:1348 pbx_exec: The application delimiter is now the comma, not the pipe.  Did you forget to convert your  your dialplan?
(Read  (INPUT|agent-pass |0||3|10))

    -- User entered nothing.
    -- Executing [s@macro-allarme:3] SayDigits("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:4] AGI("SIP/EuteliaVoIP-00000000", "allarme.sh ,") in new stack
    -- Launched AGI Script /usr/lib/asterisk/agi-bin/allarme.sh   


Un errore effettivamente potrebbe essere questo:
[May  3 17:25:51] WARNING[1597]: pbx.c:1348 pbx_exec: The application delimiter is now the comma, not the pipe.  Did you forget to convert your  your dialplan?
(Read  (INPUT|agent-pass |0||3|10))


    -- User entered nothing.

Nel frattempo asterisk chiude la chiamata.
Inutile dire che anche la webif s'impalla....

Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 03, 2011, 08:13:42 pm
uhm ho fatto la modifica richiesta dall'errore e ottengo questo:

Codice: [Seleziona]

*CLI>       
       > doing dnsmgr_lookup for 'voip.eutelia.it'
       > ast_get_srv: SRV lookup for '_sip._udp.voip.eutelia.it' mapped to host voip.eutelia.it, port 5060
       > doing dnsmgr_lookup for 'voip.eutelia.it'
       > ast_get_srv: SRV lookup for '_sip._udp.voip.eutelia.it' mapped to host voip.eutelia.it, port 5060
  == Using SIP RTP CoS mark 5
    -- Executing [0917481324@macro-allarme:1] Macro("SIP/EuteliaVoIP-00000000", "allarme,205") in new stack
    -- Executing [s@macro-allarme:1] Answer("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:2] Read("SIP/EuteliaVoIP-00000000", "INPUT|agent-pass 0,,3,10") in new stack
    -- Accepting a maximum of 3 digits.
    -- User entered nothing.
    -- Executing [s@macro-allarme:3] SayDigits("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:4] AGI("SIP/EuteliaVoIP-00000000", "allarme.sh,") in new stack
    -- Launched AGI Script /usr/lib/asterisk/agi-bin/allarme.sh



Adesso come si vede l'errore non ? pi? presente:
    -- Executing [s@macro-allarme:2] Read("SIP/EuteliaVoIP-00000000", "INPUT|agent-pass 0,,3,10") in new stack
    -- Accepting a maximum of 3 digits.
    -- User entered nothing.

Ho cambiato:

Codice: [Seleziona]
INPUT|agent-pass |0||3|10
in

Codice: [Seleziona]
INPUT|agent-pass 0,,3,10

ma il risultato e che sembra non leggere l'input da tastiera  :x



Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Maggio 03, 2011, 08:20:27 pm
prima cosa: se utilizzi asterisk sulla vs non ha senso chiamare elinks, basta fare uno script direttamente nell' agi-bin, quindi sotituisci questo

#!/bin/sh
elinks http://127.0.0.1/cgi-bin/gesallarme.sh?pass=$1
exit

con lo script per gestire motion...

esempio, senza pass, dall' interno 101:

Codice: [Seleziona]
[101];
   exten => *666,1,Answer
   exten => *666,n,Wait(1)
   exten => *666,n,AGI(allarmestart.sh)
   exten => *666,n,Wait(1)
   exten => *666,n,Hangup()
   exten => *777,1,Answer
   exten => *777,n,Wait(1)
   exten => *777,n,AGI(allarmestop.sh)
   exten => *777,n,Wait(1)
   exten => *777,n,Hangup()
   ......  

quindi con *666 attivi l'allarme e con *777 lo disattivi facendo partire i relativi script.

Invece per l'errore tu stai evidentemente utilizzando asterisk 1.6 che a differenza dell'1.4 usa le virgole al posto del "|"... sostituisci e vedrai che funzia.





Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Maggio 03, 2011, 08:24:53 pm
ci siamo sormontati... hai un altro errore...

  non
 exten => s,n,Read(INPUT|agent-pass,0,,3,10)

ma
   exten => s,n,Read(INPUT,agent-pass,0,,3,10)
   
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 03, 2011, 08:43:42 pm
ci siamo sormontati... hai un altro errore...

  non
 exten => s,n,Read(INPUT|agent-pass,0,,3,10)

ma
   exten => s,n,Read(INPUT,agent-pass,0,,3,10)
   
caspita ? vero che senso aveva la password  :-o
adesso provo a fare le modifiche , grazie come sempre della gentilezza
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Maggio 03, 2011, 08:47:51 pm
la pass ha senso se chiami dall'esterno su un numero voip pubblico,  altrimenti se uno sbaglia numero e fa proprio quello dell'allarme te lo attiva o disattiva.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 03, 2011, 09:16:55 pm
la pass ha senso se chiami dall'esterno su un numero voip pubblico,  altrimenti se uno sbaglia numero e fa proprio quello dell'allarme te lo attiva o disattiva.
aspetta io chiamo dall'esterno su un voip publlico!!!!
forse non mi sono spiegato bene
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Maggio 03, 2011, 09:29:40 pm
allora ti conviene utilizzare una pass, cos? utilizzi pure lo stesso numero.
e la conf sopra per la gestione interna.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 03, 2011, 09:33:03 pm
ho fatto la modifica che mi avevi detto adesso asterisk risponde e ripete la password per? non si accende motion
*CLI> 
     == Using SIP RTP CoS mark 5
    -- Executing [0917481324@macro-allarme:1] Macro("SIP/EuteliaVoIP-00000000", "allarme,205") in new stack
    -- Executing [s@macro-allarme:1] Answer("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:2] Read("SIP/EuteliaVoIP-00000000", "INPUT,agent-pass,0,,3,10") in new stack
    -- <SIP/EuteliaVoIP-00000000> Playing 'agent-pass.gsm' (language 'en')
    -- User entered '1111'
    -- Executing [s@macro-allarme:3] SayDigits("SIP/EuteliaVoIP-00000000", "1111") in new stack
    -- <SIP/EuteliaVoIP-00000000> Playing 'digits/1.gsm' (language 'en')
    -- <SIP/EuteliaVoIP-00000000> Playing 'digits/1.gsm' (language 'en')
    -- <SIP/EuteliaVoIP-00000000> Playing 'digits/1.gsm' (language 'en')
    -- <SIP/EuteliaVoIP-00000000> Playing 'digits/1.gsm' (language 'en')
    -- Executing [s@macro-allarme:4] AGI("SIP/EuteliaVoIP-00000000", "allarme.sh,1111") in new stack
    -- Launched AGI Script /usr/lib/asterisk/agi-bin/allarme.sh
    -- <SIP/EuteliaVoIP-00000000>AGI Script allarme.sh completed, returning 0
    -- Executing [s@macro-allarme:5] Hangup("SIP/EuteliaVoIP-00000000", "") in new stack
  == Spawn extension (macro-allarme, s, 5) exited non-zero on 'SIP/EuteliaVoIP-00000000' in macro 'allarme'
  == Spawn extension (macro-allarme, 0917481324, 1) exited non-zero on 'SIP/EuteliaVoIP-00000000'
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 03, 2011, 10:06:25 pm
domani ricontrollo gli script e vedo chi finge di lavorare mi stanno venendo i capelli cos?  :mrgreen:
 :-D
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 06, 2011, 05:07:01 pm
domani ricontrollo gli script e vedo chi finge di lavorare mi stanno venendo i capelli cos?  :mrgreen:
 :-D

Funziona!!!  :-D
Allora truthahn sostanzialmente ho eliminato:

allarme.sh cio?:
Codice: [Seleziona]
#!/bin/sh
elinks http://127.0.0.1/cgi-bin/gesallarme.sh?pass=$1
exit

ho spostato gesallarme.sh in /usr/lib/asterisk/agi-bin

e l'ho modificato cos?:

Codice: [Seleziona]
root@OpenWrt:/usr/lib/asterisk/agi-bin# cat gesallarme.sh
#!/bin/sh
FORM_pass=$1
file=/etc/centralina/allarme
passon="$(cat $file | awk '{split ($0, a, " ");print a[1]}')"
passoff="$(cat $file | awk '{split ($0, a, " ");print a[2]}')"


#attiva allarme
if [ "$FORM_pass" = "$passon" ];then
         /usr/bin/motion
fi
#Disattiva allarme
if [ $FORM_pass = "$passoff" ];then
        PID=`pidof motion`
        kill $PID
        killall gesallarme.sh
fi
exit

Senti visto che asterisk mi ha appassionato non ? che sai consigliarmi qualche libro o guida completa?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: truthahn - Maggio 06, 2011, 11:30:26 pm
Bene!!!
No, non ti so consigliare una guida... ma la rete ? una miniera di esempi per capire.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 08, 2011, 01:06:30 am
Ho modificato un po di cose avendo la necessit? di comandare tutti i carichi della scheda rel? anche da telefono.
Al mio extensions.conf ho aggiunto le seguenti righe:
Codice: [Seleziona]
;attiva/disatttiva motion
[motion]      
   exten => 1,1,Read(INPUT,on_off,0,,3,5)
   exten => 1,n,SayDigits(${INPUT})
   exten => 1,n,AGI(gesallarme.sh,${INPUT})
   exten => 1,n,Set(IO=0)
   exten => 1,n,AGI(check_IO.sh,${IO})
   exten => 1,n,Playback(motion)
   exten => 1,n,Playback(${sorveglianza})
   exten => 1,n,Hangup()

;attiva/disatttiva luci
[luci]    
   exten => 2,1,Read(INPUT,on_off,0,,3,5)
   exten => 2,n,SayDigits(${INPUT})
   exten => 2,n,AGI(gesluci.sh,${INPUT})
   exten => 2,n,Set(IO=25)
   exten => 2,n,AGI(check_IO.sh,${IO})
   exten => 2,n,Playback(luci)
   exten => 2,n,Playback(${gpio_25})
   exten => 2,n,Hangup()

;attiva/disatttiva irrigazione
[irrigazione]
   exten => 3,1,Read(INPUT,on_off,0,,3,5)
   exten => 3,n,SayDigits(${INPUT})
   exten => 3,n,AGI(gesirrigazione.sh,${INPUT})
   exten => 3,n,Set(IO=6)
   exten => 3,n,AGI(check_IO.sh,${IO})
   exten => 3,n,Playback(irrigazione)
   exten => 3,n,Playback(${gpio_6})
   exten => 3,n,Hangup()

;attiva/disatttiva scaldabagno
[scaldabagno]
   exten => 4,1,Read(INPUT,on_off,0,,3,5)
   exten => 4,n,SayDigits(${INPUT})
   exten => 4,n,AGI(gesscaldabagno.sh,${INPUT})
   exten => 4,n,Set(IO=7)
   exten => 4,n,AGI(check_IO.sh,${IO})
   exten => 4,n,Playback(scaldabagno)
   exten => 4,n,Playback(${gpio_7})
   exten => 4,n,Hangup()

;controllo dello stato globale dei gpio e motion
[stato-gpio]
   exten => 5,1,AGI(check_stato.sh)
   exten => 5,n,Playback(luci)
   exten => 5,n,Playback(${gpio_25})
   exten => 5,n,Wait(2)
   exten => 5,n,Playback(irrigazione)
   exten => 5,n,Playback(${gpio_6})
   exten => 5,n,Wait(2)
   exten => 5,n,Playback(scaldabagno)
   exten => 5,n,Playback(${gpio_7})
   exten => 5,n,Wait(2)
   exten => 5,n,Playback(sorveglianza)
   exten => 5,n,Playback(${motion})
   exten => 5,n,Wait(1)
   exten => 5,n,Goto(macro-allarme,s,4)

;chiamata d'allarme su interno
[allarme]
   exten => s,1,Set(CHANNEL(language)=it)
   exten => s,n,Answer
   exten => s,n,Wait(2)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Hangup

;menu vocale attivazione carichi
[macro-allarme]
   exten => s,1,Answer()
   exten => s,n,Authenticate(1234)
   exten => s,n,Set(contatore=0)
   exten => s,n(menu),Background(menu)
   exten => s,n,WaitExten(6)
   exten => s,n,SayDigits()
   exten => s,n,Set(contatore=$[${contatore} + 1])
   exten => s,n,GotoIf($[${contatore} < 2]?menu:)
   exten => s,n,Playback(arrivederci)
   exten => s,n,Hangup()

;switc menu
   exten => 1,1,Goto(motion,1,1)
   exten => 2,1,Goto(luci,2,1)
   exten => 3,1,Goto(irrigazione,3,1)
   exten => 4,1,Goto(scaldabagno,4,1)
   exten => 5,1,Goto(stato-gpio,5,1)
   exten => 6,1,Goto(macro-allarme,s,10)

;numero da chiamare
exten => mio_numero,1,Macro(allarme,205)

Il file on_off.gsm ci indicher? di selezionare 1 per accendere la luce e 2 per spegnerla e poi passer? il valore selezionato a gesluci.sh che naturalmente gestisce i gpio.

Codice: [Seleziona]

#!/bin/sh
FORM_pass=$1

#accendi luce
if [ "$FORM_pass" = "1" ];then
        gpioctl dirout 25 > /dev/null
fi

#spegni luce
if [ "$FORM_pass" = "2" ];then
        gpioctl set 25 > /dev/null
fi
exit

Ho quindi creato tutti gli altri script e messi in :
Codice: [Seleziona]
root@OpenWrt:~# ls -la /usr/lib/asterisk/agi-bin/
drwxr-xr-x    2 root     root            0 May  8 00:47 .
drwxr-xr-x    6 root     root            0 Oct 29  2010 ..
-rwxr-xr-x    1 root     root           39 May  6 15:01 allarme.sh
-rwxr-xr-x    1 root     root          218 May  8 00:49 gesallarme.sh
-rwxr-xr-x    1 root     root            0 May  8 00:03 gesirrigazione.sh
-rwxr-xr-x    1 root     root          193 May  7 23:20 gesluci.sh
-rwxr-xr-x    1 root     root            0 May  8 00:03 gesscaldabagno.sh
-rwxr-xr-x    1 root     root            0 May  8 00:03 check_stato.sh
-rwxr-xr-x    1 root     root            0 May  8 00:03 check_IO.sh

Bello asterisk !   :-D
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 09, 2011, 04:50:02 pm
uhm i problemi non finiscono mai!  :roll:

Premetto che il dialplan precedente funziona perfettamente ma c'è un piccolo neo.
Se analizziamo:
Codice: [Seleziona]
;attiva/disatttiva luci
[luci]   
   exten => 2,1,Read(INPUT,on_off,0,,3,5)
   exten => 2,n,SayDigits(${INPUT})
   exten => 2,n,AGI(gesluci.sh,${INPUT})
   exten => 2,n,Set(IO=25)
   exten => 2,n,AGI(check_IO.sh,${IO})
   exten => 2,n,Playback(luci)
   exten => 2,n,Playback(${gpio_25})
   exten => 2,n,Hangup()

Questo contesto non fa altro che prendere un input da tastiera (1 o 2) per accendere o spegnere le luci passando il parametro allo script gesluci.sh.
In seguito analizza lo stato del gpio corrispondente con lo script check_IO.sh e ci avviserà che la luce è stata accesa o spenta con un messaggio vocale.
Questo è check_IO.sh
Codice: [Seleziona]
#!/bin/sh
##############################################
##############################################
#Controllo dello stato di un gpio o di motion
##############################################
##############################################
n=$1

  if [ $n = 0 ]; then
        pimotion=`pidof motion`
        if [ "$pidmotion" -eq "" ]; then
               stato_motion="disattivo"
               echo -e "SET VARIABLE motion $stato_motion"
        else
               stato_motion="attivo"
               echo -e "SET VARIABLE motion $stato_motion"

        fi

  else

        gp="$(gpioctl get $n | sed -n '/Pin/p'| awk '{ print $4 }')"

        if [ $gp == "HIGH" ]; then
              VALUE="disattivo"
              echo -e "SET VARIABLE gpio_$n $VALUE"
        fi

        if [ $gp == "LOW" ]; then
                VALUE="attivo"
                echo -e "SET VARIABLE gpio_$n $VALUE"
        fi
  fi

exit 0

Qui tutto bene.
Il problema nasce con motion che ha un contesto simile:

Codice: [Seleziona]
;attiva/disatttiva motion
[motion]     
   exten => 1,1,Read(INPUT,on_off,0,,3,5)
   exten => 1,n,SayDigits(${INPUT})
   exten => 1,n,AGI(gesallarme.sh,${INPUT})
   exten => 1,n,Set(IO=0)
   exten => 1,n,AGI(check_IO.sh,${IO})
   exten => 1,n,Playback(motion)
   exten => 1,n,Playback(${sorveglianza})
   exten => 1,n,Hangup()

Il contesto funziona bene fino allo script gesallarme e si avvia motion ma poi non prosegue in quanto è come se l'AGI vedesse gesallarme.sh sempre in esecuzione e non procede ad eseguire il contesto:

Codice: [Seleziona]
    .
    .
   exten => 1,n,Set(IO=0)
   exten => 1,n,AGI(check_IO.sh,${IO})
   exten => 1,n,Playback(motion)
   exten => 1,n,Playback(${sorveglianza})
   exten => 1,n,Hangup()
quindi in poche parole non mi avvisa dello stato di motion e il telefono rimane muto fino a quando non chiudo la chiamata

Questo è gesallarme.sh:
Codice: [Seleziona]
root@OpenWrt:~# cat /usr/lib/asterisk/agi-bin/gesallarme.sh
#!/bin/sh

FORM_pass=$1
#attiva allarme
if [ $FORM_pass = "1" ];then
         /usr/bin/motion &> /dev/null
fi

#Disattiva allarme
if [ $FORM_pass = "2" ];then
        PID=`pidof motion`
        kill $PID
        killall gesallarme.sh
fi

exit

Qualcuno ha idea di come "forzare" l'AGI a considerare terminato lo script?

Forse sarebbe meglio cambiare il nome di questo 3d in: "Video sorveglianza con openwrt motion su VS,AGPF e Asterisk :-D
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Maggio 10, 2011, 07:26:31 pm
 
Ho risolto forse un po macchinoso ma...funziona!  :lol:
Ho creato un altro script che viene avviato dall'AGI al posto di gesallarme.sh che ho chiamato init_gesallarme.sh
Codice: [Seleziona]
root@OpenWrt:/usr/lib/asterisk/agi-bin# cat init_gesallarme.sh
#!/bin/sh
init=$1
export init
/usr/lib/asterisk/agi-bin/gesallarme.sh &
sleep 2
         PID=`pidof gesallarme.sh`
         kill $PID

exit 0
Non fa altro che passare la variabile a gesallarme.sh (che avvia motion) e poi lo uccide  :-D

Codice: [Seleziona]
root@OpenWrt:/usr/lib/asterisk/agi-bin# cat gesallarme.sh
#!/bin/sh

FORM_pass=$init
#attiva allarme
if [ $FORM_pass = "1" ];then
         /usr/bin/motion &> /dev/null

fi

#Disattiva allarme
if [ $FORM_pass = "2" ];then
        PID=`pidof motion`
        kill $PID
               
fi
exit 0

Sicuramente si poteva fare in un altro modo.
Non sono un esperto di codice ma solo uno smanettone  :-D
L'importante, per me, è che funzioni  :wink:

Avevo provato anche così:

Codice: [Seleziona]
root@OpenWrt:/usr/lib/asterisk/agi-bin# cat gesallarme.sh
#!/bin/sh

FORM_pass=$1
#attiva allarme
if [ $FORM_pass = "1" ];then
         /usr/bin/motion &> /dev/null
         sleep 2
         killall gesmotion.sh 

fi

#Disattiva allarme
if [ $FORM_pass = "2" ];then
        PID=`pidof motion`
        kill $PID
                   
fi
exit 0
e così:
Codice: [Seleziona]
root@OpenWrt:/usr/lib/asterisk/agi-bin# cat gesallarme.sh
#!/bin/sh

FORM_pass=$1
#attiva allarme
if [ $FORM_pass = "1" ];then
         /usr/bin/motion &> /dev/null
         sleep 2
        PID=`pidof gesallarme.sh`
        kill $PID               

fi

#Disattiva allarme
if [ $FORM_pass = "2" ];then
        PID=`pidof motion`
        kill $PID
       
fi
exit 0

ma non funzionava in quanto l'AGI si bloccava nello script e non proseguivano le istruzioni del contesto....bo
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: great81 - Giugno 11, 2011, 06:12:36 pm
Salve a tutti ho un AGPF con openwrt e webcam. Vorrei realizzare il vostro progetto ma ho qualche difficolt?. Ho installato tutti i pacchetti necessari e sono riuscito a creare alcune pagine della webif. Ma non rieco a far funzionare motion! All'indirizzo http://mioIP:8081 mi d? pagina inesistente..
Qualcuno potrebbe passarmi i file del progetto che mancano in questa guida?
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Giugno 12, 2011, 05:31:45 pm
Salve a tutti ho un AGPF con openwrt e webcam. Vorrei realizzare il vostro progetto ma ho qualche difficolt?. Ho installato tutti i pacchetti necessari e sono riuscito a creare alcune pagine della webif. Ma non rieco a far funzionare motion! All'indirizzo http://mioIP:8081 mi d? pagina inesistente..
Qualcuno potrebbe passarmi i file del progetto che mancano in questa guida?
Ciao, hai configurato per benino motion? (motion.conf)
Sareabbe opportuno sapere cosa hai fatto di preciso.
P.S. questa non ? una guida
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: bass79 - Ottobre 25, 2011, 12:34:55 pm
Funziona!! :-D
(http://82.186.215.122/images/motion.png)

Chiedo Scusa ragazzi ...io volevo Chiedere agli esperti di VideoSorveglianza Fai da Te (..in particolare a truthahn) se su una Seconda Vodafone Station (...collegata a quella Pricipale che prende l'Adsl Umts) ci si pu? caricare gphoto2,motion ecc.  allo scopo di far Funzionare una Canon Fotografica in Remoto...?????? :?

PS.Dovrei realizzare una Cam Fotografica Wireless (Usb) che mandi le Foto 0gni 5 minuti sul Mio Sito Ftp senza che per? il Pc Rimanga acceso h24...

Per Semplificare la Cosa Volevo acquistare un NAS SERVER WIFI senza HD incorporato(...per es.Iomega Iconnect Wireless) per? non  ho ancora capito se poi su qs apparecchi ci si pu? caricare poi un Software che gestisca gli scatti in Remoto (..senza pc acceso) e li mandi nella  rete Internet (..sul mio Sito Ftp)... :? :? :? :?

Qualcuno mi potrebbe dare una mano...non s? da dove devo cominciare , e poi ho paura di fare un acquisto Sbagliato (Nas Server , o megliol un'altra Vodafone Staion Wireless) ...???

Grazie.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Ottobre 26, 2011, 10:13:29 am
Ciao tutto quello che hai in mente lo puoi fare benissimo con motion e openwrt e una webcam.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: bass79 - Ottobre 26, 2011, 05:59:56 pm
Ciao tutto quello che hai in mente lo puoi fare benissimo con motion e openwrt e una webcam.

Chiedo scusa ..ma sapete se il Sistema lavorerebbe con  Connessione 3g+ Mobile di Vodafone.. ???????.

Ad  una Vodafone Station che prende Copertura Adsl 3g+,  si ci pu? collegare un Seconda Vodafone Station come Client,oppure un DVR, oppure un Nas Server..qs ? il problema  :roll:

PS.Oggi ho chiamnato Il Servizio Tecnico Vodafone il quale mi ha dato delle brutte Notizie :roll: :roll:...ha  detto che non posso aprire le porte alla Vodafone Station (..lavorare sul Portforwording Vodafone Station),  e far lavorare da Remoto un qualcosa perch? non ho adsl via cavo ma copertura 3G+...ne sapete qualcosa a riguardo.. :cry: :cry: :cry: :cry: :cry: :cry:
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: kidy - Ottobre 26, 2011, 07:17:11 pm
Ciao tutto quello che hai in mente lo puoi fare benissimo con motion e openwrt e una webcam.

Chiedo scusa ..ma sapete se il Sistema lavorerebbe con  Connessione 3g+ Mobile di Vodafone.. ???????.

Ad  una Vodafone Station che prende Copertura Adsl 3g+,  si ci pu? collegare un Seconda Vodafone Station come Client,oppure un DVR, oppure un Nas Server..qs ? il problema  :roll:

PS.Oggi ho chiamnato Il Servizio Tecnico Vodafone il quale mi ha dato delle brutte Notizie :roll: :roll:...ha  detto che non posso aprire le porte alla Vodafone Station (..lavorare sul Portforwording Vodafone Station),  e far lavorare da Remoto un qualcosa perch? non ho adsl via cavo ma copertura 3G+...ne sapete qualcosa a riguardo.. :cry: :cry: :cry: :cry: :cry: :cry:

Scusa Bass.. ma sembra che tu stia mettendo troppa carne al fuoco!! Vai per gradi,risolvi un cosa per volta...La vodafon station la devi "FLESCHARE" con ....OpenWrt!! poi puoi pensare al resto...
 :-) :-)
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: bass79 - Ottobre 26, 2011, 08:01:44 pm
Si ma se non si puo' intervenire sulle Porte della Station (..la Vodafone cosi' ha detto :cry:) come faccio a collegare poi un Secondo Router su cui gira OpenWrt+Cam... :|

 Non s?...se   con un'adsl  3g+ Mobile ( Vodafone Station) si ci pu? realizzare  il sistema di Videosorveglianza Openwrt  :| :|..

Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: kidy - Ottobre 26, 2011, 08:16:03 pm
Si ma se non si puo' intervenire sulle Porte della Station (..la Vodafone cosi' ha detto :cry:) come faccio a collegare poi un Secondo Router su cui gira OpenWrt+Cam... :|

 Non s?...se   con un'adsl  3g+ Mobile ( Vodafone Station) si ci pu? realizzare  il sistema di Videosorveglianza Openwrt  :| :|..



In realt? non ti servono due Voda.... ne basta una "fleshata"con Open.... che ti permette di gestire sia la parte telefonica (3G) sia la parte hardware (usb) cam con i relativi software!!
Saluti! :-D :-D
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: bass79 - Ottobre 26, 2011, 08:52:50 pm
Si ma se non si puo' intervenire sulle Porte della Station (..la Vodafone cosi' ha detto :cry:) come faccio a collegare poi un Secondo Router su cui gira OpenWrt+Cam... :|

 Non s?...se   con un'adsl  3g+ Mobile ( Vodafone Station) si ci pu? realizzare  il sistema di Videosorveglianza Openwrt  :| :|..



In realt? non ti servono due Voda.... ne basta una "fleshata"con Open.... che ti permette di gestire sia la parte telefonica (3G) sia la parte hardware (usb) cam con i relativi software!!
Saluti! :-D :-D

Grazie Kidi perch? riesci a comprendere la mia >""Ignoranza" in materia..il problema per? ? capire se chi l'ha fatto (Videosorveglianza da Remoto su VS) aveva un'adsl Vodafone via cavo o un'adsl Vodafone Mobile 3g... :cry:




PS.  il Servizio Tecnico Vodafone mi ha detto che Io con una rete 3G mobile su Vodafone Station:
1)non posso  utilizzare la porta Usb della Station per Cam, HD, ecc .  
2) e  non posso  aprire le Porte della stessa   :cry: :cry:.......Ora non lo s? se tutto questo ? Vero, o se ? vero solo con il Loro Firmaware Vodafone   :roll: :roll:

In altri parole non se alla Fine qs Connessione 3G+ mi pregiudica anche la possibilit? di  caricare, e far Funzionare Correttamente OpenWrt+Cam  sulla Station.... :?

Hai qualche info pi? dettaglita  sul tipo di Adsl Vodafone utilizzata da truthahn..??? Grazie!
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Ottobre 28, 2011, 10:44:19 am
Quoto kidy nel dire che devi procedere x gradi.  :-D
Per quanto mi riguarda ho fatto i miei esperimenti su agpf e non su vs ma sembra che dal punto di vista hardware siano identiche.
Quando installi openwrt devi scordarti delle cose che ti hanno detto alla vodafane perch? hai la piena gestione del tuo router.
Diciamo, comunque, che la video sorveglianza con una chiavetta usb non sia il massimo per la banda limitata che si avrebbe; forse qualcuno potr? smentirmi in questo.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: bass79 - Ottobre 28, 2011, 11:33:52 am
Quoto kidy nel dire che devi procedere x gradi.  :-D
Per quanto mi riguarda ho fatto i miei esperimenti su agpf e non su vs ma sembra che dal punto di vista hardware siano identiche.
Quando installi openwrt devi scordarti delle cose che ti hanno detto alla vodafane perch? hai la piena gestione del tuo router.
Diciamo, comunque, che la video sorveglianza con una chiavetta usb non sia il massimo per la banda limitata che si avrebbe; forse qualcuno potr? smentirmi in questo.


No ma Non dovrei utilizzare non una Telecamera a Flusso Continuo, ma bens? una Fotocamera Digitale che Scatti ogni 5 Minuti (.. naturalmente caricando qualche software come Gphoto2 x il Comando a distanza):wink:

Non Essendo per? un Esperto , non saprei dire  se l'Adsl Mobile 3g+(3 mb/s di  Media in casa adesso contro i 640 KB/s di Telecom Italai :evil:) non basti neanche per lo  scatto immagini ogni 5 minuti  :?

Comunque da come ho capito, OpenWrt funzionerebbe sulla Station anche con Chiavetta 3G ...dunque il primo passo sarebbe caricare qs OpenWrt sulla VS...Per? qs ? un Bel Problema, almeno per Me  :-D (Utenti meno Esperti)  :-D

PS.Si potrebbe Utilizzare qualche  Procedura meno Complicata di quella Descritta all'Inizio di qs  Topic (..di TJag, e cose varie non s? che cosa sono.. :lol:..)..
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Novembre 12, 2011, 01:09:01 pm
Quoto kidy nel dire che devi procedere x gradi.  :-D
Per quanto mi riguarda ho fatto i miei esperimenti su agpf e non su vs ma sembra che dal punto di vista hardware siano identiche.
Quando installi openwrt devi scordarti delle cose che ti hanno detto alla vodafane perch? hai la piena gestione del tuo router.
Diciamo, comunque, che la video sorveglianza con una chiavetta usb non sia il massimo per la banda limitata che si avrebbe; forse qualcuno potr? smentirmi in questo.


No ma Non dovrei utilizzare non una Telecamera a Flusso Continuo, ma bens? una Fotocamera Digitale che Scatti ogni 5 Minuti (.. naturalmente caricando qualche software come Gphoto2 x il Comando a distanza):wink:

Non Essendo per? un Esperto , non saprei dire  se l'Adsl Mobile 3g+(3 mb/s di  Media in casa adesso contro i 640 KB/s di Telecom Italai :evil:) non basti neanche per lo  scatto immagini ogni 5 minuti  :?

Comunque da come ho capito, OpenWrt funzionerebbe sulla Station anche con Chiavetta 3G ...dunque il primo passo sarebbe caricare qs OpenWrt sulla VS...Per? qs ? un Bel Problema, almeno per Me  :-D (Utenti meno Esperti)  :-D

PS.Si potrebbe Utilizzare qualche  Procedura meno Complicata di quella Descritta all'Inizio di qs  Topic (..di TJag, e cose varie non s? che cosa sono.. :lol:..)..
Con motion puoi realizzare tutto questo! La velocita dell'adsl penso vada bene per qualche scatto.
Titolo: Re: Video sorveglianza con openwrt motion su VS
Inserito da: lupin73 - Dicembre 08, 2011, 03:05:46 pm
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.html (http://www.zetabishop.it/product/9299/Interruttori-Magnetici-per-antifurto-N.C-N.A.html)
La 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):
Codice: [Seleziona]
#!/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:

Codice: [Seleziona]
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:

Codice: [Seleziona]
.
.
.
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.