Wenn man eine moderne Türsprechanlage wie die ESENTA SIAS besitzt, dann möchte man diese natürlich in das eigene Smarthome integrieren. Im Nachfolgenden sind mehrere Wege beschrieben, wie der Kamerastream in FHEM eingebunden werden kann. Genauer gesagt wird die Einbindung über 1) das IPCAM Modul 2) einen Reverse Proxy und 3) die Synology Surveillance Station beleuchtet.

Einbindung über IPCAM in FHEM

Ein Weg zu Einbindung der Kamera der ESENTA SIAS Türsprechstation ist das Modul IPCAM in FHEM. Nachfolgend beschrieben ist, wie man die Kamera im einfachsten Fall einbindet.  Natürlich bietet das Modul IPCAM noch weitere Einstellmöglichkeiten, die im FHEM Wiki  und der Commandref  beschrieben sind:

1
2
3
4
define cam_esenta_sias IPCAM
attr cam_esenta_sias basicauth camera:
attr cam_esenta_sias path snapshot_wide.jpg
attr cam_esenta_sias icon it_camera

Ruft man nun folgendes auf, dann wird das aktuelle Bild von der Kamera in FHEM standardmäßig unter ./www/snapshots gespeichert. Das aktuelle Bild kann man so in FHEM Tablet UI oder auch zum Versand in Telegram verwenden.

1
get cam_esenta_sias image

Einbindung des Livebildes ins FHEM Tablet UI über einen Reverse Proxy (Nginx)

Möchte man den Livestream der Kamera im FHEM Tablet UI einbinden und hat zuvor die Kamera mit einem Passwortschutz versehen, so ist es leider nicht möglich den Stream direkt per URL in das Tablet UI einzubinden. Ohne im Detail darauf einzugehen, ist der Hintergrund sicherheitsrelevante Aspekte, die von den meisten Browsern forciert werden. Ein Weg, um dies wieder zu ermöglichen, ist die Einrichtung eines Reverse Proxy, der die Authentifizierung übernimmt. Zum Schluss erhält man einen Link, der ohne weitere Authentifizierung, direkt in das FHEM Tablet UI eingebunden werden kann. Das Ganze wird hier am Beispiel von NGINX beschrieben.

Zuerst einmal installieren wir NGINX, z.B. mit den folgenden Befehlen auf unserem Debian/Ubuntu basierendem System:

1
2
apt update
apt install nginx -y

Dann starten wir den NGINX Server und sorgen dafür , dass dieser bei jedem Neustart automatisch wieder gestartet wird:

1
2
sudo systemctl start nginx
sudo systemctl enable nginx

Anschließend wechseln wir in das Verzeichnis von NGINX, um eine Konfiguration anzulegen:

1
2
cd /etc/nginx/sites-available/
nano doorcom.conf

Die Konfiguration, sieht wie folgt aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
server {
    listen 9000;
    listen [::]:9000;

    server_name fhem.lan;

    access_log /var/log/nginx/reverse-access.log;
    error_log /var/log/nginx/reverse-error.log;

    location /doorcam/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.1.100/stream_wide.mjpg;
        proxy_set_header Authorization "Basic <base64 encoded camera:password>";
        proxy_buffering off;
    }
}

Erklärung der Konfiguration:

  • listen: Festlegung über welchen Port, der neue Link auf den Kamerastream bereitgestellt werden soll
  • location: Definition über welchem neuen Pfad der Kamerastream erreichbar sein soll.
  • proxy-pass: Link zum Stream der ESENTA SIAS Kamera ohne die Authentifizierung
  • proxy_set_header Authorization: Wie in den Klammern angedeutet, muss hier der Base64 enkodierte Wert aus Username (camera) und Passwort des Livestreams eingetragen werden.

Die Einrichtung bezieht sich aus Gründen der einfacheren Erklärung nur auf die Verbindung via HTTP. Klar zustellen ist hier, dass dies unsicher ist, da Username & Password bzw. das Base64 enkodierte Ergebnis ausgelesen werden können. Deutlich sicherer ist Basic Auth in Kombination mit HTTPS. Auch dies wird von NGINX natürlich unterstützt. Es gibt dazu zahlreiche Tutorials im Internet wie ein NGINX Reverse Proxy für HTTPS eingerichtet werden kann - wir gehen hier nicht näher drauf ein.

Damit die Konfiguration auch von NGINX genutzt werden kann, muss diese im Verzeichnis “sites-enabled” vorhanden sein. Ich bevorzuge hier das Anlegen eines symlinks, sodass bei Änderungen nicht ständig 2 Konfigurationsfiles gepflegt werden müssen. Den Symlink erstellt man wie folgt:

1
ln -s /etc/nginx/sites-available/doorcom.conf /etc/nginx/sites-enabled/doorcom.conf

Nun deaktivieren wir die default Konfiguration, die bei der initialen Installation mitgeliefert wird:

1
unlink /etc/nginx/sites-enabled/default

Weiter kann man die Anpassungen an die Konfiguration mit dem ersten Befehl prüfen und mit dem zweiten in den laufenden NGINX Server laden:

1
2
nginx -t
nginx -s reload

Sofern alles in Ordnung ist, ist der Livestream nun über folgenden Link erreichbar (und zwar ohne weitere Authentifizierung - wird man hierzu aufgefordert, dann ist vermutlich der base64 enkodierte Wert falsch). Die Einbindung in das FHEM Tablet UI kann dann über den “<img>” oder einen “<div data-type="image"...” Tag über die folgende Adresse vorgenommen werden.

1
http://fhem.lan:9000/doorcam/

Ein Beispiel für die Einbindung in die TabletUI liefern wir nach!

Einbindung des Livebildes via Synology Surveillance Station in FHEM

Als dritten Lösungsweg kann man die Kamera der ESENTA SIAS über die Synology Surveillance Station und dann über das SSCAM Modul in FHEM einbinden. Das setzt natürlich voraus, dass man im Besitz eines Synology NAS ist. Sofern mehr machen möchte, als nur den Kamerastream im Tablet UI anzuzeigen, kann dieser Weg durchaus sinnvoll sein. Eine ausführliche Dokumentation, zum SSCAM Modul ist hier  vorhanden und kann problemlos befolgt werden. Zuvor muss man den RTSP oder MJPEG Stream der Kamera in der Surveillance Station als Universal Device angelegt haben.