Skip to content

v9.2.1 ๐Ÿ› ๏ธ Cleaner reloads and recovery from empty select_list

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Nov 08:22
fc0edd3

๐Ÿ‘‹ A quick note

I run The Smart Home Newsletter โ€” a weekly curated digest for smart home enthusiasts.

Each issue highlights the most relevant and interesting smart home articles, news, and projects from the past week.

Since you're here, you're clearly into home automation โ€” so you might genuinely enjoy the newsletter.

๐Ÿ‘‰ Subscribe at smarthomenewsletter.com


๐Ÿ”ง What's new in v9.2.1

A bugfix release that makes multiscrape.reload clean up properly and lets sensors recover by themselves when a select_list suddenly matches nothing, for example when a session expires and the site returns its login page.

One fix changes how an empty select_list is handled. Please read the โš ๏ธ section before upgrading.

๐Ÿ› Bug fixes

  • Sensors froze when a select_list matched nothing. An empty select_list returned '' and counted as a successful scrape. In #639 the site's session expired and it served the login page instead. on_error never applied, and the form was never re-submitted with submit_once: true. Numeric sensors also failed when Home Assistant rejected the '' state. The sensors stayed stuck until a restart. An empty select_list is now a scrape error, like select already was, so on_error and re-authentication kick in. (#640, closes #639)
  • multiscrape.reload raised KeyError after removing the multiscrape: section. Reloading with no Multiscrape config left now shuts down the old scrapers and finishes cleanly. (#642, closes #641)
  • Reload left stale multiscrape.trigger_<name> services behind. Their scrapers were already shut down, so the services pointed at a closed HTTP session. Reload now removes the trigger service of every scraper it discards. (#643)
  • Reload set up a broken scraper for a services-only entry. A lone multiscrape: entry without resource or resource_template only enables the get_content and scrape services. Setup already handled that, but reload created a scraper_unnamed_0 that failed on every update. Reload now uses the same check as setup. (#643)

โš ๏ธ Breaking changes

  • An empty select_list is now a scrape error. If your config relied on a select_list that matches nothing returning '', it now goes through on_error. That also means it logs at the configured level unless you set log: false.

Thanks to @tridev-tej for the reload fix, and to @mdp716 and @pallemannen for reporting #639 and #641!

โฌ†๏ธ Dependencies & Tooling

  • Migrate the tests from pytest-homeassistant-custom-component to the Core-maintained pytest-homeassistant (#645, #647). Thanks @balloobbot!
  • Move the development environment to Python 3.14 (#647)
  • Update ruff to v0.17.4 (#644)

Full Changelog: v9.2.0...v9.2.1