Describe the bug
SlotWrapper splits 30-minute forecast slots into 15-minute sub-slots.
For solar tariffs, it interpolates between the current and next slot
value (tariff/slots.go lines 46-52). Price tariffs use constant values.
Solcast and similar sources provide average power per period. A 30-min
slot with 10000W means 5000 Wh. Both 15-min sub-slots should keep
10000W to preserve this.
The interpolation shifts energy from afternoon into morning and has no
benefit: the sub-slot resolution is artificial, the source data has no
information at 15-min granularity.
Removing the switch block (6 lines) fixes the issue and simplifies the
code. Solar sub-slots would use constant values like price tariffs
already do.
Steps to reproduce
-
Configure a solar tariff with a source that provides 30-minute slots
(e.g. Solcast via Home Assistant)
-
Run: evcc tariff solar
-
Observe that 15-min sub-slot pairs have different values:
2026-07-23 17:00:00 2026-07-23 17:15:00 12508.900
2026-07-23 17:15:00 2026-07-23 17:30:00 12464.650
-
The source data has one value for the full 30 minutes.
Both sub-slots should show the same value (12508.900).
-
Sum all slot values × 15min and compare with the raw forecast sum.
They differ because the interpolation shifts energy between slots.
Expected behavior:
Both 15-min sub-slots of a 30-min source slot should have the same
value, preserving total energy per slot. This is how price tariffs
already work.
Configuration details
$ kubectl -n evcc exec deploy/evcc -- evcc dump --cfg
[main ] INFO 2026/07/23 21:37:53 using config file: /etc/evcc.yaml
[main ] INFO 2026/07/23 21:37:53 using sqlite database: /root/.evcc/evcc.db?_pragma=busy_timeout(5000)&_pragma=foreign_keys(1)&_pragma=auto_vacuum(INCREMENTAL)
[eebus ] INFO 2026/07/23 21:38:03 Local SKI: d5169309c37270892efc2fff7809d63f62cb8414
[ha-meter] WARN 2026/07/23 21:38:03 using deprecated 'home' parameter 'HomeAssistant', please use 'uri' instead
[ha-meter] WARN 2026/07/23 21:38:03 using deprecated 'home' parameter 'HomeAssistant', please use 'uri' instead
[ha-meter] WARN 2026/07/23 21:38:03 using deprecated 'home' parameter 'HomeAssistant', please use 'uri' instead
[main ] INFO 2026/07/23 21:38:05 circuit victron has no meter and no loadpoint assigned
Version: `0.311.1`
Log details
From To Yield (W)
2026-07-23 17:00:00 2026-07-23 17:15:00 12508.900
2026-07-23 17:15:00 2026-07-23 17:30:00 12464.650
2026-07-23 17:30:00 2026-07-23 17:45:00 10762.500
2026-07-23 17:45:00 2026-07-23 18:00:00 10718.250
Each pair originates from a single 30-min Solcast slot but shows
different values due to interpolation. The second sub-slot is always
shifted towards the next slot's value.
What type of operating system or environment does evcc run on?
Linux
External automation
Nightly build
Version
evcc version 0.311.1
Describe the bug
SlotWrapper splits 30-minute forecast slots into 15-minute sub-slots.
For solar tariffs, it interpolates between the current and next slot
value (tariff/slots.go lines 46-52). Price tariffs use constant values.
Solcast and similar sources provide average power per period. A 30-min
slot with 10000W means 5000 Wh. Both 15-min sub-slots should keep
10000W to preserve this.
The interpolation shifts energy from afternoon into morning and has no
benefit: the sub-slot resolution is artificial, the source data has no
information at 15-min granularity.
Removing the switch block (6 lines) fixes the issue and simplifies the
code. Solar sub-slots would use constant values like price tariffs
already do.
Steps to reproduce
Configure a solar tariff with a source that provides 30-minute slots
(e.g. Solcast via Home Assistant)
Run: evcc tariff solar
Observe that 15-min sub-slot pairs have different values:
2026-07-23 17:00:00 2026-07-23 17:15:00 12508.900
2026-07-23 17:15:00 2026-07-23 17:30:00 12464.650
The source data has one value for the full 30 minutes.
Both sub-slots should show the same value (12508.900).
Sum all slot values × 15min and compare with the raw forecast sum.
They differ because the interpolation shifts energy between slots.
Expected behavior:
Both 15-min sub-slots of a 30-min source slot should have the same
value, preserving total energy per slot. This is how price tariffs
already work.
Configuration details
Log details
What type of operating system or environment does evcc run on?
Linux
External automation
Nightly build
Version
evcc version 0.311.1