Enjoying Spook? 👻 A ⭐ on GitHub lets others know Spook is actually pretty great. Sponsoring Frenck keeps this ghost well fed. And his free bi-weekly newsletter keeps your inner ghost well fed.
👻👻👻👻👻👻👻👻👻👻
Ghosts, now in your language, and an assistant to hunt them with.
Spook speaks a lot more languages now: 35 of them are complete, the helpers included, and so are its error messages. Its actions are translated in the language of each person's profile, not only the server's.
Spook's own state trigger. This is a big one. It is a scary good and extremely flexible trigger: Home Assistant's old school state trigger, but on steroids. Point it at anything a target covers (entities, devices, areas, floors, labels), or leave the target empty and pick from everything by domain, integration or device class. Exclude things again just as easily. Follow an attribute instead of the state, use from, to, not from and not to, and decide whether it fires per entity, for the first one to get there, or only once all of them are. Add a for, with a blip tolerance so a sensor dropping off the network for a few seconds does not start the wait over, and restarts and router reboots no longer set off everything at once. Any outside door left open for five minutes, except the garage, is one trigger:
trigger: spook.state_changed
target:
label_id: outside_door
options:
device_class: door
exclude_target:
area_id: garage
to: "on"
for: "00:05:00"And a new condition, for an entity being available.
Setting Spook up no longer needs a restart, and the setup itself got a friendlier voice. Every repair links to where the documentation explains it, actions have icons of their own, and the energy repair can take unknown entities out for you. System information and diagnostics now tell you how Spook is doing.
From Home Assistant 2026.11, Spook brings tools to the new administrator API for AI assistants and Home Assistant's MCP server: what ghosts are around, where something is used, and whether a draft automation names things that do not exist, before you save it. And an agent skill teaches agents everything Spook has.
Fewer false alarms, too: ha-floorplan's own actions, notification tags, substring searches in templates, and a blueprint update that kept coming back.
Thanks @Happy-Cadaver, @PlayFaster, @ov6566, @cpmarexel2f, @AJediIAm, @nevvob, @cerebrate, @mvanhorn and @derandiunddasbo for the reports, ideas and fixes behind this one, and the translators on Weblate. 🫶
../Frenck
Blogging my personal ramblings at frenck.dev
Or subscribe to my bi-weekly newsletter: https://frenck.dev/newsletter
👻👻👻👻👻👻👻👻👻👻
✨ New features
- Tell System information how Spook is doing @frenck (#1840)
- Add diagnostics to Spook @frenck (#1841)
- Add Spook's state trigger @frenck (#1822)
- Add a condition for an entity being available @frenck (#1868)
- Give AI assistants tools to hunt ghosts with Spook @frenck (#1870)
- Ship an agent skill that knows Spook @frenck (#1869)
🐛 Bug fixes
- Find the prices in the older grid form too @frenck (#1850)
- Treat notification tags and logger names as plain text @mvanhorn (#1832)
- Leave ha-floorplan's own actions to the card @frenck (#1863)
- Treat what substring and pattern tests look for as text @frenck (#1864)
- Let a restored blueprint offer wait for the source to say it again @frenck (#1865)
- Translate Spook's actions in every profile language @frenck (#1866)
🚀 Enhancements
- Set up Spook without restarting Home Assistant @frenck (#1828)
- Give the setup flow a friendlier voice @frenck (#1833)
- Make Spook's devices say they are Spook's @frenck (#1839)
- Link each repair to where the documentation explains it @frenck (#1844)
- Give Spook's actions their own icons @frenck (#1845)
- Translate the errors of Spook's Home Assistant actions @frenck (#1846)
- Translate the errors of importing and updating blueprints @frenck (#1847)
- Let the energy repair take unknown entities out for you @frenck (#1848)
- Translate the errors of Spook's helper actions @frenck (#1851)
- Translate the rest of Spook's errors @frenck (#1852)
- Name the missing area sensor in every language @frenck (#1861)
- Bring Spook's brand images along, with a version for light mode @frenck (#1867)
🧰 Maintenance
- Modernize the issue template @frenck (#1837)
- Hold each translated error to its own integration's texts @frenck (#1853)
- Translations update from Hosted Weblate @weblate (#1819)
- Translations update from Hosted Weblate @weblate (#1827)
- Translate everything still missing in the 13 languages @frenck (#1854)
- Translate Spook into 21 more languages @frenck (#1855)
- Translate the helpers into every language Spook speaks @frenck (#1856)
- Restore the Serbian translator's work @frenck (#1857)
- Fix two slips in the English source texts @frenck (#1858)
- Translations update from Hosted Weblate @weblate (#1860)
- Translations update from Hosted Weblate @weblate (#1859)
- Start every release draft with a place for the notes @frenck (#1862)
📚 Documentation
- Ask for a star in the README, docs and release notes @frenck (#1836)
- Update repairs documentation for issue ID and domain handling @derandiunddasbo (#1830)
⬆️ Dependency updates
- ⬆️ Update dependency pytest-homeassistant-custom-component to v0.13.370 @renovate[bot] (#1824)
- ⬆️ Update release-drafter/release-drafter action to v7.10.0 @renovate[bot] (#1826)
- ⬆️ Update actions/setup-node action to v7.1.0 @renovate[bot] (#1829)
- ⬆️ Update dependency pytest-homeassistant-custom-component to v0.13.371 @renovate[bot] (#1834)
- ⬆️ Update github/codeql-action action to v4.38.3 @renovate[bot] (#1835)