Zoneminder - NVR free su Raspberry e integrazione su Home Assistant
Home Assistant
Scritto da 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)
- Alla chiusura della finestra selezionare SCEGLI SCHEDA SD e nel pop up che si aprirà selezionate la vostra scheda Micro 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
- 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
- Infine selezionate la vostra rete Wireless immettendo la password e alla richiesta di aggiornamento del sistema premete il tasto Skip
- 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
- 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
- Nella nuova finestra selezionate l'opzione A1 relativa alla scritta Expand File System e premete nuovamente Enter sulla tastiera
- 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
- 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
- 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
Installazione Zoneminder
- Al riavvio del raspberry aprite nuovamente il terminale e diamo i seguenti comandi per aggiornare il sistema: e
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:
- 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: 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.
sudo apt install apt-transport-https gnupg sudo wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -
- Aggiornate nuovamente il sistema con il comando: e procedete all'installazione di Zoneminder nel sistema:
sudo apt update
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
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.
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
- Nel Nuovo popup che si aprirà inserite nel tab General:
- Il nome della telecamera da aggiungere
- Il tipo di sorgente dalla quale il programma andrà a reperire il flusso video (Libvlc)
- La funzione che la telecamera dovrà svolgere con Zoneminder (Monitor)
- Passate successivamente al tab Source e compilate i vari parametri:
- 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:password@192.168.1.16:554/onvif1)
- Nel Campo Width inserite la larghezza del monitor della vostra cam (640p)*
- Nel Campo Height, invece inserite l'altezza del monitor associato alla vostra cam (480p)*
- 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.
- 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.
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.