Video Überwachung mit Smarthome / Homematic Integration

Hallo,

ich möchte euch hier mein Projekt Videoüberwachung mit der Integration in mein Netzwerk / Smarthome Präsentieren.

Funktionen

Folgendes ist damit Möglich:

  • Videoüberwachung, also bei Bewegung in den Markierten Bildbereichen werden die Datenströme der Kamera(s) Aufgezeichnet
  • Diese Bewegungserkennung kann auch direkt in eine Homematic Systemvariable übergeben werden und so damit Aktionen Auslösen (Licht einschalten oder was auch immer)
  • Bewegungserkennung der Kameras mit der CCU ein / Ausschalten (scharf / unscharf)
  • Klingelcam
  • Zentraler Video Proxy über den alle Kameras erreicht werden können.

Systemvoraussetzungen

  • Ein Server (Windows, Linux, MAC oder Android wobei ich hier nur die Linux Varainte erklären werde) mit je nach Anzahl und verwendeten Übertragunsprotokoll von IP Kameras und der Nötigen Speicherkapazität (1)
  • IP Kameras(2) am besten mit Ethernet angebunden (3)
  • Homematic CCU (oder ähnliches z.B. LXCCU)
  • IP Kamera Software Xeoma http://felenasoft.com/xeoma/en/

(1) Es gibt beim Hersteller der Software eine „Minimum System requirements“ Calculator http://felenasoft.com/xeoma/en/help/calculator/ zur Berechnung der nötigen Hardware Ausstattung des Servers.

(2) Auch eine Liste der Unterstützten Kameras http://felenasoft.com/xeoma/en/camerasupport/

(3) Wlan geht natürlich auch aber ich bevorzuge Kabel mit einem PoE Switch (8 Port 100Mbit mit 4 Port PoO Lüfterlos kosten ab EUR 40) und entweder Kameras mit PoE Integriert oder sonst einen PoE Splitter (ab EUR 15) –> Alle Kameras werden Zentral Stromversorgt und können auch einfach mit einer USV gestützt werden. Weiters hat ein eigener 100Mbit PoE Switch den Vorteil das ein eigenes Kamera netzwerk vorhanden ist welches keine direkte Verbindung zum Internen Netzwerk haben sollte, also entweder eine Firewall mit einer DMZ oder sonst einen eigenen (alten) Router verwenden der das Interne Netzwerk vom Externen trennt und so nur ein Zugriff aus dem Internen Netzwerk zu den Kameras aber keiner von einem Kamera Netzwerk auf das Interne Netzwerk erfolgen kann!

Konzept / Überlegungen

Ich habe einige Jahre Zoneminder verwendet, bin aber durch die Verwendung der ersten Megapixel Kamera (RaspiCAM mit 1920*1440 und 6fps) bei der Prozessorauslastung von über 100% eines Kerns eines Quad Core 3,2Ghz Core i5 gezwungen wurde mir eine bessere / stabilere Software zu suchen. Nachdem eine Windows Software von vorn herein ausscheidet habe ich Xeoma getestet und seit inzwischen 1 1/2 Jahren im Einsatz. Aktuell habe ich die erste H.264 3MP PoE Kamera Implementiert und war beindruckt wie Simpel und schnell dies gemacht werden konnte!

Xeoma besteht aus zwei Teilen einem Server und einem Client, diese sind aktuell Für Windows, Linux, MAC und Android verfügbar, ich verwende den Server unter Debian Wheezy Headless (ohne Desktop, weil der Server aus Stromspargründen keine „permanente“ Grafikkarte hat) und den Client unter Android oder auch Linux (Linux Mint). Weiters kann in Xeoma jeder Datenstrom einer Kamera auch Zusätzlich als mjpg und jpg weitergegeben werde was die Kameras Massiv Entlastet und eine Einheitliche Schnittstelle für alle Arten und Hersteller von Kameras bietet. Also der Datenstrom einer H.264 Kamera oder einer MJPEG oder AVI kann Zentral vom Server in Webseiten oder Apps Verwendet werden ohne die Kameras durch zu viele Gleichzeitige Zugriffe zu Überlasten!

Netzwerk Aufbau

Hier ein Schema der Netzwerk Infrastruktur:

Xeoma Kamera Konfiguration

Eines der Hauptargumente von Xeoma gegen z.B. Zoneminder ist das einfach Setup von Kameras, dies is mit einem Grafischen Workflow mit dem Client schnell und Einfach erstellt.

Hier als Beispiel die aktuelle Konfiguration meiner H.264 3MP PoE Kamera vor der Haustüre:

Übersicht

Kamera Einstellungen

Text Markierung

Bewegungserkennung

Archiv Einstellungen

http Webserver

http Schalter

Integration in das Smarthome

Homematic

Bewegungserkennung

Für die Bewegungserkennung muss für jede Kamera eine Systemvariable Angelegt werden z.B. so:

Durch den Aufruf der bei dem Bild „http Schalter“ oben erfolgt wird die Systemvariable auf Wahr gesetzt und wenn ihr noch einen zweiten Aufruf wie in der Übersicht nach dem Bewegungserkennungs- modul bei „Bewegung Ende“ mit dem „State(0)“ macht, dann wird diese Systemvariable so lange auf Wahr gehalten solange die Software mit euren Einstellungen vor der Kamera eine Bewegung feststellt.

Mit dieser Systemvariable ist es nun Einfach ein Programm in der CCU anzulegen welches z.B. das Licht schaltet oder…

Klingel Kamera

Mit dem Webserver Modul und meinem bereits hier http://www.lxccu.com/manuals:php-email-script Veröffenltlichten PHP Script ist es einfach durch das Klingeln ein CCU Programm auszulösen welches das Bild (oder die Bilder) der Kameras in ein Mail Einbettet und Versendet und oder am Server ablegt.

Allgemein

Video Integration

Weiters kann einfach in jeder App / Webseite der mjpeg Datenstrom wie in dem Modul „http Webserver“ oben eingestellt genutzt werden, hier kann das Bild auch einfach durch übergabe von Parametern z.B. Sakliert werden um nicht die Volle Auflösung (3MP) in der Vorschau zu benutzen. Auch kann die Anzahl der Bilder pro Sekunde angegeben werden.

http://<ip des Servers>:10090/<kamera name>.mjpg?resolution=640x480&fps=5

Ich bin mit der Lösung sehr zufrieden vor allem wird die Software aktiv Weiterentwickelt und als ich z.B. die neue H.264 Kamera Integriert habe und veststellte das der Webserver nur jpg oder mjpg als Protokolle anbietet, dem Hersteller Support ein Mail gesendet das hier eine mp4 Integration für die Zukunft wünschenswert wäre. Der Hersteller hat innerhalb von Tagen geantwortet das dies eine Gute Idee ist und diese in die DoTo Liste aufgenommen wurde, zwar mit keiner Hohen Priorität aber immerhin mehr wie von anderen Herstellern dessen Produkte ein vielfaches Kosten!