Zoneminder - NVR free su Raspberry e integrazione su Home Assistant

Zoneminder - NVR free su Raspberry e integrazione su Home Assistant

di Antonio Mario Longo

03 Aprile 2021

Home Assistant

Antonio Mario Longo

 In questi giorni mi sono imbattuto in Zoneminder, un software in grado di trasformare il Raspberry in un mini NVR. Attraverso la documentazione su internet Zoneminder promette di controllare la maggior parte delle IP-cam, anche quelle cinesi che utilizzano l'app Yoosee o le telecamere Dahua, ma anche le telecamere Ezviz. Infatti tramite una Wiki presente su internet sarà possibile reperire i parametri di configurazione delle varie marche, oppure pre-caricare i preset presenti all'interno del software. Inoltre tramite l'integrazione apposita in Home Assistant sarà possibile visualizzare il flusso delle telecamere nel nostro sistema domotico. Nella guida si fa riferimento all'istallazione su un Raspberry Pi 4 da 4 Gb e non altri modelli precedenti che potrebbero rallentare il flusso video. Il vantaggio di usare un Raspberry è anche dato dal basso impatto economico rispetto pc o altro. Partiamo subito con la guida:

Materiale Necessario

  • Kit Raspberry Pi 4 da 4gb (https://amzn.to/3wof0Mz)
  • Telecamere Ip installate
  • Home Assistant
  • Addon Samba e Ftp per Home Assistant

Preparazione Raspberry per l'installazione di Zoneminder

  • Dirigetevi sul seguente link e scaricate Raspberry Pi Imager in base al vostro sistema operativo e installatelo
  • Terminata l'installazione, inserire la micro-sd nel PC e avviate il software appena scaricato
  • Cliccate su Scegli SO e nella nuova finestra che vi apparirà selezionate Raspberry PI OS (32-bit) 
    Raspberry Pi OS 32 Bit
  • Alla chiusura della finestra selezionare SCEGLI SCHEDA SD e nel pop up che si aprirà selezionate la vostra scheda Micro SD 
    Scheda SD
  • Terminate il tutto premendo il tasto SCRIVI e attendete che il vostro PC scriva e verifichi l'immagine di Raspberry OS.
  • Al termine collegate una tastiera e un mouse al raspberry e inserite nell'apposito slot la Micro SD e date alimentazione attendendo l'avvio del Sistema Operativo.
  • La prima schermata come di consueto vi richiederà di impostare la Nazione, la Lingua e il fuso Orario 
    set country
  • Premete il tasto Next in basso a destra e cambiate la password di accesso con una a vostra scelta inserendola e ripetendola nei form appositi 
    Change Password
  • Infine selezionate la vostra rete Wireless immettendo la password e alla richiesta di aggiornamento del sistema premete il tasto Skip 
    Raspbian-Update-Software
  • Aprite il menù di Raspbian e dirigetevi su Preferenze e in seguito su Configurazione di Raspberry Pi
  • Dirigetevi nella scheda Interfacce e abilitate con l'apposita sferetta le opzioni SSH che VNC 
    Screenshot Raspberry SSH VNC
  • Scaricate VNC per il vostro sistema operativo da questo link e installatelo sul vostro PC
  • Al termine dell'installazione avviate VNC e collegatevi sull'Ip del vostro Raspberry inserendo come username (nel caso l'aveste rimasta invariata) PI e come password quella scelta al primo avvio del Raspberry.
  • Una volta connessi aprite il terminale del raspberry e digitate la seguente stringa: 
    sudo raspi-config
    
  • Dirigetevi con i tasti direzionali al punto 6 ovvero su  Advanced Options e premete il tasto Invio sulla tastiera per confermare 
    Advenced Options
  • Nella nuova finestra selezionate l'opzione A1 relativa alla scritta Expand File System e premete nuovamente Enter sulla tastiera 
    Expand File System
  • Attendete che il sistema operativo completi l'operazione e confermate alla schermata successiva indicante la corretta esecuzione della modifica della partizione
  • Ritornati alla pagina principale del Configuration Tool del Raspberry selezionata l'opzione 4 in cui Modificherete le Performance del microcomputer per dare una leggera spinta a Zoneminder in seguito 
    Performance Options
  • Selezionate l'opzione G2 corrispondente a GPU Memory e al posto del parametro 64 corrispondente ai MB di Memoria allocati per la GPU inserite il valore 512
  • Confermate l'operazione con il tasto OK in basso a sinistra 
    GPU memory
  • Terminato il tutto ritornate alla schermata principale e selezionate l'opzione Finish sul Configuration Tool.
  • Il sistema si accorgerà delle modifiche e automaticamente vi chiederà di riavviare il Sistema e confermate con SI 
    reboot rpi4

Installazione Zoneminder

  • Al riavvio del raspberry aprite nuovamente il terminale e diamo i seguenti comandi per aggiornare il sistema
    sudo apt update
    
    sudo apt upgrade
    
  • Quando l'operazione sarà completata e il prompt sarà in attesa di un nuovo comando digitate la seguente stringa per installare i servizi necessari per il corretto funzionamento dell'applicativo: 
    sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
    
  • Alle eventuali richieste di occupazione dello spazio su disco approvate con Y o S per confermare
  • Ora dovrete aggiungere la repo di Zoneminder modificando il file sources.list digitando: 
    sudo nano /etc/apt/sources.list
    
  • Vi ritroverete in un file nel quale dovrete aggiungere alla fine dello stesso la seguente stringa: 
    deb https://zmrepo.zoneminder.com/debian/release-1.34 buster/
    
  • Otterrete un risultato simile all'immagine seguente: 
    source list
  • Terminato il tutto premete i tasti CTRL + o e invio per salvare
  • Chiudete il file premendo CTRL + x
  • Installate gli altri componenti con la seguenti stringhe: 
    sudo apt install apt-transport-https gnupg
    sudo wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -
    
    facendo attenzione che l'ultima stringa relativa al "wget" non presenti errori di processo incompleto, in caso contrario rieseguite il comando sino all'avvenuta fine del comando senza errori.
  • Aggiornate nuovamente il sistema con il comando: 
    sudo apt update
    
    e procedete all'installazione di Zoneminder nel sistema: 
    sudo apt install zoneminder
    
  • Create un nuovo utente per utilizzare telecamere locali USB o schede di acquisizione: 
    sudo adduser www-data video
    
  • Iniziate infine ad avviare i vari servizi di digitando nel prompt i seguenti comandi: 
    sudo systemctl enable zoneminder.service
    sudo systemctl start zoneminder
    sudo a2enconf zoneminder
    sudo a2enmod rewrite
    sudo service apache2 reload
    
  • Terminato il tutto attendete circa 2 minuti affinché Zoneminder si avvii correttamente e navigate attraverso il vostro browser al seguente indirizzo: http://ip-del-vostro-raspberry/zm
  • Nella pagina principale accettate i termini di servizio per la privacy e cliccate su APPLY 
    privacyzm

Aggiunta di telecamere alla Console

A questo punto vi ritroverete all'interno della Console di Zoneminder dove potrete aggiungere le nostre telecamere seguendo la Wiki del progetto su questo indirizzo: https://wiki.zoneminder.com, digitando nella barra di ricerca posta sulla destra la marca o il modello della telecamera che vorrete integrare nel vostro NVR. 

Wiki ZoneMinder
.

In alternativa potrete aggiungere lo streaming RTSP delle vostre cam attraverso il plugin Libvlc che abbiamo installato in precedenza. Di seguito potrete vedere le varie operazioni di una IPCam cinese associata al programma android Yoosee (ovviamente dopo aver abilitato il flusso RTSP dall'applicazione)

  • Accedete alla console di Zoneminder e cliccate sul tasto +ADD 
    Console Add Zone Minder
  • Nel Nuovo popup che si aprirà inserite nel tab General:
  1. Il nome della telecamera da aggiungere
  2. Il tipo di sorgente dalla quale il programma andrà a reperire il flusso video (Libvlc)
  3. La funzione che la telecamera dovrà svolgere con Zoneminder (Monitor) 
    General Tab Cam Cinese
  • Passate successivamente al tab Source e compilate i vari parametri:
  1. Accanto alla voce Source Path inserite il percorso del vostro flusso RTSP reperibile dalla Wiki di Zoneminder oppure da internet nei vari siti legati alla vostra IPCam (nel caso della cam indicata è  RTSP://admin:[email protected]:554/onvif1)
  2. Nel Campo Width inserite la larghezza del monitor della vostra cam (640p)*
  3. Nel Campo Height, invece inserite l'altezza del monitor associato alla vostra cam (480p)*
  4. Cliccate Infine sul tasto Save per salvare la configurazione

* Consiglio di non mettere valori troppo elevati per la risoluzione del monitor che andrà a visualizzare la telecamera perchè stiamo adoperando un raspberry e quindi anche se ottimizzato con la GPU per il seguente Software, non sarà in grado di elaborare le immagini in maniera ottimale

Source path zone minder
  • Terminato il tutto ritornerete nella pagina principale dalla quale dovrete attendere circa 3/4 minuti affinché la telecamera passi allo stato di Capturing e vi indichi i frame massimi di acquisizione della telecamera e il pallino della telecamera passerà dal colore Rosso al verde indicante che il tutto è in funzione. 
    Stato Telecamera Cinese

Integrazione di Zoneminder in Home Assistant

Terminato il tutto potremmo passare alla configurazione su Home Assistant, quindi tramite l'addon Ftp o Samba di Home Assistant aprite e modificate il file configuration.yaml e in fondo al file inserite le seguenti stringhe: 

zoneminder:
  - host: ZM_HOST

Ovviamente accanto al parametro host sostituite ZM_HOST con l'Ip locale del raspberry dove avrete installato Zoneminder

Potrete inoltre aggiungere le telecamere che avete integrato su Zoneminder e visualizzarle nella vostra dashboard aggiungendo al file configuration.yaml il seguente codice: 

camera:
  - platform: zoneminder

Le telecamere verranno esposte sul vostro sistema con il nome di camera.nome_camera_assegnato_su_zone_minder

Ed inoltre possibile aggiungere un tasto per la registrazione che farà passare la telecamera dalla modalità monitor alla modalità motion detect e un ulteriore sensore indicante il numero di eventi catturati durante la modalità motion_detect. Tutte queste piccole capacità si riducono a sole quattro righe da aggiungere al file di configurazione di Home Assistant:

sensor:
  - platform: zoneminder
    include_archived: false

switch:
  - platform: zoneminder
    command_on: Modect
    command_off: Monitor

Come di consueto potrete seguire la video guida sul nostro canale YouTube per ulteriori delucidazioni visive:

Vi ricordo di seguirci e iscrivervi sui i nostri canali:

Telegram: https://t.me/vincenzocaputoblog

Youtube: https://www.youtube.com/c/VincenzoCaputo77

Gruppo Facebook: https://www.facebook.com/groups/homeassistantita

Google News: https://news.google.com/publications/CAAqBwgKMNe-lgswuuStAw?hl=it&gl=IT&ceid=IT%3Ait

Pagina Facebook: https://www.facebook.com/caputovince

Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.

Antonio Mario Longo

Antonio Mario Longo

Nato a Foggia nel Settembre 1984 perito elettrotecnico di sistemi e automazione, lavoro nel settore aereonautico su macchine a controllo numerico per la produzione di particolari in fibra di carbonio, appassionato di informatica (nata dai primi 8086) e automatismi per le nuove case del futuro.

Disqus loading...