Applikationsdaten - TobleMiner/ttn-klax GitHub Wiki

Der wichtigsten Nachrichtentyp, den der KLAX versendet sind Applikationsdaten. Eine Applikationsdatenübertragung kann mehrer Payloads enthalten. In den Payloads sind die eigentlichen Applikationsdaten verkapselt. Diese werden stets auf Port 3 übertragen und vom Dekoder in folgendes Format dekodiert:

{
  "msgInfo": { // Information zum durch den KLAX versendeten Telegramm
    "msgCnt": 1, // Gesamtanzahl der Pakete in diesem Telegramm
    "msgIdx": 32, // Monoton steigende Telegrammnummer 
    "msgNum": 1 // 1-basierter Index dieses Pakets im Telegramm
  },
  "payloads": [ ... ], // Array von Payloads
  "type": "app" // Indentifikation diese Pakets als Applikationsdaten
}

Mögliche Payloads sind:

  • historic (nur SML, nur mit älteren KLAX Firmwareversionen)
  • filter (nur SML)
  • now (nur SML)
  • serverID (nur SML)
  • deviceID (nur SML)
  • registerFilter (nur MODBUS)
  • modbusRegisterStatus (nur MODBUS)

Eine Beispiel für dekodierte Applikationsdaten mit mehreren Payloads könnte wie folgt aussehen

{
  "header": {
    "batteryPerc": 100,
    "configured": true,
    "connTest": false,
    "deviceType": "SML Klax",
    "meterType": "SML",
    "version": 1
  },
  "msgInfo": {
    "msgCnt": 1,
    "msgIdx": 32,
    "msgNum": 1
  },
  "payloads": [
    {
      "id": "00112233445566778899",
      "type": "serverID"
    },
    {
      "register": {
        "filterActive": true,
        "filterId": 0,
        "unit": "Wh",
        "values": [
          {
            "valid": true,
            "value": 34000
          },
          {
            "valid": true,
            "value": 34000
          },
          {
            "valid": true,
            "value": 34000
          },
          {
            "valid": true,
            "value": 34000
          }
        ]
      },
      "type": "filter"
    }
  ],
  "type": "app"
}