This release is entirely community-contributed — thank you @psecker for two production-quality pull requests! 🎉
✨ New: Per-device raw-PV run gate (#15)
Optional per-device pv_power_threshold: run a device whenever actual PV generation is at/above the threshold (W) and the battery is at/above the device's SOC threshold — independent of the computed surplus and the daily budget.
The surplus/budget logic can reserve all solar for battery charging, so a pool pump might not start on a sunny morning. This gate expresses the simple intent "run whenever PV ≥ 1000 W and battery ≥ 25 %." Debounced on both edges; releases when PV falls a hysteresis band below the threshold or SOC drops. Available in the device options, as a live number.aurum_{slug}_pv_power_threshold entity, and as a "Solar power ≥ (W)" control on the dashboard. Set to 0 to disable (default).
🐛 Fixed: Manual override honored during battery-charging emergency (#14)
When the battery hit min_soc (charging mode), AURUM force-off every running device — ignoring the per-device manual-override switch, whose contract is "AURUM will not touch the device in any cycle." A real case: an anti-legionella water-heater boost held above its temperature threshold was aborted mid-cycle. The emergency loop now skips overridden devices, exactly as the normal control path does.
No breaking changes — both features are opt-in / behaviour-preserving. Update via HACS.
🤖 Generated with Claude Code