ExportMeasurementsToCsv@1
Der Node ExportMeasurementsToCsv@1 exportiert die Messwerte einer Menge von Zählpunkten als CSV-Text. Jeder Zählpunkt erzeugt eine Spalte je unterschiedlichem OBIS-Code (Zeitreihe); die Zeilen sind die Zeitstempel aller Zeitreihen. Der CSV-String wird nach targetPath geschrieben und kann z. B. an eine E-Mail angehängt werden.
Adapter-Voraussetzungen
Node-Konfiguration
Zu den Feldern path, targetPath, targetValueWriteMode und targetValueKind siehe Überblick.
transformations:
- type: ExportMeasurementsToCsv@1
meteringPointsPath: $.MeteringPoints[*] # metering points
measurementsPath: $.Measurements[*] # measurements within one metering point
obisCodePath: $.Values[1] # OBIS code within one measurement
timestampPath: $.Values[3] # timestamp within one measurement
valuePath: $.Values[4] # value within one measurement
headerMappings: # one header row per entry
- label: Zählpunkt
valuePath: $.Values[0]
- label: Objekt
valuePath: $.Values[1]
separator: ";"
dateTimeFormat: dd.MM.yyyy HH:mm
timeZoneId: Europe/Vienna
cultureName: de-DE
targetPath: $.csv
| Property | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
meteringPointsPath | string | Ja | - | JSON-Pfad, der die Zählpunkte im Datenkontext auswählt, z. B. $.MeteringPoints[*] |
measurementsPath | string | Ja | - | JSON-Pfad der Messwerte innerhalb eines Zählpunkts, z. B. $.Measurements[*] |
headerMappings | array | Ja | - | Kopfzeilen; jeder Eintrag hat ein label (erste Spalte) und einen valuePath (Wert innerhalb des Zählpunkts) |
obisCodePath | string | Ja | - | Pfad des OBIS-Codes innerhalb eines Messwerts; gruppiert die Messwerte zu Zeitreihen |
timestampPath | string | Ja | - | Pfad des Zeitstempels innerhalb eines Messwerts (ohne Offset als UTC interpretiert) |
valuePath | string | Ja | - | Pfad des Werts innerhalb eines Messwerts |
separator | string | Nein | ; | Spaltentrennzeichen |
dateTimeFormat | string | Nein | dd.MM.yyyy HH:mm | .NET-Format der Zeitstempelspalte |
timeZoneId | string | Nein | Europe/Vienna | Zeitzone (IANA-Id), in die die Zeitstempel umgerechnet werden |
cultureName | string | Nein | de-DE | Kultur für die Formatierung von Zahlen und Datum (z. B. Komma als Dezimaltrennzeichen) |
emptyRowsBetweenHeaderAndData | int | Nein | 2 | Anzahl leerer Zeilen zwischen Kopfblock und Datenblock |
dateTimeColumnLabel | string | Nein | Datum / Uhrzeit | Beschriftung der ersten Spalte in der Datenkopfzeile |
valueColumnLabel | string | Nein | Wert | Beschriftung jeder Wertspalte in der Datenkopfzeile |
obisCodeLabel | string | Nein | OBIS Code | Beschriftung der OBIS-Code-Kopfzeile |
targetPath | string | Nein | $ | Pfad, an den der CSV-String geschrieben wird |
CSV-Aufbau
- Eine Zeile je Eintrag von
headerMappings: das Label, gefolgt vom Wert untervaluePathdes Zählpunkts jeder Spalte. - Die OBIS-Code-Zeile:
obisCodeLabel, gefolgt vom OBIS-Code jeder Spalte. emptyRowsBetweenHeaderAndDataleere Zeilen.- Die Datenkopfzeile:
dateTimeColumnLabel, gefolgt vonvalueColumnLabelfür jede Spalte. - Eine Datenzeile je unterschiedlichem Zeitstempel (aufsteigend), umgerechnet nach
timeZoneIdund formatiert mitdateTimeFormat. Zellen ohne Messwert für diesen Zeitstempel bleiben leer; Zahlen werden mitcultureNameformatiert.
Verhalten
- Ist der Datenkontext leer, werden keine Zählpunkte gefunden oder hat kein Zählpunkt Messwerte, protokolliert der Node eine Meldung und schreibt nichts.
- Haben mehrere Messwerte einer Zeitreihe denselben Zeitstempel, wird nur der erste verwendet.
Die Konfigurations-Properties sind in der API-Referenz dokumentiert.