Skip to content

Hochfrequenz/digital_market_communication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 

Repository files navigation

Digitalisierte Marktkommunikation

Übersicht über ausgewählte Libraries und Tools mit denen Hochfrequenz eine echte Digitalisierung der Marktkommunikation in der deutschen Energiewirtschaft vorantreibt

Hintergrund

Die Spezifikationen und Regeln, denen die Marktkommunikation der deutschen Energiewirtschaft unterliegt, sind nur schlecht bis gar nicht digitalisiert:

  • Technische Dokumente liegen allgemein nur im PDF- oder Wordformat vor und sind nicht maschinenlesbar
  • Message Implementation Guides (MIG) und Anwendungshandbücher (AHB) sind weder selbst- noch zueinander konsistent:
    • Feld- und Strukturnamen in MIG und AHB stimmen nicht überein
    • Es gab lange keinen direkten Weg, eine Zeile aus dem AHB im MIG wiederzufinden (z.b. über eindeutige IDs); Das ändert sich mit Oktober 2024🎉
  • Vermeintlich boolsche Logik folgt keiner boolschen Logik
  • Entscheidungsbäume (EBD) sind keine Bäume sondern nur Tabellen
  • Änderungshistorien sind unvollständig und schwer verständlich
  • u.v.m.

Hochfrequenz entwickelt Tools, die diese Mängel adressieren. Dieses Repository soll einen Überblick verschaffen.

Übersicht

Die öffentlichen 🌍 Tools und Libraries unterliegen in der Regel der MIT- oder GPL-Lizenz und sind gut dokumentiert. Bei Interesse an den nicht-öffentlichen/privaten 🔒 Repositories, bitte eine Nachricht an info (at) hochfrequenz.de oder @JoschaMetze schicken.

Name & Link Grundlage Zweck Tech Stack
ahbicht 🦅 🌍 AHBs Parser und Evaluationsframework für Ausdrücke der Form Muss [1] U ([2] O [3])[901] U [543] Python (lark)
ahbicht-functions 🔒 AHBs Serverless Backend, das AHBicht Features via REST verfügbar macht Python (Azure Functions)
ahahnb 🔒 AHBs Visualisierung von mit Ahbicht geparsten AHB-Expressions Typescript (d3.js)
ahbesser 🌍 AHBs Visualisierung von AHBs in einer zeitgemäßen Oberfläche (statt PDF) Angular
edi_energy_scraper 🌍 edi-energy.de automatisierter Download von Dokumenten auf edi-energy.de Python (Beautiful Soup)
edi_energy_mirror 🌍 edi-energy.de git-basierte, automatisierte Versionierung der Dokumente auf edi-energy.de
EDILibrary 🌍 AHBs & MIGs Parser und Template-Enginge für EDIFACT-Nachrichten C#
EDILibraryHost 🔒 AHBs & MIGs Serverless Backend zum Parsen, Erstellen und Versenden von EDIFACT-Nachrichten C# (Azure Functions)
edifact-templates 🔒 AHBs & MIGs Daten-Repo: Gescrapte, maschinenlesbare AHBs, Templates für alle EDIFACT-Formate der deutschen Energiewirtschaft
transformer.bee🐝 🔒 AHBs & MIGs Bidirektionale, stabile und ein-eindeutige Konvertierung zwischen EDIFACT↔BO4E C# (JUST.net)
transformer.bee Client🐝 🌍 AHBs & MIGs Eine .NET Client-Library für transformer.bee, um EDIFACT↔BO4E Konvertierung als SaaS zu nutzen C#
transformer.bee Client🐝 🌍 AHBs & MIGs Eine Python Client-Library für transformer.bee, um EDIFACT↔BO4E Konvertierung als SaaS zu nutzen Python
EBD_amame 🌍 EBDs Scraping-Tool um docx-Dateien mit EBDs maschinenlesbar zu machen Python (python-docx)
rebdhuhn 🌍 EBDs Core-Logik, die EBD-Tabellen in maschinenlesbare Graphen/Bäume umwandelt Python (networkx) + PlantUML
machine-readable_entscheidungsbaumdiagramme 🌍 EBDs Daten-Repo: Alle Entscheidungsbäume/Graphen, maschinenlesbar in verschiedenen Formaten (puml, dot, svg)
🆕 entscheidungsbaumdiagramm 🌍 Entscheidungsbaumdiagramme Neues Frontend für entscheidungsbaum.hochfrequenz.de TS/Svelte
machine-readable_anwendungshandbuecher 🌍 AHBs Daten-Repo: Alle Anwendungshandbücher, maschinenlesbar in verschiedenen Formaten kohlrahbi
machine-readable_message-implementation-guide 🌍 MIGs Daten-Repo: Alle MIGs, maschinenlesbar in verschiedenen Formaten migmose
kohlr_AHB_i 🥬 🌍 AHBs Scraping-Library für PDF- und DOCX-Anwendungshandbücher Python (python-docx)
🆕AH_l_Batross 🪿 🌍 AHBs Diff-Library für (von kohlrahbi gescrapte) maschinenlesbare AHBs Python
MIG_mose 🌍 MIGs Scraping-Library für PDF- und DOCX-Message Implementation Guides Python (python-docx)
fundamend 🌍 MIG & AHBs Python Wrapper um das neue (2024) XML-basierte BDEW-Datenmodell für MIGs und AHBs Python
🆕 malo-ident-python-models 🌍 MaLo Identifikation API Autogenerierte Datenmodelle für die neue MaLo-ID API Python
🆕 malo-ident-net-models 🌍 MaLo Identifikation API Datenmodelle für die neue MaLo-ID API C#
🆕 verzeichnisdienst-python-models 🌍 Verzeichnisdienst API Autogenerierte Datenmodelle für die Verzeichnisdienst API Python
id-generator 🌍 MaLo / MeLo / NeLo / SR / TR Autogenerierte zufällige IDs für Testzwecke Go
edifact_mapper 🔒 EDIFACT Mapping und Konvertierung von EDIFACT-Nachrichten Rust
mako_prozesse 🔒 MaKo allg. Daten-Repo: Maschinenlesbare Beschreibungen von Marktkommunikationsprozessen
mako.bee 🐝 🔒 MaKo allg. Backend zur Orchestrierung von Marktkommunikationsprozessen in Micro-Service Landschaften C# (ELSA)
fristenkalender-generator 🌍 MaKo allg. Berechnet Fristen in der deutschen Energiewirtschaft Python (package)
fristenkalender-functions 🌍 MaKo allg. API zur Berechnung von Fristen Python (Azure Function)
fristenkalender-frontend 🌍 MaKo allg. Frontend der Hochfrequenz Fristenkalenders Svelte

Zusammenhänge

Das folgende Diagramm zeigt, wie die einzelnen Komponenten zusammenhängen. Knoten sind Daten (Repositories, externe Quellen, Frontends). Kanten (Pfeile) sind Tools, die Daten verarbeiten oder transportieren.

Legende:

  • 🟠 Abgerundet = Externe Datenquelle
  • 🔵 Zylinder = Daten-Repository
  • 🟣 Doppelrahmen = Service/Backend
  • 🟢 Sechseck = Frontend
  • ⬜ Rechteck = Library/Package
  • 🟡 Flagge = MCP Server
  • Gestrichelt = archiviert oder potenzielle Zukunft

Tipp: Für eine Vollbildansicht den Mermaid-Code unten kopieren und in den Mermaid Live Editor einfügen.

flowchart LR
    classDef source fill:#e65100,stroke:#ff9800,stroke-width:2px,color:#fff
    classDef repo fill:#0d47a1,stroke:#42a5f5,stroke-width:2px,color:#fff
    classDef service fill:#6a1b9a,stroke:#ce93d8,stroke-width:2px,color:#fff
    classDef frontend fill:#1b5e20,stroke:#66bb6a,stroke-width:2px,color:#fff
    classDef mcp fill:#f57f17,stroke:#ffee58,stroke-width:2px,color:#000
    classDef lib fill:#455a64,stroke:#90a4ae,stroke-width:1px,color:#fff
    classDef archived fill:#616161,stroke:#9e9e9e,stroke-width:1px,color:#ccc,stroke-dasharray:5 5

    %% ── External Sources ──
    edi_energy([edi-energy.de]):::source
    bdew_mako([bdew-mako.de]):::source
    bnetz([bundesnetzagentur.de]):::source
    holidays([python holidays]):::source
    partners([Internal µServices &\nExternal Market Partners]):::source

    %% ── Data Repositories ──
    mirror[(edi_energy_mirror)]:::repo
    xml_migs[(xml-migs-and-ahbs)]:::repo
    mr_mig[(machine-readable\nMIGs)]:::repo
    mr_ebd[(machine-readable\nEBDs)]:::repo
    mr_ahb[(machine-readable\nAHBs)]:::archived
    ahb_diffs[(AHB Diffs)]:::archived
    edifact_tpl[(edifact-templates)]:::repo
    mako_proz[(mako_prozesse)]:::repo
    sqlite_db[(SQLite DB)]:::repo

    %% ── EBD Toolchain ──
    subgraph ebd_toolchain[ebd_toolchain]
        ebdamame[ebdamame] --> rebdhuhn[rebdhuhn]
    end

    %% ── Services & Backends ──
    ahbicht_fn[[ahbicht-functions]]:::service
    transformer[[transformer.bee 🐝]]:::service
    wanna_bee[[wanna.bee]]:::service
    mako_bee[[mako.bee 🐝]]:::service
    fk_fn[[fristenkalender-functions]]:::service

    %% ── Libraries & Clients ──
    ahbicht[ahbicht 🦅]:::lib
    edi_lib[EDILibrary]:::lib
    bo4e_net[BO4E-dotnet]:::lib
    tbc_net[TransformerBeeClient.NET]:::lib
    tbc_py[TransformerBeeClient.py]:::lib
    tbc_ts[TransformerBeeClient.ts]:::lib
    ahbicht_client[AhbichtClient.NET]:::lib
    malo_mapper[MaLoIdentBo4eMapper]:::lib
    bdew_dt[bdew-datetimes]:::lib
    fk_gen[fristenkalender-generator]:::lib

    %% ── MCP Servers ──
    mcp_mako>mcp-bdew-mako]:::mcp
    mcp_tbee>TransformerBee.mcp]:::mcp

    %% ── Frontends ──
    ahb_tab{{ahb-tabellen.hochfrequenz.de}}:::frontend
    ahahnb{{bedingungsbaum.hochfrequenz.de}}:::frontend
    ebd_fe{{ebd.hochfrequenz.de}}:::frontend
    fk_fe{{fristenkalender.hochfrequenz.de}}:::frontend
    mn_dolm{{marktnachrichten-dolmetscher}}:::frontend

    %% ── ID Generators (free-floating) ──
    subgraph id_gen[ID Generators · malo-id-generator]
        direction TB
        malo_id{{markt.lokations.id}}:::frontend
        melo_id{{mess.lokations.id}}:::frontend
        nelo_id{{netz.lokations.id}}:::frontend
        tr_id{{technische.ressource.id}}:::frontend
        sr_id{{steuerbare.ressource.id}}:::frontend
    end

    %% ── Standalone Model Packages ──
    malo_py[malo-ident-python-models]:::lib
    malo_net[malo-ident-net-models]:::lib
    vzd_py[verzeichnisdienst-python-models]:::lib

    %% ════════════════════════════════════════
    %% EDGES
    %% ════════════════════════════════════════

    %% Document Scraping Pipeline
    edi_energy -->|edi_energy_scraper| mirror
    bdew_mako -->|manual download| xml_migs

    %% MIG Processing
    mirror -->|migmose| mr_mig

    %% EBD Processing
    mirror --> ebdamame
    rebdhuhn --> mr_ebd
    mr_ebd -->|git submodule| ebd_fe

    %% AHB Processing (no longer in automated pipeline)
    mirror -.->|"kohlrahbi 🥬 (manual, no pipeline)"| mr_ahb
    mr_ahb -.->|"ahlbatross 🪿 (dead end)"| ahb_diffs

    %% XML → SQLite → Consumers
    xml_migs -->|fundamend| sqlite_db
    sqlite_db -->|CI pipeline| ahb_tab
    sqlite_db -->|CI pipeline| ahbicht_fn

    %% AHBicht Chain
    ahbicht -->|used internally| ahbicht_fn
    ahbicht_fn -->|HTTP| ahahnb
    ahbicht_client -->|HTTP| ahbicht_fn

    %% Wanna.bee
    xml_migs --> wanna_bee
    ahbicht -->|used internally| wanna_bee
    tbc_py --> wanna_bee
    wanna_bee -.->|potential| mako_bee

    %% Transformer.bee
    xml_migs --> transformer
    edifact_tpl --> transformer
    edi_lib -->|used internally| transformer
    bo4e_net --> transformer
    tbc_net -->|HTTP| transformer
    tbc_py -->|HTTP| transformer
    tbc_ts -->|HTTP| transformer

    %% Marktnachrichten-Dolmetscher
    tbc_ts --> mn_dolm

    %% Mako.bee
    bo4e_net --> mako_bee
    tbc_net --> mako_bee
    malo_mapper --> mako_bee
    partners <--> mako_bee

    %% MaLo Ident → BO4E mapping
    malo_net --> malo_mapper
    malo_mapper --> bo4e_net

    %% MCP Servers
    sqlite_db --> mcp_mako
    mr_ebd --> mcp_mako
    mako_proz --> mcp_mako
    mcp_mako -.->|HTTP| ahbicht_fn
    tbc_py --> mcp_tbee

    %% Mako Prozesse
    bdew_mako -->|AI| mako_proz
    bnetz -->|AI| mako_proz

    %% Fristenkalender Chain
    holidays --> bdew_dt --> fk_gen --> fk_fn --> fk_fe

    %% Potential Future Connections
    ahbicht_client -.->|potential future| transformer
    ahbicht_client -.->|potential future| mako_bee
Loading

Hochfrequenz

Die Hochfrequenz Unternehmensberatung GmbH hat ihren Sitz in Grünwald (nahe München), feste Büros in Berlin und Bremen und Home Offices in ganz Deutschland. Wir leben Digitalisierung und entwickeln u.a. die oben vorgestellten Open Source-Lösungen für die deutsche Energiewirtschaft. Auf Kununu sind wir unter den bestbewerteten Arbeitgebern der Branche. Wir freuen uns jederzeit über Bewerbungen talentierter Entwickler*innen und Fachexpert*innen, z.B. als Full Stack Entwickler*in.

About

Overview of all Hochfrequenz libraries and tools related to an improved digital market communication for German utilities

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors