feat: add dvhubonline feed-in tariff provider (#1193)
Bump Version / Bump Version Workflow (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
docker-build / platform-excludes (push) Has been cancelled
docker-build / build (push) Has been cancelled
docker-build / merge (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Run Pytest on Pull Request / test (push) Has been cancelled
Close stale pull requests/issues / Find Stale issues and PRs (push) Has been cancelled

Fetches GET /api/prices?start&end&zone (15-min slots, EUR/MWh) and stores
the raw market price as feed_in_tariff_wh (EUR/Wh) — no import charges/VAT.

Slots beyond the day-ahead horizon are left to the consumer's forward-fill
(FeedInTariffImport behaviour).

5 unit tests + opt-in live smoke (EOS_DVHUB_ONLINE_LIVE=1, passing).

Signed-off-by: Christin <info@bikinibottom.capital>
Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
This commit is contained in:
Bobby Noelte
2026-07-29 22:21:17 +02:00
committed by GitHub
parent 3c1f5d8bc0
commit 52fe489d4e
13 changed files with 381 additions and 22 deletions
+41
View File
@@ -7,6 +7,7 @@
| Name | Environment Variable | Type | Read-Only | Default | Description |
| ---- | -------------------- | ---- | --------- | ------- | ----------- |
| dvhubonline | `EOS_FEEDINTARIFF__DVHUBONLINE` | `FeedInTariffDvhubOnlineCommonSettings` | `rw` | `required` | DvhubOnline feed in tariff provider settings. |
| energycharts | `EOS_FEEDINTARIFF__ENERGYCHARTS` | `FeedInTariffEnergyChartsCommonSettings` | `rw` | `required` | EnergyCharts feed in tariff provider settings. |
| feedintarifffixed | `EOS_FEEDINTARIFF__FEEDINTARIFFFIXED` | `FeedInTariffFixedCommonSettings` | `rw` | `required` | Fixed feed in tariff provider settings. |
| feedintariffimport | `EOS_FEEDINTARIFF__FEEDINTARIFFIMPORT` | `FeedInTariffImportCommonSettings` | `rw` | `required` | Feed in tarif import provider settings. |
@@ -31,6 +32,10 @@
"import_file_path": null,
"import_json": null
},
"dvhubonline": {
"base_url": "https://dvhub.online",
"zone": "DE-LU"
},
"energycharts": {
"bidding_zone": "DE-LU"
}
@@ -55,11 +60,16 @@
"import_file_path": null,
"import_json": null
},
"dvhubonline": {
"base_url": "https://dvhub.online",
"zone": "DE-LU"
},
"energycharts": {
"bidding_zone": "DE-LU"
},
"providers": [
"FeedInTariffAkkudoktor",
"FeedInTariffDvhubOnline",
"FeedInTariffEnergyCharts",
"FeedInTariffFixed",
"FeedInTariffImport",
@@ -158,3 +168,34 @@
}
```
<!-- pyml enable line-length -->
### Common settings for the dvhub.online feed-in tariff provider
<!-- pyml disable line-length -->
:::{table} feedintariff::dvhubonline
:widths: 10 10 5 5 30
:align: left
| Name | Type | Read-Only | Default | Description |
| ---- | ---- | --------- | ------- | ----------- |
| base_url | `str` | `rw` | `https://dvhub.online` | Base URL of the dvhub.online price API. |
| zone | `str` | `rw` | `DE-LU` | Bidding zone passed to the dvhub.online price API. |
:::
<!-- pyml enable line-length -->
<!-- pyml disable no-emphasis-as-heading -->
**Example Input/Output**
<!-- pyml enable no-emphasis-as-heading -->
<!-- pyml disable line-length -->
```json
{
"feedintariff": {
"dvhubonline": {
"base_url": "https://dvhub.online",
"zone": "DE-LU"
}
}
}
```
<!-- pyml enable line-length -->