Skip to content

Commit c62b96d

Browse files
MaStrclaude
andcommitted
docs: update development changelog and config for energyforecast API v2 and Fronius capacity
- Add changelog entries for energyforecast API v2 migration (#371/#365): energyforecast_total_price provider type, market_zone parameter, energyforecast_96 removed from add-on - Add changelog entry for Fronius GEN24 optional fixed battery capacity - config.yaml: add energyforecast_total_price to utility type list, add market_zone optional schema field, remove energyforecast_96, update capacity schema comment to reflect fronius_gen24 support Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 73fa6b6 commit c62b96d

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

batcontrol-development/CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@
44

55
### New Features
66

7+
- **Fronius GEN24: Optional Fixed Battery Capacity**: The `fronius_gen24` inverter type now
8+
accepts an optional `capacity` key (in Wh). When set, batcontrol uses this fixed value instead
9+
of querying `DesignedCapacity` from the inverter's Solar API at startup. Useful for setups where
10+
the API reports an incorrect capacity. Non-finite or non-numeric values are rejected at startup.
11+
12+
- **Energyforecast Total Price Provider** (#371): New `energyforecast_total_price` provider type
13+
uses the API-computed `total_ct_kwh` field directly, which already includes dynamic network fees,
14+
VAT, and markup as calculated by energyforecast.de. The `vat`, `fees`, and `markup` config fields
15+
are not required and `dynamic_network_fees` must not be enabled alongside this type (the API
16+
already includes network fees in its total).
17+
718
- **Solcast Rooftop API as Solar Forecast Provider**: Solcast (https://solcast.com) is now
819
supported as a solar forecast provider with native 30-minute resolution. The free hobbyist
920
account grants 10 API calls per day; batcontrol scales the refresh interval automatically
@@ -41,6 +52,14 @@
4152

4253
### Configuration Changes
4354

55+
- **Energyforecast migrated to API v2** (#371, closes #365): The energyforecast provider now uses
56+
the `/api/v2/forecast` endpoint. Data is always quarter-hourly (15-min native resolution),
57+
multi-day forecasts are returned natively, and a minimum 4-hour refresh interval is enforced.
58+
A new optional `market_zone` config key (default: `DE`) selects the price zone; `DE` and `LU`
59+
are both normalized to `DE-LU` for the API (supported zones: DE, LU, AT, FR, NL, BE, PL, DK1,
60+
DK2). The `energyforecast_96` provider type has been **removed** from the add-on — migrate to
61+
`energyforecast`, which now provides equivalent multi-day coverage via API v2.
62+
4463
- **Resilient Inverter Wrapper enabled by default** (#399): The `enable_resilient_wrapper`
4564
option now defaults to `true`. The resilient wrapper retries failed inverter commands and
4665
suppresses transient communication errors so batcontrol keeps running through short inverter

batcontrol-development/config.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ options:
6363
# outage_tolerance_minutes: 24 # Optional: Minutes to tolerate inverter outages before terminating (default: 24)
6464
# retry_backoff_seconds: 60 # Optional: Seconds to wait before retrying after failure (default: 60)
6565
utility:
66-
type: awattar_de #tibber, awattar_at, awattar_de, evcc, energyforecast, energyforecast_96, tariff_zones
67-
apikey: Zz-YOURAPIKEYYOURAPIKEYXXXXX # only required for tibber & energyforecast
66+
type: awattar_de #tibber, awattar_at, awattar_de, evcc, energyforecast, energyforecast_total_price, tariff_zones
67+
apikey: Zz-YOURAPIKEYYOURAPIKEYXXXXX # only required for tibber, energyforecast, energyforecast_total_price
68+
# market_zone: DE # optional for energyforecast/energyforecast_total_price: DE/LU (both -> DE-LU, default), AT, FR, NL, BE, PL, DK1, DK2
6869
url: http://evcc.local:7070/api/tariff/grid # only required for evcc
6970
vat: 0.19 # only required for awattar and energyforecast
7071
fees: 0.015 # only required for awattar and energyforecast
@@ -176,7 +177,7 @@ schema:
176177
address: str? # the local IP of your inverter. Required for fronius_gen24
177178
user: list(customer|technician)? # Required for fronius_gen24
178179
password: password?
179-
capacity: int(0,)? # (MQTT) Battery capacity in Wh, required for mqtt
180+
capacity: int(0,)? # Battery capacity in Wh: required for mqtt, optional for fronius_gen24 (overrides DesignedCapacity)
180181
min_soc: int(0,100)? # (MQTT) Minimum SoC %, optional for mqtt (default: 5)
181182
max_soc: int(0,100)? # (MQTT) Maximum SoC %, optional for mqtt (default: 100)
182183
cache_ttl: int(0,)? # (MQTT) Cache TTL for SOC values in seconds, optional for mqtt (default: 120)
@@ -193,8 +194,9 @@ schema:
193194
outage_tolerance_minutes: int(1,)? # Minutes to tolerate inverter outages before terminating (default: 24)
194195
retry_backoff_seconds: int(1,)? # Seconds to wait before retrying after failure (default: 60)
195196
utility:
196-
type: list(tibber|awattar_at|awattar_de|evcc|energyforecast|energyforecast_96|tariff_zones)
197-
apikey: password? # only required for tibber & energyforecast
197+
type: list(tibber|awattar_at|awattar_de|evcc|energyforecast|energyforecast_total_price|tariff_zones)
198+
apikey: password? # only required for tibber, energyforecast, energyforecast_total_price
199+
market_zone: str? # optional for energyforecast/energyforecast_total_price (default: DE; DE/LU -> DE-LU)
198200
url: str? # only required for evcc
199201
vat: float(0,10)? # only required for awattar and energyforecast
200202
fees: float(0,10)? # only required for awattar and energyforecast

0 commit comments

Comments
 (0)