Zum Hauptinhalt springen

EMQX Smart-Home-Integration, kostenlos und Open Source

EMQX-Integration für Gladys Assistant

Der Zustand deines EMQX-MQTT-Brokers in Gladys: Clients, Nachrichtenrate, Alarme, Ausfälle.

Überwacht den Zustand deines MQTT-Brokers EMQX in Gladys: verbundene Clients, Abonnements, Nachrichtenrate, verworfene Nachrichten, aktive Alarme, laufende Knoten, Laufzeit und Ausfälle, dazu die MQTT-Clients, die du beobachten willst (Zigbee2MQTT, ein Shelly, eine Bridge…).

Diese Integration ist nicht mit EMQ Technologies verbunden.

Überblick​

Gladys spricht schon MQTT: Die Integration MQTT verbindet sich mit einem Broker, um deine Geräte zu steuern. Über den Broker selbst zeigt sie nichts. Diese Integration schon: Alle 30 Sekunden liest sie die REST-API von EMQX (Version 5 oder 6) mit einem API-Schlüssel und macht daraus Gladys-Geräte, neun Szenen-Auslöser, eine Szenen-Aktion und ein Dashboard-Widget.

Die Integration liest nur: keine veröffentlichte Nachricht, keine Verbindung als MQTT-Client, nie eine Änderung an der Konfiguration von EMQX. Alles bleibt in deinem lokalen Netzwerk.

Für einen Broker Eclipse Mosquitto installiere lieber die Integration Mosquitto: EMQX veröffentlicht andere Statistiken.

Voraussetzungen​

  • Gladys 5.1 oder neuer.
  • EMQX 5 oder 6 (getestet mit 5.8.6 und 6.3.2), der Port des Dashboards (standardmäßig 18083) von Gladys aus erreichbar.
  • Ein API-Schlüssel von EMQX und sein geheimer Schlüssel.

EMQX 4 wird nicht unterstützt: Seine API ist anders.

Einen API-Schlüssel erstellen​

  1. Öffne das Dashboard von EMQX (http://<Adresse>:18083).
  2. Gehe zu System → API Key und dann auf Create.
  3. Gib ihm einen Namen (zum Beispiel gladys). Wenn EMQX eine Rolle anbietet, wähle Viewer: Lesezugriff genügt.
  4. Kopiere den API Key und den Secret Key: EMQX zeigt das Secret nur einmal an.

Konfiguration​

FeldBeschreibung
Adresse von EMQXDie Adresse des Dashboards: http://192.168.1.20:18083, oder nur der Host (Port 18083 wird ergänzt).
API-SchlüsselDer oben erstellte API Key.
Geheimer SchlüsselSein Secret Key.
Selbstsigniertes Zertifikat akzeptierenFür eine https://-Adresse, deren Zertifikat Gladys nicht prüfen kann.
Zu beobachtende MQTT-ClientsClient-IDs durch Kommas getrennt, höchstens 20. Jeder wird ein Gerät. Leer: keiner.
Sprache der TexteNamen der Funktionen beim Hinzufügen, Szenen-Sätze und Meldungen der Aktionen (standardmäßig Französisch).

Die Schaltfläche Verbindung prüfen liest EMQX sofort und zeigt Version, Kennzahlen, aktive Alarme und wie viele beobachtete Clients verbunden sind.

Öffne danach den Tab Erkennung der Integration und füge den Broker und die gewünschten Clients hinzu.

Das Gerät des Brokers​

FunktionBedeutung
Erreichbar1, solange die API antwortet, 0 während eines Ausfalls.
Verbundene ClientsGerade verbundene MQTT-Clients.
AbonnementsAbonnements aller Clients.
TopicsTopics mit mindestens einem Abonnenten.
Empfangene Nachrichten (/min)An den Broker veröffentlichte Nachrichten, pro Minute.
Gesendete Nachrichten (/min)An Abonnenten zugestellte Nachrichten, pro Minute.
Verworfene Nachrichten (/min)Von EMQX verworfene Nachrichten (oft: niemand abonniert das Topic), pro Minute.
Gespeicherte NachrichtenVom Broker für neue Abonnenten aufbewahrte Nachrichten (retained).
Aktive AlarmeAktive Alarme von EMQX (Speicher, CPU, Überlastung…).
Laufende KnotenLaufende Knoten des Clusters (1 für einen einzelnen Broker).
LaufzeitIn Tagen, seit dem Start des jüngsten Knotens.
VersionVersion von EMQX.

Die Raten stammen von EMQX selbst, das sie alle 10 Sekunden misst. Während eines Ausfalls ändert sich nur Erreichbar: Die anderen Werte behalten ihren letzten Stand.

Beobachtete Clients​

Jede Client-ID im Feld Zu beobachtende MQTT-Clients wird ein Gerät mit ihrem Namen und zwei Funktionen:

  • Verbunden: 1, wenn der Client mit EMQX verbunden ist, sonst 0 (auch wenn EMQX ihn nicht mehr kennt).
  • Letzte Verbindung: Datum und Uhrzeit seiner letzten Verbindung, in der Zeitzone von Gladys.

Die Client-IDs stehen auf der Seite Clients des Dashboards. Zigbee2MQTT zum Beispiel nimmt die client_id seiner Konfiguration (mqttjs_…, wenn keine gesetzt ist: Gib ihm zuerst eine feste).

Dashboard-Widget​

Das Widget EMQX-Broker zeigt den Zustand des Brokers, seine Version, seine Laufzeit, die Knoten eines Clusters, die aktiven Alarme (bis zu drei mit Namen) und vier Live-Kacheln: Clients, empfangene, gesendete und verworfene Nachrichten pro Minute. Wähle den Broker in seinen Einstellungen.

Szenen-Auslöser​

AuslöserWann
Broker nicht erreichbarDie API antwortet seit 1, 5, 15, 30 oder 60 Minuten nicht (nach Wahl).
Broker wieder daDie API antwortet wieder nach einem Ausfall von mindestens einer Minute.
Broker neu gestartetDie Laufzeit eines Knotens ist auf null zurückgegangen, auch ohne sichtbaren Ausfall.
Alarm ausgelöstEMQX hat einen Alarm ausgelöst. Variablen: Name des Alarms, Meldung, Knoten.
Alarm beendetEin Alarm ist nicht mehr aktiv. Variable: seine Dauer in Minuten.
Client getrenntEin beobachteter Client ist nicht mehr verbunden.
Client wieder verbundenEin beobachteter Client ist wieder verbunden. Variable: Minuten getrennt.
Weniger verbundene ClientsWeniger Clients als die gewählte Zahl während einer Minute.
NachrichtenspitzeMehr empfangene Nachrichten pro Minute als die gewählte Zahl; höchstens alle 30 Minuten.

Nach einem Neustart der Integration dient die erste Messung als Referenz: Ein schon aktiver Alarm oder ein schon abwesender Client löst nichts aus.

Szenen-Aktion​

Zustand des Brokers liefert einen Satz für eine Nachricht („EMQX 5.8.6 läuft seit 3 Tagen, 12 Clients verbunden, 64 Nachrichten empfangen und 87 gesendet pro Minute, kein Alarm.") und die Zahlen: erreichbar, verbundene Clients, empfangene, gesendete und verworfene Nachrichten pro Minute, aktive Alarme und ihre Namen, Laufzeit in Stunden, Version.

Szenen-Ideen​

  • Alarm ausgelöst → dir eine Nachricht „EMQX-Alarm: {{message}} auf {{node}}" schicken.
  • Client getrennt für Zigbee2MQTT → warnen, dass die Zigbee-Geräte nicht mehr antworten.
  • Jeden Morgen Zustand des Brokers → den Satz an Telegram schicken.
  • Broker nicht erreichbar seit 5 Minuten → eine Lampe rot schalten.

Fehlerbehebung​

  • EMQX ist nicht erreichbar: Prüfe Adresse und Port (standardmäßig 18083, nicht der MQTT-Port 1883) und ob Gladys ihn erreicht (Firewall, Docker-Netzwerk).
  • EMQX lehnt den API-Schlüssel ab: Prüfe Schlüssel und Secret, ob der Schlüssel aktiviert und nicht abgelaufen ist. Ein im Dashboard gelöschter Schlüssel muss neu erstellt werden.
  • Keine EMQX-5-API unter dieser Adresse: Die Adresse führt woandershin (MQTT-Port, anderer Dienst) oder zu EMQX 4.
  • Ein Client bleibt getrennt: Prüfe seine genaue Client-ID auf der Seite Clients des Dashboards (Groß- und Kleinschreibung zählen).
  • Mehr Details: Setze LOG_LEVEL=debug und lies die Protokolle der Integration.

Grenzen​

  • Messung alle 30 Sekunden: Eine kürzere Trennung kann unbemerkt bleiben.
  • Die Raten sind Mittelwerte von EMQX über 10 Sekunden, pro Minute angezeigt.
  • Höchstens 20 beobachtete Clients; eine Client-ID mit Leerzeichen kann nicht beobachtet werden.
  • Nur die Alarme von EMQX werden gelesen, nicht die Regeln, Bridges oder Plugins selbst.
  • EMQX 4 wird nicht unterstützt.

Konfigurationseinstellungen​

Diese Einstellungen fragt EMQX in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
EMQX verbindensectionNeinDie Integration liest alle 30 Sekunden die REST-API von EMQX 5 oder 6 mit einem API-Schlüssel. Die Integration ändert nie etwas. Erstelle den Schlüssel im Dashboard: System → API Key.
Adresse von EMQXstringJaDie Adresse des Dashboards, standardmäßig Port 18083 (http:// oder https://).
API-SchlüsselstringJaLesezugriff genügt: die Rolle Viewer, wenn EMQX sie anbietet.
Geheimer SchlüsselsecretJaWird von EMQX nur einmal beim Erstellen des Schlüssels angezeigt.
Selbstsigniertes Zertifikat akzeptierenbooleanNeinNur https://: Das Zertifikat von EMQX wird dann nicht geprüft.
Zu beobachtende MQTT-ClientsstringNeinClient-IDs durch Kommas getrennt, höchstens 20: Jeder wird ein Gerät (verbunden, letzte Verbindung). Die IDs stehen auf der Seite Clients des Dashboards.
Sprache der TexteselectNeinNamen der Funktionen der Geräte beim Hinzufügen, Szenen-Sätze und Meldungen der Aktionen.

So installierst du EMQX in Gladys​

  1. Öffne in Gladys Integrationen: EMQX erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-emqx:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-emqx.

EMQX benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

EMQX ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂