From f72cf53968b2e93fae3e53acfb93bcd7c3960774 Mon Sep 17 00:00:00 2001 From: Annika Schloegl Date: Mon, 9 Oct 2023 17:18:20 +0200 Subject: [PATCH] Add more Zaehlwerkserweiterungen --- src/bo4e/com/konzessionsabgabe.py | 33 +++++++++++++++++++++++++++++++ src/bo4e/com/zaehlwerk.py | 11 ++++++++++- src/bo4e/com/zaehlzeitregister.py | 28 ++++++++++++++++++++++++++ src/bo4e/enum/abgabeart.py | 18 +++++++++++++++++ 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 src/bo4e/com/konzessionsabgabe.py create mode 100644 src/bo4e/com/zaehlzeitregister.py create mode 100644 src/bo4e/enum/abgabeart.py diff --git a/src/bo4e/com/konzessionsabgabe.py b/src/bo4e/com/konzessionsabgabe.py new file mode 100644 index 000000000..d82fefb9c --- /dev/null +++ b/src/bo4e/com/konzessionsabgabe.py @@ -0,0 +1,33 @@ +""" +Contains Konzessionsabgabe and corresponding marshmallow schema for de-/serialization +""" +from decimal import Decimal +from typing import Optional + +from bo4e.com.com import COM +from bo4e.enum.abgabeart import AbgabeArt + +# pylint: disable=too-few-public-methods, too-many-instance-attributes + + +class Konzessionsabgabe(COM): + """ + Diese Komponente wird zur Übertagung der Details zu einer Konzessionsabgabe verwendet. + + .. raw:: html + + + + .. HINT:: + `Konzessionsabgabe JSON Schema `_ + + """ + + #: Art der Abgabe + satz: Optional[AbgabeArt] = None + + #: Konzessionsabgabe in E/kWh + kosten: Optional[Decimal] = None + + #: Gebührenkategorie der Konzessionsabgabe + kategorie: Optional[str] = None diff --git a/src/bo4e/com/zaehlwerk.py b/src/bo4e/com/zaehlwerk.py index 120965349..f92e9f6e9 100644 --- a/src/bo4e/com/zaehlwerk.py +++ b/src/bo4e/com/zaehlwerk.py @@ -6,7 +6,9 @@ from typing import Optional from bo4e.com.com import COM +from bo4e.com.konzessionsabgabe import Konzessionsabgabe from bo4e.com.verwendungszweck import Verwendungszweck +from bo4e.com.zaehlzeitregister import Zaehlzeitregister from bo4e.enum.energierichtung import Energierichtung from bo4e.enum.mengeneinheit import Mengeneinheit from bo4e.enum.verbrauchsart import Verbrauchsart @@ -44,8 +46,15 @@ class Zaehlwerk(COM): ] = None # Mit diesem Faktor wird eine Zählerstandsdifferenz multipliziert, um zum eigentlichen Verbrauch im Zeitraum # zu kommen. einheit: Optional[Mengeneinheit] = None # Die Einheit der gemessenen Größe, z.B. kWh - ist_schwachlastfaehig: Optional[bool] = None #: Schwachlastfaehigkeint + ist_schwachlastfaehig: Optional[bool] = None #: Schwachlastfaehigkeit verwendungszwecke: Optional[list[Verwendungszweck]] = None #: Verwendungungszweck der Werte Marktlokation verbrauchsart: Optional[Verbrauchsart] = None #: Stromverbrauchsart/Verbrauchsart Marktlokation ist_unterbrechbar: Optional[bool] = None #: Unterbrechbarkeit Marktlokation waermenutzung: Optional[Waermenutzung] = None #: Wärmenutzung Marktlokation + konzessionsabgabe: Optional[Konzessionsabgabe] = None #: Konzessionsabgabe + ist_steuerbefreit: Optional[bool] = None #: Steuerbefreiung + vorkommastelle: Optional[int] = None #: Anzahl der Vorkommastellen + nachkommastelle: Optional[int] = None #: Anzahl der Nachkommastellen + ist_abrechnungsrelevant: Optional[bool] = None #: Abrechnungsrelevant + anzahlAblesungen: Optional[int] = None #: Anzahl Ablesungen pro Jahr + zaehlzeitregister: Optional[Zaehlzeitregister] #: Erweiterte Definition der Zählzeit in Bezug auf ein Register diff --git a/src/bo4e/com/zaehlzeitregister.py b/src/bo4e/com/zaehlzeitregister.py new file mode 100644 index 000000000..a58918622 --- /dev/null +++ b/src/bo4e/com/zaehlzeitregister.py @@ -0,0 +1,28 @@ +""" +Contains Zaehlzeitregister class and corresponding marshmallow schema for de-/serialization +""" +from typing import Optional + +from bo4e.com.com import COM + +# pylint: disable=no-name-in-module +# pylint: disable=too-few-public-methods + + +class Zaehlzeitregister(COM): + """ + Mit dieser Komponente werden Zählzeitregister modelliert. Ein Zählzeitregister beschreibt eine erweiterte Definition der Zählzeit + in Bezug auf ein Register. Dabei werden alle Codes dazu vom Netzbetreiber vergeben. + + .. raw:: html + + + + .. HINT:: + `Zaehlzeitregister JSON Schema `_ + + """ + + zaehlzeit_definition: Optional[str] = None #: Zählzeitdefinition + register: Optional[str] = None #: Zählzeitregister + ist_schwachlastfaehig: Optional[bool] = None #: Schwachlastfaehigkeit diff --git a/src/bo4e/enum/abgabeart.py b/src/bo4e/enum/abgabeart.py new file mode 100644 index 000000000..d947b4427 --- /dev/null +++ b/src/bo4e/enum/abgabeart.py @@ -0,0 +1,18 @@ +# pylint: disable=missing-module-docstring +from bo4e.enum.strenum import StrEnum + + +class AbgabeArt(StrEnum): + """ + Art der Konzessionsabgabe + """ + + KAS = "KAS" #: KAS: für alle konzessionsvertraglichen Sonderregelungen, die nicht in die Systematik der KAV eingegliedert sind + SA = "SA" #: SA: Sondervertragskunden 1 kV, Preis nach § 2 (3) (für Strom 0,11 ct/kWh und für Gas 0,03 ct/kWh) + SAS = "SAS" #: SAS: Kennzeichnung, dass ein abweichender Preis für Sondervertragskunden vorliegt + TA = "TA" #: TA: Tarifkunden, für Strom § 2. (2) 1b HT bzw.ET(hohe KA) und für Gas § 2 (2) 2b + TAS = "TAS" #: TAS: Kennzeichnung, dass ein abweichender Preis für Tarifkunden vorliegt + TK = "TK" #: TK: für Gas nach KAV § 2 (2) 2a bei ausschließlicher Nutzung zum Kochen und Warmwassererzeugung + TKS = "TKS" #: TKS: Kennzeichnung, wenn nach KAV § 2 (2) 2a ein anderen Preis zu verwenden ist + TS = "TS" #: TS: für Strom mit Schwachlast § 2. (2) 1a NT(niedrige KA, 0,61 ct/kWh) + TSS = "TSS" #: TSS: Kennzeichnung, dass ein abweichender Preis für Schwachlast angewendet wird