INSTAR MQTT Server mit HiveMQ
Docker unter Linux installieren
Wir werde in diesem Tutorial Docker auf einem Arch-Linux-System installieren. Für andere Betriebssysteme schauen Sie bitte in die offizielle Docker-Dokumentation.
Aktivieren des Loop-Moduls
Prüfen Sie zunächst, ob das Loop Module bereits auf Ihrem System geladen ist:
lsmod | grep loop
Wenn das Loop-Modul geladen ist, können Sie die folgenden Schritte überspringen. Andernfalls führen Sie die folgenden beiden Befehle aus:
tee /etc/modules-load.d/loop.conf <<< 'loop'
modprobe loop
Führen Sie lsmod | grep loop
erneut aus, um zu überprüfen, ob das Loop-Modul jetzt läuft.
Docker installieren
Jetzt können wir Docker über das Community-Repository installieren:
pacman -S docker
Sobald Docker installiert ist, fahren Sie mit dem Starten des Dienstes fort und aktivieren Sie ihn, damit er beim Systemstart ausgeführt werden kann.
Starten und Aktivieren des Dockers
systemctl start docker
sytemctl enable docker
sudo docker info
HiveMQ
Jetzt können wir die Testversion des kommerziellen HiveMQ MQTT Brokers in einem Dockercontainer laufen lassen. Beachten Sie, dass Sie stattdessen auch die kostenlose Community Edition verwenden können. Die kommerzielle Testversion ist auf 25 verbundene Geräte beschränkt.
HiveMQ herunterladen und ausführen
Um das Image vom Docker-Hub herunterzuladen, führen Sie bitte folgenden Befehl aus:
docker run -p 8080:8080 -p 1883:1883 hivemq/hivemq4
So sind wir nun in der Lage, auf den HiveMQ MQTT-Dienst über localhost auf dem exponierten Webport 8080 zuzugreifen:
Die Standard-Anmeldung am HiveMQ Dashboard ist der Benutzername admin und das Passwort hivemq:
Anbinden Ihrer INSTAR Kamera
Mit dem HiveMQ Broker online sind wir nun in der Lage, den MQTT-Service unserer Kamera daran anzubinden. Gehen Sie dafür zum MQTT Menü, aktivieren Sie den MQTT Service und die Verwendung eines externen MQTT Brokers. Geben Sie die IP-Adresse des Rechners ein, auf dem Sie HiveMQ installiert haben, belassen Sie die Standard-MQTT-Ports wie im Screenshot unten und deaktivieren Sie die Benutzerauthentifizierung:
Wenn Sie zurück zum HiveMQ Dashboard gehen, sollten Sie nun sehen, dass der Broker neue Geräte erkannt hat:
Die Registerkarte Clients zeigt nun alle Ihre angeschlossenen Geräte an. Jede Kamera verwendet eine Client-ID beginnend mit mosq/
für den internen Mosquitto Broker:
Node-RED
Sie können nun jede kompatible MQTT Software mit dem HiveMQ Broker verbinden, um jede angeschlossene Kamera zu steuern. Im Folgenden wird beispielhaft gezeigt, wie man Node-RED dafür verwenden kann.
Sie können den Node-RED-Flow, der unten verwenden wird, von hier herunterladen: Download:
Dieser Flow steuert die Bewegungserkennungsbereiche von zwei Kameras - eine mit der IP-Adresse 192.168.2.73
& MQTT ID 091419200118
und eine mit der Adresse 192.168.2.165
& MQTT ID 000389888811
(Wenn Sie diesen Flow oben heruntergeladen haben, können Sie die Such- und Ersetzungsfunktion Ihres Texteditors verwenden, um diese Adressen mit der Ihrer eigenen Kamerae ersetzen).
Jede Sequenz beginnt mit einem MQTT-Eingangsknoten, der Updates für das entsprechende STATUS-Topic für die Bereiche 1-4 erhält, wenn diese geschaltet werden:
Sie können Ihren neuen HiveMQ-Broker hinzufügen, indem Sie auf das Bleistift-Symbol neben dem Server-Dropdown-Menü klicken:
Geben Sie dann Ihre Broker-IP-Adresse und den MQTT-Port wie oben gezeigt ein.
In der Mitte jeder Sequenz haben wir einen UI-Schalter, der ein {"val":"0"}
sendet, wenn der Schalter in die Aus Position geklickt wird. Und eine {"val":"1"}
für die Ein Position:
Der Ausgang jeder Sequenz ist ein MQTT-Ausgangsknoten, der die von unserem Switch ausgesendete Meldung an das entsprechende COMMAND Topic für die Bereiche 1-4 sendet:
Wenn Sie nun zum MQTT Dashboard wechseln, sehen Sie eine neue Registerkarte namens HiveMQ mit 8 Schaltern zum Aktivieren / Deaktivieren aller Alarmbereiche auf Ihren beiden Kameras: