Zum Hauptinhalt springen

CreateMeteringPointUpdate@1

Der Node CreateMeteringPointUpdate@1 vergleicht einen von EDA gemeldeten Zählpunkt mit den Zählpunkt-Entitäten, die bereits in der Runtime existieren, und entscheidet, ob ein neuer Zählpunkt angelegt oder welche bestehende Entität aktualisiert werden muss. Das Ergebnis ist eine Liste von MeteringPointUpdateInfo-Objekten, aus denen ein nachfolgender CreateUpdateInfo@1 die eigentlichen Entitäts-Updates erstellt.

Adapter-Voraussetzungen​

Node-Konfiguration​

Zu den Feldern path, targetPath, targetValueWriteMode und targetValueKind siehe Überblick.

transformations:
- type: CreateMeteringPointUpdate@1
path: $.key # metering point reported by EDA (MeteringPointInfo)
consumerPath: $.key.Consumer[0] # existing consumer metering point entity, if any
producerPath: $.key.Producer[0] # existing producer metering point entity, if any
edaMeteringPointPath: $.key.EdaMeteringPoint[0] # optional: existing EDA metering point entity
targetPath: $.meteringPointUpdates
PropertyTypErforderlichStandardBeschreibung
pathstringNein$Pfad zum von EDA gemeldeten Zählpunkt (MeteringPointInfo, z. B. ein Eintrag von EdaMessageInfo.MeteringPoints)
consumerPathstringJa-Pfad zur bestehenden Verbraucher-Zählpunkt-Entität; darf ins Leere zeigen
producerPathstringJa-Pfad zur bestehenden Erzeuger-Zählpunkt-Entität; darf ins Leere zeigen
edaMeteringPointPathstringNein-Pfad zu einer bestehenden EDA-Zählpunkt-Entität
targetPathstringNein$Pfad, an den die Liste der MeteringPointUpdateInfo-Objekte geschrieben wird

Verhalten​

Wird unter path kein Zählpunkt gefunden, schreibt der Node nichts. Andernfalls wird IsActive auf true gesetzt, wenn ActivatedSince heute oder früher liegt und DeactivatedSince nicht gesetzt ist. Danach gilt:

SituationErgebnis
Weder Verbraucher, Erzeuger noch EDA-Zählpunkt existiertEin Eintrag ohne RtId: Der Zählpunkt muss angelegt werden
Richtung Verbrauch, Verbraucher existiertEin Eintrag mit der RtId des Verbrauchers
Richtung Verbrauch, nur ein Erzeuger existiertEin Eintrag mit der RtId des Erzeugers und HasWrongType: true
Richtung Erzeugung, Erzeuger existiertEin Eintrag mit der RtId des Erzeugers; ein beim Erzeuger bereits gespeicherter Erzeugungstyp (zweiter Wert der Abfragezeile, Values[1]) bleibt erhalten
Richtung Erzeugung, nur ein Verbraucher existiertEin Eintrag mit der RtId des Verbrauchers und HasWrongType: true
Jeder andere Fall (z. B. Richtung unbekannt oder nur ein EDA-Zählpunkt existiert)Eine leere Liste

Die bestehenden Entitäten werden als JSON-Objekte gelesen; der Node verwendet nur ihre RtId (und Values[1] des Erzeugers).

Ausgabe​

Eine Liste von MeteringPointUpdateInfo-Objekten. Sie enthalten alle Properties von MeteringPointInfo (siehe CreateMeteringPointData@1) und zusätzlich:

PropertyBeschreibung
RtIdRtId der zu aktualisierenden Entität, null für einen neuen Zählpunkt
IsActivetrue, wenn ActivatedSince heute oder früher liegt und DeactivatedSince nicht gesetzt ist; ein künftiges Deaktivierungsdatum ergibt false
HasWrongTypetrue, wenn die bestehende Entität die andere Energierichtung hat

Die Konfigurations-Properties sind in der API-Referenz dokumentiert.

Vollständiges Beispiel einer Pipeline-Konfiguration​

Dieses Beispiel nimmt die Zählpunkte ausgewerteter ECMPList-Nachrichten, verknüpft sie mit den bestehenden Verbraucher- und Erzeuger-Entitäten und erstellt je Zählpunkt eine Update-Entscheidung.

triggers:
- type: FromPipelineDataEvent@1
transformations:
- type: Flatten@1
path: $.EdaMessages[*].MeteringPoints[*]
targetPath: $.MeteringPoints
- type: Join@1
path: $.MeteringPoints[*]
keyPath: $.MeteringPointNumber
joinPath: $.consumers.Rows[*] # query result with the existing consumer metering points
joinKeyPath: $.Values[0]
itemPath: $.Consumer
- type: Join@1
path: $.MeteringPoints[*]
keyPath: $.MeteringPointNumber
joinPath: $.producers.Rows[*] # query result with the existing producer metering points
joinKeyPath: $.Values[0]
itemPath: $.Producer
- type: ForEach@1
iterationPath: $.MeteringPoints
mergePath: $.update
targetPath: $.MeteringPointUpdates
transformations:
- type: CreateMeteringPointUpdate@1
path: $.key
consumerPath: $.key.Consumer[0]
producerPath: $.key.Producer[0]
targetPath: $.update