Skip to content

v10.9.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 16:49
· 55 commits to main since this release
365ae67

HASS.Agent .NET10 10.9.0

A bigger release than the step in the version number suggests: notifications rebuilt on Windows notifications, the display as a light, audio device selects, hotkeys, per-app volume, hardware sensors through LibreHardwareMonitor, a new website and documentation, and the fixes of three betas. Works with the Home Assistant integration 10.6.7 or newer; the new entities (display light, audio selects, hotkeys, set_app_volume) and the notification fields need the integration 10.9.0. Signed release.

Notifications

  • Notifications as Windows notifications, with pictures and text fields. A notification from Home Assistant is now a real Windows notification by default: it follows Do not disturb, stays in the notification centre, and can carry a picture (image), up to five buttons, and text fields (inputs) whose content comes back to Home Assistant with the pressed button. The app's own window stays as the other Notification style on the Capabilities page, for a notification that is visible whatever Windows is doing; it shows the same picture and text fields, and it no longer takes the keyboard focus when it appears. A single notification can pick its style with style: window or style: toast, so the doorbell can always use the window. Until now a notification without buttons was a tray balloon and one with buttons the app's window. The picture can be a web address; with the integration 10.9.0 also a path on Home Assistant or a camera entity. See Notifications.
  • The notification action in Home Assistant has fields of its own (integration 10.9.0). image, actions, inputs, style and duration no longer have to be written as YAML inside the action's data object: each has an input of its own in the Home Assistant editor. The old form keeps working. See Notifications.
  • The app's own notification window: the app icon in its title bar, and the hint of a text field above the field. The hint used to be a placeholder inside the field, which disappears as soon as the field has the focus.

New in Home Assistant (integration 10.9.0)

  • The display as a light in Home Assistant. Turn on the new Display brightness sensor (tray app, off by default) and the PC gets a Display light: its brightness slider sets the screen brightness, off switches the monitor off, on wakes it. It works with what Windows itself offers: the built-in panel of a laptop, and external monitors that speak DDC/CI. With an older integration the sensor does nothing. With no adjustable display (many TVs, some docks) the light is a plain on/off one, without the slider.
  • Choose the audio device from Home Assistant. The Audio output device sensor now comes with a select that makes another playback device the default, for "switch to the headset" or "sound to the TV" automations. The new Audio input device sensor (off by default) does the same for the recording device.
  • Hotkeys that reach Home Assistant. On the Capabilities page you can list key combinations with a name (ctrl+alt+h as "Meeting"); pressing one sends an event to Home Assistant, where the device's new Hotkeys event entity triggers automations on it. Only the listed combinations are registered with Windows, nothing else that is typed is seen.
  • Per-app volume from Home Assistant. Turn on the new Audio sessions sensor and the apps in the Windows volume mixer show up as its attributes (name, volume, muted, playing); the integration's hass_agent.set_app_volume service sets the volume or mutes one of them, for "turn the game down when the doorbell rings". The state is how many apps play right now.
  • Hibernate and Log off commands. Two more buttons for Home Assistant, off by default on the Capabilities page.
  • Hardware sensors through LibreHardwareMonitor. A new custom sensor type reads CPU and GPU temperature, fan speed, voltage and load from a running LibreHardwareMonitor (its Remote Web Server). The editor lists every value it reports and fills in the unit; a Connection... button sets the address and the login if it asks for one. The agent itself stays free of vendor-specific hardware code. See Custom Sensors.

Updates

  • The service reports a finished update. After an update installed with nobody logged in, the "updated from X to Y" notification used to wait for somebody to log in, because only the tray app sent it. The service now sends it when no tray app is running.
  • The update report also arrives after a downgrade. The installer now tells the service which version it replaced, so the "updated from X to Y" notification is sent when the previous version was older than 10.9.0, or was installed over a newer one.
  • The update prompt of the About page is a proper dialog. The version found and the installed one on top, the release notes as readable paragraphs under a "What's new" expander (the hard-wrapped lines of the tag message are joined again, long notes cut at a paragraph), a link to the full notes on GitHub, and Download / Not now buttons in the app's language; the message box used before got its buttons from Windows, so an English app asked "Igen / Nem" on a Hungarian PC. The dialog after the download asks Install now / Later the same way.
  • A failed update check (right after boot the service often asks before the network can resolve names) is tried again after a minute, three times at most, instead of waiting six hours. The log line says what failed and that it will try again; the earlier "Unable to publish update state" was misleading, the state did go out.

Fixes

  • Fixed: stale data in Home Assistant after its restart, on a PC that only uses the HA API. What the client sends once on connect (its discovery, the service status, the update state) reached Home Assistant before the integration was listening, and the HA API keeps nothing for latecomers. The device then showed an old version and an unavailable update entity. The client now sends these again when the integration asks (integration 10.9.0), and the tray app sends its discovery again every ten minutes on its own.
  • Fixed: a message could get lost on the HA API when two were sent at the same moment. Home Assistant wants message ids that grow from one message to the next; two senders could pass each other between taking an id and sending, and the later one was refused with id_reuse. Ids are now taken in the order the messages go out.
  • Fixed: the Boot time sensor changed every few seconds. The service and the tray app both publish it, each computed it from its own clock a few milliseconds apart, and Home Assistant recorded the two values, rounded to different seconds, as a change on every publish. Both now report the boot time the kernel keeps, which is the same in both.
  • Quieter log without an audio output. A PC with no default audio output (an HDMI output whose screen is off) logged three warnings on every poll. It is now logged once when it starts and once when a device is back.
  • When the broker closes the MQTT session over something it was sent (a malformed packet, a protocol error), the log now lists the last packets that went out, with their time, topic and size.
  • With MQTT switched off, the log says what happens. A failed connection to Home Assistant is logged as what it is (HA WebSocket connection failed) and once, not as an MQTT failure followed by a failed failover, and the service no longer warns that it "will stay idle" when it connects over the HA API right after.

Around the app

  • A Star on GitHub button on the About page, next to the coffee one. The only place the app asks for it.
  • New website and documentation. The README is short now and the details live under docs/: Features, Commands, Sensors, Connection and a Coming from HASS.Agent page for people who know the classic client. The website shows what Home Assistant sees and what the notifications look like.