INSTAR MQTT Server für INSTAR Full HD Kameramodelle
Das MQTT Interface
- INSTAR MQTT Dienst
- MQTT Debugging
- MQTT v5 API (2k+ (WQHD) Serie)
- MQTT v3 API (Full HD Serie)
- MQTT v3 vs. HTTP API (Full HD Serie)
- Android Apps
- Home Assistant
- OpenHAB2
- Node-RED
- Athom Homey
- Homematic CCU3
- ioBroker
- Loxone
- homee
- FHEM
- HiveMQ
- Mosquitto
- Cloud MQTT
Alle Kamerafunktionen Ihrer INSTAR Full HD-Kamera können über die HTTP/S CGI-Schnittstelle gesteuert werden. Dies ist die Schnittstelle, die von der WebUI und allen INSTAR Smartphone- und Desktop-Anwendungen verwendet wird. Aber im Smarthome and Internet of Things (IoT) Bereich gibt es ein weiteres Protokoll, das weit verbreitet ist und einige Vorteile gegenüber dem klassischen HTTP bietet - dieses Protokoll heißt MQTT (Message Queuing Telemetry Transport). Das MQTT Interface * unserer Full HD-Kameras macht das Hinzufügen dieser Kameras zu einem bestehenden Smarthome - beinahe - zu einfach :)
In MQTT steuern Sie Ihre Kamera, indem Sie Updates auf MQTT Topics senden (publish). Der Wert, auf den Sie ein solches Topic aktualisieren möchten, wird in JSON formatiert und zum Message Payload hinzugefügt. Anstatt also einen CGI-Befehl wie folgt zu senden param.cgi?cmd=setmdattr&-name=1&-enable=${"{val}"}
um entweder den Bewegungserkennungsbereich 1 zu aktivieren (val=1) oder zu deaktivieren (val=0), veröffentlichen (publish) Sie dieses Update unter dem Topic alarm/area1/enable
in folgenden Format {"{val:1}"}
oder {"{val:0}"}
.
Adressierung der richtigen Kamera
Um sicherzustellen, dass dieses Update vom richtigen Gerät in Ihrem MQTT-Netzwerk empfangen wird, müssen wir dem Topic zunächst instar
voranstellen - so wird sichergestellt, dass Ihre Kamera versucht, das Update mit einer internen Funktion abzugleichen - wie z.B. dem Aktualisieren des Status eines Erkennungsbereichs. Zweitens müssen wir angeben, welche Kamera wir ansprechen wollen, indem wir entweder all
sagen, um alle INSTAR-Kameras in Ihrem MQTT Netzwerk zu adressieren, oder eine bestimmte Kamera anhand ihrer MAC-Adresse auswählen, z.B. 000389888811
. Die MAC-Adresse Ihrer Kamera finden Sie unter System/Overview - entfernen Sie einfach die Doppelpunkte, z.B. 00:03:89:88:88:88:11.
Wenn Sie die Kamera ansprechen möchten, auf der Ihr MQTT Broker läuft, können Sie stattdessen auch das Präfix local
verwenden. Das gesamte Topic sieht dann so aus:
- instar/all/alarm/area1/enable
*
- um alle INSTAR Full HD-Kameras in Ihrem MQTT-Netzwerk anzusprechen (alle müssen mit dem gleichen MQTT-Broker verbunden sein). - instar/000389888811/alarm/area1/enable - um eine Kamera mit der (LAN-)MAC-Adresse 00:03:89:88:88:11 anzusprechen.
- instar/local/alarm/area1/enable /* - um die Kameras anzusprechen, auf der der MQTT Broker in Ihrem Netzwerk läuft.
*
Ein Beispiel für die Verwendung des ALL Topics und LOCAL Topics finden Sie in unserer MQTT Anleitung für Node-RED.
Die zulässigen Payloads für jedes MQTT-Topic finden Sie in der folgenden Tabelle. Die zweite Tabelle unten zeigt Ihnen den entsprechenden CGI-Befehl zu jedem Topic an (wenn Sie mit der HTTP-API bereits vertraut sind und nach einem bestimmten Befehl suchen).
Status, Command oder Raw Topics
Sobald Sie ein COMMAND Topic wie instar/000389888811/alarm/area1/enable
aktualisieren, werden Sie sehen, dass Sie ein Update auf das STATUS Topic instar/000389888811/status/alarm/area1/enable
erhalten. D.h. der Befehl wurde erhalten, die Funktion wurde auf der Kamera ausgeführt und als Bestätigung wurde eine Status Update rausgesendet. Sie können also in Ihrer Anwendung Befehle über Schalter Elemente versenden, die Position in der sich der Schalter befindet jedoch über das Status Topic bestimmen. Auf diese Weise können Sie sicher sein, daß ein Schalter in der "Aus" Position auch bedeutet, daß etwas auf der Kamera deaktiviert ist.
Wenn Ihre Anwendung das Senden von Befehlen im JSON-Format nicht unterstützt, können Sie das RAW Topic verwenden, indem Sie raw
am Ende des Topics hinzufügen und den Wert direkt als Zeichenkette verwenden:
instar/000389888811/alarm/area1/enable/raw
- die Nachrichten hier ist einfach entweder1
oder0
anstatt{"{val:1}"}
oder{"{val:0}"}
.
Aktualisieren Sie Ihr erstes MQTT Topic
Um ein Topic zu aktualisieren, können Sie eine Desktop-Software wie den MQTT Explorer oder MQTT.fx für Windows, MacOS oder LINUX verwenden. Oder eine der vielen verfügbaren Smartphone Apps. Diese ermöglichen es Ihnen, die MQTT API ohne zusätzliche Hardware (Smarthome Gateways) auszuprobieren und Ihr MQTT-Netzwerk schnell zu debuggen.
Konfigurieren und testen Sie Ihren MQTT Broker
Konfigurieren und testen Sie Ihren MQTT-Broker
MQTT v5 Topics und Message Payloads (2k+ (WQHD) Serie)
MQTT v3 Topics, Message Payloads und CGI Befehle (Full HD Serie)
Kompatible Software
Externe MQTT Broker
Alle INSTAR Full HD Kameras werden mit einem voll funktionsfähigen MQTT Broker ausgeliefert. Es ist somit nicht notwendig einen externen Broker zu installieren, um den INSTAR MQTT Service zu nutzen. Aber es gibt Situationen, in denen Sie z.B. einen bereits vorhandenen Broker in Ihrem Netzwerk nutzen möchten. Die folgenden Beispiele zeigen Ihnen, wie Sie HiveMQ, Mosquitto oder den internetbasierten CloudMQTT Service für die Arbeit mit Ihrer INSTAR Kamera einrichten können.
Bauen Sie Ihr eigenes MQTT-Netzwerk auf
Die INSTAR MQTT-Schnittstelle baut auf dem Eclipse Mosquitto Open Source MQTT Broker auf. Der Quellcode kann von Github heruntergeladen werden und ist unter der Eclipse Public License 2.0 verfügbar.