Dokumentation der Schnittstelle zur Weiterleitung von Messdaten an dritte Systeme

Weiterleitung von Messdaten an dritte Systeme

Das CLS Center bietet verschieden Zugriffsmöglichkeiten an, um Messwerte aus dem Datastore zu lesen. In vielen Fällen kann es aber sinnvoll sein die Daten direkt an die Systeme eines Dritten zu übermitteln.

Beim Übertragen wird zwischen verschiedenen Datentypen unterschieden, welche unterschiedliche Anwendungsfälle abbilden. Aktuell werden die folgenden Weiterleitungen unterstützt:

  • Rohdaten einer Wireless M-Bus Übertragung (OMSRAW)
  • Rohdaten eines drahtgebundenen M-Bus Zählers (MBUSRAW)
  • Zählerstandsgänge von RLM Zählern und Basiszählern (Moderne Messeinrichtung, mMe) (JSON)
  • Lastgänge von RLM Zählern (VDEW-konform)

Die Datenübertragung wird als Webservice realisiert. Es wird erwartet, dass bei einer erfolgreichen Übermittlung vom annehmenden Server eine HTTP Status Code 200-299 zurück geliefert wird. Alle anderen Status Codes werden als Fehler gewertet, das Telegramm auf unserer Seite zwischengespeichert und nach einer definierten Zeit erneut ausgeliefert.

Die Verbindung wird mit HTTPs geschützt, damit die sensiblen Daten nicht abgefangen werden können.

Aufbau der Botschaft

Die Botschaft, welche an den externen Webservice übermittelt wird, folgt immer dem gleichen Aufbau, welcher hier exemplarisch dargestellt ist:

{
 "typ": "[mbus|wmbus|json]",
 "enc": "[b64|hex|none]",
 "kom": "clsf",
 "mac": "MAC_DES_MODULS",
 "zpb": "ZAEHLPUNKTBEZEICHNUNG",
 "ts":  ZEITSTEMPEL,
 "d":   DATEN_DES_MODULS
}

Gleichbleibende Felder

Das Feld typ gibt den Typ der übertragenen Daten an. Dabei wird zwischen M-Bus, Wireless M-Bus (OMS) und JSON kodiertem Zählerstandsgang unterschieden. Über das Encoding entscheidet das enc Feld, welches die kodierung nach BASE64 und die hexadezimale Darstellung erlaubt. Das Übertragen ohne Encoding ist nur für die Übermittlung von JSON Daten erlaubt, da alle anderen Formate ungültige / nicht druckbare Zeichen enthalten könnten.

Das verwendete Kommunikationsszenario im Feld kom ist immer auf "clsf" eingestellt.

Gerätespezifische Felder

Die MAC Adresse des sendenden Moduls ist die Indentifikation für alle CLSF-basierten Geräte und wird im Feld mac gespeichert.

Messwertrelevante Felde

Der Zeitpunkt an dem der Messwert erfasst wurde, wird im Feld ts gespeichert. Der Timestamp entspricht dem UNIX Timestamp in 64-Bit Darstellung. Das Feld zpb gibt Aufschluss über die Zählpunktbezeichnung der Messlokation zu der die Daten gehören.

Das Datenfeld d ist je nach Inhalt des Felds typ unterschiedlich befüllt. Die dort relevanten Informationen finden sich in den nächsten Kapiteln der Dokumentation.

Datenformat für OMSRAW und MBUSRAW

Das Datenformat für M-Bus und OMS Telegramme unterscheidet sich nicht. Es wird in beiden Fällen das Rohtelegramm bzw. die Antwort auf die Zählerabfrage übermittelt.

Das Feld d ist ein String, welcher - je nach Inhalt des Feldes enc - einen Hexadezimal oder BASE64 kodierten Wert enthält.

Bei Daten, welcher über wireless M-Bus empfangen wurden, ist zu beachten, dass diese vermutlich verschlüsselt sind. Für das Entschlüsseln der Daten muss dem Empfänger bei Mode 5 und 7 der passende Schlüssel bekannt sein. Bei Mode 2 werden die Daten nicht verschlüsselt übertragen (abseits des TLS Kanals für HTTPs).

Bei Wireless M-Bus wird außerdem der RSSI Wert als letztes Byte übertragen. Kann der Parser auf dem Drittsystem dies nicht verarbeiten, so muss das letzte Byte durch die annehmende Instanz abeschnitten werden.

Eine solche Übertragung sieht wie folgt aus:

{
 "typ": "wmbus",
 "enc": "b64",
 "kom": "clsf",
 "mac": "11:22:33:44:55:66",
 "zpb": "DE0000000000000000000000001",
 "ts":  1504095472,
 "d":   "U2Now7ZuLCBkYXNzIFNpZSBzaWNoIGRpZSBNw7xoZSBnZW1hY2h0IGhhYmVuIGRpZXNlIERhdGVuIHp1IGRla29kaWVyZW4="
}

Datenformat für Zählerstandsgänge

Zählerstandsgänge können von verschiedenen Sensoren und Zählern kommen, dazu gehören RLM Zähler, SLP Zähler (eHZ, Basiszähler), Impulszählwerke und vieles mehr. Zählerstandsgänge nutzen OBIS-IDs zur Abbildung der Messdaten. Wir verwenden die - auch bei den Smart Meter Gateways verwendete - COSEM Codierung der OBIS-Register. Dabei wird aus der OBIS-ID 1-1:1.8.0255* die hexadezimale Darstellung 0101010800FF.

Die OBIS-ID wird als Schlüssel für den Zugriff auf das nachgelagerte Objekt genutzt. Dieses Objekt kennt exakt zwei Werte. Neben dem Messwert, welcher als Value unter der Bezeichnung v abrufbar ist, wird ebenfalls die Einheit übermittelt. Ist dem System keine Einheit bekannt oder wurde die Einheit nicht vom Zähler mit übertragen wird hier die DLMS Einheit "unbekannt" mit dem Wert 255 übermittelt. Die andere Einheiten orientieren sich an der DLMS Codierung.

Eine solche Übertragung sieht wie folgt aus:

{
 "typ": "json",
 "enc": "none",
 "kom": "clsf",
 "mac": "11:22:33:44:55:66",
 "zpb": "DE0000000000000000000000001",
 "ts":   1504095472,
 "d": {
       "0101010800FF": { "v": 114.001, "u": 30 },
       "0101020800FF": { "v": 1111.244, "u": 30 }
 }
}

Datenformat für Lastgänge

Lastgänge werden in RLM Zählern gebildet und bilden die Basis des aktuellen Energiemarktes bei Verbrauchern und Erzeuern ab 100.000 kWh. Das Format der Lastgänge ist durch den VDEW spezifiziert. Lastgänge werden von den Geräten immer tagesweise abgerufen und werden nachträglich in den Backendsystemen zur Bilanzierung verwendet.

Die Übertragung der Lastgänge erfolgt Base64-codiert (Das Feld enc ist entsprechend eingestellt) und mit dem Typen vdew_rlm. Der Lastgang wird inklusive des Startzeichens (SOH), des Endzeichens (ETX) und der CRC Summe übertragen, damit die Daten im Backend verifiziert werden können und kein Unterschied zur ZfA Übertragung besteht.

Eine solche Übertragung sieht wie folgt aus:

{
 "typ": "vdew_rlm",
 "enc": "b64",
 "kom": "clsf",
 "mac": "11:22:33:44:55:66",
 "zpb": "DE0000000000000000000000001",
 "ts":   1504095472,
 "d":   "PFNPSD5IaWVyIGvDtm5udGUgaWhyIExhc3RnYW5nIHN0ZWhlbjxFVFg+PENSQz4="
}