Nabuk Wireless Community
Apparati => Firmware (di classe WRT) => Topic aperto 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")...
# 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...
dropbearkey -t rsa -f id_rsa
che dar? a video qualcosa del genere...
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...
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..
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.
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...
[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"...
#!/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..
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.
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??
-
Funziona!! :-D
(http://82.186.215.122/images/motion.png)
-
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? :|
-
Risolto tutto!! :-D
Ragazzi funziona alla grande!!! :-D :-D :-D
Allora nella pagina comandi della webif...
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
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...
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..
# 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).
#!/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)
-
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.
-
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?
-
Domande (se hai voglia di rispondere):
e quale sarebbe il problema :D
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..
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
-
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:
-
cambiato un po' anche lo script sul server remoto che crea il filmato dalle immagini trasferite da wput..
#!/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
*/30 * * * * /usr/local/bin/creamovie
-
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!!!!!!!
-
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.
-
Ecco lo vedi!! Io invece dovrei eliminare il pc per concentrarmi meglio!!!! :-D :-D :-D :-D
-
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?
-
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.
-
Ok grazie, ma ? proprio questo che mi sfugge,... Puoi riportarmi un esempio dello script che fa questo lavoro?...
-
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 ...
-
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
-
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?
-
Son anni che non utilizzo IE... non saprei... forse serve qualche plugin?
-
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.
-
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
-
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?
-
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.
-
una campanella della scuola dismessa :-D
-
una campanella della scuola dismessa :-D
ihihihihi....non sei un tacchino ma una volpe :-D
Sapresti consigliarmi qualcosa per lo scopo?
-
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:
-
una campanella della scuola dismessa :-D
Quando io dico che Truthahn ? un grande !!!!!!!!!!!!!!!!!!
-
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:
#!/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<< >>
# 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>
<p> <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<< >>
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:
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)
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:
-
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:
#!/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<< >>
# 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>
<p> <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<< >>
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:
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)
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?
-
Ciao....uhm... si penso vadano bene....
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
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
-
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)
-
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
15832 1000 7740 S /usr/bin/motion
invece quando lo lancio da console viene avviato da root e funziona corretamente.
Sarà questo il problema?
-
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.
-
Prova ad impostare come owner dei file "root"
-
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
-
vedi qua (http://www.nabuk.org/f/index.php?topic=2638.msg24647#msg24647)
-
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:
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:
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
-
forse nell'opk non ho fatto attenzione ai permessi...
metti tutto di propriet? di root e vediamo...
-
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:
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
-
Bene!!! Avanti allora!! :-D
-
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:
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:
root@OpenWrt:~# elinks http://192.168.1.11:8080/0/detection/pause
elinks: can't load library 'libssl.so.0.9.8'
Consigli?
-
Per la mancanza di quella libreria: installa libopenssl_0.9.8m-3_brcm63xx.ipk (prima fai un opkg update).
-
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:
-
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)
-
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:
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
-
Che scheda wireless ha il tuo AGPF? Io ho Broadcom e ho utilizzato l'immagine di esteban. Se ti serve, fammi sapere.
-
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:
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)
-
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:
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.
-
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)
-
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
-
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.
-
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?
-
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
-
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:
-
Si, quello dovrebbe essere l'IP pubblico. Per il fatto di aver messo asterisk nella DMZ non ho problemi ... ? solo per i test :wink:
-
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:
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
-
Avevo sbagliato io ... invece di dirti di utilizzare force downgrade ti ho detto force upgrade .... :|
-
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!!!!
-
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???
-
Ciao Rino!
Come funziona la webcam sul tuo AGPF? Sul mio ci metteva un p? per caricare l'intera pagina viseo.sh
-
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.
-
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).
-
Con questa configurazione:
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:
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:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
accedo 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???
-
Con questa configurazione:
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:
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:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
accedo 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
-
Un esempio su come configurare il tunnel ssh?
-
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:
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?:
#!/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:
indirizzo="$(echo $HTTP_REFERER | awk 'BEGIN { FS="/" } { print $3 }')"
in
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:
<center><img src="http://$indirizzo:8081" ><br>
in
<center><img src="http://$indirizzo:$porta_motion" ><br>
In swich.sh cambiare:
indirizzo="$(uci get network.lan.ipaddr)"
in
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 :
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
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.
-
Molto chiaro. Grazie :wink:
-
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:
-
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?
-
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
-
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.
-
Come vuoi, si pu? fare una prova :wink:
-
Dovrei rimettere tutti i pacchetti ... Dammi qualche settimana :) Grazie
-
no problem :lol:
-
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...
[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"...
#!/bin/sh
lynx http://ip_della_vs/cgi-bin/gesallarme.sh?pass=$1
exit
Trhuthan come si chiama questo script e dove va inserito?
#!/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.
exten => numerodachiamare,1,Macro(allarme,205)
Cos'e inoltre l'argomento 205
Confusione
-
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..
-
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.
#!/bin/sh
elinks http://127.0.0.1/cgi-bin/gesallarme.sh?pass=$1
exit
Questo il debug di asterisk
*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....
-
uhm ho fatto la modifica richiesta dall'errore e ottengo questo:
*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:
INPUT|agent-pass |0||3|10
in
INPUT|agent-pass 0,,3,10
ma il risultato e che sembra non leggere l'input da tastiera :x
-
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:
[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.
-
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)
-
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
-
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.
-
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
-
allora ti conviene utilizzare una pass, cos? utilizzi pure lo stesso numero.
e la conf sopra per la gestione interna.
-
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'
-
domani ricontrollo gli script e vedo chi finge di lavorare mi stanno venendo i capelli cos? :mrgreen:
:-D
-
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?:
#!/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?:
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?
-
Bene!!!
No, non ti so consigliare una guida... ma la rete ? una miniera di esempi per capire.
-
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:
;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.
#!/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 :
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
-
uhm i problemi non finiscono mai! :roll:
Premetto che il dialplan precedente funziona perfettamente ma c'è un piccolo neo.
Se analizziamo:
;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
#!/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:
;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:
.
.
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:
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
-
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
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
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ì:
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ì:
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
-
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?
-
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
-
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.
-
Ciao tutto quello che hai in mente lo puoi fare benissimo con motion e openwrt e una webcam.
-
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:
-
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...
:-) :-)
-
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 :| :|..
-
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
-
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!
-
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.
-
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:..)..
-
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.
-
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):
#!/bin/sh
i=0
while [ "$i" == "0" ]; do
check="$(gpioctl get 34 | sed -n '/'is'/p' | awk '{ print $4 }')"
if [ "$check" == "LOW" ]; then
gpioctl dirout 24 > /dev/null #####attiva la sirena
/usr/sbin/send_allarmeporta.sh & > /dev/null ####script per l'invio email
sleep 10m
gpioctl set 24 > /dev/null
fi
sleep 2
done
exit 0
Lo script send_allarmeporta.sh che invia l'email:
root@OpenWrt:/usr/sbin# cat /usr/sbin/send_allarmeporta.sh invece:
#!/bin/sh
DATA=`date '+DATA: %d/%m/%y%nORA: %H:%M:%S'`
echo -e "Subject:*ALLARME*\n\n
*****ALLLARME*****\n
Intrusione porta d'ingresso rilevata!\n
*****ALLARME*****\n\n
$DATA" | msmtp mia_email@gmail.com
exit 0
Naturalmente bisogna aggiungere qualche riga nella pagina comandi per attivare/disattivare l'allarme:
.
.
.
pidsirena=`pidof allarme_magnetico.sh`
lamp="lamp1.jpg"
valore="ATTIVA"
if ! equal $pidsirena ""; then
lamp="lamp.jpg"
valore="DISATTIVA"
fi
cat <<EOF
<tr><td>Allarme :</td><td><center><img src="/images/$lamp"></td>
<td><center><input type="submit" name="allarmesirena" value="$valore"></td></tr>
EOF
.
.
.
.
if equal $FORM_allarmesirena "ATTIVA" ; then
/usr/sbin/allarme_magnetico.sh > /dev/null
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"1000")
</script>
EOF
exit
fi
if equal $FORM_allarmesirena "DISATTIVA" ; then
PID=`pidof allarme_magnetico.sh`
kill -SIGKILL $PID
gpioctl set 24 > /dev/null ####spegne la sirena
cat <<EOF
<script language="JavaScript" type="text/javascript">
setTimeout('top.location.href=\"/cgi-bin/webif/centralina/comandi.sh\"',"1000")
</script>
EOF
exit
fi
.
.
.
Per la gestione tramite asterisk il codice si complica un po' ma se qualcuno fosse interessato mi faccia sapere.