Files
EOS/docs/_generated/configfeedintariff.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

8.4 KiB

Feed In Tariff Prediction Configuration

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

Name Environment Variable Type Read-Only Default Description
direct_marketing_enabled EOS_FEEDINTARIFF__DIRECT_MARKETING_ENABLED bool rw False Enable export-aware GENETIC optimization. Sale revenues remain those of the configured feed-in provider or explicit forecast; purchase prices never replace them.
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.
provider EOS_FEEDINTARIFF__PROVIDER Optional[str] rw None Feed in tariff provider id of provider to be used.
providers list[str] ro N/A Available feed in tariff provider ids.
smard EOS_FEEDINTARIFF__SMARD FeedInTariffSMARDCommonSettings rw required SMARD feed in tariff provider settings.
:::

Example Input

   {
       "feedintariff": {
           "direct_marketing_enabled": false,
           "provider": "FeedInTariffFixed",
           "feedintarifffixed": {
               "feed_in_tariff_amt_kwh": {
                   "windows": []
               }
           },
           "feedintariffimport": {
               "import_file_path": null,
               "import_json": null
           },
           "dvhubonline": {
               "base_url": "https://dvhub.online",
               "zone": "DE-LU"
           },
           "energycharts": {
               "bidding_zone": "DE-LU"
           },
           "smard": {}
       }
   }

Example Output

   {
       "feedintariff": {
           "direct_marketing_enabled": false,
           "provider": "FeedInTariffFixed",
           "feedintarifffixed": {
               "feed_in_tariff_amt_kwh": {
                   "windows": []
               }
           },
           "feedintariffimport": {
               "import_file_path": null,
               "import_json": null
           },
           "dvhubonline": {
               "base_url": "https://dvhub.online",
               "zone": "DE-LU"
           },
           "energycharts": {
               "bidding_zone": "DE-LU"
           },
           "smard": {},
           "providers": [
               "FeedInTariffAkkudoktor",
               "FeedInTariffDvhubOnline",
               "FeedInTariffEnergyCharts",
               "FeedInTariffFixed",
               "FeedInTariffImport",
               "FeedInTariffSMARD",
               "FeedInTariffTibber"
           ]
       }
   }

Settings for SMARD feed-in prices shared with elecprice.smard

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

Name Type Read-Only Default Description
:::

Example Input/Output

   {
       "feedintariff": {
           "smard": {}
       }
   }

Common settings for feed in tariff data import from file or JSON string

:::{table} feedintariff::feedintariffimport :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 feed in tariff data from.
import_json Optional[str] rw None JSON string, dictionary of feed in tariff forecast value lists.
:::

Example Input/Output

   {
       "feedintariff": {
           "feedintariffimport": {
               "import_file_path": null,
               "import_json": "{\"fead_in_tariff_wh\": [0.000078, 0.000078, 0.000023]}"
           }
       }
   }

Common settings for elecprice fixed price

:::{table} feedintariff::feedintarifffixed :widths: 10 10 5 5 30 :align: left

Name Type Read-Only Default Description
feed_in_tariff_amt_kwh ValueTimeWindowSequence rw required Sequence of time windows defining the electricity feed in tariff [amount/kWh]. If not provided, no fixed feed in tariff is applied.
:::

Example Input/Output

   {
       "feedintariff": {
           "feedintarifffixed": {
               "feed_in_tariff_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.028
                       },
                       {
                           "start_time": "08:00:00.000000",
                           "duration": "16 hours",
                           "end_time": null,
                           "day_of_week": null,
                           "date": null,
                           "month": null,
                           "locale": null,
                           "value": 0.034
                       }
                   ]
               }
           }
       }
   }

Common settings for Energy-Charts feed-in tariff provider

:::{table} feedintariff::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

   {
       "feedintariff": {
           "energycharts": {
               "bidding_zone": "DE-LU"
           }
       }
   }

Common settings for the dvhub.online feed-in tariff provider

:::{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.
:::

Example Input/Output

   {
       "feedintariff": {
           "dvhubonline": {
               "base_url": "https://dvhub.online",
               "zone": "DE-LU"
           }
       }
   }