Files
EOS/docs/_generated/configelecprice.md
T
Bobby Noelte c02d250639 feat: Add month and end_time to time window configuration
Extend TimeWindow with two new optional fields:

- month (1–12): restricts the window to a start date in the given
  calendar month. Useful for seasonal schedules.

- end_time: explicit exclusive end-of-window clock time. The effective
  end is the later of end_time and start_time + duration. Primary
  motivation is DST handling — a wall-clock end_time stays correct
  across DST transitions, whereas a fixed duration does not.

Rework window semantics so date, weekday, and month restrictions apply
to the window's start date, not to every timestamp covered by the
window. This makes overnight windows (e.g. Friday 22:00 → Saturday
06:00) behave intuitively under calendar constraints; contains() now
checks both today's and yesterday's candidate start.

duration becomes optional (default 0). All start/end/duration
computations route through _window_start_end and a new
_matches_start_date helper, so contains, earliest_start_time,
latest_start_time, and available_duration stay consistent.

Dashboard: add end_time and month inputs to the time-window editor,
render the collapsed window summary as icons + pills.

Docs, OpenAPI spec, and generated config docs are regenerated for the
new fields. Tests cover month filtering, end_time boundary cases (incl.
midnight and overnight), and start-date semantics for overnight windows.

Bump version to support automatic updates in Home Assistant.

Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2026-10-28 18:59:43 +01:00

9.2 KiB

Electricity Price Prediction Configuration

:::{table} elecprice :widths: 10 20 10 5 5 30 :align: left

Name Environment Variable Type Read-Only Default Description
akkudoktor EOS_ELECPRICE__AKKUDOKTOR ElecPriceAkkudoktorCommonSettings rw required Akkudoktor electricity price provider settings.
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 Optional[str] rw None Electricity price provider id of provider to be used.
providers list[str] ro N/A Available electricity price provider ids.
smard EOS_ELECPRICE__SMARD ElecPriceSMARDCommonSettings rw required SMARD electricity price provider settings.
tibber EOS_ELECPRICE__TIBBER ElecPriceTibberCommonSettings rw required Tibber electricity price provider settings.
:::

Example Input

   {
       "elecprice": {
           "provider": "ElecPriceAkkudoktor",
           "akkudoktor": {},
           "elecpricefixed": {
               "elecprice_marketprice_amt_kwh": {
                   "windows": []
               }
           },
           "elecpriceimport": {
               "import_file_path": null,
               "import_json": null
           },
           "energycharts": {
               "bidding_zone": "DE-LU"
           },
           "smard": {
               "filter_id": 4169,
               "region": "DE"
           },
           "tibber": {
               "access_token": null,
               "home_id": null
           }
       }
   }

Example Output

   {
       "elecprice": {
           "provider": "ElecPriceAkkudoktor",
           "akkudoktor": {},
           "elecpricefixed": {
               "elecprice_marketprice_amt_kwh": {
                   "windows": []
               }
           },
           "elecpriceimport": {
               "import_file_path": null,
               "import_json": null
           },
           "energycharts": {
               "bidding_zone": "DE-LU"
           },
           "smard": {
               "filter_id": 4169,
               "region": "DE"
           },
           "tibber": {
               "access_token": null,
               "home_id": null
           },
           "providers": [
               "ElecPriceAkkudoktor",
               "ElecPriceEnergyCharts",
               "ElecPriceFixed",
               "ElecPriceImport",
               "ElecPriceSMARD",
               "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 Optional[str] rw None Tibber API access token.
home_id Optional[str] rw None Optional Tibber home id. If omitted, the first home with a subscription is used.
:::

Example Input/Output

   {
       "elecprice": {
           "tibber": {
               "access_token": "tibber_pat_...",
               "home_id": "00000000-0000-0000-0000-000000000000"
           }
       }
   }

Common settings for the direct SMARD electricity-price provider

:::{table} elecprice::smard :widths: 10 10 5 5 30 :align: left

Name Type Read-Only Default Description
filter_id int rw 4169 SMARD filter id for the German/Luxembourg day-ahead price.
region str rw DE SMARD market region used in the chart-data endpoint.
:::

Example Input/Output

   {
       "elecprice": {
           "smard": {
               "filter_id": 4169,
               "region": "DE"
           }
       }
   }

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 Union[str, pathlib.Path, NoneType] rw None Path to the file to import elecprice data from.
import_json Optional[str] rw None JSON string, dictionary of electricity price forecast value lists.
:::

Example Input/Output

   {
       "elecprice": {
           "elecpriceimport": {
               "import_file_path": null,
               "import_json": "{\"elecprice_marketprice_wh\": [0.0003384, 0.0003318, 0.0003284]}"
           }
       }
   }

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
elecprice_marketprice_amt_kwh 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": {
               "elecprice_marketprice_amt_kwh": {
                   "windows": [
                       {
                           "start_time": "00:00:00.000000",
                           "duration": "8 hours",
                           "end_time": null,
                           "day_of_week": null,
                           "date": null,
                           "month": null,
                           "locale": null,
                           "value": 0.288
                       },
                       {
                           "start_time": "08:00:00.000000",
                           "duration": "16 hours",
                           "end_time": null,
                           "day_of_week": null,
                           "date": null,
                           "month": null,
                           "locale": null,
                           "value": 0.34
                       }
                   ]
               }
           }
       }
   }

Common configuration settings for Akkodoktor electricity pricing

:::{table} elecprice::akkudoktor :widths: 10 10 5 5 30 :align: left

Name Type Read-Only Default Description
:::

Example Input/Output

   {
       "elecprice": {
           "akkudoktor": {}
       }
   }