github ffunes/Omnibattery v1.3.0b1

latest releases: v1.6.0b1, v1.5.1b1, v1.5.0...
pre-release3 months ago

[1.3.0b1] - 2026-08-03

Added

  • Optional three-phase power protection: configure L1/L2/L3 grid sensors, positive symmetric per-phase limits and each battery's physical phase. Automatic PD, direct tracking, predictive charging, time-slot PD and rebalances now share a conservative 5 W-rounded safety envelope that preserves the normal initial selection and moves only phase-capped overflow to healthy phases with spare capacity; invalid or stale phase telemetry holds only that phase at 0 W, and healthy phases continue. Grid 0 remains the global consumption sensor. Manual register/time-slot commands can bypass the envelope and are surfaced through Repairs; leave margin for latency, external loads, voltage, power factor and transient peaks.
  • Negative-price opportunistic charging for Dynamic Pricing: a new opt-in import-price calendar charges each battery toward its configured maximum SOC when the predictive balance has no deficit and the normalized import price is negative. Hourly and 15-minute prices select the most-negative intervals first; typed deficit, negative_price, and combined slots keep normal deficit targets isolated from opportunity-only energy. Runtime switch, diagnostics, panel controls, translations, and English/Spanish documentation are included. Smart Pre-discharge retains solar headroom priority, and all existing charge limits, ownership and safety blockers remain authoritative.
  • Smart Pre-discharge / Anti-curtailment for Dynamic Pricing: an opt-in planner detects forecast PV surplus during configurable negative-injection price windows, creates headroom using the existing PD controller, blocks discharge while the protected window is active, and exposes live controls and diagnostics. Existing installations remain disabled by default.

Changed

  • Configuration Summary sensor removed: the hidden support entity was redundant with Home Assistant's Download diagnostics action. Support documentation now requests the redacted diagnostics JSON.
  • Configured sensor IDs retained in diagnostics: downloaded diagnostics now include the grid, solar-forecast, average-price and three-phase power sensor entity IDs to make support issues easier to diagnose, while connection hosts, IPs, credentials, serial ports and MACs remain redacted.
  • Peak shaving limit extended to 20 kW: the runtime slider now accepts values from 500 W to 20000 W in 100 W steps.

Fixed

  • Disabled excluded-device controls could corrupt the power-flow diagram: excluded-load configuration now travels in the panel payload, while a loaded runtime switch can still override its enabled state. Hiding or disabling the control entity no longer removes its power from the diagram.
  • Sessy could be marked non-responsive during startup: Sessy can take up to 60 seconds to transition from standby to safe running after its first API setpoint. The driver now allows 65 seconds, adding a small polling and network-latency margin so a healthy battery is not excluded while it is starting.
  • Slow-sensor Repairs could report a fast P1 meter as updating every 65 seconds: cadence is now measured from Home Assistant state publications, including unchanged reports, instead of from delayed control-loop observations while battery I/O is busy.
  • Solar production sensor unit errors were misleading: invalid external production sensors are now flagged on the Solar production sensor field with W/kW guidance, instead of displaying the solar forecast sensor's kWh/Wh message.
  • Dynamic Pricing reevaluation could crash without a solar forecast sensor (#224): the grid-charging check now skips the Home Assistant state lookup when solar_forecast_sensor is unset, so installations without solar panels can reevaluate Dynamic Pricing without returning an error. Added regression coverage for the unset-sensor path. Thanks to @brunosccosta.

Don't miss a new Omnibattery release

NewReleases is sending notifications on new releases.