12.0.0 (2025-02-02)
Welcome to v12 of Go Hass Agent 🎉
The Good News
This major release contains numerous fixes for issues and regressions that have appeared or crept back in recent releases. In terms of new features:
- 🎛️ All sensor/control groups now have preferences that can be used to configure some aspects of how they run, such as polling intervals where appropriate or disabling them completely if desired.
- 🚫 A new MQTT control for toggling an "inhibit lock" which will stop the device running Go Hass Agent from shutting down or suspending while the lock is enabled.
- 🗃️ You can use the
--path=/some/path/for/preferences
command-line option to tell Go Hass Agent where to write its preferences, sensor registry and log files. This may be particularly useful for container users. If the option is not specified, the default remains the same (~/.config/go-hass-agent
).
The Bad News
This is a major release as the preferences have been restructured again. All user-configurable preferences for sensors/controls have two top-level groups in the preferences file:
[sensors]
: for sensors (i.e., entities in Home Assistant that have a value).[controls]
: for controls (i.e., buttons, sliders, toggles etc.).
There are further logical groupings underneath those.
If you have changed any preferences from the defaults, please consult the BREAKING CHANGES doc for details on manual steps required to re-enable your changes.
With this restructuring, I hope to avoid any further preferences swapsie-aroundsies for a long while 🙏
Features
- ✨ add
--path
command-line option for specifying a path for preferences/logs/data (85b13b3) - agent/sensor: ✨ add preference to disable connection latency sensor (dc31bed)
- agent/sensor: ✨ add preference to disable version sensor (dabe732)
- components/preferences: restructure sensor/control preferences (5376ce1)
- linux/battery: ✨ add preference to disable battery sensors (039791e)
- linux/battery: ✨ break out voltage and energy battery attributes into their own sensors (5875192)
- linux/cpu: ✨ add preferences to disable cpu load avgs and vulnerabilities sensors (aa46a99)
- linux/desktop: ✨ add preference to disable desktop sensors (cba5a50)
- linux/disk: ✨ add preferences to disable disk io/usage sensors and set intervals for sensor updates (96be29b)
- linux/location: ✨ add preference to disable location tracking (ef6a113)
- linux/media: ✨ add preferences to disable mpris, audio sensors and controls (8eedf6d)
- linux/mem: ✨ add preferences for disabling and setting update interval of mem usage sensors and disabling oom events tracking (83e1efc)
- linux/net: ✨ add preference to set the interval for network device rates sensor updates (97c104f)
- linux/power: ✨ add an MQTT powered control to set a sleep/shutdown inhibit lock (7c63100)
- linux/power: ✨ add preferences for disabling the various power-based sensors individuallly (6ca6fe1)
- linux/system: ✨ add preferences for disabling/setting poll intervals (where appropriate) for all system sensor and event workers (cca049b)
Bug Fixes
- 🔥 remove spew (27fed4a)
- components/preferences: 🐛 additional logic fixes (a7b138e)
- components/preferences: 🐛 parse existing worker preferences correctly (39186d2)
- dbusx: 🐛 better user session finder (dbb5e06)
- hass: 🐛 ensure registration server and token are set in preferences (7b9c2fa)
- hass/api: 🐛 remove regression where websocket url retained any port element (spoiler: it shouldn't) (4d3a4bc)
- hass/discovery: 🐛 remove regression where the default server was not listed on discovery of servers during graphical registration (c5639d0)
- linux: 🐛 ensure polling sensors use poll interval from preferences, default otherwise (79092be)
- linux/cpu: 🐛 actually add units for 114a35f (068828b)
- linux/cpu: 🐛 add units to cpu usage count sensors (114a35f)
- linux/desktop,linux/battery: 🔥 remove debugging output (530e8c2)
- linux/location: 🐛 correct type conversion (e0ade99)
- linux/mem: 🐛 fix linter warnings in 83e1efc (3acd7f6)
- linux/power: 🚨 fix linter warning (e38c259)
- pkg/whichdistro: 🐛 ignore lines that are not key=value pairs (ef90391)
- preferences: 🐛 ensure version is written to
preferences.toml
when it is saved (7b720b4) - scripts: 🐛 actually warn about script parsing errors (101b2a8)
- scripts: 🐛 remove regression whereby script sensors were not sending their sensor states initially at agent start-up (cbb0344)
- ui: 🐛 store/fetch mqtt preferences from context (a20f509)
Performance Improvements
- agent: ⚡ load up the worker context once and pass to all worker processes (7dd5c57)