Node-RED und MQTT

Mike Polinowski
INSTAR MQTT
Firmware Update
Full HD Serie
INSTAR Deutschland GmbH
INSTAR MQTT

Machen Sie Ihrer Kamera zum Herzstück Ihres Smarthomes

INSTAR MQTT Support

Mithilfe der MQTT Schnittstelle Ihrer INSTAR Full HD Kameras können Sie diese zu einem bestehenden Smarthome-System (Home Assistant, OpenHAB, Node-RED, Athom Homey, Homematic, ioBroker, Loxone, homee) hinzufügen kann. Oder auch zum Haupt-Broker für Ihre MQTT Sensoren machen. MQTT ermöglicht es Ihnen ALLE Funktionen Ihrer Kamera zu automatisieren und mit anderen Diensten in Ihrem Smarthome zu verknüpfen.

Mike Polinowski
IFTTT Applets
Firmware Update
Full HD Serie
INSTAR Cloud
INSTAR Deutschland GmbH
INSTAR IFTTT Applets

Kontrollieren Sie Ihre Kamera über den IFTTT Online Dienst

INSTAR IFTTT Support

Auf der IFTTT-Plattform stellten wir einen Dienst namens INSTAR zur Verfügung. Die INSTAR Applets bieten Ihnen die Möglichkeit, einige Einstellungen Ihrer INSTAR Kamera oder INSTAR Cloud mit IFTTT zu steuern. Sie können INSTAR mit Auslösern für Ort (Geo Location) und Datum & Zeit verbinden, Benachrichtigungen versenden und vieles mehr. Zum Beispiel können Sie die INSTAR Applets mit dem IFTTT-Ortungsdienst verbinden und automatisch den Alarm deaktivieren lassen, wenn Sie zu Hause ankommen. Sie können die INSTAR-Applets auch verwenden, um Ihre eigene Automatisierung zu erstellen und sie mit anderen Applets von Drittanbietern zu verbinden.

Node-RED ist ein Programmiertool zur Verdrahtung von Hardwaregeräten wie Ihrer INSTAR IP-Kamera und APIs sowie Online-Diensten. Es stellt einen Browser-basierten Editor zur Verfügung, der das Zusammenfließen von Datenströmen mithilfe der zahlreichen Knoten ermöglicht, die eine Verbindung zwischen den Kameras REST API und IoT-Protokollen wie MQTT (Message Queuing Telemetry Transport) ermöglichen.

Im folgenden wollen wir die REST API Ihrer Kamera in mit Node-RED einbinden, damit wir die Kamerafunktionen über das MQTT-Protokoll steuern können. Dieses wird häufig von IoT-Geräten und Hausautomationssystem wie OpenHAB verwendet.

Installation

Um Node-RED zu installieren, müssen wir zuerst Node.js installieren, das Sie hier herunterladen können. Laden Sie einfach die für Ihr Betriebssystem geeignete Version herunter und doppelklicken Sie darauf, um sie zu installieren. Öffne Sie Ihre Befehlszeile oder Ihr Terminal und geben Sie die folgenden Befehle ein - node -v und npm -v - um zu überprüfen, ob die Node Runtime erfolgreich installiert wurde:

Node.js

In diesem Fall haben wir die neueste verfügbare Version von Node (zum Zeitpunkt der Erstellung v10.10.0) installiert, die mit den Node Package Manager (npm v6.4.1) mit sich bringt. Wir können jetzt den Paketmanager verwenden, um Node-RED zu installieren, indem Sie den folgenden Befehl eingeben npm install -g --unsafe-perm node-red:

Node-RED

Starten Sie jetzt Node-RED indem Sie node-red in Ihre Konsole eingeben - der Prozess sollte danach über Ihren Webbrowser über http://127.0.0.1:1880/ erreichbar sein. Beenden Sie jetzt den Prozess mit STRG+C und gehen Sie mit Ihrer Konsole in Ihr Windows Benutzer Verzeichnis - z.B. C:\Users\INSTAR\.node-red (INSTAR durch Ihren Windows Benutzernamen ersetzen). Achtung dieses Verzeichnis wird erst nach dem ersten Starten von Node.RED angelegt.

In diesem Verzeichnis werden wir jetzt einige Node Module nachinstallieren, die wir später benötigen. Als erstes können Sie den folgenden Befehl eingeben npm install path. Dies wird das Path Modul im Node-RED Verzeichnis installieren, welches wir später für das Einrichten eines öffentlich erreichbaren Verzeichnises für den Node-RED Webserver benötigen.

Wir wollen später das Node-RED-Dashboard verwenden, um mit unserer Kamera zu interagieren, was ein zusätzliches Modul ist, das wir installieren müssen. Verwenden Sie zuerst Ihre Befehlszeile oder Ihr Terminal, um zum Node-RED-Installationsverzeichnis zu navigieren (unter Windows wird dies ein .node-red-Ordner in Ihrem Benutzerverzeichnis sein), und geben Sie npm install node-red-dashboard ein, um die Benutzeroberfläche zu installieren:

Node-RED

Node-RED absichern

Wir möchten, dass unsere Node-RED-Installation nur von unserem sicheren lokalen Netzwerk erreichbar ist. Wenn Sie auf die Anwendung über das Internet zugreifen möchten, sollten Sie ein wenig tiefer lesen, wie Sie Ihre Verbindung sichern können! Für unsere Zwecke möchten wir, dass es ein Administrator Login gibt, um zu verhindern, dass andere Benutzer unser Setup ändern, während nicht angemeldete Nutzer nur das Recht haben die Konfiguration einzusehen. Wir möchten auch ein öffentliches Verzeichnis erstellen, mit dem wir Dateien speichern und von der Benutzeroberfläche aus darauf zugreifen können. Und schließlich werden wir den Port und die URL für unsere Node-RED-Anwendung festlegen. All dies kann in settings.js im Node-RED-Installationsverzeichnis getan werden (unter Windows ist dies ein .Node-red-Ordner in Ihrem Benutzerverzeichnis):

Node-RED

Anwendungs-Port und URLs festlegen

Die folgenden Zeilen finden Sie in dem module.exports Block in settings.js und kann verwendet werden, um die Standardwerte für die Parameter zu ändern:

uiPort: process.env.PORT || 1880,
httpAdminRoot: '/admin',
ui: { path: "dashboard" },

Dies setzt den Port unserer Node-RED-Anwendung auf 1880, die URL für das Admin-Panel auf /admin und die URL für das Dashboard auf /dashboard.

Erstellen eines öffentlichen Verzeichnisses

In späteren Schritten wollen wir mit Node-RED Snapshots und Videos von unserer Kamera speichern und auf dem installierten Dashboard anzeigen. Dazu müssen wir ein Verzeichnis definieren, auf das wir öffentlich zugreifen können. Wir können einen Ordner innerhalb des Installationsverzeichnisses mit dem Namen static erstellen (siehe Screenshot oben) und die folgende Zeile in den module.exports Block setzen:

httpStatic: path.join(__dirname, 'static'),

Sie sehen, das hier das Path Modul benötigt wird, das wir zuvor installiert haben. Dieses muß im Kopf der Datei importiert werden:

// var fs = require("fs");
var path = require("path");

Erstellen einer Administratoranmeldung

Verwenden Sie einfach die folgenden Zeilen in settings.js, damit anonyme Benutzer Ihr Node-RED-Admin-Panel und -Dashboard anzeigen können, aber eine Anmeldung für die Bearbeitung von Knoten benötigen:

adminAuth: {
        type: "credentials",
        users: [{
            username: "admin",
            password: "$2a$08$k.syiLYKsLGJdy01hPolj.m7dfgZXWz0do4oKkesLrJExoYgFBZYu",
            permissions: "*"
        }],
        default: {
            permissions: "read"
        }
    },

Sie können sehen, dass die Anmeldung mit dem Algorithmus bcrypt verschlüsselt wurde. Node-RED bietet ein Werkzeug, um einen Hash von Ihrem persönlichen Login zu erstellen. Sie können es global auf Ihrem Computer installieren, indem Sie die folgenden npm install -g node-red-admin eingeben. Starten Sie dann das Programm mit node-red-admin hash-pw und geben Sie Ihr gewünschtes Passwort ein. Kopieren Sie den erstellten Hash in das Passwortfeld für adminAuth (siehe oben).

Node-RED

Node-RED starten

Jetzt können wir endlich anfangen! Geben Sie node-red ein, um das Programm auszuführen, und öffnen Sie http://127.0.0.1:1880/admin/ in Ihrem Webbrowser:

Node-RED

Klicken Sie oben rechts auf das Benutzersymbol, um sich mit dem zuvor erstellten Administratorkonto anzumelden:

Node-RED



Node-RED Tutorials