mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2026-08-31 12:46:38 +00:00
feat(optimization): schedule any number of flexible consumers
Replace the single hourly "dishwasher" home appliance with a list of flexible consumers (home_appliances). Each consumer defines its load either as an explicit power profile (energy-preservingly resampled onto the optimization slot grid, incl. 15-min and non-integer interval ratios) or the flat consumption_wh/duration_h fallback, and runs ONCE or DAILY within its time windows and the optimization horizon. - ConsumerScheduleMode + shared load-definition validation (XOR of profile/fallback, reject negative/NaN/inf, unique device_id) - ApplianceGeneLayout: variable appliance gene block (index into allowed_start_slots), ONCE/DAILY calendar-day based, no snapping - per-device output: result.home_appliance_energy_wh, appliance_starts (absolute local times), per-device solution columns and DDBC RUN/OFF instructions on state transitions only - deprecate dishwasher/washingstart/Home_appliance_wh_per_hour with backward-compatible mapping and explicit conflict rejection - max_home_appliances is now an upper bound only; no demo appliance and no on/off behaviour - docs, openapi.json, CHANGELOG and optimize_result_2* fixtures updated; new tests/test_homeappliance.py covers the mandatory test matrix Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
c59bf1b486
commit
67cf6f7d8a
+276
-229
@@ -11,18 +11,13 @@
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -42,7 +37,12 @@
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -113,7 +113,6 @@
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
@@ -123,7 +122,7 @@
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
@@ -134,6 +133,11 @@
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
@@ -142,10 +146,6 @@
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
0
|
||||
],
|
||||
@@ -161,17 +161,17 @@
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.75,
|
||||
0.625,
|
||||
0.5,
|
||||
0.375,
|
||||
0.875,
|
||||
0.5,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.375,
|
||||
0.375,
|
||||
1.0,
|
||||
0.0,
|
||||
0.75,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.375,
|
||||
0.6,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -202,24 +202,24 @@
|
||||
],
|
||||
"result": {
|
||||
"Last_Wh_pro_Stunde": [
|
||||
16541.07,
|
||||
8929.91,
|
||||
8375.540038207693,
|
||||
6376.03,
|
||||
5096.67,
|
||||
12853.82,
|
||||
8960.220000000001,
|
||||
13936.309375923789,
|
||||
1129.12,
|
||||
1178.71,
|
||||
1050.98,
|
||||
15230.07,
|
||||
1525.2526751616956,
|
||||
11808.56,
|
||||
1132.03,
|
||||
7596.67,
|
||||
7609.82,
|
||||
13190.760676868524,
|
||||
1103.78,
|
||||
8995.119999999999,
|
||||
5111.71,
|
||||
7343.779999999999,
|
||||
988.56,
|
||||
1412.38,
|
||||
5912.38,
|
||||
704.61,
|
||||
516.37,
|
||||
868.05,
|
||||
694.34,
|
||||
2608.79,
|
||||
608.79,
|
||||
556.31,
|
||||
488.89,
|
||||
506.91,
|
||||
@@ -243,55 +243,54 @@
|
||||
],
|
||||
"EAuto_SoC_pro_Stunde": [
|
||||
5.0,
|
||||
22.48,
|
||||
35.589999999999996,
|
||||
46.515,
|
||||
55.254999999999995,
|
||||
61.809999999999995,
|
||||
77.105,
|
||||
85.845,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955,
|
||||
98.955
|
||||
20.294999999999998,
|
||||
20.294999999999998,
|
||||
37.775,
|
||||
37.775,
|
||||
44.330000000000005,
|
||||
50.885000000000005,
|
||||
68.365,
|
||||
68.365,
|
||||
81.475,
|
||||
88.03,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518,
|
||||
98.518
|
||||
],
|
||||
"Einnahmen_Euro_pro_Stunde": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.024981227816847,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.038217249326498136,
|
||||
0.023370695807696434,
|
||||
0.10263928607047809,
|
||||
0.0002638810165675977,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -310,29 +309,30 @@
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.19904591069188757,
|
||||
0.2577866264025879,
|
||||
0.0,
|
||||
0.035969913516850464,
|
||||
0.2577971476677123,
|
||||
0.15146384621553569,
|
||||
0.09798107754792196,
|
||||
0.05435777788576338,
|
||||
0.029150936607659956,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"Gesamt_Verluste": 7095.270423117038,
|
||||
"Gesamtbilanz_Euro": 14.155149367775268,
|
||||
"Gesamteinnahmen_Euro": 0.847204411694738,
|
||||
"Gesamtkosten_Euro": 15.002353779470006,
|
||||
"Gesamt_Verluste": 7723.761220821238,
|
||||
"Gesamtbilanz_Euro": 14.859522880677414,
|
||||
"Gesamteinnahmen_Euro": 0.6752660886427261,
|
||||
"Gesamtkosten_Euro": 15.53478896932014,
|
||||
"Home_appliance_wh_per_hour": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
2500.0,
|
||||
2500.0,
|
||||
0.0,
|
||||
2500.0,
|
||||
2500.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -365,83 +365,125 @@
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"home_appliance_energy_wh": {
|
||||
"dishwasher1": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
2500.0,
|
||||
2500.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
"Kosten_Euro_pro_Stunde": [
|
||||
3.55926012,
|
||||
1.7445413792641737,
|
||||
1.5214016280281666,
|
||||
0.9799189133780641,
|
||||
3.26035212,
|
||||
0.1921289942880966,
|
||||
2.2398909259999997,
|
||||
0.0,
|
||||
0.6146086578009714,
|
||||
1.120219902993293,
|
||||
2.4860631399999997,
|
||||
0.05258762370598476,
|
||||
0.1614775630079859,
|
||||
0.0,
|
||||
0.5064650351737862,
|
||||
2.0366107701900296,
|
||||
0.005881449073870462,
|
||||
2.11462917272379,
|
||||
0.0,
|
||||
2.1641282909999995,
|
||||
0.29116746986009023,
|
||||
0.41255619800000004,
|
||||
0.0,
|
||||
1.727006198,
|
||||
0.19588158,
|
||||
0.174739608,
|
||||
0.28801899,
|
||||
0.0,
|
||||
0.856465757,
|
||||
0.22802125600000003,
|
||||
0.0,
|
||||
0.0,
|
||||
0.162995926,
|
||||
0.0,
|
||||
0.0,
|
||||
0.16677339,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.07362195915902499,
|
||||
0.060401289430882174,
|
||||
0.009619897970888898,
|
||||
0.0,
|
||||
4.179128154646605e-17,
|
||||
2.3325608707865465e-05,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.08357424731947552,
|
||||
0.0,
|
||||
0.19011028252189552,
|
||||
0.0,
|
||||
0.0,
|
||||
0.16484566
|
||||
],
|
||||
"Netzbezug_Wh_pro_Stunde": [
|
||||
15610.789999999999,
|
||||
7886.7150961309835,
|
||||
7268.9996561307535,
|
||||
5215.108639585227,
|
||||
14299.789999999999,
|
||||
868.5759235447405,
|
||||
10701.82,
|
||||
0.0,
|
||||
3066.9094700647274,
|
||||
5096.541869851197,
|
||||
10951.82,
|
||||
175.4675465665157,
|
||||
505.40708296709204,
|
||||
0.0,
|
||||
2527.2706345997312,
|
||||
9265.745087306777,
|
||||
25.909467285772962,
|
||||
7055.819728808107,
|
||||
0.0,
|
||||
7024.109999999999,
|
||||
980.6920507244535,
|
||||
1412.38,
|
||||
0.0,
|
||||
5912.38,
|
||||
704.61,
|
||||
516.37,
|
||||
868.05,
|
||||
0.0,
|
||||
2608.79,
|
||||
694.34,
|
||||
0.0,
|
||||
0.0,
|
||||
488.89,
|
||||
0.0,
|
||||
0.0,
|
||||
506.91,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
322.9033296448464,
|
||||
273.0618871197205,
|
||||
45.96224544141853,
|
||||
0.0,
|
||||
2.2737367544323206e-13,
|
||||
0.11639525303326081,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
278.85968408233407,
|
||||
0.0,
|
||||
617.0408390843736,
|
||||
0.0,
|
||||
0.0,
|
||||
592.97
|
||||
],
|
||||
@@ -450,12 +492,11 @@
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
356.87468309781434,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
545.9607046642591,
|
||||
333.86708296709196,
|
||||
1466.2755152925442,
|
||||
3.769728808108539,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -474,11 +515,12 @@
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
2843.513009884108,
|
||||
3682.6660914655417,
|
||||
0.0,
|
||||
513.8559073835781,
|
||||
3682.816395253033,
|
||||
2163.76923165051,
|
||||
1399.729679256028,
|
||||
776.5396840823341,
|
||||
416.4419515379994,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -486,41 +528,41 @@
|
||||
0.0
|
||||
],
|
||||
"Verluste_Pro_Stunde": [
|
||||
1152.0,
|
||||
414.0066115357181,
|
||||
405.0215587356905,
|
||||
276.0922367502273,
|
||||
333.15830172751845,
|
||||
1098.8591364077674,
|
||||
288.74422438214356,
|
||||
1013.9999999999997,
|
||||
53.21482102827082,
|
||||
0.0,
|
||||
106.80230977350088,
|
||||
1083.0,
|
||||
101.74991082536883,
|
||||
552.0,
|
||||
106.67021307906845,
|
||||
567.0367126720731,
|
||||
259.38247615196775,
|
||||
735.7686104768134,
|
||||
56.857674239187475,
|
||||
414.0,
|
||||
766.976146106431,
|
||||
331.2000000000007,
|
||||
0.0014460869344160802,
|
||||
60.0,
|
||||
96.08318181818186,
|
||||
600.0,
|
||||
0.0,
|
||||
0.0,
|
||||
94.68272727272722,
|
||||
240.0,
|
||||
118.37045454545455,
|
||||
0.0,
|
||||
83.01681818181817,
|
||||
75.86045454545456,
|
||||
66.66681818181814,
|
||||
0.0,
|
||||
69.12409090909085,
|
||||
109.07302361034766,
|
||||
116.99491129525349,
|
||||
95.61900944932736,
|
||||
54.18759955738153,
|
||||
98.21987178167876,
|
||||
86.6234264543665,
|
||||
171.42744837680007,
|
||||
165.15986945297027,
|
||||
116.9350623689079,
|
||||
197.07683881390702,
|
||||
0.03390853445803674,
|
||||
476.63569111397055,
|
||||
0.0,
|
||||
2.900768349489402,
|
||||
16.700320743972142,
|
||||
0.0,
|
||||
81.2380484620021,
|
||||
111.78035844493081,
|
||||
6.04210069012484,
|
||||
90.18403329253945,
|
||||
134.59227272727276,
|
||||
100.08954545454549,
|
||||
0.0
|
||||
@@ -528,42 +570,42 @@
|
||||
"akku_soc_pro_stunde": [
|
||||
80.0,
|
||||
96.66666666666667,
|
||||
96.66685032043661,
|
||||
98.33411584087247,
|
||||
98.33667797282322,
|
||||
100.0,
|
||||
81.50113762748849,
|
||||
81.85514386032581,
|
||||
98.52181052699248,
|
||||
99.49305307848245,
|
||||
99.49305307848245,
|
||||
99.20134772591024,
|
||||
91.86086775366753,
|
||||
93.31593653566664,
|
||||
98.42062016002258,
|
||||
100.0,
|
||||
100.0,
|
||||
96.82533215994886,
|
||||
96.82537232903037,
|
||||
98.49203899569704,
|
||||
95.45911027668879,
|
||||
95.45911027668879,
|
||||
95.45911027668879,
|
||||
92.47038782489815,
|
||||
99.13705449156481,
|
||||
96.7424694364684,
|
||||
94.63808754941604,
|
||||
94.63808754941604,
|
||||
91.19519730846775,
|
||||
87.69752718992511,
|
||||
86.00332639655647,
|
||||
87.50853749537262,
|
||||
89.91474378577168,
|
||||
94.30467769343532,
|
||||
94.52564336628036,
|
||||
82.33137823444534,
|
||||
82.33137823444534,
|
||||
82.33141840352684,
|
||||
98.99808507019351,
|
||||
98.99808507019351,
|
||||
98.99808507019351,
|
||||
95.26164395449102,
|
||||
95.26164395449102,
|
||||
92.6411635825902,
|
||||
90.24657852749377,
|
||||
90.24657852749377,
|
||||
88.06463121344417,
|
||||
84.6217409724959,
|
||||
81.12407085395327,
|
||||
79.4298700605846,
|
||||
79.54517357656309,
|
||||
81.95137986696216,
|
||||
86.53915401843355,
|
||||
86.76011969127859,
|
||||
100.0,
|
||||
100.0,
|
||||
100.0,
|
||||
100.0,
|
||||
100.0,
|
||||
98.60068046043587,
|
||||
98.76851659071711,
|
||||
94.52002313341684,
|
||||
91.360630915786
|
||||
96.11252124341868,
|
||||
91.86402778611841,
|
||||
88.70463556848756
|
||||
],
|
||||
"Electricity_price": [
|
||||
0.000228,
|
||||
@@ -660,17 +702,17 @@
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.75,
|
||||
0.625,
|
||||
0.5,
|
||||
0.375,
|
||||
0.875,
|
||||
0.5,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.375,
|
||||
0.375,
|
||||
1.0,
|
||||
0.0,
|
||||
0.75,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.375,
|
||||
0.6,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
@@ -753,44 +795,48 @@
|
||||
"capacity_wh": 60000,
|
||||
"charging_efficiency": 0.95,
|
||||
"max_charge_power_w": 11040,
|
||||
"soc_wh": 59373.0,
|
||||
"soc_wh": 59110.8,
|
||||
"initial_soc_percentage": 5
|
||||
},
|
||||
"start_solution": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
0.0,
|
||||
1.0,
|
||||
2.0,
|
||||
1.0,
|
||||
0.0,
|
||||
2.0,
|
||||
2.0,
|
||||
2.0,
|
||||
0.0,
|
||||
2.0,
|
||||
0.0,
|
||||
1.0,
|
||||
2.0,
|
||||
2.0,
|
||||
2.0,
|
||||
1.0,
|
||||
1.0,
|
||||
0.0,
|
||||
2.0,
|
||||
0.0,
|
||||
2.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
2.0,
|
||||
0.0,
|
||||
1.0,
|
||||
1.0,
|
||||
0.0,
|
||||
1.0,
|
||||
1.0,
|
||||
1.0,
|
||||
1.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
@@ -799,61 +845,62 @@
|
||||
1.0,
|
||||
1.0,
|
||||
1.0,
|
||||
2.0,
|
||||
1.0,
|
||||
0.0,
|
||||
1.0,
|
||||
1.0,
|
||||
3.0,
|
||||
0.0,
|
||||
1.0,
|
||||
6.0,
|
||||
5.0,
|
||||
3.0,
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
6.0,
|
||||
3.0,
|
||||
2.0,
|
||||
6.0,
|
||||
4.0,
|
||||
3.0,
|
||||
0.0,
|
||||
2.0,
|
||||
1.0,
|
||||
5.0,
|
||||
2.0,
|
||||
4.0,
|
||||
4.0,
|
||||
0.0,
|
||||
6.0,
|
||||
5.0,
|
||||
0.0,
|
||||
2.0,
|
||||
2.0,
|
||||
2.0,
|
||||
4.0,
|
||||
6.0,
|
||||
0.0,
|
||||
1.0,
|
||||
4.0,
|
||||
5.0,
|
||||
3.0,
|
||||
6.0,
|
||||
3.0,
|
||||
5.0,
|
||||
3.0,
|
||||
1.0,
|
||||
6.0,
|
||||
0.0,
|
||||
4.0,
|
||||
1.0,
|
||||
5.0,
|
||||
2.0,
|
||||
0.0,
|
||||
1.0,
|
||||
4.0,
|
||||
6.0,
|
||||
6.0,
|
||||
6.0,
|
||||
6.0,
|
||||
3.0,
|
||||
6.0,
|
||||
1.0,
|
||||
5.0,
|
||||
5.0,
|
||||
5.0,
|
||||
5.0,
|
||||
2.0,
|
||||
6.0,
|
||||
4.0,
|
||||
4.0,
|
||||
5.0,
|
||||
4.0,
|
||||
3.0,
|
||||
1.0,
|
||||
6.0,
|
||||
5.0,
|
||||
1.0,
|
||||
2.0,
|
||||
3.0,
|
||||
1.0,
|
||||
3.0,
|
||||
15.0
|
||||
4.0
|
||||
],
|
||||
"washingstart": 15
|
||||
"washingstart": 14,
|
||||
"appliance_starts": {
|
||||
"dishwasher1": [
|
||||
"2026-07-15 14:00:00+02:00"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user