-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Willkommen zu Dokumentation des TTN Dekoders für den KLAX.
Der TTN KLAX Dekoder gibt pro Empfangener Nachricht mit Zählerständen ein JSON-Objekt aus. Wenn nur Zählerstände erfasst werden sollen ist das Verarbeiten dieser Objekte ausreichend. Es gibt zwei verschiedene Formate:
Sollte Sie einen KLAX mit Firmware <= V0.4 verwenden, oder die LEGACY_FORMAT
-Option aktiviert sein, haben die Objekte folgende (vereinfachte) Form:
{
"header": {
"batteryPerc": 100, // Ladezustand der Batterie im KLAX in Prozent, integer
"configured": true, // Konfigurationszustand des KLAX, boolean
"deviceType": "SML Klax", // Typ der KLAX, entweder "SML Klax", oder "MODBUS Klax", string
"meterType": "SML", // Typ der Smart Meter Schnittstelle
"version": 1 // Version des KLAX-Protokolls
},
"payloads": [ // Array von Payloads aus dem empfangenen Paket
{
"registers": [ // Daten der Register, standardmäßig nur ein konfiguriertes Register
{
"dataValid": true, // Gültigkeit der Messwerte, boolean
"data_valid": true, // Gültigkeit der Messwerte, für Rückwärtskompatibilität, boolean
"unit": "Wh", // Einheit der Messwerte, string
"values": [
63000, // viertletzter Messwert, float
63000, // drittletzter Messwert, float
63000, // vorletzter Messwert, float
63000 // letzter Messwert, float
]
}
],
"type": "historic" // Typ der Payload, "historic" für Messwerte
}
],
"type": "app" // Typ der Paketdaten, "app" für Applikationsdaten
}
Sollte Sie einen KLAX mit Firmware >= V1.03 verwenden und die LEGACY_FORMAT
-Option nicht aktiviert sein, haben die Objekte folgende (vereinfachte) Form:
{
"header": {
"batteryPerc": 100, // Ladezustand der Batterie im KLAX in Prozent, integer
"configured": true, // Konfigurationszustand des KLAX, boolean
"deviceType": "SML Klax", // Typ der KLAX, entweder "SML Klax", oder "MODBUS Klax", string
"meterType": "SML", // Typ der Smart Meter Schnittstelle
"version": 1 // Version des KLAX-Protokolls
},
"payloads": [ // Array von Payloads aus dem empfangenen Paket
{
"register": { // Daten des ersten Registers, standardmäßig das einzige konfigurierte Register
"unit": "Wh", // Einheit des Registerwerts, string
"values": [ // Array der letzten vier Zählerstände
{
"valid": true, // Gültigkeit des viertletzten Messwerts, boolean
"value": 34000 // viertletzter Messwert, float
},
{
"valid": true, // Gültigkeit des drittletzten Messwerts, boolean
"value": 34000 // drittletzter Messwert, float
},
{
"valid": true, // Gültigkeit des vorletzten Messwerts, boolean
"value": 34000 // vorletzter Messwert, float
},
{
"valid": true, // Gültigkeit des letzten (aktuellen) Messwerts, boolean
"value": 34000 // letzter (aktueller) Messwert, float
}
]
},
"type": "filter" // Typ der Payload, "filter" für Messwerte
}
],
"type": "app" // Typ der Paketdaten, "app" für Applikationsdaten
}
Hinweis: Auch wenn in obiger Ansicht der erste Eintrag im payload Array die Messdaten enthält kann sich hierauf keinesfalls verlassen werden. Es muss immer das gesamte Array nach den Messdaten durchsucht werden, da diese an beliebiger Stelle stehen können. Die Identifikation der Messwerte kann zuverlässig durch Vergleich des type
Feldes auf den String "filter"
durchgeführt werden.
Obige Ansicht ist eine starke Vereinfachung der tatsächlich ausgegebenen Daten und dient lediglich als Orientierungspunkt zur besonders schnellen Entwicklung von Prototypen. Genauere Informationen zum Format finden sich in der Sektion Detaillierte Formatbeschreibung.
Am Anfang des Decoders finden sich die folgenden Konfigurationsoptionen:
// Dump raw regsiter contents without decoding
var REGISTER_RAW = false;
// Enable debug console.log
var DEBUG = true;
// Use legacy output format, enables old output format for more modern Klax
var LEGACY_FORMAT = false;
Sowohl REGISTER_RAW
, wie auch DEBUG
sind primär zum Debugging des Decoders gedacht. Wenn REGISTER_RAW
auf true
gesetzt werden alle Registerdaten als hexadezimaler Rohwert ausgegeben, statt sie zu dekodieren. Das Setzen von DEBUG
schaltet zusätzliche Debuggingausgaben ein. Sollten diese stören kann DEBUG
auf false
gesetzt werden, um diese Ausgaben zu unterdrücken.
Die Option LEGACY_FORMAT
beeinflusst das Ausgabeformat des Decoders. Sollte bereits eine ältere Version dieses Dekoders im Einsatz sein und die bestehende Umgebung um KLAX Sensoren mit Firmware > V0.4 erweitert werden, ohne ein verändertes Ausgabeformat zu unterstützen, kann diese Option auf true
gesetzt werden.
Eine Detaillierte Beschreibung des Datenformats dieses Parsers ist unter Datenformat zu finden. Die detaillierte Dokumentation ist derzeit noch in Arbeit.