NB-IoT-Fehlerbehebung
Der größte Teil der Schwierigkeiten, ein NB-IoT-Gerät zum Melden zu bringen, liegt zwischen dem Gerät und dem Mobilfunknetz, bevor Yggio überhaupt beteiligt ist. Das ist ein schwacher Trost, wenn ein Gerät sich nicht verbindet, deshalb deckt diese Seite die gesamte Kette ab, in der Reihenfolge, in der Fehler tatsächlich auftreten.
Die mit Abstand nützlichste Gewohnheit: eine Einstellung nach der anderen ändern und die Wirkung bestätigen, bevor Sie die nächste ändern. Konfigurationsprobleme überlagern sich hier, und ein Gerät mit drei spekulativen Änderungen ist deutlich schwerer zu durchschauen als eines mit einer.
Zum eigentlichen Vorgehen siehe NB-IoT-Geräte anbinden.
Zwei Dinge sollten Sie beim Lesen im Kopf behalten. Alles zur SIM-Karte, zur Konsole und zur Anmeldung am Mobilfunknetz gilt für jedes NB-IoT-Gerät, unabhängig davon, welches Protokoll es am Ende spricht. Alles zu Topics und Zugangsdaten setzt MQTT voraus, das hier durchgearbeitete Beispiel; ein Gerät, das über CoAP oder HTTP meldet, adressiert und authentifiziert sich anders.
Herausfinden, in welcher Hälfte der Fehler liegt
Klären Sie zuerst, ob das Gerät das Mobilfunknetz erreicht hat. Die meisten Module melden die Signalstärke fortlaufend auf der Konsole, mit einem bestimmten Wert für "sucht, nicht angemeldet". Suchen Sie diesen Wert im Handbuch des Geräts, denn er unterscheidet sich je Hersteller, und dann:
- Verlässt die Anzeige diesen Wert nie, liegt der Fehler zwischen Gerät und Betreiber. Weiter mit Anmeldung am Netz.
- Zeigt sie etwas anderes, ist das Gerät im Netz und der Fehler liegt weiter hinten. Weiter mit Yggio erreichen.
Das Portal Ihres SIM-Anbieters beantwortet dieselbe Frage von der anderen Seite, und zwar ohne dass Sie vor Ort sein müssen: Es zeigt, ob die SIM-Karte sich angemeldet und wie viele Daten sie gesendet hat.
Zusammen sparen diese beiden Prüfungen mehr Zeit als alles andere auf dieser Seite.
Bei einem Dragino D20S-NB oder D23-NB ist der Wert 99. Siehe
gerätespezifisches Verhalten für den Rest dessen, was wir auf
bestimmter Hardware bestätigt haben.
Das Gerät meldet sich nie an
Zuerst ins Portal des SIM-Anbieters sehen
Bevor Sie etwas am Gerät ändern, sehen Sie sich die SIM-Karte im Webportal Ihres Anbieters an. Es sagt Ihnen unabhängig vom Gerät, ob die SIM aktiviert ist, ob sie sich in einem Netz angemeldet hat, in welchem, und wie viele Daten sie gesendet hat.
Das beantwortet mehrere Fragen auf einmal:
- Keine Aktivierung bedeutet, dass nichts am Gerät hilft, solange der Vertrag nicht geklärt ist.
- Aktiviert, aber nie angemeldet, deutet auf den SIM-Typ, den APN oder die Abdeckung am Einbauort.
- Angemeldet, mit gezähltem Datenvolumen, bedeutet, dass das Gerät im Netz ist und meldet. Der Fehler liegt weiter hinten, weiter also mit Yggio erreichen.
- Angemeldet, aber ohne Daten, bedeutet, dass es das Netz erreicht hat und dann beim Publizieren gescheitert ist, also ein Konfigurations- und kein Netzproblem.
Der Datenzähler ist außerdem der schnellste Weg, um zu bestätigen, dass ein Gerät noch lebt, nachdem Sie den Standort verlassen haben.
Ist es die richtige Art SIM-Karte?
Ein NB-IoT-Gerät braucht eine NB-IoT-SIM. Eine gewöhnliche Mobilfunk-SIM meldet sich nicht an, und das Symptom ist von jedem anderen Anmeldefehler nicht zu unterscheiden. Klären Sie das mit dem Anbieter, statt es anzunehmen, besonders wenn die SIM aus einem allgemeinen Vertrag stammt.
Stimmt der APN?
Der APN ist der Zugangspunkt, über den sich die SIM verbindet, und er ist spezifisch für den SIM-Anbieter, nicht für das Gerät. Holen Sie ihn von demjenigen, der die SIM geliefert hat. In vielen Netzen ist das korrekte Setzen des APN alles, was nötig ist.
Sucht das Modem zu breit?
Sich selbst überlassen durchsucht ein Modem jedes Band und jeden Betreiber, den es findet, was langsam ist und bei schwacher Abdeckung manchmal ganz scheitert. Die Suche einzuengen verwandelt oft ein Gerät, das sich nie anmeldet, in eines, das sich in einer Minute anmeldet.
- Beschränken Sie es auf die Bänder, die Ihr Betreiber vor Ort tatsächlich nutzt. In Europa sind Band 8 und 20 die üblichen NB-IoT-Bänder.
- Erhöhen Sie die Zeit, die das Modem es versuchen darf, bevor es aufgibt. Der Standardwert ist für ein Gerät im Keller oder im Schaltschrank oft zu optimistisch.
- Wählen Sie den Betreiber ausdrücklich über den Netzcode, statt das Modem wählen zu lassen. Bei einer Roaming-SIM ist das wichtig, weil das Modem sonst weiter ein Netz mit schlechter örtlicher Abdeckung versuchen kann.
Ihr Betreiber veröffentlicht seinen Netzcode, und der SIM-Anbieter kann Ihnen sagen, in welche Netze die SIM roamen darf.
Ist es ein Abdeckungs- statt eines Konfigurationsproblems?
Stimmen die Einstellungen und es meldet sich trotzdem nicht an, versetzen Sie das Gerät. Ein oder zwei Meter, oder vorübergehend ins Freie, genügen, um zu erkennen, ob Sie Konfiguration oder Physik debuggen. NB-IoT durchdringt Gebäude gut, aber nicht unbegrenzt, und ein Schaltschrank, ein Keller oder ein Metallgehäuse kosten jeweils Signal.
Das Gerät meldet sich an, aber in Yggio kommt nichts an
Jetzt ist das Gerät im Netz, die Frage ist also, ob es überhaupt publiziert, und falls ja, ob es dorthin publiziert, wo Sie es vermuten.
Beweisen, dass das Gerät publizieren kann, unabhängig von Yggio
Das ist die wertvollste Technik auf dieser Seite, und sie trennt zwei Probleme, die sonst gleich aussehen. Sie ist für ein Gerät geschrieben, das über MQTT meldet; das Gegenstück für ein anderes Protokoll ist jeder Endpunkt, den Sie kontrollieren und beobachten können.
Richten Sie das Gerät vorübergehend auf einen öffentlichen Test-MQTT-Broker und abonnieren Sie dasselbe Topic von Ihrem Rechner aus mit einem Werkzeug wie MQTT Explorer. Sie sehen jede Nachricht in dem Moment landen, in dem sie landet.
Ein Test-Broker braucht keine Zugangsdaten und nichts auf der Yggio-Seite. Erscheinen dort Nachrichten, sind Gerät und Payload in Ordnung und der Fehler liegt in der Yggio-Konfiguration. Erscheinen sie nicht, liegt der Fehler weiterhin beim Gerät.
Lassen Sie die Topics genau so, wie sie für Yggio sind. Sie funktionieren unverändert auf einem öffentlichen Broker, und sie unangetastet zu lassen bedeutet, dass Sie nur die Serveradresse ändern. So beweist der Test das, was Sie glauben, und das Zurückschalten ist ein einziger Befehl.
Stellen Sie zuerst sicher, dass das Gerät auf MQTT mit JSON-Payload eingestellt ist, und starten Sie es neu, damit die Protokolleinstellung greift.
Bei einem Dragino D20S-NB oder D23-NB besteht der ganze Umweg aus vier Befehlen:
AT+PRO=3,5
ATZ
AT+SERVADDR=<öffentlicher Test-Broker>,1883
Abonnieren Sie yggio/generic/v2/<Ihre Geräte-ID> in
MQTT Explorer und beobachten Sie. Stellen Sie die
Yggio-Serveradresse anschließend mit AT+SERVADDR wieder her.
Senden Sie nichts Vertrauliches an einen öffentlichen Broker. Jeder kann ihn abonnieren.
Entspricht das Publish-Topic exakt dem reservierten Topic?
Eine Abweichung scheitert lautlos. Das Gerät meldet ein erfolgreiches Publish, und Yggio sieht es nie, weil es auf ein Topic publiziert, das niemand reserviert hat. Vergleichen Sie beide Zeichen für Zeichen, statt sie zu lesen; das ist die häufigste Ursache, sobald das Gerät im Netz ist.
Passen die Zugangsdaten zum Credential Set?
Benutzername und Passwort am Gerät müssen die des Credential Sets sein, und die Client-Kennung ist
normalerweise dessen _id. Den Benutzernamen richtig, die Kennung aber falsch zu setzen erzeugt einen
Anmeldefehler, der sich leicht als Netzproblem missdeuten lässt.
Ist das reservierte Topic mit dem Credential Set verknüpft?
Beides anzulegen, aber nicht zu verknüpfen, hinterlässt ein Topic, auf das niemand publizieren kann.
Prüfen Sie, dass das reservierte Topic die ID des Credential Sets in basicCredentialsSetId trägt.
Das Gerät antwortet nach der Konfiguration nicht mehr
Manche Geräte verlangen ein gesetztes Subscribe-Topic, auch wenn ihnen nie etwas zurückgesendet wird, und antworten nicht mehr, wenn es leer ist oder exakt dem Publish-Topic entspricht. Die Konvention des Herstellers ist oft das Publish-Topic mit einem angehängten Zusatz.
Wird ein Gerät unmittelbar nach dem Setzen der Topics unansprechbar, prüfen Sie das zuerst. Die
Wiederherstellung bedeutet meist Aus- und Einschalten und erneutes Betreten der Konsole. Bei einem
Dragino D20S-NB oder D23-NB ist die verlangte Form das Publish-Topic mit angehängtem /subtopic.
Daten kommen an, sehen aber falsch aus
Die Payload enthält Arrays
Yggio erwartet ein flaches JSON-Objekt. Bei Geräten, die Messwerte in Arrays verpacken, muss das Log- oder Payload-Format geändert werden, was meist eine vom Protokoll getrennte Einstellung und leicht zu übersehen ist. Das Symptom ist ein Gerät, das in Yggio mit weniger Feldern als erwartet erscheint, oder mit gar keinen.
Die Werte sind unmöglich
Viele Sensoren melden eine feste Zahl außerhalb des Messbereichs, wenn ein Fühler fehlt oder getrennt
ist, statt das Feld wegzulassen. Unbehandelt fließen diese Werte in Diagramme, Mittelwerte und Alarme
ein, als wären sie echt. Bei einem Dragino D20S-NB oder D23-NB ist der Wert -409.5, was unter dem
absoluten Nullpunkt liegt und daher ein Platzhalter und kein Messwert ist.
Behandeln Sie sie in einem Translator: gegen einen plausiblen Bereich validieren und dort, wo der Wert durchfällt, das Feld ungesetzt lassen und stattdessen einen Status festhalten. Eine Bereichsprüfung fängt auch Werte ab, die rechnerisch in Ordnung, physikalisch aber unplausibel sind, und genau das bekommen Sie, wenn ein Sensor versetzt, manipuliert oder in der Sonne vergessen wird.
Die Feldnamen sind nicht die, die Yggio erwartet
Hersteller benennen ihre Felder, wie es ihnen passt, und Yggio erkennt seine eigenen Namen. Ein Gerät
mit mehreren Eingängen nummeriert diese womöglich, statt den Namen zu verwenden, nach dem Yggio sucht.
Kopieren Sie den tatsächlich genutzten in einem Translator auf das erwartete Feld, dann verhält es
sich in Vorschauen, Ansichten und Diagrammen wie jedes andere Gerät. Bei einem Dragino D20S-NB oder
D23-NB heißen die drei Eingänge temperature1, temperature2 und temperature3, und keinen davon
liest Yggio als Temperatur.
Sicherheitsfragen
Sind meine Daten verschlüsselt?
Nur wenn Sie es so konfiguriert haben. Port 1883 ist Klartext. Yggio akzeptiert auch TLS, aber ein
Zertifikat auf einem ressourcenbeschränkten Gerät zu installieren ist deutlich mehr Arbeit als der
Rest der Einrichtung, und die Unterstützung ist je nach Modell verschieden.
Behandeln Sie das als Entscheidung und nicht als Voreinstellung. Für eine offene Umweltmessung mag es ein vertretbarer Kompromiss sein. Für Persönliches, Geschäftliches oder betrieblich Sensibles ist er es nicht, und das Gerät sollte dann auch danach ausgewählt werden, wie gut es mit Zertifikaten umgeht.
Welches Risiko birgt ein schwaches Gerätepasswort?
Das Passwort des Credential Sets liegt auf dem Gerät und überquert auf Port 1883 das Netz im
Klartext. Verwenden Sie ein eigenes Credential Set je Standort oder Gerätegruppe statt eines überall
geteilten, damit eine Kompromittierung eingegrenzt bleibt.
Gerätespezifisches Verhalten
Alles oben ist so geschrieben, dass es allgemein für NB-IoT-Geräte gilt. Die Angaben unten stammen von einem verbreiteten NB-IoT-Gerät und stehen hier als durchgearbeitetes Beispiel für die Art von Dingen, auf die zu achten ist. Andere Hersteller lösen dieselben Aufgaben anders, prüfen Sie diese Angaben also gegen Ihr eigenes Handbuch, statt die Werte zu übernehmen.
- Dragino D20S-NB und D23-NB
- Signalstärke
99auf der Konsole bedeutet, dass sich das Modem nicht angemeldet hat. Jeder andere Wert bedeutet, dass es das hat. - Das Subscribe-Topic muss das Publish-Topic mit angehängtem
/subtopicsein. Es leer zu lassen oder gleich dem Publish-Topic zu setzen führt dazu, dass das Gerät nicht mehr antwortet. - Ein Eingang ohne angeschlossenen Fühler meldet
-409.5, einen Platzhalter und keinen Messwert. - Die drei Eingänge heißen
temperature1,temperature2undtemperature3. - Das Payload-Format muss getrennt vom Protokoll auf flaches JSON gesetzt werden, und das Gerät braucht einen Neustart, bevor eine Protokolländerung greift.
- Die Konsole wird über Bluetooth mit der App des Herstellers erreicht, mit einer auf der Verpackung aufgedruckten PIN. Das Gerät meldet sich unter seiner IMEI.
- Signalstärke
Die AT-Befehle für diese Abfolge stehen in NB-IoT-Geräte anbinden, und der Hersteller dokumentiert den vollständigen Befehlssatz im Dragino-Wiki zur NB-IoT-Konfiguration.
Praktische Hinweise
Beim ersten Mal dauert es länger
Rechnen Sie damit, dass das erste Gerät einen Arbeitstag braucht und die übrigen Minuten. Nahezu die gesamte Schwierigkeit liegt darin, die richtigen APN-, Band- und Betreibereinstellungen für Ihre SIM und Ihren Standort zu finden, und die sind für jedes weitere Gerät im selben Netz dieselben.
Geräte wo möglich aus einer Datei konfigurieren
Die meisten Geräte, die AT-Befehle annehmen, können auch eine gespeicherte Konfiguration laden, sodass eine Flotte nicht Befehl für Befehl eingetippt werden muss. Sobald das erste Gerät läuft, sichern Sie dessen Konfiguration und verwenden sie wieder, wobei Sie nur Topic und Zugangsdaten ändern.
Das Melde-Intervall bewusst wählen
Voreinstellungen liegen oft bei zwei Stunden. Häufiger zu melden kostet überproportional Batterie, weil der Funk den Verbrauch dominiert. Entscheiden Sie danach, wie schnell auf den Wert tatsächlich reagiert werden muss, nicht danach, was sich reaktionsschnell anfühlt.
Bevor Sie den Support kontaktieren
Es gibt eine Prüfung, die darüber entscheidet, ob wir Ihnen überhaupt helfen können, und sie dauert ein paar Minuten.
Verbinden Sie MQTT Explorer mit dem Yggio-MQTT-Broker, authentifizieren Sie sich mit demselben Credential Set, das auch das Gerät nutzt, und abonnieren Sie Ihr Topic. Lösen Sie dann eine Übertragung am Gerät aus.
Erscheint die Nachricht dort nicht, haben die Daten uns nie erreicht. Nichts in Yggio kann so falsch konfiguriert sein, dass es das erklären würde, denn die Nachricht kommt gar nicht erst beim Broker an. Der Fehler liegt irgendwo zwischen Gerät und Broker, und diese Seite ist der schnellere Weg: das Portal des SIM-Anbieters, die Prüfungen zur Netzanmeldung, das Topic und die Zugangsdaten.
Erscheint die Nachricht dort, aber in Yggio taucht kein Gerät auf, ist die Kette bis zu unserer Seite vollständig und etwas hinter dem Broker stimmt nicht. Das zu untersuchen ist unsere Aufgabe, und das ist der Punkt, an dem sich eine Supportanfrage lohnt. Wenden Sie sich an den Sensative Support und nennen Sie das Topic, den Zeitstempel einer Nachricht, die Sie ankommen sahen, und was MQTT Explorer angezeigt hat.
Bei Fehlern vor diesem Punkt können der SIM-Anbieter für APN und Roaming-Berechtigungen, der Betreiber für örtliche Bänder und Abdeckung und der Gerätehersteller für den Befehlssatz am schnellsten weiterhelfen.