github ffunes/Omnibattery v1.5.0b4

latest releases: v1.6.1b1, v1.6.0, v1.6.0b1...
pre-releaseone month ago

[1.5.0b4] - 2026-09-25

Added

  • High-price sale select (#270, #237): Off / Surplus only / Surplus + arbitrage. Surplus only sells energy not needed before sunrise that tomorrow's solar refills (needs an Energy-dashboard solar forecast, e.g. Solcast). Replaces the b3 high_price_discharge switch; arbitrage-only setups migrate to Surplus + arbitrage.
  • Lock button on the Control tab: a padlock next to "Arrange" freezes every slider, switch, button and select, so scrolling on a phone can't change a setting by accident. Remembered per browser.

Fixed

  • High price discharge uses the price of demand actually bought back, not the earlier peak the battery would cover anyway.
  • High price discharge now plans overnight instead of reporting "no data" until tomorrow's prices are published: between midnight and sunrise it protected the house until the following day's sunrise, which needs prices not published until ~13:00. It now protects until this morning's sunrise.
  • A Marstek block read the battery refuses no longer drops its registers silently (#501): when the battery answers a block read with an exception — the span covers an address its firmware does not implement — those registers are now read one at a time and the span is never grouped again. A timeout still skips the span, on purpose: N doomed requests per cycle is what grouping (#361) exists to avoid. Both cases now name the affected entities in the log. Thanks to @sphings79.
  • A battery already below the guaranteed minimum SOC now charges instead of reporting "no energy quota": the floor deadline only measured the drain still to come, so a battery held by peak shaving or a no-discharge window asked for nothing, and its deficit was deferred to tomorrow's depletion — past the point the sun fills the pack, which no configured window can reach. The existing gap to the floor is now a requirement of its own, due at sunrise, and the band is checked per battery as the reactive trigger does, not against the fleet total. Thanks to @ssorgatem.
  • Charge delay now leaves enough time for the slowest battery in a mixed fleet (#498): it divided the whole fleet's missing energy by its combined charge power, as if energy could be shared between inverters, so a 17.92 kWh battery limited to 2.5 kW alongside a 13.8 kWh battery at 7 kW was estimated at 3.9 hours even though the slower battery needed 8.4 hours. The delay therefore released four and a half hours late and the slow battery ran out of daylight before it was full. The window now follows the battery with the longest individual charge time, while still respecting the system-wide power limit when that is tighter. Single-battery estimates are unchanged. Thanks to @sphings79.
  • Charge Delay is evaluated once per control cycle instead of twice (#511). Thanks to @syphernl.
  • Sessy and Hoymiles battery pages now show the configured capacity instead of a dash.
  • Charge Delay no longer loads the CPU while the consumption profile is still learning (#511). Thanks to @syphernl.

Don't miss a new Omnibattery release

NewReleases is sending notifications on new releases.