What's Changed
🤖 AI chat agent
PredBat now has a built in chat agent which can both read your plan/settings and make changes to them (if you approve them)!
Right now I'm only supporting either Openrouter or OpenLlama, but both some some free models online for you to play with. The quality of the output does depend on the model so don't expect ChatGPT 20b to do a good job, if you want spot on results you will need to add some credit.
- feat(chat): AI chat agent in the Predbat web UI by @springfall2008 in #4794
- fix(chat): free-model filter on local endpoints, and Stop during a streaming turn by @springfall2008 in #4834
apps.yaml editor & config safety
- Allow adding and deleting apps.yaml list entries and settings from the apps editor by @springfall2008 in #4741
- Warn when apps.yaml has unmasked credentials by @springfall2008 in #4793
- Warn when inverter_type is not set and Predbat assumes GivEnergy by @chalfontchubby in #4823
GivEnergy / GE Cloud
- Don't ratchet the reserve register while the battery is charging by @chalfontchubby in #4754
- fix: GE Cloud Data missing-config warning fires for everyone, not just GivEnergy users by @springfall2008 in #4813
- Clamp reserve target to device-published register bounds (GE Cloud) by @springfall2008 in #4828
Octopus tariffs
The 6-hour charge cap has now been modelled, if you are on a newer tariff then anything above 6 hours will show as peak rate. You can manually override this in apps.yaml.
- Drop dead 'all_rates' Octopus rates fallback by @chalfontchubby in #4827
- Default the 6-hour Octopus Intelligent slot cap for IOG-SMB tariffs by @springfall2008 in #4829
Car charging
- fix(fetch): refresh car_charging_slots on car_charging_now, not just planned by @chalfontchubby in #4796
- fix(web): draw the car from the Grid when the charger is outside the CT clamp by @springfall2008 in #4790
Web UI
- Dark mode follows OS/browser prefers-color-scheme when unset by @springfall2008 in #4803
- fix(debug): let Companion-app users get a debug snapshot without a browser by @chalfontchubby in #4743
Reporting & sensors
- Add carbon_yesterday and a running carbon_total sensor by @chalfontchubby in #4764
- feat(annual): export tariff comparison, and fix a weather-cache orientation collision by @springfall2008 in #4798
Other fixes
- Fix iBoost smart window rate averaging (GH#4817) by @springfall2008 in #4821
Code quality & tests
- fix(triage_daemon): anchor the force-push deny glob to its own token by @springfall2008 in #4792
- chore(lint): enable ruff F841 (unused local variable) by @chalfontchubby in #4812
- chore(lint): enable ruff E712 (comparison to True/False) by @chalfontchubby in #4816
- fix: use headless matplotlib backend in tests unless --plot is passed by @springfall2008 in #4815
Docs
- docs: update Hanchu iESS bridge script to use Predbat planned charge/discharge times by @upton68 in #4814
Full Changelog: v8.53.5...v8.54.0