Skip to content

Dynamic tariff provider

Matthias Strubel edited this page Mar 9, 2026 · 13 revisions

Currently following data providers are available:

  • tibber
  • awattar
  • Two-Tariff Providers (e.g. Octopus)
  • evcc
  • energyforecast.de

You can chose one and need to adjust the configuration.

tibber

You need to get an API Key from https://developer.tibber.com/ , which looks like Zz-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx. After obtaining this key, use the following configuration:

utility:
  type: tibber 
  apikey: YOUR-PASSWORD

awattar

batcontrol provides to different awattar types:

  • awattar_defor German aWATTar
  • awattar_at for Austrian aWATTar

Please chose the corresponding version. For aWATTar you can you this configuration:

utility:
  type: awattar_de
  vat: 0.19     # 19% VAT
  fees: 0.015   # Depends on you Netzendgeld
  markup: 0.03  # Depends on you aWATTar contract

The calculation is ( marketprice/1000*(1+markup) + fees ) * (1+vat)

Multi-Zone Tariff Providers (e.g. Octopus, Two-Tariff) (since 0.7.0)

If your energy provider offers distinct tariff zones (e.g. day/night rates, peak/off-peak), you can configure batcontrol to optimize battery usage accordingly. The tariff_zones provider supports up to 3 different price zones.

Two-Zone Example (Day/Night Rates)

In this example your tariff is 0.1734 Euro / kWh between 0:00 and 5:00 (night), and 0.2733 Euro / kWh between 5:00 and 00:00 (day).

Tariff Time Range Price (Euro / kWh)
Night 00:00 - 05:00 0.1734
Day 05:00 - 23:59 0.2733
utility:
  type: tariff_zones
  tariff_zone_1: 0.2733 # Euro/kWh incl. VAT & fees (day rate)
  zone_1_hours: 5-23 # Day: hours 5 through 23 
  tariff_zone_2: 0.1734 # Euro/kWh incl. VAT & fees (night rate)
  zone_2_hours: 0-4 # Night: hours 0 through 4

Three-Zone Example (Peak/Off-Peak/Super-Peak)

For tariffs with three distinct price levels:

utility:
  type: tariff_zones
  tariff_zone_1: 0.2733 # Euro/kWh (standard day rate)
  zone_1_hours: 6-16,21-23 # Standard hours
  tariff_zone_2: 0.1734 # Euro/kWh (off-peak night rate)
  zone_2_hours: 0-5 # Night hours
  tariff_zone_3: 0.3500 # Euro/kWh (peak rate)
  zone_3_hours: 17-20 # Peak evening hours

Hour Format Options

The zone_N_hours parameter supports flexible formats:

  • Range: 7-22 (hours 7 through 22 inclusive)
  • Comma-separated: 0,1,2,3,4,5
  • Mixed: 0-5,6,7 or 0-5,23
  • Single values: 12

Important: All 24 hours (0-23) must be assigned to exactly one zone. No hour can appear in multiple zones, and no hour can be missing.

Charging Behavior Options

The charge rate is not evenly distributed across the low price hours automatically.

Option 1: Even Distribution (Slow Charging)

If you prefer a more even distribution and slow charging during the low price hours, configure these parameters. Calculate the charge rate by dividing your battery capacity by the hours.

Example: your battery has 10 kWh usable capacity, and your low-price tariff has 5 hours. 10000 Wh / 5 h = 2000 W.

battery_control_expert:
  soften_price_difference_on_charging: True
inverter:
  max_grid_charge_rate: 2000

Option 2: Late Charging Start (Optimize Efficiency)

If you prefer a late charging start (optimize efficiency, have battery only short time at high SOC):

battery_control_expert:
  soften_price_difference_on_charging: False
inverter:
  max_grid_charge_rate: 10000

evcc

If you are running evcc, it can be used to fetch the price information from this endpoint. The configuration for this is

utility:
  type: evcc
  url: http://evcc.local:7070/api/tariff/grid

You may need to adjust hostname + port for your setup. If evcc is running under HomeAssistant, you should you either http://homeassistant:7070/api/tariff/grid or http://<homeassistant-ip>:7070/api/tariff/grid

energyforecast.de (0.5.6)

energyforecast.de provides a calculated forecast for upcoming prices. Dayahead prices are populated at 14:00 GMT+2, which is after the lunch-drop in prices and prevents a good energy calculation. Based on different values, energyforecast.de calculates a price expectation with a median of 3 cent of. batcontrol uses the 48h forecast only and it is not possible to activate the 96 hour forecast. You need to setup VAT, markup (+ % on energy price) and fees (Netzentgeld) in the configuration. We are not using the calculation provided by energyforecast.de. If you like to use this forecast type, please create a login at energyforecast.de to aquire an API key.

utility:
  type: energyforecast
  apikey:  xxxxxxxxx
  vat: 0.19     # 19% VAT
  fees: 0.15    # Depends on you Netzendgeld
  markup: 0.00  # Depends on you aWATTar contract

To enable the paid 96h forecast, use type: energyforecast_96

Clone this wiki locally