Autore Topic: Video sorveglianza  (Letto 8111 volte)

Offline AlmAck

  • *
  • Post: 360
  • Reputazione: 42
    • Mostra profilo
    • AlmAck.ch
Re:Video sorveglianza
« Risposta #15 il: 21 Settembre 2012 ore 20:59 »
Che caso, anche io mi sto interessando a questo argomento...
Per l'HW ho trovato questa ditta che non è male (cinese e costa poco): http://www.foscam.it/
Per il SW volevo provare con il mio server NAS della Synology, ma non ho ancora trovato il tempo per fare test.

Offline paolomi

  • *
  • Post: 287
  • Reputazione: 21
  • Akabei... con spacchettamento a destra
    • Mostra profilo
Re:Video sorveglianza
« Risposta #16 il: 21 Settembre 2012 ore 21:04 »
Ovviamente mi sono messo sono cron anche uno script che salva il mio indirizzo ip (uso whatismyip.com), così posso vedere live la telecamera. Anni fa usavo un servizio free che ti assegnava un sottodominio, ma dovevi installare un programmino. Esistono ancora, funzionanti sotto linux?
bravo dino! la tua richiesta di questo servizio mi ha fatto capire che la soluzione è molto semplice.  :beer:

sul tuo pc di casa installi afraid-dyndns e lo registri al servizio del sottodominio di afraid.org,
sul tuo pc in ufficio quando scatta l'allarme di motion, fai eseguire questo comando:
Codice: [Seleziona]
ssh dinolib@dino_house.afraid.org   tuo_script_che_suonae hai il tuo allarme sonante!
ovviamente devi avere installato sshd sul pc di casa e configurato il fw per lasciare passare la porta 22.
Inoltre devi usare l'autenticazione con la chiave pubblica e privata.

Bravo dino! senza il tuo indizio stavo ancora pensando a programmi come skype o altro, mentre la soluzione era molto più semplice!  :beer:

probabilmente dobbiamo bisticciare un attimo con lo script per farlo suonare correttamente, ma sono solo dettagli...
Usare Chakra senza PulseAudio

«L'anno prossimo passerò a pulseaudio» (frase detta da me alcuni anni fa… e ancora valida!)

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:Video sorveglianza
« Risposta #17 il: 22 Settembre 2012 ore 13:50 »
OK, ho trovato la M$ HD-5000 a 29,90. Funziona molto bene.
Stamattina ho avuto poco tempo (fra l'altro mi sono dimenticato di aprire il firewall!) ma almeno ho aggiustato un po' il tiro della configurazione monitor. Ora da browser vedo l'immagine e su un folder di dropbox se c'è movimento salva le immagini.
E' molto sensibile, fra l'altro.
Monitor lo faccio partire con cron la sera e lo disattivo la mattina. Devo fare ancora qualche test, ma per il momento sembra tutto ok.

Direi che per il server ci siamo al 95%.

Per il client:
- la soluzione ssh mi interessa (anche xè posso dire a motion di eseguire unop script quando rileva movimento).
DOMANDA: se il chiamante muore (cade la rete o staccano la corrente) il suonatore viene killato o continua normalmente?
E cmq ssh non l'ho mai usato. Un amico mi ha fatto vedere una volta e mi sono perso alla generazione delle chiavi. Magari ri chiedo info  ;D

- altro problema è che quando il client si mette a suonare (e ti assicuro che con questo script suona a manetta) vorrei una finestra su cui pigiare per dirgli basta! Purtroppo se lancio lo script in background devo killarlo da monitor risorse o terminale. Penso sia lo stesso se lancio lo script da remoto con ssh.
Avete qualche idea, o devo usare qualche popup? Qualche mese fa avevo visto una semplice applicazione (non ricordo se bash o python) che con due righe di codice generava una finestra di dialogo. Qualcuno può consigliare?
Non fatemi pingare jmc che poi mi manda a cagare (ancora non l'ha fatto ma lo aspetto al varco  ;D)
« Ultima modifica: 22 Settembre 2012 ore 13:51 da dinolib »

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:Video sorveglianza
« Risposta #18 il: 22 Settembre 2012 ore 15:38 »
ok, trovato. Con zenity si possono aprire finestre di dialogo  :)

sì, ma preso da ccr mi becco un erroraccio:
Codice: [Seleziona]
*** glibc detected *** zenity: malloc(): memory corruption: 0x0000000000f62610 ***

non so che farci :(
« Ultima modifica: 22 Settembre 2012 ore 15:50 da dinolib »

Offline whoami

  • *
  • Post: 1562
  • Reputazione: 64
  • Quando c'era init i log arrivavano in orario!
    • Mostra profilo
Re:Video sorveglianza
« Risposta #19 il: 22 Settembre 2012 ore 15:38 »
Pensavo...

se nel menu crei una voce "spegni" e il comando è
Codice: [Seleziona]
killall aplay, se vuoi gli dai un'icona carina e te lo metto nel menu o sul desktop, pannello, ecc dovrebbe spegnertelo con un click... è come spegnerlo da terminale ma più immediato...
echo "VQF AHELME I BI CI WECPF"| tr "ETAOINSHRDLUBCFGJMQPVWZYXK" "A-Z"

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:Video sorveglianza
« Risposta #20 il: 22 Settembre 2012 ore 15:56 »
grazie, è una soluzione "di emergenza". Mi sembra carino poterlo integrare.

Comunque l'alternativa a zenity (gtk) x KDE è kdialog! capra capra capra che non sono altro  >:(

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:Video sorveglianza
« Risposta #21 il: 22 Settembre 2012 ore 16:14 »
Grazie ai vostri consigli ho trovato una soluzione praticabile.
playalarm suona a nastro e tutto volume un file wav.
Lo script watchfolder monitora una directory, se qualcosa cambia chiama in background playalarm e attende si prema ok per killarlo.

Codice: [Seleziona]
#!/bin/bash
# playalarm: play a wav file at maximum volume forever

#####################################################################
# Get current volume.
function get_volume()
{
    mixer=$(amixer get Master | grep 'Front Left:')
    echo $mixer | cut -d ' ' -f 4
}


#####################################################################
# Set volume.
function set_volume()
{
    amixer cset iface=MIXER,name="Master Playback Volume" $1 >/dev/null
}

if [[ $(basename $0 .sh) == 'playalarm' ]]; then
    sound_file=~/Dropbox/scripts/alarm.wav
    if [[ "$1" ]]; then sound_file="$1"; fi

    ovol=$(get_volume)

    vol=9999999
    echo "Playing at: $vol"
    set_volume $vol

    while [ : ] ; do
aplay $sound_file
    done

    echo "Resetting volume to: $ovol"
    set_volume $ovol
fi

Codice: [Seleziona]
#!/bin/sh
# watchfolder: check for changes in folder, then call playalarm

check() {
    dir="$1"
    echo monitoring folder $dir
   
    chsum1=`ls -l $dir | md5sum`
    chsum2=$chsum1
    while [ "$chsum1" == "$chsum2" ]; do
      # folder doesn't changed
        sleep 5
        chsum2=`ls -l $dir | md5sum`
    done
    # folder changed!
    echo "Change in monitored folder!"
    ./playalarm &
    kdialog --msgbox "allarme attivato. OK per spegnere"
    killall playalarm
}

while [ : ]; do
   
   check $*
done

Offline paolomi

  • *
  • Post: 287
  • Reputazione: 21
  • Akabei... con spacchettamento a destra
    • Mostra profilo
Re:Video sorveglianza
« Risposta #22 il: 22 Settembre 2012 ore 17:17 »
uè! uno non si può assentare poche ore che tu dino hai risolto tutti i problemi!!  ;)

Per il client:
- la soluzione ssh mi interessa (anche xè posso dire a motion di eseguire unop script quando rileva movimento).
DOMANDA: se il chiamante muore (cade la rete o staccano la corrente) il suonatore viene killato o continua normalmente?
RISPOSTA: dipende da come lanci il processo. Se lo lanci normalmente e il pc dell'ufficio si spegne (perché te lo stanno  portando via prendendo in prestito) allora il processo sul pc di casa si interrompe. Ma se lo lanci con la parola magica nohup allora il processo sul tuo pc non muore! per ucciderlo devi usare kill. E a questo punto possiamo confermare che la soluzione di whoami di usare killall è perfetta!

E cmq ssh non l'ho mai usato. Un amico mi ha fatto vedere una volta e mi sono perso alla generazione delle chiavi. Magari ri chiedo info  ;D
se cominci a usare ssh, poi lo amerai per sempre perché ti permette di fare cose... oscene utilissime  ;)

Allora vediamo le basi...

sul pc di casa installi il pacchetto openssh e aggiungi sshd nella variabile DAEMONS del file /etc/rc.conf e riavvii il pc. Da questo momento, se hai aperto la porta 22 del firewall, da qualsiasi parte del mondo ti trovi, puoi connetterti al tuo pc di casa digitando:
Codice: [Seleziona]
ssh nome_utente_pc_di_casa@indirizzo_ip_pc_casati verrà chiesta la password e, una volta digitata correttamente, ti ritroverai in una shell del tuo pc.

Il problema di che ip ha il tuo pc di casa si risolve con il programmino che abbiamo visto pochi messaggi fa.

Ovviamente il server dell'ufficio, per connettersi automaticamente sul pc di casa, non può digitare la password, allora si ricorre a questo metodo: è spiegato bene, inutile che riscriva qui, ma se hai problemi su qualche punto, chiedi.

A questo punto il pc dell'ufficio si può connettere a casa tua senza digitare la password. Tranquillo, se ti rubano il pc dell'ufficio, basta togliere la chiave da authorized_keys2 del pc di casa e nessuno riuscirà più a connettersi senza password...

Conclusioni: sul pc dell'ufficio ora devi specificare che, in caso caso di allarme, deve eseguire questo script:
Codice: [Seleziona]
ssh dinolib@dino_house.afraid.org   /usr/bin/nohup /usr/local/bin/tuo_script_che_suona
Direi che non c'è nient'altro da fare... a parte i test, ovviamente.

ps: se vuoi ci mettiamo d'accordo per testare il prodotto: io entro abusivamente nel tuo ufficio e poi vediamo se funziona  :lol:
Usare Chakra senza PulseAudio

«L'anno prossimo passerò a pulseaudio» (frase detta da me alcuni anni fa… e ancora valida!)

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:Video sorveglianza
« Risposta #23 il: 22 Settembre 2012 ore 18:25 »
allora testiamo anche la mazza chiodata, il filo spinato elettrificato ed il TRex. OK?  :lol: :lol: :lol:

TheImmortalPhoenix

Re:Video sorveglianza
« Risposta #24 il: 22 Settembre 2012 ore 19:39 »
mi passate lo script per l'ip? io ne ho uno ma funziona solo se sto sul mio pc, se ad esempio sto connesso da casa di un amico come faccio ad otternerlo per entrare nel mio pc tramite ssh?

Offline paolomi

  • *
  • Post: 287
  • Reputazione: 21
  • Akabei... con spacchettamento a destra
    • Mostra profilo
Re:Video sorveglianza
« Risposta #25 il: 23 Settembre 2012 ore 07:24 »
mi passate lo script per l'ip? io ne ho uno ma funziona solo se sto sul mio pc, se ad esempio sto connesso da casa di un amico come faccio ad otternerlo per entrare nel mio pc tramite ssh?
soluzione 1: metti il tuo script nella crontab e ti fai spedire una email ogni N minuti
soluzione 2: come ho scritto prima, installi questo pacchetto, ti registri sul sito http://freedns.afraid.org/ e il tuo pc sarà associato all'url TUO_USERNAME_con_cui_ti_sei_registrato.afraid.org
Usare Chakra senza PulseAudio

«L'anno prossimo passerò a pulseaudio» (frase detta da me alcuni anni fa… e ancora valida!)

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:Video sorveglianza
« Risposta #26 il: 23 Settembre 2012 ore 09:39 »
Al momento sto usando questo per salvare su dropbox l'indirizzo ip. Alternativamente puoi mandare mandare mail  o chiamare un servizio ssh x crearlo sul client che ti interessa, o salvarlo su ftp, o mandare un sms... fai tu  ;D

non ho ancora provato il servizio suggerito da paolo. Vi farò sapere come procedo.

Ogni 5 minuti lancio questo script:
Codice: [Seleziona]
#!/bin/bash
# saveip
wget http://automation.whatismyip.com/n09230945.asp  -O /home/dino/Dropbox/ipcamera.txt -o /dev/null

mcmaur

Re:Video sorveglianza
« Risposta #27 il: 23 Settembre 2012 ore 10:23 »
Al momento sto usando questo per salvare su dropbox l'indirizzo ip. Alternativamente puoi mandare mandare mail  o chiamare un servizio ssh x crearlo sul client che ti interessa, o salvarlo su ftp, o mandare un sms... fai tu  ;D
se vuoi qst programmino in C printa sul terminale l'ip (di eth0 e wlan e localhost) ma basta cambiare con fprintf e da quello che vuoi :)

Codice: [Seleziona]
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <net/if.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>

int main(void)
{
   int iSocket;
   struct if_nameindex *pIndex, *pIndex2;

   if ((iSocket = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
   {
      perror("socket");
      return -1;
   }

   pIndex = pIndex2 = if_nameindex();
   while ((pIndex != NULL) && (pIndex->if_name != NULL))
   {
      struct ifreq req;
      fprintf("%d: %s\n", pIndex->if_index, pIndex->if_name);
      strncpy(req.ifr_name, pIndex->if_name, IFNAMSIZ);
      if (ioctl(iSocket, SIOCGIFADDR, &req) < 0)
      {
         if (errno == EADDRNOTAVAIL)
         {
            fprintf("\tN/A\n");
            pIndex++;
            continue;
         }
         perror("ioctl");
         close(iSocket);
         return -1;
      }
      fprintf("\t %s\n", inet_ntoa(((struct sockaddr_in*)&req.ifr_addr)->sin_addr));
      pIndex++;
   }
   if_freenameindex(pIndex2);
   close(iSocket);
   return 0;
}

Offline dinolib

  • *
  • Post: 3226
  • Reputazione: 110
    • Mostra profilo
Re:Video sorveglianza
« Risposta #28 il: 23 Settembre 2012 ore 10:42 »
Purtroppo il codice che mi hai passato non può funzionare  :(

In locale possiamo conoscere solo l'indirizzo assegnato nella rete locale. Con questo comunichiamo con il router che ci fornisce il provider (o che ci accattiamo). Ma l'indirizzo IP pubblico non ci è dato di saperlo (e, sostanzialmente, neanche ci interessa)! Quandi ci si connette al nostro provider ci assegna ad ogni nuova connessione un indirizzo IP pubblico.
Per conoscere il nostro indirizzo IP dobbiamo allora rivolgerci a qualcuno che sta fuori dalla nostra rete locale, su internet, appunto. whatsmyip.com svolge questo servizio (ma ce ne sono altri).

Non ero certo al 100% di questa cosa ed ho compilato il codice. Infatti non restituisce l'IP pubblico ma solo quelli assegnati in LAN.

Se mi sbaglio sarò felice di imparare qualcosa di nuovo  ;D

CVD:
Codice: [Seleziona]
[dinoc@chakra-pc readip]$ ./a.out
1: lo
         127.0.0.1
2: eth0
         192.168.0.103
3: wlan0
        N/A

PS: gli fprintf in questo caso sono da cambiare in printf!

mcmaur

Re:Video sorveglianza
« Risposta #29 il: 23 Settembre 2012 ore 17:14 »
Felice di aver imparato qualcosa io :D

Quindi come hai fatto per ricavare l'indirizzo da whatsmyip.com?

 

Template by Homey | Sito ufficiale | Disclaimer