In unserem letzten Blogartikel haben wir einen Überblick über die Architektur und die technischen Komponenten unseres Bilanzkreismanagement-Systems gegeben. Heute wollen wir uns auf das grundlegende Datenmodell konzentrieren. Dieses Modell bildet das Herzstück der Datenverwaltung für Energiemengen und Transaktionen und ermöglicht die präzise Abbildung von Energieflüssen in Bilanzkreisen.

Das Datenmodell besteht im Wesentlichen aus zwei Hauptschemas, die die Basisfunktionen abbilden: das Balance Group Schema und das Transaction Schema. Diese Strukturen sind so konzipiert, dass sie den komplexen Anforderungen eines einfachen Bilanzkreismanagements gerecht werden und gleichzeitig flexibel und skalierbar bleiben.


1. Balance Group Schema

Das Balance Group Schema definiert die Struktur und Eigenschaften eines Bilanzkreises. Ein Bilanzkreis ist eine logische Einheit zur Verwaltung von Energiemengen und dient der Zusammenfassung und Auswertung von Energieflüssen. Im Kontext „Behind The Meter“ bildet der Bilanzkreis ein eigenes Energiemanagement innerhalb eines Netzanschlusses.

Hier die Hauptattribute des Balance Group Schemas:

const BalanceGroupSchema = new Schema({
  name: { type: String, required: true },
  startTime: { type: Date, required: true },
  endTime: { type: Date, required: true },
  status: { 
    type: String, 
    enum: ['provisional', 'final'],
    default: 'provisional'
  },
  settlementRule: { 
    type: Schema.Types.ObjectId, 
    ref: 'BalanceGroup'
  }
});

Attributbeschreibung:

  • name: Der Name des Bilanzkreises, der eine sprechende Beschreibung liefert, z. B. „PV-Anlage Wohnhaus“. Dies erleichtert die Identifizierung innerhalb des Systems.

  • startTime und endTime: Diese Attribute definieren den Zeitrahmen des Bilanzkreises, in dem die Energiemengen bilanziert werden. Sie ermöglichen eine detaillierte Nachverfolgung und Abrechnung von Energieflüssen über bestimmte Zeiträume hinweg.

  • status: Hiermit wird festgelegt, ob die Bilanz endgültig („final“) oder vorläufig („provisional“) ist. Vorläufige Bilanzen können noch bearbeitet werden, wohingegen endgültige Bilanzen keine Änderungen mehr zulassen.

  • settlementRule: Diese optionale Referenz erlaubt es, Verrechnungsregeln oder hierarchische Beziehungen zwischen Bilanzkreisen abzubilden. Ein Bilanzkreis kann z. B. einem übergeordneten Bilanzkreis unterstellt werden, was bei komplexen Strukturen hilfreich ist.


2. Transaction Schema

Das Transaction Schema modelliert die Transaktionen zwischen den Bilanzkreisen. Eine Transaktion repräsentiert den Austausch einer bestimmten Energiemenge zwischen zwei Bilanzkreisen. Dies ist besonders wichtig, um den Energiefluss detailliert abzubilden und bei Bedarf Anpassungen oder Ausgleichsmaßnahmen zu ermitteln.

Die Attribute des Transaction Schemas sind wie folgt definiert:

const TransactionSchema = new Schema({
  name: { type: String, required: true },
  source: { 
    type: Schema.Types.ObjectId,
    ref: 'BalanceGroup',
    required: true
  },
  destination: {
    type: Schema.Types.ObjectId,
    ref: 'BalanceGroup',
    required: true
  },
  startTime: { type: Date, required: true },
  endTime: { type: Date, required: true },
  energyAmount: { type: Number, required: true },
  status: {
    type: String,
    enum: ['provisional', 'final'],
    default: 'provisional'
  }
});

Attributbeschreibung:

  • name: Ähnlich wie beim Bilanzkreis liefert das Feld „name“ eine beschreibende Bezeichnung, die die Transaktion spezifiziert, z. B. „Übertragung PV-Anlage zu Batterie“.

  • source und destination: Diese Felder stellen Referenzen zu den Bilanzkreisen dar, die als Quelle und Ziel der Transaktion fungieren. Eine Transaktion kann nur zwischen zwei Bilanzkreisen stattfinden, die innerhalb des Systems existieren.

  • startTime und endTime: Diese Attribute geben den Zeitrahmen der Transaktion an. Da viele Energiemengen in kleineren Intervallen verwaltet werden, erlauben diese Felder eine präzise Zuordnung der Energiemengen zu spezifischen Zeitfenstern.

  • energyAmount: Die Energiemenge in kWh, die in der Transaktion von der Quelle zum Ziel übertragen wird. Dieses Feld ist für die Berechnung und Abrechnung entscheidend.

  • status: Ähnlich wie beim Bilanzkreis kann der Status der Transaktion „provisional“ oder „final“ sein. Dies ermöglicht es, Transaktionen zunächst vorläufig anzulegen und zu prüfen, bevor sie endgültig abgeschlossen werden.


tl;dr Struktur und Zweck

Dieses Datenmodell bildet die Grundlage für das Bilanzkreismanagement „Behind The Meter“. Es bietet eine flexible und strukturierte Möglichkeit, Energieflüsse zu erfassen und Bilanzierungen in logischen Einheiten (Bilanzkreisen) abzubilden.

Die Nutzung einer MongoDB-Datenbank mit diesem Schema ermöglicht eine effiziente Speicherung und Abfrage der Daten, während die klare Trennung zwischen Bilanzkreisen und Transaktionen die Transparenz und Nachvollziehbarkeit sicherstellt. So kann das System auf einfache Weise erweitert und an spezifische Anforderungen angepasst werden, die sich durch gesetzliche Vorgaben oder betriebliche Gegebenheiten ergeben.