Repository navigation
Thread Pulse 1.5.0
Added
- Border routers of other systems (Apple TV, HomePod, Google Nest, Amazon Echo …) are named on the map, e.g. HomePod mini · Border router …7114, using Home Assistant's border router discovery (
thread/discover_routers, matched by extended address, in the background while the page is open); their panel shows manufacturer, model, name, Thread version and network and whether Home Assistant uses them. The panel of Home Assistant's border router also shows manufacturer, model, name and Thread version. The anonymised image shows only the model (#37) - Networks without a known border router (no OpenThread Border Router add-on, e.g. Apple or Google border routers only, possibly no Matter router at all): the parent router of every device is taken from the device's own neighbour table and shown as other Thread router …xxxx, and messages are animated over this first hop (device ↔ parent); its panel counts the messages and explains that the way from there to Home Assistant is unknown. Parents that are not Matter devices now always appear on the map. New demo
?demo=apple. Thanks to @oxmo75 for the analysis and the patch (#71) - 💡 Identify button in the detail panel of Thread and Wi-Fi devices that have an identify button in Home Assistant (Matter Identify cluster): the device blinks, beeps or flashes for a few seconds. Clearly marked as a real command, locked for 4 s after pressing, feedback in the panel; battery devices get a note that they react only when they wake up. The command is animated like any other (#4)
- Automation blueprint Thread Pulse: device offline notification (
blueprints/automation/thread-device-offline.yaml, import button in the README): notifies when a selected Matter device has been unavailable for a delay (default 5 min), optionally when it is back (with the duration) and in the Home Assistant notifications; any notify action, own texts with placeholders. Runs in Home Assistant in the background, unlike the change log (#42) - Save the map as an image: button 📷 Image in the toolbar, with names or anonymised (devices Device 1, 2 … numbered by position on the map, rooms Room A, B …, no address suffixes). The PNG shows the map as it is on screen (zoom, links, badges, room areas, traffic, messages) on the page background, with a line for version, date and number of devices; file name
thread-pulse-<date>.png/…-anonymised.png. On phones and tablets the share sheet opens where available (#40)
Changed
- The user guide now lives in the repository (
docs/wiki/) and is published to the wiki after every release by the GitHub action Release (by hand: action Wiki), so documentation changes are reviewed in the same pull request as the code and the wiki always describes the latest release.tools/wiki.pychecks every page link and image (also in CI) and publishes the pages; the wiki shows a note that it is generated (#54) - Release automation:
tools/release.pyprepares a release (prepare X.Y.Z: version, changelog section, links, build), switches back to the development version (dev), checks a release (check) and writes the release notes (notes); the GitHub action Release creates the GitHub release when a tagvX.Y.Zis pushed – only after checking version, changelog and generated files, and never with attachments. Started by hand it is a dry run (#53) - Browser tests in the repository (
tests/):smoke_test.pyclicks through every feature in demo mode and fails on any JavaScript error,visual_test.pychecks centering and double-click with pixel analysis,browser.pyis a small helper for headless Chrome (no Selenium / Playwright); how to run them intests/README.md(#48) - The standalone page is now generated into
dist/thread-pulse.html, next to the graph library; the duplicate copies at the top level of the repository are removed. Manual installation of the standalone page: takethread-pulse.htmlandthread-pulse-vis-network.jsfrom thedistfolder of Source code (zip). Existing installations are not affected (#47) - Code tidy-ups without change in behaviour: the device panel uses the shared live rows,
deName()renamed tolocalName(), icon data moved tosrc/icons.js, colours defined once inCOLORS(the CSS gets them as variables) (#51) - Settings remembered by the browser are handled in one place (
src/prefs.js: keys, types, defaults). Same storage keys and formats as before – existing settings keep working; safe when storage is blocked (#50)
Fixed
- Pressing a button entity (e.g. Identify) no longer shows up as a message from the device and is no longer counted as a response time of about 0 ms – a button's state is the time of the press, set by Home Assistant itself
Install / update
- HACS: Thread Pulse shows the update to 1.5.0 – install it and reload the browser. New installation: HACS → ⋮ → Custom repositories →
https://github.com/riticulus/ha-thread-pulse, type Dashboard. - Manual card: download Source code (zip) below, copy
dist/ha-thread-pulse.jsanddist/thread-pulse-vis-network.jsto/config/www/. - Standalone page: from Source code (zip), copy
dist/thread-pulse.htmlanddist/thread-pulse-vis-network.jsto/config/www/and raise?v=in the card URL.
See the user guide and the changelog.