[SmartHome - Überwachung] Surveillance mit Raspberry Pi & HiKam [Tutorial]



  • Da mich viele gefragt haben wie ich denn meine Überwachungsanlage realisiert habe die man bei vielen Videos im Hintergrund sieht, habe ich hier Mal ein Video dazu gemacht. Damit lassen sich die HiKam Kameras die ich überall auf dem Grundstück verbaut habe prima auf meinen TV im Studio übertragen.


    *****************************************************************

    Welche Hardware man dafür braucht.....


    Überwachungskamera Außen (in meinem Fall HiKam)

    https://amzn.to/2qjOPFM


    Überwachungskamera Innen (in meinem Fall HiKam)

    https://amzn.to/2JtMPDj


    Raspberry Pi

    https://amzn.to/2GL6YHu


    SD Karte (8GB genügen)

    https://amzn.to/2ICz9VA


    SD Karten Adapter (falls keiner vorhanden)

    https://amzn.to/2qfUJrc


    TV Gerät (in meinem Fall Xiaomi SmartTV 43 Zoll)

    https://www.gearbest.com/deskt…659716.html?lkid=13715204


    *****************************************************************

    Welche Software man dafür braucht.....


    Betriebssystem für den Raspberry Pi : Raspbian Light

    https://www.raspberrypi.org/downloads/raspbian/


    Etcher (um die Software auf die SD Karte zu flashen)

    https://etcher.io/


    Putty für SSH Zugang unter Windows (unter Mac und Linux nicht notwendig)

    https://www.putty.org/


    SSH Datei (SSD Zugang vor erstem Boot)

    http://schimmer-media.de/download/ssh.zip


    *****************************************************************

    Hier nun das Ausführliche Schrift Tutorial in einzelne Punkte aufgegliedert...


    1. Download der notwendigen Software (Raspbian light) / (Etcher) / (Für Windows User noch Putty)


    2. Raspbian light Image mit Etcher auf SD Karte ziehen wie im Video gezeigt


    3. Wenn Etcher fertig ist wird SD Karte automatisch ausgeworfen, diese nochmal erneut in den Rechner stecken und noch die SSH Datei drauf schieben nachdem Ihr sie heruntergeladen und entpackt habt.


    4. SD Karte auswerfen, in den Raspberry Pi stecken und an LAN / HDMI und Strom anschließen.


    5. Über die Konsole auf dem Raspberry Pi aufschalten (Konsole bei Mac und Linux / Putty bei Windows), wenn Ihr nach einem Passwort gefragt werden, so lautet dies Standardmäßig "raspberry"

    Code
    1. ssh pi@ip-adresse-eures-raspberry-pi


    6. Nun müssen wir in der Config vom Raspberry Pi einige Einstellungen vornehmen

    Code
    1. sudo raspi-config

    6.1. Unter "1 Change User Passwort" erst Mal euer Standart Passwort "raspberry" gegen ein eigenes austauschen.

    6.2. Unter "3 Boot Options" auf "B1 Desktop / CLI", die Einstellung "Console Autologin Text console" auswählen,

    6.3. Unter "3 Boot Options" auf "Wait for Network at Boot" und bestätigen.

    6.4. Unter "4 Localisation Options" auf "Change Locale" und dann "de_DE UTF-8" mit der LEERTASTE auswählen und bestätigen.

    6.5. Unter "4 Localisation Options" auf Change Timezone" und auf "Europe" & "Berlin" stellen.

    6.6. Unter "5 Interfacing Options" nochmal Sicher stellen das "P2 SSH" auch wirklich freigeschaltet ist (sollte es aber sein, sind per SSH drauf)

    6.7. Unter "7 Advanced Options" ist es sehr wichtig bei "A3 Memory Split" das der Wert "512" eingetragen und gespeichert wird.

    6.8. Unter "7 Advanced Options" zuletzt dann noch "A1 Expand Filesystem" durchführen damit der gesamte Speichert der SD Karte genutzt wird.

    6.9. Am ende einmal mit "Finish" und "Reboot" den Raspberry Pi einmal Neu Starten lassen, nun sollte er sich auch automatisch einloggen.


    7. Nachdem Ihr euch erneut auf dem Pi aufgeschaltet habt, müsst ihr ihn mit folgendem Befehl auf den neusten Stand bringen

    Code
    1. sudo apt-get update && sudo apt-get upgrade -y && sudo reboot


    8. wieder müsst Ihr euch auf dem Pi aufschalten und mit Folgendem Befehl den "OMX Player" und "Screen" installieren. (Sollte dies beim ersten Mal nicht sofort gelingen, führt Schritt 7 erneut aus, das kann manchmal helfen)

    Code
    1. sudo apt-get install omxplayer -y && sudo apt-get install screen && sudo reboot


    9. Mit dem nächsten Befehl erstellt Ihr das Script wo Ihr die IP-Adressen eurer Kameras eintragen müsst, erst ist das Script Leer aber in Punkt 10 könnt Ihr euch das Script einfach kopieren und anpassen.

    Code
    1. sudo nano /etc/init.d/displaycameras


    10. Hier ist das "displaycameras" Script welches ich noch etwas angepasst habe, ihr müsst nur noch die IP-Adressen von euren Kameras eintragen und das Script dann mit "STRG + X" in Windows oder "CTRL +X" auf dem Mac speichern, Achtung Ihr müsst das ganze dann nochmal mit "y" oder "j" (je nachdem was bei euch steht) und anschließendem "Enter" bestätigen.


    11. Mit folgendem Befehl geben wir dem zuvor erstellten Script die notwendigen Rechte

    Code
    1. sudo chmod 755 /etc/init.d/displaycameras


    12. Nun müssen wir nur noch mit folgendem Befehl, ganz am ende der Datei die sich dann öffnet, noch dafür sorgen das im Script alle 5 Minuten geprüft wird das auch alle Streams noch laufen und falls nicht wieder zum Leben erweckt werden.


    12.1. Also mit folgendem Befehl öffnen wir die Datei...

    Code
    1. sudo crontab -e

    12.2. und nun müssen wir ganz unten das hier einfügen und das Script dann mit wieder "STRG + X" in Windows oder "CTRL +X" auf dem Mac speichern, Achtung Ihr müsst das ganze dann nochmal mit "y" oder "j" (je nachdem was bei euch steht) und anschließendem "Enter" bestätigen.

    Code
    1. */5 * * * * /etc/init.d/displaycameras repair


    13. Falls Ihr das Script nun Manuell Starten / Stoppen oder Reparieren wollt geht das mit folgenden Befehlen...


    13.1. Zum Starten

    Code
    1. sudo /etc/init.d/displaycameras start

    13.2. Zum Stoppen

    Code
    1. sudo /etc/init.d/displaycameras stop

    13.3. Zum Reparieren

    Code
    1. sudo /etc/init.d/displaycameras repair


    14. Nun müsst ihr den Raspberry Pi nur noch einmal rebooten dann seid Ihr fertig, Ihr könnt das Skript dann entweder manuell über SSH starten oder einfach 5 Minuten warten dann startet es sich durch die Stream Überprüfung von alleine.

    Code
    1. sudo reboot


    Ich wünsche euch viel Spaß mit der neuen Überwachungsanlage :)


    *****************************************************************

    Die Originale Quelle (Die ich leicht verändert habe)

    https://community.ubnt.com/t5/…-6-Cam-4-Cam/td-p/1536448

  • Super Video Tutorial. Werde mir auf jedenfall eine Hikam A7 für die Überwachung der Terrasse/Garten kaufen. Bin nur nicht ganz sicher, wie ich die Stromversorgung hinbekomme, durch die Wand wollte ich nicht unbediengt bohren. Müsste dann ein Kabel von meiner Terrassen Beleuchtung zum Dach Vorstand führen. Das ganze muss natürlich schick verlegt sein, sonst gibts Stress mit Frauchen...


    Ps: kann ich den die hikam auch im iobroker einbinden ?!

  • ...und wer nicht die 5 Minuten bis zum Start warten kann/will trägt noch folgendes zusätzlich in die crontab (Punkt 12.2) ein:

    @reboot /etc/init.d/displaycameras start


    Damit starten sie sofort, denn dieser Befehl wird immer nur einmalig beim booten ausgeführt ;)

    Die letzten Worte vor dem Weltuntergang: "...das ist technisch völlig unmöglich..."


    aktuelle Projekte: <<< Magic Mirror +++ RMS +++ Wetterstation +++ Somfy Fernbedienung >>>

  • Hi erst mal danke für das tolle Tutorial, habe alles umgesetzt aber ein kleines Problem kenne mich da nicht so gut aus. Ich habe 7 Kameras am Haus und würde die gerne auf einem Bildschirm angezeigt haben geht das und wenn ja wie bekomme ich das hin habe die Befehle mit den 6 Kameras schon ausprobiert aber es klappt leider nicht.

  • Hast du im Script auch die "Win-Positionen" angepasst (Zeile 13-16)?

    Code
    1. ... --win \"0 0 960 540\" ...

    Die sind für 4 Screens ausgelegt. Bei mehr musst du sie etwas kleiner machen und/oder die Auflösung hoch schrauben.

    Die letzten Worte vor dem Weltuntergang: "...das ist technisch völlig unmöglich..."


    aktuelle Projekte: <<< Magic Mirror +++ RMS +++ Wetterstation +++ Somfy Fernbedienung >>>

  • Ja habe ich verstehe nur nicht wie sich das zusammen setzt also was ich eingeben muss um die Bilder so zu schieben wie ich sie gerne hätte zB.

    #First Colmn

    large_left="screen -dmS large_left sh -c 'omxplayer --avdict rtsp_transport:tcp --win \"0 0 1280 720\" rtsp://192.168.178.3:554/onvif1 --live -n -1'";

    mid_lcenter="screen -dmS mid_lcenter sh -c 'omxplayer --avdict rtsp_transport:tcp --win \"640 720 1280 1080\" rtsp://192.168.178.4:554/onvif1 --live -n -1'";

    bottom_left="screen -dmS bottom_left sh -c 'omxplayer --avdict rtsp_transport:tcp --win \"0 720 640 1080\" rtsp://192.168.178.5:554/onvif1 --live -n -1'";


    #Second Colmn

    top_right="screen -dmS top_right sh -c 'omxplayer --avdict rtsp_transport:tcp --win \"1280 0 1920 360\" rtsp://192.168.178.31:554/onvif1 --live -n -1'";

    mid_rcenter="screen -dmS mid_rcenter sh -c 'omxplayer --avdict rtsp_transport:tcp --win \"1280 360 1920 720\" rtsp://192.168.178.32:554/onvif1 --live -n -1'";

    bottom_right="screen -dmS bottom_right sh -c 'omxplayer --avdict rtsp_transport:tcp --win \"1280 720 1920 1080\" rtsp://192.168.178.85:554/onvif1 --live -n -1'";


    für 6 Kameras funktioniert bei mir nur mit 5 wenn ich 6 eingebe wird das bild schwarz und ich sehe nix mehr. Dann habe ich noch das Problem ich bekomme eine Kamera nicht eingebunden es ist eine https://www.amazon.de/gp/produ…sc=1&tag=schimmermedia-21 vielleicht hat da einer einen Tipp.

  • Interessant zum 6 Cam-Problem wäre noch deine Config-Zeile der Feed-Cams


    Die Zahlenwerte der Windowpositionen bedeuten:

    1) Wie weit rechts vom linken Bildrand ist die obere linke Ecke des Fensters

    2) Wie weit unten vom oberen Bildrand ist die obere linke Ecke des Fensters

    3) wo das Fenster enden soll (Breite)

    4) wo das Fenster enden soll (Höhe)


    Bei large_left (und win 0 0 1280 720) würde das Fenster also ganz links oben (Position 0x0) beginnen, wäre 1280 Pixel breit und 720 Pixel hoch.

    Die letzten Worte vor dem Weltuntergang: "...das ist technisch völlig unmöglich..."


    aktuelle Projekte: <<< Magic Mirror +++ RMS +++ Wetterstation +++ Somfy Fernbedienung >>>

  • Jepp, und sieht gut aus.

    Nutzt du aktuell obiges Script oder das vom Screeny? Beim Screeny hast du 2x "large_left" definiert, dass funktioniert so nicht.


    large_left="screen -dmS large_left sh...


    camera_feeds=(large_left...)


    Muss immer pro Kamera/Stream identisch sein, damit die Zuordnung funktioniert und dürfen nicht nochmals als [n]ter Stream auftauchen.

    Ich würde mir mal die Bildschirme auf malen (3x2 Rechtecke) und dann Aufgrund der Auflösung die Eckpunkte berechnen und notieren, sowie Breite und Höhe der Fenster.

    Dann wäre z.B. bei einer 1920x1080 Auflösung bei mir das linke obere Fenster bei Nutzung von 6 Feeds und voller Ausnutzung des Bildschirms:

    top_left bei 0 0 640 540


    Zum testen nun bei dem Camera-Feeds nur camera_feeds=(top_left) angeben, damit wird nur ein Fenster generiert. Ist der Ok, das 2. top_middle 640 0 1280 540 camera_feeds=(top_left top_middle)...

    Die letzten Worte vor dem Weltuntergang: "...das ist technisch völlig unmöglich..."


    aktuelle Projekte: <<< Magic Mirror +++ RMS +++ Wetterstation +++ Somfy Fernbedienung >>>

  • Alles so umgesetzt, aber wenn das 6 Bild kommt wird der Bildschirm Schwarz. Bleibe also bei 4 Bildern warum auch immer das nicht geht....

    Danke noch mal für deine Mühe finde ich total klasse.

    Das Script habe ich von der Quellenseite genommen dann noch das von dem Tutorial getestet aber keins klappt bei mir. Das mit den 4 Kameras geht ohne Probleme.

    Mit der Foscam FI9828P bekomme ich auch nicht hin, habe jetzt eine andere Kamera gekauft und werde sie tauschen.

    schimmer-media.de/index.php?attachment/2179/

    schimmer-media.de/index.php?attachment/2180/

  • Immer gerne :)

    Ich denke du bekommst bei 6 Cams Speicherprobleme. Hast du

    6.7. Unter "7 Advanced Options" ist es sehr wichtig bei "A3 Memory Split" das der Wert "512" eingetragen und gespeichert wird.

    512 eingetragen? Das ist ziemlich viel Speicher für die GPU, da bleibt ggf. zu wenig für die CPU über. Versuche es mal mit 256.

    Falls das auch nichts hilft, lasse mal 5 Cams laufen und gib im Terminal top ein und poste bitte das Resultat.

    Die letzten Worte vor dem Weltuntergang: "...das ist technisch völlig unmöglich..."


    aktuelle Projekte: <<< Magic Mirror +++ RMS +++ Wetterstation +++ Somfy Fernbedienung >>>

  • Sieht "leider" gut aus. Ist das ein 2er PI?

    Wenn die 6. Cam dazu kommt, ist es dann immer derselbe Stream? Nicht das es daran klemmt. Dann würde ich testweise den 6. mal auf die eins legen.

    Die letzten Worte vor dem Weltuntergang: "...das ist technisch völlig unmöglich..."


    aktuelle Projekte: <<< Magic Mirror +++ RMS +++ Wetterstation +++ Somfy Fernbedienung >>>

  • Lt. Resourcen sieht es nicht danach aus und ich mache so etwas nur ungern, da ich aber auch sonst keinen mit diesem Problem finde, bleibt mir eigentlich nur es auf den Pi 2 zu schieben. Ev. ist dessen GPU einfach zu schwach. Zufällig einen 3er hast du nicht zum testen? Den hätte ich zwar, aber leider keine Cams...^^

    Die letzten Worte vor dem Weltuntergang: "...das ist technisch völlig unmöglich..."


    aktuelle Projekte: <<< Magic Mirror +++ RMS +++ Wetterstation +++ Somfy Fernbedienung >>>

  • Ja, so sind wir halt hier ^^

    Schön, dass es nun wenigstens funktioniert. So richtig mehr Ressourcen sehe ich zwar auch nicht, außer 256MB Splitt Memory zu aktuell 512MB, aber ich habe nach wie vor einfach die GPU-Leistung im Verdacht. Sind ja immerhin zum normalen Screen noch sechs Einzelscreens zusätzlich.

    Die letzten Worte vor dem Weltuntergang: "...das ist technisch völlig unmöglich..."


    aktuelle Projekte: <<< Magic Mirror +++ RMS +++ Wetterstation +++ Somfy Fernbedienung >>>