orgineel: https://wiki.zoneminder.com/Raspberry_Pi_4_-_Raspbian
Ik doe het op een 3 🙂 Eerst systeem up to date brengen:
sudo apt update sudo apt upgrade
Installeer mijn eigen tooltje om te zorgen dat een vol filesysteem wordt opgemerkt: Vol filesysteem detecteren op een Pi
Installatie van LAMP met alles wat daaraan gerelateerd is:
sudo apt-get install apache2 mariadb-server sudo mysql_secure_installation # hier ga je het wachtwoord voor de root gebruiker van mysql zetten!! sudo apt install php libapache2-mod-php php-mysql
Installeer zoneminder en maak de tabellen in mysql/mariadb:
sudo apt install zoneminder vlc-plugin-base libnumber-bytes-human-perl sudo mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
Controleer of alle userpasswordt instellingen in /etc/zm/zm.conf correct zijn. Pas zonodig aan!
Permissies zetten en gebruikers aanmaken:
sudo mysql -uroot -p -e "grant all on zm.* to 'zmuser'@localhost identified by 'zmpass';" sudo mysqladmin -uroot -p reload sudo adduser www-data video sudo chmod 740 /etc/zm/zm.conf sudo chown root:www-data /etc/zm/zm.conf sudo chown -R www-data:www-data /var/cache/zoneminder/ sudo systemctl enable zoneminder
Starten:
sudo systemctl start zoneminder sudo systemctl status zoneminder # deze moet aangeven dat zoneminder active is sudo a2enmod cgi sudo a2enmod rewrite sudo a2enconf zoneminder sudo systemctl restart apache2 zoneminder sudo systemctl status apache2 zoneminder a # deze moeten beide aangeven dat ze active zijn
Nog wat handmatig werk met vi
sudo vi /etc/php/7.3/apache2/php.ini
Search for [Date] (Ctrl + w then type Date and press Enter) and make changes as follows for your time zone
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Europe/Amsterdam
Nu nog ff restarten zodat de time zone actief wordt (anders krijg je een foutmelding 🙂 ):
sudo systemctl restart apache2 zoneminder sudo systemctl status apache2 zoneminder a # deze moeten beide aangeven dat ze active zijn
Tataaaaa Klaar!! Op naar http://zoneminder.thuis.net die geeft je de default apache pagina, daarna doooooooooorrrrr naar http://zoneminder.thuis.net/zm
Hang er nu een externe schijf aan van voldoende grote (lees groot 🙂 ) en configureer Zoneminder. Zorg dat alle events en images opgeslagen worden op de externe harde schijf. Maak daar een zoneminder map met daarin submappen events en images
sudo mkdir /[jou-path]/zoneminder /[jou-path]/zoneminder/events /[jou-path]/zoneminder/images sudo chown www-data.www-data /[jou-path]/zoneminder /[jou-path]/zoneminder/events /[jou-path]/zoneminder/images
Nu kom je voor de memory ellende van de Pi. Mogelijk dat je maar 1 of twee camera’s tegelijk kunt capturen. De melding die je krijgt is vrij cryptisch: Unable to open codec for video stream from rtsp://…bla..bla…bla..
Maar dIt heeft te maken met de verdeling van het geheugen. Mocht je hier terecht komen dan moet je de memory setting (voor de GPU) aanpassen. Dit doe je via
sudo raspi-config
Ga naar 4 Performance Options -> P2 GPU Memory en zet deze op een hogere waarde. Enig experimenteren is hier noodzakelijk. Bij 64 had ik 1 camera, bij 128 had ik er twee en bij 256 had ik er 6.
Meer info: https://forums.zoneminder.com/viewtopic.php?f=40&t=29086&p=113918&hilit=unable+to+open+codec#p113918
Starten en stoppen
Maak in Zoneminder via de UI twee nieuwe statussen aan: Record en Monitor. Bij Record wordt alles opgenomen, bij Monitor staat alles in Monitor. Alles in Monitor heb je normaal gesproken niet niet nodig, maar tijdens testen en debuggen is ie wel handig.
Nu nog op de juiste momenten starten en stoppen, in de cron van de user pi zet je (bijvoorbeeld) het volgende:
######################################################## # Zoneminder ######################################################## # Sun 13 23 * * 0 sudo /usr/bin/zmpkg.pl Record 47 6 * * 0 sudo /usr/bin/zmpkg.pl Monitor # Workday 13 23 * * 1-5 sudo /usr/bin/zmpkg.pl Record 47 6 * * 1-5 sudo /usr/bin/zmpkg.pl Monitor # Sat 13 23 * * 6 sudo /usr/bin/zmpkg.pl Record 47 6 * * 6 sudo /usr/bin/zmpkg.pl Monitor # Uitzonderingen # Bij reboot Zoneminder starten in Monitor mode @reboot sudo /usr/bin/zmpkg.pl Monitor # Elke morgen rebooten. Als Swap is opgegeten, wordt het weer vrij gemaakt 52 7 * * * sudo systemctl reboot
Deze instelling maken onderscheid tussen zaterdag/zondag en door de weeks. Kun je natuurlijk aanpassen naar eigen inzichten 🙂
De Vuilniswagen
De externe schijf is niet oneindig groot, dus ruim oude beelden op. DIt doe je door een Filter te maken. Hier een voorbeeld om alles wat ouder is dan 5 dagen weg te gooien. Heb je meer ruimte verhoog 5 dan naar 7 …. 9 … 141 🙂
Naam: DeleteOldEvents
Start date Kleiner dan -5 day
  *EN*
Archief Status gelijk aan Alleen ongearchiveerd
Check de volgende opties:
- Update Used Diskspace
- Verwijder alle overeenkomsten
- Voer filter uit op achtergrond
Nu Opslaan.
Hier worden alle niet gearchiveerde beelden ouder dan 5 dagen verwijderd. Er moet een sterretje achter de filternaam staan. DIt geeft aan dit het in de achtergrond loopt.
Dummy van de Vuilniswagen/Filter
Wil je het met de hand uitproberen:
sudo zmfilter.pl
Alle meldingen komen op stdout, als dit werkt, werkt het ook in de batch