Warum der Payload nicht lesbar ist
LoRa-Pakete sind klein, und der Duty Cycle macht jedes Byte teuer. Deshalb werden Messwerte dicht gepackt: keine Feldnamen, keine Trennzeichen, keine Einheiten. Ein Zählerstand liegt als Ganzzahl über mehrere Bytes verteilt, mit einem implizit vereinbarten Faktor.
Beim Netzserver kommt entsprechend ein Byte-Block an. Damit daraus „Wirkenergie Import, Tarif 1“ mit einem Zahlenwert und einer Einheit wird, braucht es einen Payload-Decoder: ein kleines Stück Code, das die Bytes gemäss dem dokumentierten Aufbau zerlegt.
Der Teil, an dem Projekte hängen bleiben
Geschrieben ist so ein Decoder in einer Stunde. Das Problem entsteht danach: Er wird nicht dokumentiert, nicht versioniert, und wenn eine neue Firmware das Payload-Format erweitert, weiss niemand mehr, warum an Byte 7 eine Verschiebung stand.
Deshalb ist die Frage „gibt es einen offiziellen Decoder“ beim Geräteentscheid wichtiger, als sie klingt – wichtiger jedenfalls als zwei dB Empfangsleistung mehr.
The Things Network: Template statt Handarbeit
Im TTN-Netzwerk steht der EMU Professional II LoRa als Template direkt zur Verfügung. Gerät anlegen, Template wählen, Schlüssel eintragen – der Decoder ist Teil des Templates.
Für den häufigsten Fall entfällt das Thema damit vollständig. Die Messwerte erscheinen benannt, und die Weiterverarbeitung kann direkt darauf aufsetzen.
Andere Netzserver: Decoder auf GitHub
Wer einen anderen Netzserver betreibt, bekommt den Decoder öffentlich auf GitHub unter emuag/professional_II_lora. Dazu kommen zwei Werkzeuge, die im Browser laufen:
- Payload Decoder – ein empfangenes Paket einfügen und prüfen, was darin steht
- Payload Generator – Testpakete erzeugen, ohne dass ein Zähler sendet
Alle Links stehen auf der LoRa-Seite.
Testen, bevor jemand auf die Leiter steigt
Der Payload-Generator erlaubt eine Reihenfolge, die viel Ärger spart: Erst die gesamte Kette vom Netzserver über die Verarbeitung bis ins Zielsystem aufbauen und mit Testpaketen prüfen – dann die Zähler montieren.
Damit verlagert sich die Fehlersuche vom Keller an den Schreibtisch. Wenn später etwas nicht ankommt, ist die Ursache eindeutig auf der Funkstrecke zu suchen, weil die Verarbeitungskette bereits nachweislich funktioniert hat.
Eine Einordnung der Funkbegriffe – Spreizfaktor, Duty Cycle, OTAA – steht in LoRa oder LoRaWAN.