FHEM mit INSTAR 2k+ (WQHD) Kameras
Q: Ich habe Ihre FHEM Installationsanleitung für einen Raspberry Pi gefunden. Kann ich diese Software zusammen mit den neuen 2k+ (WQHD)-Kameramodellen verwenden?
A: Ja, und die Installation ist im Grunde identisch mit der Installation der Full HD-Kamera.
- Adding Timed Snapshots
- Adding the Live Video
- Adding an Alarnserver Webhook
- Connecting to the MQTT Interface
Hinzufügen von zeitgesteuerten Schnappschüssen
Fügen Sie zunächst Ihre Kamera mit Hilfe des IPCAM-Moduls hinzu und fügen Sie den Snapshot-Pfad Ihrer Kamera hinzu, z. B. http://192.168.2.115:80/snap.cgi?chn=12&user=admin&pwd=instar
:
define WQHDCam IPCAM 192.168.2.115:80
attr WQHDCam path snap.cgi?chn=12&user=admin&pwd=instar
attr WQHDCam delay 10
attr WQHDCam snapshots 5
attr WQHDCam storage /opt/fhem/www/snapshots
attr WQHDCam icon it_camera
Dadurch wird der Snapshot-Ordner auf /opt/fhem/www/snapshots
gesetzt. Alle Ordner innerhalb des Verzeichnisses /opt/fhem/www
gehören dem Benutzer/Gruppe 6061
:
ls -la /opt/fhem/www
total 36
drwxr-x--- 9 6061 6061 4096 May 12 17:55 .
drwxr-x--- 15 6061 6061 4096 May 12 17:39 ..
drwxr-x--- 2 6061 6061 4096 Apr 25 07:09 codemirror
drwxr-x--- 3 6061 6061 4096 Apr 25 07:09 frontend
drwxr-x--- 2 6061 6061 4096 Apr 25 07:09 gplot
drwxr-x--- 6 6061 6061 4096 Apr 25 07:09 images
drwxr-x--- 2 6061 6061 4096 Apr 25 07:09 jscolor
drwxr-x--- 3 6061 6061 4096 Apr 25 07:09 pgm2
Erstellen Sie also den Ordner snapshots
und ändern Sie ihn entsprechend:
mkdir /opt/fhem/www/snapshots
chown 6061:6061 /opt/fhem/www/snapshots
Um zu testen, ob es funktioniert, können wir auf die Schaltfläche get image
klicken:
Überprüfen Sie das Speicherverzeichnis - es sollte jetzt die 5 Bilder enthalten:
ls -la /opt/fhem/www/snapshots
total 576
drwxr-xr-x 2 6061 6061 4096 May 12 18:13 .
drwxr-x--- 9 6061 6061 4096 May 12 17:55 ..
-rw-r----- 1 6061 6061 93529 May 12 18:12 WQHDCam_snapshot_1.jpg
-rw-r----- 1 6061 6061 93991 May 12 18:13 WQHDCam_snapshot_2.jpg
-rw-r----- 1 6061 6061 94439 May 12 18:13 WQHDCam_snapshot_3.jpg
-rw-r----- 1 6061 6061 94784 May 12 18:13 WQHDCam_snapshot_4.jpg
-rw-r----- 1 6061 6061 94689 May 12 18:13 WQHDCam_snapshot_5.jpg
-rw-r----- 1 6061 6061 94689 May 12 18:13 WQHDCam_snapshot.jpg
Um auf diese Snapshots zugreifen zu können, können wir den integrierten Webserver in FHEM namens HTTPSRV verwenden und ihn anweisen, den Inhalt des Speicherverzeichnisses define zu liefern:
[name] HTTPSRV [infix] [directory] [friendlyname]
- name: ist ein benutzerdefinierter Name für das Gerät, der von der FHEM-Benutzeroberfläche verwendet wird.
- infix: ein Präfix für die FHEMWEB-Base-URL, unter der der Inhalt des Verzeichnisses bereitgestellt wird.
- directory: den absoluten Pfad zum Verzeichnis des öffentlichen Snapshots, das Sie zuvor erstellt haben.
- friendlyname: der Name, der in der FHEM-Seitennavigation verwendet wird.
define SnapshotServer HTTPSRV snapshots /opt/fhem/www/snapshots WQHDCam-Snapshots
attr SnapshotServer icon dog_silhouette
Die oben angelegten Snapshots sind jetzt über den Browser erreichbar - z.B. mit /fhem/snapshots/WQHDCam_snapshot.jpg
.
Und jetzt kommt alles zusammen. Indem wir eine Aufgabe erstellen, die die Funktion "Get Image" einmal pro Minute auslöst, können wir einen Livestream von unserer Kamera mit 1 Bild pro Minute einbetten:
define WQHDCam_Timelapse at +*00:01:00 get WQHDCam image
attr WQHDCam_Timelapse icon time_timer
Dieses Bild kann in eine Website eingebettet werden. Sie können diesen HTML-Code herunterladen und entpacken Sie es nach /opt/fhem/www/snapshots
. Diese Seite wird unter /fhem/snapshots
gehostet und zeigt Ihnen den neuesten Schnappschuss in einer jQuery-Lightbox (siehe auch Fotoserien in FHEM).
Hinzufügen des Live Video
Sie können das IFRAME-Modul verwenden, um das Live-Video der Kamera hinzuzufügen:
define WQHDCamViewer weblink iframe http://192.168.2.115:80/livestream/12?action=play&media=mjpeg&user=admin&pwd=instar
attr WQHDCamViewer htmlattr width="640" height="360" frameborder="0" marginheight="0" marginwidth="0"
attr WQHDCamViewer room INSTAR
attr WQHDCamViewer verbose 5
Hinzufügen eines HTTP Alarnserver Webhook
Ich möchte nun den HTTP-Alarmserver der Kamera benutzen, um FHEM im Falle eines Alarms zu kontaktieren und einen Schalter für mich umzuschalten, den ich AlarmServer
nenne:
define AlarmServer dummy
attr AlarmServer setList on off
attr AlarmServer room INSTAR
attr AlarmServer icon secur_alarm
Dieser Schalter kann nun umgeschaltet werden, indem eine GET-Anfrage an die folgenden Webhooks gesendet wird:
http://192.168.2.111:8083/fhem?cmd=set%20AlarmServer%20on&XHR=1
http://192.168.2.111:8083/fhem?cmd=set%20AlarmServer%20off&XHR=1
Hinweis: Wenn der Aufruf der URL nicht funktioniert und zu einem HTTP ERROR 400 oder einer weißen Seite führt, führen Sie den folgenden Befehl in der FHEM-Befehlszeile aus
attr WEB csrfToken none
und versuchen Sie es erneut. Schauen Sie in das FHEM-Forum für mehr Details.
Wir haben jetzt eine Möglichkeit, einen Schalter in FHEM umzuschalten, wenn unsere Kameras ausgelöst werden. Alles, was wir jetzt tun müssen, ist, den FHEM-Webhook, den wir gerade erstellt haben, zur Alarmserver-Konfiguration hinzuzufügen:
Die nächsten Schritte sind spezifisch zu Ihrem persönlichen Setup. Verwenden Sie den Schalter, um eine Funktion auszulösen, und schalten Sie ihn wieder aus, damit er für die nächste Alarmauslösung bereit steht.
Verbinden mit der MQTT Schnittstelle
Sie können den kamerainternen MQTT-Broker mit dem MQTT2 Client verwenden, um FHEM mit Ihrer Kamera zu verbinden:
define [name] MQTT2_CLIENT [host]:[port]
Aktivieren Sie zunächst den INSTAR MQTT Broker:
Und definieren Sie den MQTT-Client mit Ihrer Kamera-IP und dem MQTT-Broker-Port:
define inMQTTv5 MQTT2_CLIENT 192.168.2.115:1883
Fahren Sie fort, indem Sie Ihr Broker-Login eingeben und auf Verbinden klicken, um den Kunden mit Ihrem Broker zu verbinden:
Weiterleiten von FHEM Ereignissen durch MQTT
Definiere Sie eine MQTT Brücke:
define MQTTBridge MQTT_GENERIC_BRIDGE
attr MQTTBridge IODev inMQTTv5
attr MQTTBridge globalDefaults sub:qos=1 pub:qos=1 retain=0
attr MQTTBridge globalPublish *:topic={"fhem/$device/$reading"}