11from dataclasses import dataclass
22from enum import Enum
33
4- from report .nk .cost import NkCost , NkCostZEVStromallmend , NkPerRentalUnitCost , NkTotalCost
5- from report .nk .cost .vewa import NkCostVEWA , NkCostVEWACategories
4+ from report .nk .cost import (
5+ NkCost ,
6+ NkCostVEWA ,
7+ NkCostZEVStromallmend ,
8+ NkPerRentalUnitCost ,
9+ NkTotalCost ,
10+ )
11+ from report .nk .cost .vewa import NkCostVEWACategories
612from report .nk .measurement_data import (
713 NkMeasurementDataAnnual ,
814 NkMeasurementDataBase ,
915 NkMeasurementDataEgon ,
10- NkMeasurementDataMonthly ,
16+ NkMeasurementDataMonthlyCSVFile ,
1117)
1218
1319
@@ -33,7 +39,7 @@ class CostConfigField:
3339class CostConfigMeasurementSourceField :
3440 key : str
3541 supported_sources : list [type [NkMeasurementDataBase ]]
36- required_keys : list [str ]
42+ keys : list [str ]
3743
3844
3945@dataclass
@@ -85,13 +91,13 @@ def get_fields(cls):
8591 subfields = [
8692 CostConfigMeasurementSourceField (
8793 "building" ,
88- supported_sources = [NkMeasurementDataMonthly ],
89- required_keys = ["strom_bezug_zev" , "strom_ruecklieferung_ew" ],
94+ supported_sources = [NkMeasurementDataMonthlyCSVFile ],
95+ keys = ["strom_bezug_zev" , "strom_ruecklieferung_ew" ],
9096 ),
9197 CostConfigMeasurementSourceField (
9298 "rental_units" ,
9399 supported_sources = [NkMeasurementDataEgon ],
94- required_keys = [
100+ keys = [
95101 "strom_ew_nieder" ,
96102 "strom_ew_hoch" ,
97103 "strom_solar" ,
@@ -105,7 +111,7 @@ def get_fields(cls):
105111 # Example generated measurement sources config:
106112 #
107113 # "building": {
108- # "class": NkMeasurementDataMonthly ,
114+ # "class": NkMeasurementDataMonthlyCSVFile ,
109115 # "file_key": "Messdaten:Liegenschaft",
110116 # "headers": {
111117 # "month": "Monat",
@@ -143,12 +149,12 @@ def get_fields(cls):
143149 CostConfigMeasurementSourceField (
144150 "building" ,
145151 supported_sources = [NkMeasurementDataAnnual ],
146- required_keys = ["verbrauch " ],
152+ keys = ["usage" , "costs " ],
147153 ),
148154 CostConfigMeasurementSourceField (
149155 "rental_units" ,
150156 supported_sources = [NkMeasurementDataEgon ],
151- required_keys = ["verbrauch " ],
157+ keys = ["usage " ],
152158 ),
153159 ],
154160 ),
@@ -173,7 +179,7 @@ def get_fields(cls):
173179 # "headers": {
174180 # "rental_unit": "Gebäudeeinheit",
175181 # "time_period": "Mieter Abrechnungsperiode",
176- # "verbrauch ": "Warmwasser Verbrauch (Kubikmeter)",
182+ # "usage ": "Warmwasser Verbrauch (Kubikmeter)",
177183 # },
178184 # },
179185 # },
@@ -220,7 +226,7 @@ def get_fields(cls):
220226 # Example generated measurement sources config:
221227 #
222228 # "building": {
223- # "class": NkMeasurementDataMonthly ,
229+ # "class": NkMeasurementDataMonthlyCSVFile ,
224230 # "file_key": "Messdaten:Liegenschaft",
225231 # "headers": {
226232 # "month": "Monat",
@@ -253,7 +259,7 @@ def get_fields(cls):
253259 # "headers": {
254260 # "rental_unit": "Gebäudeeinheit",
255261 # "time_period": "Mieter Abrechnungsperiode",
256- # "verbrauch ": "Warmwasser Verbrauch (Kubikmeter)",
262+ # "usage ": "Warmwasser Verbrauch (Kubikmeter)",
257263 # },
258264 # },
259265 # },
@@ -301,7 +307,7 @@ def get_costs_from_config():
301307 "billing_group" : "Wasserkosten" ,
302308 "vewa_category" : NkCostVEWACategories .WATER_GENERAL ,
303309 "base_cost_factor_key" : "Wasserkosten:Grundkostenanteil" ,
304- "exclude_zero_usage_units" : True ,
310+ "exclude_zero_usage_units" : False ,
305311 "measurement_data" : {
306312 "building" : {
307313 "class" : NkMeasurementDataAnnual ,
@@ -314,22 +320,11 @@ def get_costs_from_config():
314320 "headers" : {
315321 "rental_unit" : "Gebäudeeinheit" ,
316322 "time_period" : "Mieter Abrechnungsperiode" ,
317- "verbrauch " : "Warmwasser Verbrauch (Kubikmeter)" ,
323+ "usage " : "Warmwasser Verbrauch (Kubikmeter)" ,
318324 },
319325 },
320326 },
321327 },
322- {
323- "name" : "Wasser_Abwasser_Grundkosten" ,
324- "category" : "waerme_wasser_grund" ,
325- "amount_factor" : 0.3 ,
326- },
327- {
328- "name" : "Wasser_Abwasser_Verbrauch" ,
329- "category" : "waerme_wasser_verbrauch" ,
330- "amount_factor" : 0.7 ,
331- "object_weights" : "messung_wasser" ,
332- },
333328 {
334329 "name" : "Fernwaerme_Fussboden_Grundkosten" ,
335330 "category" : "waerme_wasser_grund" ,
@@ -364,6 +359,34 @@ def get_costs_from_config():
364359 "section_weights" : "lueftung" , #'default',
365360 "object_weights" : "volume" , #'area',
366361 },
362+ {
363+ "class" : NkCostVEWA ,
364+ "name" : "Fernwaerme_Warmwasser" ,
365+ "billing_group" : "Wärmekosten" ,
366+ "vewa_category" : NkCostVEWACategories .HEAT_WATER ,
367+ "base_cost_factor_key" : "Warmwasser:Grundkostenanteil" ,
368+ "exclude_zero_usage_units" : True ,
369+ "measurement_data" : {
370+ "building" : {
371+ "class" : NkMeasurementDataMonthlyCSVFile ,
372+ "file_key" : "Messdaten:Liegenschaft" ,
373+ "headers" : {
374+ "month" : "Monat" ,
375+ "costs" : "Fernwaerme_Warmwasser" ,
376+ },
377+ },
378+ "rental_units" : {
379+ "class" : NkMeasurementDataEgon ,
380+ "file_key" : "Messdaten:Mieteinheiten" ,
381+ "file_prefix" : "egon_Waerme" ,
382+ "headers" : {
383+ "rental_unit" : "Gebäudeeinheit" ,
384+ "time_period" : "Mieter Abrechnungsperiode" ,
385+ "usage" : "Warmwasser Verbrauch (Kubikmeter)" ,
386+ },
387+ },
388+ },
389+ },
367390 {
368391 "name" : "Fernwaerme_Warmwasser_Grundkosten" ,
369392 "category" : "waerme_wasser_grund" ,
@@ -398,7 +421,7 @@ def get_costs_from_config():
398421 "korrekturen_key" : "Strom:Korrekturen" ,
399422 "measurement_data" : {
400423 "building" : {
401- "class" : NkMeasurementDataMonthly ,
424+ "class" : NkMeasurementDataMonthlyCSVFile ,
402425 "file_key" : "Messdaten:Liegenschaft" ,
403426 "headers" : {
404427 "month" : "Monat" ,
0 commit comments