Releases: joshuar/go-hass-agent
v12.0.0
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)
v11.1.2
v11.1.1
v11.1.0
v11.0.0
11.0.0 (2024-12-31)
This release builds on recent work to offer preferences for controlling the fetching of some sensors/events. In particular, all preferences are now in the Go Hass Agent preferences file. If you previously had made changes to sensor preferences in their respective files, please see the BREAKING CHANGES document for manual steps you'll need to take to include your changes.
⚠ BREAKING CHANGES
- preferences: Worker preferences are now in the agent preferences file, under a
worker
section. Any existing custom preferences will need to be manually migrated to this file.
Features
- ✨ allow disabling app sensors (71a4969)
- hass,linux: ♻️ support flagging for retryable requests through sensor options (5d55cc6)
- hass,linux: ✨ use options pattern to create sensors (b614ec3)
- hass: ✨ add support to allow some requests to be retried (b103679)
- hass: ✨ use options pattern to create sensor requests (73f218b)
- linux/cpu,linux/system: ✨ add ability to specify update interval for cpu and hwmon sensor polling (7f8450e)
- linux/cpu: 🚚 split cpu usage and frequency workers (cc18b67)
- linux/power: ✨ power state and screen lock sensor requests will be retried on response failure (e4ca6e7)
- preferences: ✨ validate worker preferences when loading and use defaults if invalid (748b48f)
Bug Fixes
- 🐛 code cleanup missed in 7591c7a (f6dca52)
- agent: 🐛 fix registration flow from changes in 7591c7a (70176ce)
- hass: 🚨 fix linter issues (92b82d0)
- linux/battery: 🐛 don't add already tracked batteries (76b78e4)
- preferences: 🐛 ensure consistent naming of preferences through using string constants (1397c4a)
Performance Improvements
- agent: ⚡ don't use a "fat context" for agent options (1e9d3c9)
Code Refactoring
- preferences: ♻️ merge worker and agent preferences into single file (7591c7a)
v10.5.1
v10.5.0
10.5.0 (2024-11-19)
This release expands the work of the previous release to add more preferences for sensors. You can now optionally disable hwmon and per-cpu sensors.
Additionally, Go Hass Agent will now report Out Of Memory events, when your system is configured with systemd-oomd. An event will be triggered when the OOM occurs and will contain the name of the process killed and its PID.
Features
- linux/cpu: ✨ add preferences to optionally disable all cpu (and specifically, cpu frequency) sensors (ecc5cc6)
- linux/mem: ✨ send oom events to Home Assistant (c491e81)
- linux/system: ✨ add preferences to optionally disable hwmon sensors (7b65aab)
Bug Fixes
v10.4.0
10.4.0 (2024-10-31)
New Feature: Events 🔈
Go Hass Agent can now send events to Home Assistant. Events better encapsulate data where stats and history are not interesting, only the timing when the data occurs. This release adds events for user login/logouts (requires D-Bus and systemd-logind support), so you can set up automations in Home Assistant that react to those events. See the README for more details and the format of the data of each event.
New Feature: Sensor/events/controls Preferences 🎛️
Go Hass Agent now exposes user-configurable preferences for some sensors, events and controls. For example, you can now filter which network devices will create network rate/total sensors and you can completely disable the external IP address sensor if desired. More preferences coming in later releases. See the Sensors/Controls/Events list in the README which ones have preferences. For now, this requires editing toml
files, but a future user-interface is planned!
Features Summary
- agent: ✨ add an interface to represent a worker with preferences for future use (446857e)
- agent: ✨ implement event controller for event workers in agent (c1d2033)
- agent/sensor: ✨ add preference to disable external ip sensor if desired (17f8d97)
- hass: ✨ add support for sending events to Home Assistant (6debf7e)
- linux: ✨ add session events (61b87e6)
- linux: ✨ add tracking stats from chronyd as sensors (3de2c09)
- linux: ✨ add user preference to define devices to ignore for network rates sensors (c36e14e)
- linux/media: ✨ support user preferences for camera worker (fef5dd9)
- linux/net: ✨ filter on user-defined network devices for networkmanger connection state sensors (77e3372)
- preferences: ✨ provide a worker preference to completely disable the worker (and its sensors/events/controls) (23c940b)
- preferences: ✨ support worker preferences (c7c49ac)
Bug Fixes
- hass: 🐛 fix validation of event requests (d95955e)
- hass: 🐛 rework marshaling of sensor requests (1c579d9)
- linux: 🐛 for ignored devices, ensure their stats are still tracked as part of the total network rate sensors (468f692)