INSTAR MQTT Kameras

Hallo INSTAR Forum,

erstmal allen ein erfolgreiches 2020! :icon_thumbs1:

In den letzten Tagen des letzten Jahres haben wir eine offene Beta für den INSTAR MQTT Dienst gestartet. Hierbei handelt es sich um einen vollwertigen MQTT Broker der direkt auf einer INSTAR Full HD Kamera läuft und als das Herz Ihres MQTT Netzes arbeiten kann, um die Kamera und andere MQTT Sensoren mit Ihrem Smarthome System zu verbinden. Alternativ kann dieser auch als Klient konfiguriert an einen existierenden Broker in Ihrem Netzwerk angebunden werden.

Aber was ist MQTT überhaupt ?

Um es kurz und nicht-technisch zu halten, MQTT ist eine Netzwerksprache wie HTTP über die sich Netzteilnehmer unterhalten können. Die INSTAR Full HD Kameras sind jetzt also bilingual - man kann Ihnen über die HTTP API CGI Befehle senden um Dinge zu schalten, oder alternativ auch sog. MQTT Topics aktualisieren um den Zustand einer Funktion zu ändern, zum Beispiel aktivieren oder deaktivieren der Alarmerkennungsbereiche.

Warum braucht man eine zweite Sprache ?

MQTT wurde speziell für IoT Netzwerke entwickelt und ist eine der Standardsprachen für Smarthomes - also zentrale Hubs, die IoT Sensoren wie Bewegungsmelder, Türsensoren, Thermometer, usw. zu einem funktionalen Netzwerk verbinden. D.h. wer MQTT spricht kann sich mit fast mit jedem Smarthome System verbinden.

Aber das ging doch auch schon per HTTP ?

Ja. Wir haben über die Jahre eine Reihe von Anleitungen erstellt, wie man INSTAR HD und Full HD Kameras über HTTP (CGI Befehle) in Smarthome Systeme einbinden kann. Und all dies funktioniert auch weiterhin.

MQTT ist jedoch nur den Full HD Kamera vorbehalten (wir benötigen hierfür OpenSSL, dass die HD Modelle leider nicht zur Verfügung stellen).

Was macht MQTT besser als HTTP ?

MQTT wurde für Sensor Netzwerke entwickelt. Solche IoT Sensoren laufen häufig mit Batterien, sind nur ab und zu mal mit dem Netzwerk verbunden, um Strom zu sparen und haben sehr schwache Signale. Trotzdem muß, z.B. ein Kohlenmonoxid-Sensor in einer Fabrikhalle, 100% zuverlässig laufen! Das MQTT Protokoll hat dafür viele Mechanism eingebaut, die trotz einer denkbar schlechten Anbindung der Sensoren sicherstellen, dass keine Meldungen verloren gehen. Das Herzstück dabei ist der zentrale Broker, der das Netzwerk zusammenbring. Jeder Sensor, der etwas zu melden hat, versucht diesen zu erreichen, bis er eine Erfolgsmeldung erhält. Und jeder, der diese Meldung hören muß, wird wiederum vom Broker kontaktiert, bis der Broker die Info erhält, dass die Meldung erfolgreich abgeliefert wurde.

Aber was hat ein CO-Sensor mit meiner Kamera zu tun?

Ok. Wie schaut es aus wenn man die Kamera per MQTT verbunden hat?

Ihnen ist bestimmt schon aufgefallen, wenn sie die Kamera sowohl mit der Smartphone App als auch der Weboberfläche Bedienen, weden Änderungen, die Sie auf der einen Seite vornehmen erst auf der anderen sichtbar, wenn Sie noch einmal neu synchronisieren.

Beim MQTT ist jede Benutzerobefläche ein Klient, der Abo’s für Informationen hat. Sobald der Broker ein Update erhält, wird dieses an jeden Klienten gepusched, der ein Abo für genau diese Information hat. D.h. wenn Sie die Kamera per MQTT in ein Smarthome eingebunden haben und ein Änderung über die WebUI der Kamera vornehmen, wird diese änderung per HTTP zur Kamera übertragen und danach umgehend per MQTT an alle Klienten geschickt. D.h. der entsprechende Schalter in Ihrem Smarthome wird sich wie von Geisterhand umlegen, um den neuen Zustand auf der Kamera wiederzugeben!

Wenn Sie per Handy App auf Ihr Smarthome zugreifen und erst ein paar Stunden nach der Statusänderung wieder online gehen, wird der Broker Ihr Handy sofort mit allen Änderungen, die in der Zwischenzeit eingetroffen sind, aktualisieren. Nichts geht mehr verloren!

Kann ich MQTT nutzen ohne ein Smarthome zu haben?

Ja. Wir haben hier 2 Android Apps beschrieben die es Ihnen ermöglichen MQTT Dashboards zu erstellen und darüber Ihre Kamera zu steuern. Vergleichbare Apps gibt es auch für iOS.

Ich habe schon einen MQTT Broker kann ich den mit der Kamera verbinden ?

Ja. Wir haben drei Anleitungen für gängige Broker online gestellt:

Wie funktioniert das denn jetzt genau ?

Wir haben eine detaillierte Beschreibung des INSTAR MQTT Dienstes in unserem Wiki. Meines erachtens ist es am einfachsten zu verstehen, wenn man dem Broker einmal bei der Arbeit zuschaut. Wir haben dafür hier zwei MQTT Werkzeuge beschrieben, die Sie sowohl unter Windows, macOS als auch LINUX installieren können. Verbinden Sie diese einfach mit dem Broker auf Ihrer Kamera und schauen Sie was passiert, wenn man in der Weboberfläche ein paar Buttons drückt.

Welche Smarthomes werden unterstützt?

Da fast jedes Smarthome direkt oder indirekt MQTT unterstützt - fast jedes. Wir haben in unserem Wiki eine Reihe von Beispiel Anleitungen für Sie vorbereitet:

und noch mehr in der Zukunft.

Woher bekomme ich den MQTT Broker ?

Der INSTAR MQTT Broker kann als Firmware Update auf Ihre INSTAR Full HD Kamera aufgespielt werden. Zur Zeit ist diese Firmware in einer offenen Beta verfügbar - einfach eine kurze Anfrage an den Support senden, wenn Sie daran teilnehmen möchten:

https://www.instar.de/contact_us/

Ansonsten wird das Update direkt über den Auto-Updater auf Ihre Kamera aufspielbar sein, nach Ablauf der Beta-Phase.

Die MQTT Broker Konfiguration können Sie nach dem Update unter dem Reiter Netzwerk in der WebUI Ihrer Kamera finden.

Der MQTT Dienst ist jetzt regulär über das System/Update Menü erhältlich und es wurden noch einige Verbesserungen/Bugfixes hinzugefügt:

  • Weitere MQTT Topics hinzugefügt (z.B. zur schrittweise (one-step) Steuerung der Kamera)
  • Benutzer Logins sind nicht mehr per MQTT auslesbar
  • Alle Sonderzeichen, die auch beim Kameralogin erlaubt sind, können jetzt auch fürs MQTT verwendet werden
  • Die hinterlegten Ports für den MQTT Dienst wurden auf die Standards 1883/8883 angepasst
  • In der Beta wurde bei Topics nicht zwischen "local" und "all" unterschieden. Ersters spricht jetzt nur noch die Kamera an, auf der der Broker läuft und letzteres alle Kameras im MQTT Netzwerk
  • Die Verwendung von eigenen SSL Zertifikaten für den MQTT Dienst wurde vereinfacht. Wir haben bereits eine Anleitung für selbst-signierte Certs online, für CA Certs (Let's Encrypt) folgt in Kürze.
Wie man den MQTT Dienst SSL-verschlüsselt mit einem Smarthome verbindet, haben wir hier anhand von Node-RED beschrieben:

https://wiki.instar.de/Frequently_Asked_Question/INSTAR_MQTT_Node-RED_Self-Signed_Certificate/

Hallo,

Ich habe Schwierigkeiten, eine verschlüsselte Verbindung von einer Kamera (9008, Client) zu einem MQTT-Broker (ioBroker) aufzubauen. Sobald ich in ioBroker den Adapter auf „secure“ einstelle, kommt keine Verbindung mehr zustande. Im Log von ioBroker findet sich dann kein Eintrag mehr, auf der Kamera in „/tmpfs/mqtt-log“ wiederholt sich nur die folgende Meldung:

[Error] Broker was disconnected unexpectedly!

Ohne aktiviertes „secure“ in ioBroker funktioniert die Kommunikation, auch mit Passwort.

Zwei Fragen:

1.) Im MQTT-Dialog der 9008 können zwei Ports angegeben werden, einer für plain und einer für verschlüsselt. Wo wird festgelegt, welchen Port bzw. welchen Transportweg die Kamera verwendet?

2.) Im MQTT-Dialog ist von Zertifikaten die Rede. Beide Partner, die Kamera und ioBroker, verfügen in meinem Fall bereits über Zertifikate. Müssen für die MQTT-Verbindung nochmals welche generiert werden? Wenn „Download“ gewählt wird, kommt das Zertifikat, das bereits unter „SSL“ hinterlegt wurde und das der Webserver der Kamera für das Webinterface benutzt.

MfG

Hallo @150d ,

Wir haben hier die Erstellung eines SSL Zertifikates für den INSTAR MQTT Broker beschrieben:

https://wiki.instar.de/Frequently_Asked_Question/INSTAR_MQTT_Self_Signed_SSL_Certificate/

Bei der Erstellung des Zertifikates wird sowohl ein Public Key als auch ein Private Key erstellt. Der Broker - in der Anleitung eine INSTAR Kamera (das kann aber genauso gut der ioBroker/MQTT Adapter sein) - benötig dann beide Keys kombiniert in einer Datei. Jeder Klient der sich mit dem Broker über TLS verbinden möchte, muß dann nur den Public Key haben.

  1. Erstellen des Public und Private Keys
  2. Hochladen beider Keys zum MQTT Broker
  3. Hochladen des Public Keys auf jeden MQTT Klienten

Wir haben den gesamten Vorgang hier für Node-RED und Home Assistant beschrieben:

https://wiki.instar.de/Frequently_Asked_Question/INSTAR_MQTT_Node-RED_Self-Signed_Certificate/

https://wiki.instar.de/Frequently_Asked_Question/INSTAR_MQTT_Home_Assistant_Self-Signed_Certificate/

Beim ioBroker hatten wir jedoch Schwierigkeiten eine („einfache“) Anleitung zu finden, wie man TLS mit dem MQTT Adapter verwenden kann. Im ioBroker Forum gibt es z.B. Anleitungen wie man NGINX als SSL Proxy, zum Verwalten des Zertifikates, vor den ioBroker schalten kann. Aber das erschien mir etwas zu kompliziert - in anbetracht wie einfach es mit Node-RED und Home Assistant ist.

Falls ich da nich die entscheidene Anleitung übersehen haben, würde ich eher dazu raten den Node-RED Adapter zu verwenden. Anderenfalls, bitte einen Link hier posten - wir werden dann umgehend unsere Anleitung anpassen :icon_cool:

Interessant. Wenn ich das richtig verstehe, dann ist TLS mit dem ioBroker-Adapter also schlicht und einfach kaputt. Das deckt sich tatsächlich auch mit meinen Ergebnissen - mit einem anderen Endgerät hat die Verbindung bei mir nämlich auch nicht funktioniert, an der Kamera liegt es also nicht.

Danke für den Hinweis!

MfG

Hallo zusammen, ich hoffe einer von Euch kann mir helfen. Ich habe mir extra wegen dem MQTT eine IN-8009 gekauft.

Mein Ziel ist es, meine IN-8009 in mein Openhab2 einzubinden, so dass ich bei Auslösung des Bewegungsalarms einen Trigger ins Openhab2 bekomme, um eine Aktion auslösen zu können.

Sowohl mit dem internen MQTT-Broker als auch mit dem Mosquito als Broker kommen im MQTT.fx diverse Topics an, aber keiner, der die Auslösung des Bewegungsalarms zeigt. Heißt, ich bekomme Push auf‘s Handy, aber im MQTT.fx kommt keine Statusänderung.

Kann mir bitte jemand von Euch sagen, welcher Topic es sein sollte oder was ich falsch gemacht habe könnte?

Den Instar Alarmserver habe ich bisher nicht aktiviert, da ich dachte, der Alarmtrigger wäre auch ohne über MQTT verfügbar. Richtig oder falsch?

Danke und VG, Tom

Genau nach so einem Post hatte ich gesucht, aber nicht gefunden. Danke!

Lohnt es, dass ich das noch über http einrichte oder kommt das Update ohnehin in nächster Zeit?

Die Lösung über MQTT ist dem HTTP auf jeden überlegen. Aber ich kann leider noch kein Datum nennen, ab wann wir das MQTT Update haben werden. Und danach muß es natürlich noch getestet werden.

D.h. wenn es einem nicht schwerfällt, das über den INSTAR Alarmserver einzurichten, wird es sich auf jeden Fall noch lohnen. Der Umstieg aufs MQTT sollte dann später ja sehr schnell gehen, wenn man die entsprechenden Aktionen/Automatisierungen in OpenHAB bereits eingerichtet hat.

Befehl, Status und RAW MQTT Topics