Skip to content

Commit

Permalink
Add enums (#4)
Browse files Browse the repository at this point in the history
* Add enums

* Update src/ibims/enums/bdewartikelnummer.py

Co-authored-by: konstantin <[email protected]>

* anmerkung

* ka2

---------

Co-authored-by: konstantin <[email protected]>
  • Loading branch information
FreddyFox892 and hf-kklein authored Sep 15, 2023
1 parent 9e97f4a commit 88824c7
Show file tree
Hide file tree
Showing 11 changed files with 337 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/ibims/enum/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Bundles new enum
"""
from ibims.enum.abgabeart import Abgabeart
from ibims.enum.bdewartikelnummer import BDEWArtikelnummerErweitert
from ibims.enum.botyp import BoTypErweitert
from ibims.enum.hinweisthema import HinweisThema
from ibims.enum.messtechnische_einordnung import MesstechnischeEinordnung
from ibims.enum.messwerterfassung import Messwerterfassung
from ibims.enum.messwertstatus import Messwertstatus
from ibims.enum.rechnung_erweitert import RechnungstypErweitert
from ibims.enum.regelzone import Regelzone
from ibims.enum.zaehlertyp_erweitert import ZaehlerTypErweitert
24 changes: 24 additions & 0 deletions src/ibims/enum/abgabeart.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""
New ENUM for concession fee type
"""

from bo4e.enum.strenum import StrEnum


class Abgabeart(StrEnum):
"""
This AbgabeArt models the Konzessionsabgabentyp.
It contains concessionfee types needed for concessionFee mapping.
"""

# See https://github.com/Hochfrequenz/BO4E-dotnet/blob/main/BO4E/ENUM/AbgabeArt.cs

KAS = "KAS"
SA = "SA"
SAS = "SAS"
TA = "TA"
TAS = "TAS"
TK = "TK"
TKS = "TKS"
TS = "TS"
TSS = "TSS"
69 changes: 69 additions & 0 deletions src/ibims/enum/bdewartikelnummer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
"""
extension of the official BO4E Artikelnummer
"""
# pylint:disable=line-too-long
from enum import StrEnum


class BDEWArtikelnummerErweitert(StrEnum):
"""
Extension of BDEW Artikelnummern. The additional fields can be found in the go implementation:
https://github.com/Hochfrequenz/go-bo4e/blob/8dda93f8eda51557bb355a93e94c379111f0242b/enum/bdewartikelnummer/bdewartikelnummer.go
"""

LEISTUNG = "LEISTUNG" #: Leistung
LEISTUNG_PAUSCHAL = "LEISTUNG_PAUSCHAL" #: Leistung pauschal
GRUNDPREIS = "GRUNDPREIS" #: Grundpreis
REGELENERGIE_ARBEIT = "REGELENERGIE_ARBEIT" #: Regelenergie Arbeit
REGELENERGIE_LEISTUNG = "REGELENERGIE_LEISTUNG" #: Regelenergie Leistung
NOTSTROMLIEFERUNG_ARBEIT = "NOTSTROMLIEFERUNG_ARBEIT" #: Notstromlieferung Arbeit
NOTSTROMLIEFERUNG_LEISTUNG = "NOTSTROMLIEFERUNG_LEISTUNG" #: Notstromlieferung Leistung
RESERVENETZKAPAZITAET = "RESERVENETZKAPAZITAET" #: Reservenetzkapazität
RESERVELEISTUNG = "RESERVELEISTUNG" #: Reserveleistung
ZUSAETZLICHE_ABLESUNG = "ZUSAETZLICHE_ABLESUNG" #: Zusätzliche Ablesung
PRUEFGEBUEHREN_AUSSERPLANMAESSIG = "PRUEFGEBUEHREN_AUSSERPLANMAESSIG" #: Prüfgebühren (außerplanmäßig)
WIRKARBEIT = "WIRKARBEIT" #: Wirkarbeit
SINGULAER_GENUTZTE_BETRIEBSMITTEL = (
"SINGULAER_GENUTZTE_BETRIEBSMITTEL" #: singulär genutzte Betriebsmittel (z. B. Trafomiete, Leitungen)
)
ABGABE_KWKG = "ABGABE_KWKG" #: Abgabe KWKG
ABSCHLAG = "ABSCHLAG" #: Abschlag
KONZESSIONSABGABE = "KONZESSIONSABGABE" #: Konzessionsabgabe
ENTGELT_FERNAUSLESUNG = "ENTGELT_FERNAUSLESUNG" #: Entgelt für Fernauslesung
UNTERMESSUNG = "UNTERMESSUNG" #: Untermessung
BLINDMEHRARBEIT = "BLINDMEHRARBEIT" #: Blindmehrarbeit
ENTGELT_ABRECHNUNG = "ENTGELT_ABRECHNUNG" #: Entgelt für Abrechnung
SPERRKOSTEN = "SPERRKOSTEN" #: Sperrkosten
ENTSPERRKOSTEN = "ENTSPERRKOSTEN" #: Entsperrkosten
MAHNKOSTEN = "MAHNKOSTEN" #: Mahnkosten
MEHR_MINDERMENGEN = "MEHR_MINDERMENGEN" #: Mehr- und Mindermenge
INKASSOKOSTEN = "INKASSOKOSTEN" #: Inkassokosten
BLINDMEHRLEISTUNG = "BLINDMEHRLEISTUNG" #: Blindmehrleistung
ENTGELT_MESSUNG_ABLESUNG = "ENTGELT_MESSUNG_ABLESUNG" #: Entgelt für Messung und Ablesung
ENTGELT_EINBAU_BETRIEB_WARTUNG_MESSTECHNIK = (
"ENTGELT_EINBAU_BETRIEB_WARTUNG_MESSTECHNIK" #: Entgelt für Einbau, Betrieb und Wartung der Messtechnik
)
AUSGLEICHSENERGIE = "AUSGLEICHSENERGIE" #: Ausgleichsenergie
ZAEHLEINRICHTUNG = "ZAEHLEINRICHTUNG" #: Zähleinrichtung
WANDLER_MENGENUMWERTER = "WANDLER_MENGENUMWERTER" #: Wandler/Mengenumwerter
KOMMUNIKATIONSEINRICHTUNG = "KOMMUNIKATIONSEINRICHTUNG" #: Kommunikationseinrichtung
TECHNISCHE_STEUEREINRICHTUNG = "TECHNISCHE_STEUEREINRICHTUNG" #: Technische Steuereinrichtung
PARAGRAF_19_STROM_NEV_UMLAGE = "PARAGRAF_19_STROM_NEV_UMLAGE" #: § 19 StromNEV Umlage
BEFESTIGUNGSEINRICHTUNG = "BEFESTIGUNGSEINRICHTUNG" #: Befestigungseinrichtung (z. B. Zählertafel)
OFFSHORE_HAFTUNGSUMLAGE = "OFFSHORE_HAFTUNGSUMLAGE" #: Offshore-Haftungsumlage
FIXE_ARBEITSENTGELTKOMPONENTE = "FIXE_ARBEITSENTGELTKOMPONENTE" #: Fixe Arbeitsentgeltkomponente
FIXE_LEISTUNGSENTGELTKOMPONENTE = "FIXE_LEISTUNGSENTGELTKOMPONENTE" #: Fixe Leistungsentgeltkomponente
UMLAGE_ABSCHALTBARE_LASTEN = "UMLAGE_ABSCHALTBARE_LASTEN" #: Umlage abschaltbare Lasten
MEHRMENGE = "MEHRMENGE" #: Mehrmenge
MINDERMENGE = "MINDERMENGE" #: Mindermenge
ENERGIESTEUER = "ENERGIESTEUER" #: Energiesteuer
SMARTMETER_GATEWAY = "SMARTMETER_GATEWAY" #: Smartmeter-Gateway
STEUERBOX = "STEUERBOX" #: Steuerbox
MSB_INKL_MESSUNG = "MSB_INKL_MESSUNG" #: Messtellenbetrieb inklusive Messung
AUSGLEICHSENERGIE_UNTERDECKUNG = "AUSGLEICHSENERGIE_UNTERDECKUNG" #: AusgleichsenergieUnterdeckung
ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_1_MSBG = "ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_1_MSBG" #: Zusatzdienstleistung nach § 35 Abs. 2 Nr. 1 MsbG with article number 9990001000813
ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_2_MSBG = "ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_2_MSBG" #: Zusatzdienstleistung nach § 35 Abs. 2 Nr. 2 MsbG with article number 9990001000821
ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_3_MSBG = "ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_3_MSBG" #: Zusatzdienstleistung nach § 35 Abs. 2 Nr. 3 MsbG with article number 9990001000839
ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_4_MSBG = "ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_4_MSBG" #: Zusatzdienstleistung nach § 35 Abs. 2 Nr. 4 MsbG with article number 9990001000847
ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_5_MSBG = "ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_2_5_MSBG" #: Zusatzdienstleistung nach § 35 Abs. 2 Nr. 5 MsbG with article number 9990001000855
ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_3_MSBG = "ZUSATZDIENSTLEISTUNG_PARAGRAPH_35_3_MSBG" #: Zusatzdienstleistung nach § 35 Abs. 3 MsbG with article number 9990001000863
47 changes: 47 additions & 0 deletions src/ibims/enum/botyp.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# pylint:disable=missing-module-docstring
from bo4e.enum.strenum import StrEnum


class BoTypErweitert(StrEnum):
"""
Auflistung sämtlicher existierender Geschäftsobjekte, welche in der Migartion genutzt werde. Enthält zusätzlich
das Element "BILANZIERUNG".
"""

ANGEBOT = "ANGEBOT"
ANSPRECHPARTNER = "ANSPRECHPARTNER"
AUSSCHREIBUNG = "AUSSCHREIUNG"
BUENDELVERTRAG = "BUENDELVERTRAG"
ENERGIEMENGE = "ENERGIEMENGE"
FREMDKOSTEN = "FREMDKOSTEN"
# It is practical to use the BoTyp Enum as discriminator in the database.
# Therefore, we added one additional entry for GESCHAEFTSOBJEKT
# This is not defined by the documentation!
GESCHAEFTSOBJEKT = "GESCHAEFTSOBJEKT"
GESCHAEFTSPARTNER = "GESCHAEFTSPARTNER"
KOSTEN = "KOSTEN"
LASTGANG = "LASTGANG"
LASTGANG_KOMPAKT = "LASTGANG_KOMPAKT"
MARKTLOKATION = "MARKTLOKATION"
MESSLOKATION = "MESSLOKATION"
MARKTTEILNEHMER = "MARKTTEILNEHMER"
NETZNUTZUNGSRECHNUNG = "NETZNUTZUNGSRECHNUNG"
PREISBLATT = "PREISBLATT"
PREISBLATTDIENSTLEISTUNG = "PREISBLATTDIENSTLEISTUNG"
PREISBLATTHARDWARE = "PREISBLATTHARDWARE"
PREISBLATTKONZESSIONSABGABE = "PREISBLATTKONZESSIONSABGABE"
PREISBLATTMESSUNG = "PREISBLATTMESSUNG"
PREISBLATTNETZNUTZUNG = "PREISBLATTNETZNUTZUNG"
PREISBLATTUMLAGEN = "PREISBLATTUMLAGEN"
RECHNUNG = "RECHNUNG"
REGION = "REGION"
REGIONALTARIF = "REGIONALTARIF"
STANDORTEIGENSCHAFTEN = "STANDORTEIGENSCHAFTEN"
TARIF = "TARIF"
TARIFINFO = "TARIFINFO"
TARIFKOSTEN = "TARIFKOSTEN"
TARIFPREISBLATT = "TARIFPREISBLATT"
VERTRAG = "VERTRAG"
ZAEHLER = "ZAEHLER"
ZEITREIHE = "ZEITREIHE"
BILANZIERUNG = "BILANZIERUNG"
42 changes: 42 additions & 0 deletions src/ibims/enum/hinweisthema.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
"""
New ENUM to differentiate note types.
"""
from bo4e.enum.strenum import StrEnum


class HinweisThema(StrEnum):
"""
Topics for the hints
"""

# filled with placeholders as of now
SCHLECHTZAHLER = "SCHLECHTZAHLER"
STROMLIEBHABER = "STROMLIEBHABER"
STORNIERUNG = "STORNIERUNG"
STAMMDATEN = "STAMMDATEN"
LEGAL = "LEGAL"
KUENDIGUNG = "KUENDIGUNG"
BESCHWERDE = "BESCHWERDE"
WIDERRUF = "WIDERRUF"
KUNDENPORTAL = "KUNDENPORTAL"
PREISANPASSUNG = "PREISANPASSUNG"
ANMELDUNG = "ANMELDUNG"
BONUS = "BONUS"
LIEFERANTENWECHSEL = "LIEFERANTENWECHSEL"
MAHNUNG = "MAHNUNG"
RECHNUNG = "RECHNUNG"
UMZUG = "UMZUG"
VERTRAG = "VERTRAG"
ZAHLUNG = "ZAHLUNG"
ZAEHLERSTAND = "ZAEHLERSTAND"
ABSCHLAG = "ABSCHLAG"
CLEARINGDATEN = "CLEARINGDATEN"
KLAERUNGMARKTPARTNER = "KLAERUNGMARKTPARTNER"
MEHRVERBRAUCHTROCKNUNGSMASSNAHME = "MEHRVERBRAUCHTROCKNUNGSMASSNAHME"
RECHNUNGSKORREKTUR = "RECHNUNGSKORREKTUR"
REKLAMATION = "REKLAMATION"
VERTRIEBSPARTNER = "VERTRIEBSPARTNER"
VOLLMACHT = "VOLLMACHT"
ENERGIEPREISMASSNAHMEN = "ENERGIEPREISMASSNAHMEN"
ANDERE = "ANDERE" #: default for unmapped values
MARKETINGKAMPAGNE = "MARKETINGKAMPAGNE"
15 changes: 15 additions & 0 deletions src/ibims/enum/messtechnische_einordnung.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""
Messtechnische Einordnung ENUM
"""

from bo4e.enum.strenum import StrEnum


class MesstechnischeEinordnung(StrEnum):
"""
An enum for the messtechnische Einordnung
"""

IMS = "IMS" #: Intelligentes Messsysteme
KME_MME = "KME_MME" #: Konventionelle Messeinrichtung / Moderne Messeinrichtung
KEINE_MESSUNG = "KEINE_MESSUNG"
13 changes: 13 additions & 0 deletions src/ibims/enum/messwerterfassung.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
New ENUM to differentiate the data acquisition method in BO Zähler.
"""
from bo4e.enum.strenum import StrEnum


class Messwerterfassung(StrEnum):
"""
Specify data acquisition method
"""

FERNAUSLESBAR = "FERNAUSLESBAR"
MANUELL_AUSGELESENE = "MANUELL_AUSGELESENE"
22 changes: 22 additions & 0 deletions src/ibims/enum/messwertstatus.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
"""
Messwertstatus enum
"""
from enum import StrEnum


class Messwertstatus(StrEnum):
"""
The enum Messwertstatus contains the status of a meter reading. The go implementation of this enum
can be found in
https://github.com/Hochfrequenz/go-bo4e/blob/86a2948b99be591db84039ebaf61ca3dff9bb1b0/enum/messwertstatus/messwertstatus.go
"""

ABGELESEN = "ABGELESEN"
ERSATZWERT = "ERSATZWERT"
VORLAEUFIGERWERT = "VORLAEUFIGERWERT"
ANGABE_FUER_LIEFERSCHEIN = "ANGABE_FUER_LIEFERSCHEIN"
VORSCHLAGSWERT = "VORSCHLAGSWERT"
NICHT_VERWENDBAR = "NICHT_VERWENDBAR"
PROGNOSEWERT = "PROGNOSEWERT"
ENERGIEMENGESUMMIERT = "ENERGIEMENGESUMMIERT"
FEHLT = "FEHLT"
36 changes: 36 additions & 0 deletions src/ibims/enum/rechnung_erweitert.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""
Extension of the official bo4e rechnungstyp
"""

from bo4e.enum.strenum import StrEnum


class RechnungstypErweitert(StrEnum):
"""
Abbildung verschiedener Rechnungstypen zur Kennzeichnung von Rechnungen.
Die neu hinzugefügten Rechnungstypen können in der go Implementierung gefunden werden.
"""

# pylint:disable=line-too-long
# https://github.com/Hochfrequenz/go-bo4e/blob/3414a1eac741542628df796d6beb43eaa27b0b3e/enum/rechnungstyp/rechnungstyp.go

ENDKUNDENRECHNUNG = "ENDKUNDENRECHNUNG"
"""Eine Rechnung vom Lieferanten an einen Endkunden über die Lieferung von Energie"""
NETZNUTZUNGSRECHNUNG = "NETZNUTZUNGSRECHNUNG"
"""Eine Rechnung vom Netzbetreiber an den Netznutzer. (i.d.R. der Lieferant) über die Netznutzung."""
MEHRMINDERMENGENRECHNUNG = "MEHRMINDERMENGENRECHNUNG"
""" Eine Rechnung vom Netzbetreiber an den Netznutzer. (i.d.R. der Lieferant)
zur Abrechnung von Mengen-Differenzen zwischen Bilanzierung und Messung."""
MESSSTELLENBETRIEBSRECHNUNG = "MESSSTELLENBETRIEBSRECHNUNG"
"""Rechnung eines Messstellenbetreibers an den Messkunden."""
BESCHAFFUNGSRECHNUNG = "BESCHAFFUNGSRECHNUNG"
"""Rechnungen zwischen einem Händler und Einkäufer von Energie."""
AUSGLEICHSENERGIERECHNUNG = "AUSGLEICHSENERGIERECHNUNG"
"""Rechnung an den Verursacher von Ausgleichsenergie."""
TURNUSRECHNUNG = "TURNUSRECHNUNG"
ABSCHLAGSRECHNUNG = "ABSCHLAGSRECHNUNG"
ABSCHLUSSRECHNUNG = "ABSCHLUSSRECHNUNG"
ZWISCHENRECHNUNG = "ZWISCHENRECHNUNG"
INTEGRIERTE_13TE_RECHNUNG = "INTEGRIERTE_13TE_RECHNUNG"
MONATSRECHNUNG = "MONATSRECHNUNG"
ZUSAETZLICHE_13TE_RECHNUNG = "ZUSAETZLICHE_13TE_RECHNUNG"
16 changes: 16 additions & 0 deletions src/ibims/enum/regelzone.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""
New ENUM to differentiate note types.
"""
from bo4e.enum.strenum import StrEnum


class Regelzone(StrEnum):
"""
a strenum where the str-value of each member is the ILN of the Regelzone
"""

TRANSNETBW = "10YDE-ENBW-----N"
TENNETDE = "10YDE-EON------1"
AMPRION = "10YDE-RWENET---I"
FUENFZIGHERTZ = "10YDE-VE-------2"
GAS = "37Y005053MH0000R"
40 changes: 40 additions & 0 deletions src/ibims/enum/zaehlertyp_erweitert.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
"""
Extension of the official BO4E Zaehlertyp
"""
from bo4e.enum.strenum import StrEnum


class ZaehlerTypErweitert(StrEnum):
"""Extension of the official BO4E Zaehlertyp"""

DREHSTROMZAEHLER = "DREHSTROMZAEHLER" #: Drehstromzaehler,

BALGENGASZAEHLER = "BALGENGASZAEHLER" #: Balgengaszähler,

DREHKOLBENZAEHLER = "DREHKOLBENZAEHLER" #: Drehkolbengaszähler,

SMARTMETER = "SMARTMETER" #: Smart Meter Zähler,

LEISTUNGSZAEHLER = "LEISTUNGSZAEHLER" #: leistungsmessender Zähler,

MAXIMUMZAEHLER = "MAXIMUMZAEHLER" #: Maximumzähler,

TURBINENRADGASZAEHLER = "TURBINENRADGASZAEHLER" #: Turbinenradgaszähler,

ULTRASCHALLGASZAEHLER = "ULTRASCHALLGASZAEHLER" #: Ultraschallgaszähler,

WECHSELSTROMZAEHLER = "WECHSELSTROMZAEHLER" #: Wechselstromzähler,

WIRBELGASZAEHLER = "WIRBELGASZAEHLER" #: Wirbelgaszähler,

MESSDATENREGISTRIERGERAET = "MESSDATENREGISTRIERGERAET" #: Messdatenregistriergerät,

ELEKTRONISCHERHAUSHALTSZAEHLER = "ELEKTRONISCHERHAUSHALTSZAEHLER" #: elektronischer Haushaltszähler,

SONDERAUSSTATTUNG = "SONDERAUSSTATTUNG" #: Individuelle Abstimmung (Sonderausstattung),

MODERNEMESSEINRICHTUNG = "MODERNEMESSEINRICHTUNG" #: moderne Messeinrichtung nach MsbG

LASTGANGZAEHLER = "LASTGANGZAEHLER" #: Lastgangzähler

NEUEMESSEINRICHTUNG = "NEUEMESSEINRICHTUNG" #: Neue Messeinrichtung GAS nach MsbG

0 comments on commit 88824c7

Please sign in to comment.