Das alte Android-Smartphone als Smart-Home-Security/IP-Cam in FHEM nutzen: Push-Mitteilungen bei erkannter Bewegung

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Ein wichtiger Aspekt der Hausautomation ist Sicherheit. Meldet ein Sicherheitssensor Gefahr (z.B. Bewegung, Wasser, Rauch etc.), muss eventuell in Sekundenschnelle gehandelt werden. Um die Lage zuhause auch von unterwegs gut einschĂ€tzen zu können, empfiehlt es sich, eine IP-Cam, also eine internetfĂ€hige Kamera zu nutzen. Alte Android-Smartphones eignen sich als solche IP-Cams besonders gut, da sie kaum noch einen Wert besitzen, aber doch noch teilweise brauchbare Hardware-Elemente verbaut haben (Wifi-Modul, Kamera, etc.). Hier wird daher Schritt fĂŒr Schritt vorgefĂŒhrt, wie ein altes Android-Smartphone in eine IP-basierte Wifi-Kamera umgewandelt wird, wie diese in den Hausautomation-Server FHEM eingebunden wird und wie sie den Nutzer beispielsweise bei Bewegung oder anderen Ereignissen aktiv per Push-Mitteilung auf das Smartphone informiert.

Altes Android zur IP-Cam umrĂŒsten

Die kostenlose App „IP Webcam“ im Android-Playstore/Market ermöglicht es, per Webinterface auf die Kamera des Android-Smartphones zuzugreifen. Nach der Installation der App sollten folgende Einstellungen vorgenommen werden:

  • „Prevent going to sleep“ aktivieren
  • „Stream on device boot“ aktivieren

Nach dem Start des Webcamservers auf dem Android-Device wird die IP-Adresse des Servers unten im Bildschirm angezeigt. Der Zugriff erfolgt standardmĂ€ĂŸig ĂŒber einen Webbrowser und den Port 8080 (z.B. http://192.178.178.46:8080). Hier stehen unterschiedliche Verwendungsmöglichkeiten zur VerfĂŒgung (z.B. MJPG-Videofeed etc.), von denen je nach Bedarf eine oder mehrere gewĂ€hlt werden können. Die ordnungsgemĂ€ĂŸe Funktion kann durch das an die URL angehĂ€ngte „/shot.jpg“ geprĂŒft werden (z.B.192.168.178.46:8080/shot.jpg). Mit einer dauerhaften Stromversorgung ausgestattet, hat man jetzt eine voll funktionsfĂ€hige IP-Cam, die in etwa 1-2 Watt Strom verbraucht.

IP-Cam in FHEM einbinden

Der Open-Source-Hausautomation-Server FHEM, welcher meist auf einem RaspberryPi (Affiliate-Link) betrieben wird, ermöglicht das Erstellen vollindividueller Hausautomation-AblĂ€ufe mit Bedingungen und Aktionen, wobei der Hauptvorteil gegenĂŒber anderen Lösungen darin besteht, dass herstellerĂŒbergreifend agiert werden kann.

Die Integration der IP-Cam wird in zweierlei Schritten vorgenommen. ZunĂ€chst wird das Live-Bild in der RaumĂŒbersicht eingebunden, bevor anschließend eine funktionale Integration vorgenommen wird, mit der Aktionen im Smart Home ausgelöst werden können.

1. Schritt: Livebild einbinden
Die Anzeige des Livebilds in der RaumĂŒbersicht wird mit Hilfe eines „weblinks“ vorgenommen. In der Command-Zeile von FHEM wird die oben angesprochene URL der IP-Cam in einem iframe eingebunden. Mit dem Attribut „htmlattr“ können beispielsweise Breite und Höhe des Frames individuell festgelegt werden. Die IP-Adresse (hier 192.168.178.46) aus dem gezeigten Beispiel muss individuell angepasst werden.

define interactive_webcam weblink iframe http://192.168.178.46:8080/shot.jpg
attr interactive_webcam htmlattr width="480" height="320"

2. Schritt: Funktionen aktivieren
Um sinnvolle AblĂ€ufe mit der Kamera kreieren zu können, muss mit des Moduls „IPCAM“ noch die Funktionskomponente angelegt werden.

define IPCam IPCAM 192.168.178.46:8080
attr IPCam snapshots 3
attr IPCam delay 3
attr IPCam path shot.jpg
attr IPCam event-on-update-reading snapshots
attr IPCam storage /opt/fhem/FHEM

Die erste Zeile verwendet erneut die IP-Adresse der Security-Cam, um die Verbindung herzustellen (auch hier individuell anpassen). Das erste Attribut „snapshots“ legt fest, wie viele Bilder im Fall einer Aktivierung durch ein beliebiges Event ausgelöst und gespeichert werden sollen (hier 3). Die Zeit zwischen diesen Aufnahmen wird mit dem „delay“-Wert festgelegt. Schließlich benötigt FHEM noch den Pfad zum Bild auf der IP-Cam, der im vorgestellten Beispiel „shot.jpg“ ist. Gespeichert werden die erstellten Bilder im Ordner „/opt/fhem/FHEM“.

Um spÀter im Push-Mitteilungs-Szenario auf die erstellten Snapshots zugreifen zu können, wird mittels des FHEM-Moduls HTTPSRV ein kleiner, auf FHEM basierender Webserver definiert:

define Webserver HTTPSRV jsf /opt/fhem/FHEM Webcam-Bilder

Die angefertigten Snapshots können nun unter der URL von FHEM plus „/jsf“ gefunden werden (z.B. 192.168.178.51:8083/fhem/jsf/IPCam_snapshot.jpg).

3. Schritt: AblÀufe festlegen
Nach dem Anlegen von Funktion und Live-Bild, gilt es nun, mit Hilfe von FHEM clevere Hausautomation-AblĂ€ufe zu gestalten. Anhand eines Beispiels wird dies hier gezeigt. Im vorgefĂŒhrten Szenario wird…

HierfĂŒr wird dieser Bewegungsmelder (Affiliate-Link) benötigt. Der Hausautomationserver FHEM lĂ€uft dabei auf einem RaspberryPi (Affiliate-Link) und ist mittels HomeMatic LAN-Adapter (Affiliate-Link) mit dem Bewegungsmelder verbunden.

Diese Verbindung wird durch DrĂŒcken der Anlerntaste auf der RĂŒckseite des Bewegungsmelders (Affiliate-Link) und einem Fhem-seitigen

set HMLAN1 hmPairForSec 60

hergestellt. Der automatisch erzeugte Eintrag in der fhem.cfg (der allumfassenden Konfigurationsdatei) sieht wie folgt aus:

define Bewegungsmelder1 CUL_HM 1F86A3
attr Bewegungsmelder1 .devInfo 810100
attr Bewegungsmelder1 .stc 81
attr Bewegungsmelder1 actCycle 000:10
attr Bewegungsmelder1 actStatus alive
attr Bewegungsmelder1 autoReadReg 4_reqStatus
attr Bewegungsmelder1 expert 2_full
attr Bewegungsmelder1 firmware 1.6
attr Bewegungsmelder1 model HM-SEC-MDIR
attr Bewegungsmelder1 peerIDs 00000000,
attr Bewegungsmelder1 serialNr KEQ0363128
attr Bewegungsmelder1 subType motionDetector

Jetzt ist also schon einmal der Bewegungsmelder (Affiliate-Link) funktionsfĂ€hig. Eine weitere Bedingung des hier vorgestellten Beispiel-Ablaufes ist, dass die bei Bewegung erkannten Bilder nur dann per Push-Mitteilung auf das Smartphone weitergeleitet werden, wenn kein Bewohner anwesend ist. Daher wird fĂŒr das Szenario also auch eine Anwesenheitserkennung benötigt. HierfĂŒr gibt es in FHEM mehrere Möglichkeiten, von denen die Bluetooth-basierte Kontrolle die sinnvollste Variante ist, bei der mit Hilfe eines Bluetooth-USB-Sticks die Anwesenheit der Bewohner ĂŒberwacht wird. Die Konfiguration wurde hier beschrieben. Im vorgestellten Szenario wird davon ausgegangen, dass entsprechend dem vorgehen im verlinkten Artikel ein Dummy vorhanden ist, der die Anwesenheit mit „on“ oder „off“ ĂŒberwacht (hier: „DummyAnwesenheit“).

Der gesamte Programmablauf sieht nun wie folgt aus:

define not_Bewegungsmelder_Webcam notify Bewegungsmelder1:motion {fhem ("get IPCam image") if (ReadingsVal("DummyAnwesenheit","state","") eq "off")}

define not_IPCam_Push notify IPCam {system ("curl -s -F 'token=agxNg2gv9XIEorhh2mQNGsSt7M4GT2' -F 'user=uN3cefc3u1v7wpeBsgGt1ad5RBRpbn' -F 'message=WohnzimmernBewegung erkanntnhttp://IP-ADRESSE:8083/fhem/jsf/IPCam_snapshot.jpg' https://api.pushover.net/1/messages.json")}

Hierbei wird zunĂ€chst der Befehl getriggert, dass bei erkannter Bewegung („Bewegungsmelder1:motion“) ein Bild von der IP-Cam geholt wird („fhem („get IPCam image“)“), aber nur dann, wenn niemand zuhause ist („if (ReadingsVal(„DummyAnwesenheit“,“state“,““) eq „off“)“).

Im zweiten Eintrag wird dann die Push-Mitteilung angestoßen (der system curl Befehl), sobald die IP-Cam einen neuen Snapshot erstellt hat. Das Versenden von Push-Mitteilungen aus FHEM heraus, wurde ebenfalls im oben verlinkten Artikel erklĂ€rt. Der in der Nachricht enthaltene Link fĂŒhrt direkt auf den aktuellsten Snapshot. Die „IP-ADRESSE“ (des FHEM-Servers) ist individuell (z.B. bei Nutzung von DynDns-Diensten) einzutragen.

Aus meinem tÀglichen Leben

Ich finde die Nutzung von Live-Bildern aus der Wohnung eine super Sache. Umso besser, dass das komplette Projekt durch die Verwendung eines alten Android-Smartphones und einen vorhandenen FHEM-Server quasi kostenlos realisiert werden kann. Ich nutze die geschilderte Funktion um eben sicherzustellen, ob es sich bei einer erkannten Bewegung zuhause in meiner Abwesenheit nur um einen Luftzug durch ein offen gelassenes Fenster handelt, oder sich tatsĂ€chlich unbefugte Personen Zutritt verschafft haben. Das Szenario lĂ€sst sich auch hervorragend auf die Beobachtung von Kleinkindern ĂŒbertragen (Baby-Monitor). Grundvoraussetzung sind auch hierfĂŒr lediglich ein HomeMatic Bewegungsmelder (Affiliate-Link) und FHEM auf einem RaspberryPi (Affiliate-Link) mit einem HomeMatic Lan-Adapter (Affiliate-Link) als Schnittstelle.

Affiliate-Links

[easyazon_image align=“none“ height=“82″ identifier=“B00315QNQQ“ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/2015/06/419LXMBaugL.SL1102.jpg“ tag=“meintechblog-140422-1-21″ width=“110″][easyazon_image align=“none“ height=“79″ identifier=“B009RIOXFE“ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/2015/06/51ZbNoK2dL.SL110.jpg“ tag=“meintechblog-140422-1-21″ width=“110″]

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Verpasse keine Inhalte mehr! Trage dich in den Newsletter ein und folge uns auf Facebook.

Was ist ein Affiliate-Link? Wenn du auf einen Affiliate-Link klickst und ĂŒber diesen Link einkaufst, bekomme ich vom betreffenden Online-Shop oder Anbieter eine Provision, was mich u.A. bei den laufenden Kosten den Blogs unterstĂŒtzt. FĂŒr dich verĂ€ndert sich der Preis nicht.

Christoph

berichtet seit Juni 2012 auf meintechblog.de ĂŒber seine Erfahrungen zu Smart Home und Hausautomation und beschĂ€ftigt sich außerdem mit Smart Grids. Mehr Infos

19 Gedanken zu „Das alte Android-Smartphone als Smart-Home-Security/IP-Cam in FHEM nutzen: Push-Mitteilungen bei erkannter Bewegung“

  1. Hallo Christoph,

    erstmal herzlichen GlĂŒckwunsch zum 3-jĂ€hrigen, und danke fĂŒr den tollen Blog und die vielen Anregungen. Dank eures Blogs habe ich viele eurer Ideen selber umgesetzt, und in meine Heimautomatisierung integriert.

    Den Vorschlag, eine IPCam in FHEM zu intergrieren, habe ich mit einer Wansview NCB-541W Kamera (ich glaube die ist baugleich mit der FOSCAM FI8918W) auf einer Fritzbox 7490 umgesetzt – dabei gibt einige Besonderheiten, die ich gerne mit euren Lesern teilen möchte:

    1) Die Wansview verlangt zwingend einen „Usernamen“ und ein „Passwort“

    2) Die Wansview hat defaultmÀssig einen anderen Port (port 80)

    2) Der HTML Frame muss geringfĂŒgig grösser sein als das Bild, da das Bild noch ein padding an den Seiten hat. Ansonsten bekommt man Schieberegler um das Bild anzupassen. Also width=“660″ height=“500″ anstatt width=“640″ height=“480″.

    3) Man kann einen ‚Live-stream‘ integrieren („live.htm“)

    3) Einige Pfade sind fĂŒr die FB7490 anders zu setzen. Ich habe auf der FB7490 unter dem Ordner „fhem“ einen Unterordner „IPCam“ eingerichtet. Das geht entweder ĂŒber telnet oder direkt ĂŒber die FB unter dem MenĂŒ FRITZ!NAS.
    Die Pfade lauten dann /var/media/ftp/fhem/IPCam und nicht /opt/…

    4) Der WebCam-Bilder Folder verlangt einen „index.html“, den ich angehĂ€ngt habe. Ansonsten bekommt man eine Fehlermeldung. Mit dem beigefĂŒgten index.html kann man dann auch alle 4 Bilder auf einmal anschauen

    Noch eine Frage in eigener Sache: Weisst Du, wie man in FHEM Dateien an die FBMail anhĂ€ngt? Dann wĂŒrde ich mir die Bilder von der Alarmanlage direkt zuschicken.

    Hier die Code-fragmente aus der fhem.cfg:

    define interactive_webcam weblink iframe http://user:passwort@192.168.178.46:80/live.htm
    attr interactive_webcam htmlattr width=“660″ height=“500″
    attr interactive_webcam room IPCam
    define IPCam IPCAM user:passwort@192.168.178.46:80
    attr IPCam delay 3
    attr IPCam event-on-update-reading snapshots
    attr IPCam path snapshot.cgi
    attr IPCam room IPCam
    attr IPCam snapshots 3
    attr IPCam storage /var/media/ftp/fhem/IPCam
    define Webserver HTTPSRV jsf /var/media/ftp/fhem/IPCam Webcam-Bilder
    attr Webserver room IPCam
    define Bewegungsmelder1_n notify Bewegungsmelder1:motion {if ( $value{Bewegungsmelder1} eq „on“) {fhem („get IPCam image“);;FB_mail(‚User@@provider.com‘,’Bewegung: IPCAM ausgeloest‘,’IPCAM ausgeloest please check http://192.168.178.46:8083/fhem/jsf‚)}}

    index.html:

    WebCam Bilder

  2. Hier nochmal der index.html, der wurde als html Code nicht embedded, deswegen bitte die eckigen Klammern „[“ durch „“ ersetzten

    [html]
    [head]
    [title] WebCam Bilder [/title]
    [/head]

    [body]
    [img src = „http://192.168.178.46:8083/fhem/jsf/IPCam_snapshot.jpg“ /]
    [img src = „http://192.168.178.46:8083/fhem/jsf/IPCam_snapshot_1.jpg“ /]
    [img src = „http://192.168.178.46:8083/fhem/jsf/IPCam_snapshot_2.jpg“ /]
    [img src = „http://192.168.178.46:8083/fhem/jsf/IPCam_snapshot_3.jpg“ /]
    [/body]

    [/html]

    1. Hallo Ingolf. Danke fĂŒr deine Schilderungen!
      Dem Ein oder Anderen hier wird das sicherlich bei der Einbindung anderer Ip-Cam-Hardware sehr hilfreich sein.

      Danke dir und viele GrĂŒĂŸe!
      Christoph

  3. Hi, sorry aber ich komme bei dem index.html Fehler leider nicht weiter…
    „File not found: /var/media/fhem/webcam/index.html“
    kann mir bitte nochmal jemand sagen wie ich die gemachten Bilder automatisch angezeigt bekomme?

    Vielen Dank

    1. Hi,
      ich habe folgende Module integriert.

      define interactive_webcam weblink iframe http://192.168.178.30:8080/shot.jpg
      attr interactive_webcam htmlattr width=“480″ height=“320″

      define IPCam IPCAM 192.168.178.30:8080
      attr IPCam delay 3
      attr IPCam event-on-update-reading snapshots
      attr IPCam path shot.jpg
      attr IPCam snapshots 3
      attr IPCam storage /var/media/fhem/webcam

      define Webserver HTTPSRV jsf /var/media/fhem/webcam Webcam-Bilder

      wenn ich dann den Webserver aufgerufen habe, kam die Meldung „File not found: /var/media/fhem/webcam/index.html“

      Im Ordner /var/media/fhem/webcam habe ich dann schon mal eine index.html angelegt, weiter oben stand ein Codebeispiel fĂŒr die index.html, das hat bei mir leider so nicht geklappt…

      Hoffe mir kann hier jemand einen Tipp geben :-)
      Sitz erst seit zwei Tagen an FHEM also sorry falls ich mich doof anstelle :-)

    2. Hallo Ben,

      vielleicht wĂ€re es hilfreich, zunĂ€chst einmal die HTML-Basics zu erlĂ€utern. Ein Webbrowser kann Dateiinhalte z.B. vom Typ „jpg“ oder „html“ öffnen. Über den Befehl „define Webserver HTTPSRV jsf /opt/fhem/FHEM Webcam-Bilder“ in FHEM, legst du dabei zunĂ€chst einmal einen Webserver an, also die serverseitige Voraussetzung, damit sich dein Webbrowser (Client) ĂŒberhaupt auf deine Inhalte „verbinden“ kann. Wenn du nun auf 192.168.178.30:8083/fhem/jsf/IPCam_snapshot.jpg gehst, und vorher der IPCAM bereits das Attribut „attr IPCam storage /opt/fhem/FHEM“ gegeben hast, mĂŒsste alles, so wie bei den anderen Usern funktionieren.

      Versuch es bitte mit vor diesem Hintergrund erneut und melde dich, wenn du weitere Hilfe brauchst.
      VG
      Christoph

  4. Hallo Christoph,
    danke fĂŒr deinen Beitrag, obwohl ich schon mit der IP-Webcam gespielt habe bin ich nicht auf die Idee gekommen diese an die Haus Automatisierung anzubinden.
    Ein Paar Fragen hÀtte ich da noch:
    1. Das G1 auf dem Foto hat keinen Blitz, ich hab auch so eins. Reicht die Helligkeit der Bilder aus um abends etwas zu erkennen? Oder schaltest Du bei Bedarf das Licht ein?
    2. Hast du die Batterie im Handy? Ich hĂ€tte da Bedenken wegen Überladung. Wenn ich das aber ohne Batterie betreibe fĂ€hrt das Handy nach einem Stromausfall nicht hoch.
    3. Gibt es inzwischen Erfahrungen wie lange so ein Handy mit Dauerkamera problemlos lÀuft?

    Viele GrĂŒĂŸe,
    Damian

    1. Hallo Damian,

      ich denke, an eine echte Überwachungslösung kommt das Ganze nicht ran. Es ist und bleibt ein altes fickeriges Smartphone. Trotzdem bietet es eine ganz gute Alternative, wenn man mal fĂŒr den einwöchigen Urlaub fĂŒr Zuhause eine IP-CAM-Lösung braucht. Ich denke ĂŒber Langzeittests und BildqualitĂ€t mĂŒssen wir hier gar nicht reden.

      Viele GrĂŒĂŸe
      Christoph

  5. Hallo Christoph,

    Zuerst vielen Dank fĂŒr den super Blog. Dies ist bei meinen FHEM Problemen immer die erste Anlaufstelle. Ich habe in meinem FHEM nun auch eine IPCam (Wanscam HW 00038) integriert und wollte dies nun mit dem HM-Sen-MDIR-O-2 koppeln. Ich bekomme das Livebild auch in FHEM integriert und die Pushbenachrichtigung vie Pushover bei scharfer Alarmanlage und Mewegunsmeldung erhalte ich. Mein Problem ist das Speichern der Bilder… Ich habe schon etliches probiert. es klappt einfch nicht.

    Der ordner ist leer und bei der Verlinkung wird ĂŒber die Wehlende Index datei gewettert.

    Vielleicht kannst du mir helfen.

    #———————IPCAM Integration———————

    define interactive_webcam weblink iframe http://Benutzer:Passwort@192.168.178.5:80/videostream.cgi
    attr interactive_webcam htmlattr width=“660″ height=“500″d
    attr interactive_webcam room Alarmanlage,Haus

    define IPCam IPCAM 192.168.178.5:80
    attr IPCam delay 3
    attr IPCam event-on-update-reading snapshots
    attr IPCam path snapshot.jpg
    attr IPCam room IPCam
    attr IPCam snapshots 3
    attr IPCam storage /opt/fhem/FHEM/IPCam

    define Webserver HTTPSRV jsf /opt/fhem/FHEM/IPCam IPCam-Bilder
    attr Webserver room IPCam

    #———-Reaktion Bewegungsmelder -> IPCam————

    define Bewegungsmelder_Garten_n notify Bewegungsmelder_Garten:motion { if (Value(„ANLAGE_STATUS“) eq „scharf“) {fhem („get IPCam image;;set pushmsg msg ‚Daheim‘ ‚Garten Bewegung erkannt http://192.168.178.17:8083/fhem/jsf/IPCam_snapshot.jpg‚ “ 0 ““) } }

    1. Hallo jens,

      du hast ja scheinbar einen Unterordner „IPCam“ im Ordner „FHEM“ angelegt. Wie sieht es dort mit den Rechten aus? Setze die Rechte doch mal testhalber auf 777, um zu testen, ob es dann geht.
      Im Terminal: sudo chmod -R 777 /opt/fhem/FHEM/IPCam

      VG
      Christoph

  6. Informativer Beitrag, der zeigt das man nicht unbedingt eine IP-Kamera braucht. Aber einen Nachteil hÀtte die Smartphone-IP-Kamera schon: Man kann sie nur schwer irgendwo anbringen oder aufstellen.

  7. Hallo. wird das strong in der Definition geschrieben?

    define not_Bewegungsmelder_Webcam notify Bewegungsmelder1:motion {fhem („get IPCam image„) if (ReadingsVal(„DummyAnwesenheit„,“state“,““) eq „off„)}

    MfG
    Klaus Mrkor

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert