INSTAR Deutschland GmbH

INSTAR MQTT Broker


Die MQTT Schnittstelle

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 :)

INSTAR MQTT Server

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.

INSTAR MQTT Server

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.

INSTAR MQTT Server

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 entweder 1 oder 0 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


INSTAR MQTT Server
Home Assistant


MQTT Topics, Message Payloads und CGI Befehle


INSTAR MQTT API
MQTT vs HTTP API


Kompatible Software


Android
Home Assistant
OpenHAB2
Node-RED
OpenHAB2
HomeMatic
IOBroker
Loxone
homee
FHEM


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.


HiveMQ
Mosquitto
CloudMQTT



* Eclipse Mosquitto

Das INSTAR MQTT Interface basiert auf dem Eclipse Mosquitto Open Source MQTT Broker. Der Quellcode kann von Github heruntergeladen werden und ist unter Eclipse Public License 2.0 verfügbar.