feat: Direktvermarktung mit Batterie-Netzeinspeisung

Fügt einen Direktvermarktungs-Modus (feedintariff.direct_marketing_enabled)
hinzu, der den Börsenpreis als Einspeisevergütung nutzt und aktive
Batterie-Entladung ins Netz (battery_grid_export_allowed) sowie
DC-Charge-Bypass optimiert.

- FeedInTariffEnergyCharts-Provider (Börsen-Einspeisetarif inkl. Prognose)
- Inverter: DC/AC-Wirkungsgrade und Batterie-Grid-Export in process_energy
- Genetik: Export-/DC-Charge-Zustände, Restwert-Bewertung des Akkus
- Solution-Result: neues Feld Feed_in_tariff (verwendeter Tarif je Stunde)
- Tests für neue Provider, Solution und Simulation

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Andreas
2026-07-12 09:01:11 +02:00
parent cc583600d8
commit 7f2ac9098c
19 changed files with 960 additions and 72 deletions

View File

@@ -8,7 +8,7 @@
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "v0.3.0.dev2607071966322885"
"version": "v0.3.0.dev2607101210858200"
},
"paths": {
"/v1/admin/cache/clear": {
@@ -3621,7 +3621,7 @@
}
],
"title": "Home Id",
"description": "Tibber home id to read prices from.",
"description": "Optional Tibber home id. If omitted, the first home with a subscription is used.",
"examples": [
"00000000-0000-0000-0000-000000000000"
]
@@ -4283,6 +4283,20 @@
null
]
},
"FeedInTariffEnergyCharts": {
"anyOf": [
{
"$ref": "#/components/schemas/FeedInTariffEnergyChartsCommonSettings"
},
{
"type": "null"
}
],
"description": "FeedInTariffEnergyCharts settings",
"examples": [
null
]
},
"FeedInTariffImport": {
"anyOf": [
{
@@ -4304,6 +4318,16 @@
},
"FeedInTariffCommonSettings-Input": {
"properties": {
"direct_marketing_enabled": {
"type": "boolean",
"title": "Direct Marketing Enabled",
"description": "Use the electricity market price as feed-in tariff and enable export-aware direct marketing optimization.",
"default": false,
"examples": [
false,
true
]
},
"provider": {
"anyOf": [
{
@@ -4317,7 +4341,8 @@
"description": "Feed in tariff provider id of provider to be used.",
"examples": [
"FeedInTariffFixed",
"FeedInTarifImport"
"FeedInTariffEnergyCharts",
"FeedInTariffImport"
]
},
"provider_settings": {
@@ -4334,6 +4359,16 @@
},
"FeedInTariffCommonSettings-Output": {
"properties": {
"direct_marketing_enabled": {
"type": "boolean",
"title": "Direct Marketing Enabled",
"description": "Use the electricity market price as feed-in tariff and enable export-aware direct marketing optimization.",
"default": false,
"examples": [
false,
true
]
},
"provider": {
"anyOf": [
{
@@ -4347,7 +4382,8 @@
"description": "Feed in tariff provider id of provider to be used.",
"examples": [
"FeedInTariffFixed",
"FeedInTarifImport"
"FeedInTariffEnergyCharts",
"FeedInTariffImport"
]
},
"provider_settings": {
@@ -4374,6 +4410,21 @@
"title": "FeedInTariffCommonSettings",
"description": "Feed In Tariff Prediction Configuration."
},
"FeedInTariffEnergyChartsCommonSettings": {
"properties": {
"bidding_zone": {
"$ref": "#/components/schemas/EnergyChartsBiddingZones",
"description": "Bidding Zone: 'AT', 'BE', 'CH', 'CZ', 'DE-LU', 'DE-AT-LU', 'DK1', 'DK2', 'FR', 'HU', 'IT-NORTH', 'NL', 'NO2', 'PL', 'SE4' or 'SI'",
"default": "DE-LU",
"examples": [
"DE-LU"
]
}
},
"type": "object",
"title": "FeedInTariffEnergyChartsCommonSettings",
"description": "Common settings for Energy-Charts feed-in tariff provider."
},
"FeedInTariffFixedCommonSettings": {
"properties": {
"feed_in_tariff_kwh": {
@@ -5107,7 +5158,15 @@
},
"type": "array",
"title": "Discharge Allowed",
"description": "Array with discharge values (1 for discharge, 0 otherwise)."
"description": "Array with self-consumption discharge values (1 for discharge, 0 otherwise)."
},
"battery_grid_export_allowed": {
"items": {
"type": "integer"
},
"type": "array",
"title": "Battery Grid Export Allowed",
"description": "Array with battery-to-grid export values (1 for export discharge, 0 otherwise)."
},
"eautocharge_hours_float": {
"anyOf": [