Kamerabild mit KNX versenden

Dieser Artikel beschreibt, wie mit Hilfe eines KNX Sensors eine E-Mail mit dem Bild einer Kamera versendet wird.

Voraussetzungen

Folgender fertig konfigurierte Umgebung ist vorhanden:

  • KNX Bussystem
    • programmierter Sensor
    • Gruppenadresse, der den Sensor beinhaltet (z.B. Präsenz true/false)
  • SmarthomeNG Version 1.7.2 (Debian)
  • Zoneminder Version 1.34.26 (Debian)
  • SMTP Server bei einem ISP mit Authentifizierung

Folgende Netzwerkzugriffe werden benötigt:

  • SmarthomeNG benötigt Zugriff auf Zoneminder mittels Port 6802
  • Zoneminder muss über den Port 587 mit dem SMTP Server kommunzieren können

Konfiguration

Die Konfiguration startet mit Zoneminder, da dies etwas mehr Aufwand erfordert. Dieser Blogeintrag wurde als Basis verwendet und es werden einige Informationen daraus für diesen Artikel abgeleitet.

Zoneminder

Dieser Abschnitt beschreibt die Konfiguration innerhalb von Zoneminder, damit via Telnet ein Kamerabild aufgenommen und via E-Mail verschickt wird.

Folgende Schritte müssen in Zoneminder durchgeführt werden:

  • Versand von E-Mails konfigurieren
  • Filter anlegen
  • Trigger-Funktion aktivieren

Versand der E-Mail

Zunächst msmtp installieren:

sudo apt install msmtp

msmtp erwartet eine Konfigurationsdatei. Die Datei /etc/msmtprc erstellen und Dateirechte sudo chmod 744 /etc/msmtprc setzen.

Die Konfigurationsdatei muss mit Inhalt gefüllt werden. Die Parameter für die Konfigurationsdatei sind hier zu finden.

Getestet kann die Konfig mit diesem Befehl: echo „Subject: sendmail test“ | msmtp -v dein@mailadresse.tld

Zoneminder verwendet den Befehl „sendmail“. Wenn der Befehl in die Konsole eingegeben wird und es erscheint eine Fehlermeldung und nicht die Versionsinfo von msmtp, muss noch ein entsprechend Symlink erstellt werden.

Mit dem Befehl $PATH die Umgebungsvariablen ausgeben lassen. Ausgabe:

-bash: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games: No such file or directory

Symlink mit sudo ln -s /usr/bin/msmtp /usr/bin/sendmail setzen.

Erneut testen: echo „Subject: sendmail test“ | sendmail -v dein@mailadresse.tld

Unter Optionen im Abschnitt E-Mail müssen folgende Einstellungen getroffen werden: Hacken bei NEW_MAIL_MODULES setzen, alles weitere ausfüllen. SSMTP_MAIL aktivieren und SSMTP_PATH folgendes eintragen: /usr/bin/msmtp

Filter anlegen

In Zoneminder Navigationspunkt Filter öffnen und einen neuen Filter anlegen. Ein Beispiel mit den wichtigsten Einstellungen in Rot markiert:

ZMTrigger aktivieren

Die Aktivierung von ZMTrigger wird auch in diesem Wiki Eintrag bei Zoneminder beschrieben.

Optionen, System und OPT_TRIGGERS aktivieren. Dienst neu starten.

Kontrolle wie im Wiki-Beitrag beschrieben: sudo lsof -i -P -n | grep LISTEN

Ausgabe (gekürzt): zmtrigger 433 www-data 4u IPv4 1388292233 0t0 TCP *:6802 (LISTEN)

Kontrolle ob der Filter auslöst mit Telnet: telnet kamerasystem.tld 6802

Befehl in der Telnet Session: 3|on+3|10|ZMTEST|Text|Text

Bei richtiger Konfiguration, wird jetzt die Mail versendet.

SmarthomeNG

In SmartHomeNG eine neue Logik erstellen.

Code

Folgenden Python kann als Grundlage verwendet werden.

  1. #!/usr/bin/env python3
  2. # beispiel.py
  3.  
  4. #logic.logger.info("Logik Präsenz start")
  5. if sh.Voller.Pfad.zum.Item():
  6. import telnetlib
  7. HOST = "kamerasystem.tld"
  8. PORT = 6802
  9. # B<id>|B<action>|B<score>|B<cause>|B<text>|B<showtext>
  10. tn = telnetlib.Telnet(HOST,PORT)
  11. tn.write(b"3|on+3|10|ZMTEST|Präsenz|Präsenz\n")
  12. tn.write(b"ls\n")
  13. tn.write(b"exit\n")
  14. exit
Paramater

In den Parameter müssen noch die beobachtenten Items (Watch Item(s)) gesetzt werden und ggf. knx_listen.

Nachdem die Logik aktiv geschaltet wurde, wird das Kamerabild verschickt, sobald das Item auslöst.