The `FeedInTariffTibber` provider requests `priceInfo` and `priceInfoRange` with `resolution: QUARTER_HOURLY` and preserves the native 15-minute timestamps. It uses Tibber's `energy` spot-price component without the `tax` part or EOS electricity-price charges. The end-customer `total` component is deliberately ignored. The provider deliberately rejects hourly API responses instead of silently repeating them. It reuses `elecprice.tibber.access_token` and `elecprice.tibber.home_id`, so no duplicate credentials are needed. Signed-off-by: Andreas Schmitz <akkudoktor.net> Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
11 KiB
Electricity Price Prediction Configuration
:::{table} elecprice :widths: 10 20 10 5 5 30 :align: left
| Name | Environment Variable | Type | Read-Only | Default | Description |
|---|---|---|---|---|---|
| charges_kwh | EOS_ELECPRICE__CHARGES_KWH |
`float | None` | rw |
None |
| elecpricefixed | EOS_ELECPRICE__ELECPRICEFIXED |
ElecPriceFixedCommonSettings |
rw |
required |
Fixed electricity price provider settings. |
| elecpriceimport | EOS_ELECPRICE__ELECPRICEIMPORT |
ElecPriceImportCommonSettings |
rw |
required |
Electricity price import provider settings. |
| energycharts | EOS_ELECPRICE__ENERGYCHARTS |
ElecPriceEnergyChartsCommonSettings |
rw |
required |
Energy Charts provider settings. |
| provider | EOS_ELECPRICE__PROVIDER |
`str | None` | rw |
None |
| providers | list[str] |
ro |
N/A |
Available electricity price provider ids. | |
| tibber | EOS_ELECPRICE__TIBBER |
ElecPriceTibberCommonSettings |
rw |
required |
Tibber electricity price provider settings. |
| vat_rate | EOS_ELECPRICE__VAT_RATE |
`float | None` | rw |
1.19 |
| ::: |
Example Input
{
"elecprice": {
"provider": "ElecPriceAkkudoktor",
"charges_kwh": 0.21,
"vat_rate": 1.19,
"elecpricefixed": {
"time_windows": {
"windows": []
}
},
"elecpriceimport": {
"import_file_path": null,
"import_json": null
},
"energycharts": {
"bidding_zone": "DE-LU"
},
"tibber": {
"access_token": null,
"home_id": null
}
}
}
Example Output
{
"elecprice": {
"provider": "ElecPriceAkkudoktor",
"charges_kwh": 0.21,
"vat_rate": 1.19,
"elecpricefixed": {
"time_windows": {
"windows": []
}
},
"elecpriceimport": {
"import_file_path": null,
"import_json": null
},
"energycharts": {
"bidding_zone": "DE-LU"
},
"tibber": {
"access_token": null,
"home_id": null
},
"providers": [
"ElecPriceAkkudoktor",
"ElecPriceEnergyCharts",
"ElecPriceFixed",
"ElecPriceImport",
"ElecPriceTibber"
]
}
}
Common settings for the Tibber electricity price provider
:::{table} elecprice::tibber :widths: 10 10 5 5 30 :align: left
| Name | Type | Read-Only | Default | Description |
|---|---|---|---|---|
| access_token | `str | None` | rw |
None |
| home_id | `str | None` | rw |
None |
| ::: |
Example Input/Output
{
"elecprice": {
"tibber": {
"access_token": "tibber_pat_...",
"home_id": "00000000-0000-0000-0000-000000000000"
}
}
}
Common settings for Energy Charts electricity price provider
:::{table} elecprice::energycharts :widths: 10 10 5 5 30 :align: left
| Name | Type | Read-Only | Default | Description |
|---|---|---|---|---|
| bidding_zone | <enum 'EnergyChartsBiddingZones'> |
rw |
DE-LU |
Bidding Zone: 'AT', 'BE', 'CH', 'CZ', 'DE-LU', 'DE-AT-LU', 'DK1', 'DK2', 'FR', 'HU', 'IT-NORTH', 'NL', 'NO2', 'PL', 'SE4' or 'SI' |
| ::: |
Example Input/Output
{
"elecprice": {
"energycharts": {
"bidding_zone": "AT"
}
}
}
Common settings for elecprice data import from file or JSON String
:::{table} elecprice::elecpriceimport :widths: 10 10 5 5 30 :align: left
| Name | Type | Read-Only | Default | Description |
|---|---|---|---|---|
| import_file_path | `str | pathlib.Path | None` | rw |
| import_json | `str | None` | rw |
None |
| ::: |
Example Input/Output
{
"elecprice": {
"elecpriceimport": {
"import_file_path": null,
"import_json": "{\"elecprice_marketprice_wh\": [0.0003384, 0.0003318, 0.0003284]}"
}
}
}
Value applicable during a specific time window
This model extends TimeWindow by associating a value with the defined time interval.
:::{table} elecprice::elecpricefixed::time_windows::windows::list :widths: 10 10 5 5 30 :align: left
| Name | Type | Read-Only | Default | Description |
|---|---|---|---|---|
| date | `pydantic_extra_types.pendulum_dt.Date | None` | rw |
None |
| day_of_week | `int | str | None` | rw |
| duration | Duration |
rw |
required |
Duration of the time window starting from start_time. |
| locale | `str | None` | rw |
None |
| start_time | Time |
rw |
required |
Naive start time of the time window (time of day, no timezone). Interpreted in the timezone of the datetime passed to contains() or earliest_start_time(). |
| value | `float | None` | rw |
None |
| ::: |
Example Input/Output
{
"elecprice": {
"elecpricefixed": {
"time_windows": {
"windows": [
{
"start_time": "00:00:00.000000",
"duration": "2 hours",
"day_of_week": null,
"date": null,
"locale": null,
"value": 0.288
}
]
}
}
}
}
Sequence of value time windows
This model specializes TimeWindowSequence to ensure that all
contained windows are instances of ValueTimeWindow.
It provides the full set of sequence operations (containment checks,
availability, start time calculations) for value windows.
:::{table} elecprice::elecpricefixed::time_windows :widths: 10 10 5 5 30 :align: left
| Name | Type | Read-Only | Default | Description |
|---|---|---|---|---|
| windows | list[akkudoktoreos.config.configabc.ValueTimeWindow] |
rw |
required |
Ordered list of value time windows. Each window defines a time interval and an associated value. |
| ::: |
Example Input/Output
{
"elecprice": {
"elecpricefixed": {
"time_windows": {
"windows": []
}
}
}
}
Common configuration settings for fixed electricity pricing
This model defines a fixed electricity price schedule using a sequence of time windows. Each window specifies a time interval and the electricity price applicable during that interval.
:::{table} elecprice::elecpricefixed :widths: 10 10 5 5 30 :align: left
| Name | Type | Read-Only | Default | Description |
|---|---|---|---|---|
| time_windows | ValueTimeWindowSequence |
rw |
required |
Sequence of time windows defining the fixed price schedule. If not provided, no fixed pricing is applied. |
| ::: |
Example Input/Output
{
"elecprice": {
"elecpricefixed": {
"time_windows": {
"windows": [
{
"start_time": "00:00:00.000000",
"duration": "8 hours",
"day_of_week": null,
"date": null,
"locale": null,
"value": 0.288
},
{
"start_time": "08:00:00.000000",
"duration": "16 hours",
"day_of_week": null,
"date": null,
"locale": null,
"value": 0.34
}
]
}
}
}
}