Klingeling – wer ist da? Oder: Standbild der Cam via telegram mit openHAB auf’s Handy senden…

Wenn ich beim Hausbau gleich an alles gedacht hätte, dann hätte ich mir eine Klingelanlage gegönnt, die mit einer Kamera verbunden ist. Denn zu sehen, wer da vor der Türe steht, ist natürlich durchaus interessant. Interessant wäre auch gewesen, wer neulich an meinem Schließzylinder Manipulationen vorgenommen hat, aber das hätte ich auch mit einer Klingelanlage mit Kamera nicht mitbekommen.

Grund genug, einmal etwas neues auszuprobieren. Inzwischen ziert eine Kamera (natürlich mit entsprechendem Hinweis darauf) meinen Eingangsbereich und hat exakt die Haustüre im Blick. Zurückgedacht an den ursprünglichen Einsatzzweck, also zu sehen, wer vor der Türe ist, muss sich das doch mit openHAB erledigen lassen… Und so war es auch auch!

Technische Vorbereitungen

Als Kamera habe ich mit die Steinel L 620 gekauft, welche eine Kombination aus LED-Außenleuchte mit Bewegungsmelder sowie Kamera ist. Einen Test der Kamera stelle ich ggf. bei Gelegenheit noch im Blog ein. Die CAM, die rtsp-Streaming untestützt, ist mit WLAN angebunden, daher habe ich diese – da ich schon seit Jahren verschiedene NAS-Systeme von Synology nutze – in die Surveillance-Station von Synology eingebunden. Cloud-Lösungen (also fremde Clouds) mag ich einfach nicht. Da die CAM wie gesagt per WLAN eingebunden ist, wollte ich nicht via WLAN von zwei verschiedenen Geräten aus den Stream anzapfen, und mir so das WLAN unnötig dich machen, daher habe ich den Stream aus der Surveillance-Station im LAN nochmal verfügbar gemacht:

Stream der Surveillance-Station Webcam im LAN dauerhaft verfügbar machen – einfach im Kontextmenü der jeweiligen Kamera auswählen.

OK, die CAM ist nun damit im LAN verfügbar, nun muss aber openHAB die auch noch verwenden können. Die Idee hier ist nun folgende: es klingelt, openHAB macht ein Standbild aus dem Stream, nutzt dazu die exec Actions, das resultierende Standbild wird per Telegram an den Empfänger geschickt.

Um das Standbild aus dem Stream erstellen zu kennen, wird ffmpeg installiert:

apt-get install ffmpeg

Nun haben wir ein Tool, das einen rtsp-Stream anzapfen kann. Das extrahierte Bild muss aber, bevor es per telegram verschickt wird, irgendwo gespeichert werden und auf den Ort braucht der openhab-Systemnutzer auch Schreibzugriff. Ich habe das Bild im Ordner /var/www/html/openhab abgelegt, da ich es parallel auch vom Webserver aus im Hausnetz zugreifbar haben möchte. Aber letztich ist es egal, wo dieser Ordner erstellt wird, wichtig ist hierbei aber, dass wie gesagt der Nutzer openhab Schreibzugriff darauf erhält:

chown openhab.openhab /var/www/html/openhab

ffmpeg benötigt als Parameter Angaben zum Stream und dass es eben genau ein Bild abspeichern muss Wenn etwas nicht funktioniert könnt ihr ja testweise ffmpeg von der Shell aus ausführen.

Um das Ganze dann zusammenzubringen brauchen wir noch telegram, dazu aber habe ich vor längerer Zeit schon etwas geschrieben.

Rules-Datei

In der eigentlichen Rule ist das dann ganz schnell und einfach zusammengebracht:

// (...) Auszug aus der Rule, wenn die Klingel betätigt wird        
executeCommandLine('/usr/bin/ffmpeg -y -i rtsp://syno:xxxxxxxxxxxxxx@xxxxxxxxxxxx.fritz.box:554/Sms=1.unicast -vframes 1 -loglevel quiet /var/www/html/openhab/capture_haustuere.jpg', 9000);
sendTelegramPhoto('bot1', 'file:///var/www/html/openhab/capture_haustuere.jpg', 'Es hat soeben geklingelt!')
// (...)

Wichtig beim executeCommandLine ist, dass unbedingt ein Parameter für den Timeout erfolgt, denn ffmpeg braucht etwas, bis der Stream angezapft ist und das Bild gespeichert ist. 5 Sekunden genügen hier vollkommen, solltet ihr beim Klingeln keine aktuellen sondern immer Bild des vorletzten Klingeln erhalten, so könnte es an eben diesem dann wohl zu geringen Parameterwert liegen.

Ich selbst nutze inzwischen ein Intel NUC als Basis für meine openHAB-Instanz, aber ich gehe daovn aus, dass das Ganze auch auf einem Raspberry gut laufen wird.

2 Antworten auf „Klingeling – wer ist da? Oder: Standbild der Cam via telegram mit openHAB auf’s Handy senden…“

  1. Ich liebäugle ebenfalls mit der 620, will sie aber mittels IP Camera Binding direkt in OH 2.5 einbinden. Darf ich fragen, ob das versucht wurde bzw. ob die RTSP Streams dort ankommen?

    1. Das Binding ist meines Wissens kein offiziell ob oh integriertes Binding, daher hatte ich das nicht versucht. Wenn das aber mit rtsp streams umgehen kann, sollte das vermutlich aber funktionieren…

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.