The Edge Platform
Why a tariff forecast is a value on a platform and not a feature inside an app.
Everything on the controller runs on one local platform. Apps do not talk to each other directly; they publish values onto it and read the values other apps have published.
That is the whole reason a second app can change what the first one is able to do. A tariff forecast is not locked inside a tariff feature — it is a value that the heat-pump strategy and the charging strategy both read. Add a forecast, and two strategies get better without either of them being modified.
The loop
Measure → Predict → Control → Verify. Every quarter-hour the controller re-solves the next 48 hours from the values currently on the platform, commits only the next quarter-hour to the devices, and treats everything past it as a proposal the next solve is free to revise.
Only the first step is irreversible. That is what makes a forecast being wrong survivable.
Local first
The solve happens on the device. Prices, weather and remote access come from outside when they are available, but no decision waits on them.