Neu: Die KI-Firewall überwacht jedes Modul und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Ein Gerät verbindet sich nicht

Warum sich ein Gerät nicht verbinden kann oder ständig die Verbindung verliert – Host und TLS, Zugangsdaten, Profilregeln, erlaubte Netzwerke, CONNACK-Codes, gesperrte Adressen.

Diese Seite hilft, wenn sich ein Gerät nicht mit Hermetry verbinden kann, beim Login abgelehnt wird oder seine Verbindung immer wieder abbricht. Sie behandelt MQTT und die HTTP-API für Geräte. Für LoRaWAN-Geräte siehe Troubleshooting joins; für abgefragte (polled) Geräte siehe Polling intervals, back-off and quota.

Wo zuerst nachsehen

OrtZeigt
Der Reiter Log des GerätsJede Login-Ablehnung mit ihrem Grund und jede Trennung mit ihrem Grund. Der Grund einer Ablehnung wird nie an das Gerät gesendet: er steht nur hier.
Die Karte Connection details des GerätsDer Broker-Host und die Ports, die Ihr Gerät verwenden muss
Das eigene Protokoll des ClientsDer empfangene CONNACK-Code bzw. HTTP-Status oder der TLS-Fehler

Schritt 1: Kann das Gerät den Broker erreichen?

Symptom am GerätUrsacheAbhilfe
DNS-Auflösung schlägt fehl oder die Verbindung läuft in ein TimeoutFalscher Host, oder eine Firewall blockiert den ausgehenden PortVerwenden Sie den Host auf der Karte Connection details für die Region Ihrer Organisation. Erlauben Sie ausgehendes TCP 8883 (und 443 für HTTPS).
Der TLS-Handshake schlägt fehlDas Gerät verbindet sich per IP-Adresse (SNI ist erforderlich), hat kein CA-Bundle, oder seine Uhr geht stark falsch, sodass das Zertifikat ungültig erscheintPer Host-Name verbinden; den CA-Speicher des Systems verwenden; Uhrzeit setzen (NTP)
TLS schlägt auf einem sehr kleinen Gerät fehlEs unterstützt nur alte Cipher-Suites oder TLS 1.0/1.1TLS 1.2 ist das Minimum, mit ECDHE- und GCM- bzw. ChaCha20-Suites. Aktualisieren Sie die TLS-Bibliothek.
Port 1883 wird abgelehntDas Profil ist TLS only (port 8883), die StandardeinstellungVerwenden Sie 8883 oder erlauben Sie, nur in einem privaten Netzwerk, unverschlüsseltes MQTT im Profil
Ein Client-Zertifikat wird beim Handshake abgelehntDas Zertifikat stammt nicht von der Geräte-CA von Hermetry, oder es wurde widerrufenEin nicht vertrauenswürdiges Zertifikat beendet den Handshake; es gibt keinen Rückfall auf ein Passwort. Siehe Device certificates.

Siehe Device transport security.

Schritt 2: Wird der Login akzeptiert?

MQTT antwortet auf das CONNECT mit einem CONNACK-Code:

CONNACKBedeutungÜbliche Ursachen
1Protokollversion nicht unterstütztDer Client sendet MQTT 5. Hermetry spricht MQTT 3.1.1.
2Client-ID abgelehntDie Client-ID ist leer, länger als 64 Zeichen oder enthält Zeichen außerhalb von A–Z a–z 0–9 . _ : -
3Server nicht verfügbarDer Dienst startet oder ist ausgelastet, oder Ihre Adresse ist nach wiederholten fehlgeschlagenen Logins kurzzeitig gesperrt. Warten Sie ab (back-off) und versuchen Sie es mit Jitter erneut.
4Ungültiger Benutzername oder PasswortDas Token oder Passwort ist falsch, wurde rotiert oder widerrufen; ein Benutzername ohne Passwort wird als Zugriffstoken gelesen
5Nicht autorisiertSiehe die Tabelle unten. Der genaue Grund steht im Reiter Log des Geräts.
Grund hinter CONNACK 5Abhilfe
Das Gerät ist deaktiviertAuf der Geräteseite aktivieren
Das Zertifikat ist widerrufen oder abgelaufenLassen Sie das Gerät erneuern oder stellen Sie es wieder her. Siehe Device certificates.
Das Profil erlaubt diesen Login-Typ nichtAllowed authentication im Reiter Transport & auth des Profils
Die Adresse des Geräts liegt außerhalb der Allowed networks des ProfilsNetzwerk hinzufügen, oder prüfen, welche öffentliche Adresse Ihr Standort tatsächlich nutzt (NAT, Mobilfunkanbieter)
Unverschlüsseltes MQTT in einem Profil nur für TLSPort 8883 verwenden
Die Organisation ist gesperrtWenden Sie sich an einen Inhaber der Organisation. Siehe Organisations and tenants.
Das Geräte- bzw. Verbindungslimit des Tarifs ist erreichtSiehe Plans and the IoT add-on

Über HTTP liefern dieselben Prüfungen 401 (Token fehlt oder unbekannt), 403 (deaktiviert, gesperrt, außerhalb der erlaubten Netzwerke, oder eine Befehlsabfrage über unverschlüsseltes HTTP, die das Profil nicht erlaubt: tls_required) oder 404 (ein Token in der URL bei einem Profil ohne Token in the URL). Siehe Device HTTP API.

Hinweise zum Login

ZugangsdatenClient-IDBenutzernamePasswort
Zugriffstokenbeliebige gültige IDdas Tokenleer
MQTT basicbeliebig, oder der fixierteder Benutzernamedas Passwort
X.509-Zertifikatdie Geräteseriennummer, gleich dem CN des Zertifikatsignoriertleer

Das Geheimnis einer Zugangsdaten wird nur einmal angezeigt, bei Erstellung oder Rotation. Ist es verloren, rotieren Sie es und aktualisieren Sie das Gerät. Siehe Device credentials.

Schritt 3: Das Gerät verbindet sich, trennt dann aber

Der Reiter Log nennt den Trennungsgrund:

GrundBedeutungAbhilfe
keepalive_timeoutInnerhalb der Keepalive-Zeit kam nichts anEin Keepalive von 30 bis 300 Sekunden verwenden und PINGREQ senden; die Mobilfunkverbindung prüfen
takeoverEine zweite Verbindung desselben Geräts hat übernommenZwei Geräte teilen sich eine Zugangsdaten, oder ein Client verbindet sich neu, ohne die alte Verbindung zu schließen. Geben Sie jedem Gerät eigene Zugangsdaten.
auth_revokedDie Zugangsdaten, das Gerät oder die Organisation sind nicht mehr erlaubtSitzungen werden etwa alle 60 Sekunden erneut geprüft; rotierte Zugangsdaten beenden die alte Sitzung
rate_limitDas Gerät hat wiederholt sein Ratenlimit überschritten (mehr als das Dreifache seines Minutenkontingents innerhalb einer Minute verworfen)Messwerte bündeln, seltener senden oder die Limits des Profils erhöhen
inflight_exceededZu viele unbestätigte QoS-1-Nachrichten (standardmäßig 20)Auf PUBACKs warten, bevor weitere Nachrichten gesendet werden
server_shutdownEin Broker-Knoten wurde neu gestartetNeu verbinden; nichts zu beheben
uplink_window_expiredDas Online-Fenster Recent message ist abgelaufenErwartet bei Geräten, die nur zum Senden verbinden
protocol_error, socket_errorDer Client hat das Protokoll verletzt, oder das Netzwerk ist ausgefallenClient aktualisieren; Verbindung prüfen

Ein Gerät, dessen Sitzung von zwei Netzwerken aus immer wieder übernommen wird, wird eine Zeit lang zurückgehalten, und Ihre Administratoren erhalten eine Meldung „takeover fight“.

Schritt 4: Das Gerät verbindet sich, wird aber als offline angezeigt

UrsachePrüfung
Die Online-Regel des ProfilsLive connection, Recent message oder Last seen only legen fest, was „online“ bedeutet. Siehe Connection status and activity.
QuarantäneEin selbst registriertes Gerät, das in Quarantäne wartet, verbindet sich, aber seine Daten werden bestätigt und verworfen, bis ein Administrator es aktiviert. Siehe Quarantine.
Das Gerät ist ein Gateway-KindgerätSein Status stammt aus den Nachrichten v1/gw/connect und v1/gw/disconnect des Gateways. Siehe Devices behind a gateway.

Ein falsch konfiguriertes Gerät sperrt andere aus

Wiederholte fehlgeschlagene Logins von einer Adresse sperren diese Adresse kurz, für jedes Gerät dahinter. Mehrere Geräte hinter einem NAT oder einem mobilen Router werden dann alle mit CONNACK 3 (HTTP 429) abgelehnt. Finden Sie das Gerät mit falschen Zugangsdaten (sein Reiter Log zeigt die Fehlversuche), beheben Sie es, und lassen Sie die anderen mit back-off erneut versuchen.

Empfohlenes Geräteverhalten

  1. Per TLS über den Host-Namen verbinden, mit einem Keepalive zwischen 30 und 300 Sekunden.
  2. Nach CONNACK 0 die Downlink-Topics abonnieren, gemeinsame Attribute anfordern, Client-Attribute melden und dann gepufferte Messwerte senden.
  3. Bei einer Ablehnung zurückhalten (back off): CONNACK 3 mit Jitter erneut versuchen; nach CONNACK 4 mindestens 5 Minuten warten; bei CONNACK 1 und 2 nicht mehr erneut versuchen, bis sich die Konfiguration ändert.

Siehe MQTT.

Verwandte Themen