Skip to content

Releases: jmleclercq/hastty

v0.1.4 — fix crash with no default dashboard

Choose a tag to compare

@jmleclercq jmleclercq released this 12 Sep 13:17

Bug-fix release.

Fixed

  • Fixes #1 — hastty crashed on startup for HA setups with no "default" Lovelace dashboard (every dashboard replaced by a custom one). lovelace/config with no url_path answers config_not_found in that case; hastty now falls back to whatever dashboards do exist instead of crashing, even with include_extra_dashboards left at its default (false).

Thanks to @FaustVX for the detailed report and traceback.

Full Changelog

v0.1.3...v0.1.4

v0.1.3 — fix crash on refresh

Choose a tag to compare

@jmleclercq jmleclercq released this 12 Sep 12:01

Bug-fix release.

Fixed

  • Pressing r (refresh) crashed the app with DuplicateIds. TabbedContent.clear_panes() only schedules removal of the old view tabs (it returns an awaitable, not a synchronous operation) — without awaiting it, refresh re-added tabs with the same ids before the old ones were actually torn down, and Textual raised DuplicateIds every time. Found while testing against a real Home Assistant instance.

Full Changelog

v0.1.2...v0.1.3

v0.1.2 — fix broken images on PyPI

Choose a tag to compare

@jmleclercq jmleclercq released this 12 Sep 10:57

Metadata-only release, no code changes.

Fixed

  • The README used repo-relative paths for screenshots and a few links (LICENSE, CONTRIBUTING.md, tests/mock_ha_server.py). GitHub resolves these automatically, but PyPI's rendered project description does not, so screenshots showed up as broken images on https://pypi.org/project/hastty/. Switched to absolute GitHub URLs, which render correctly in both places.

v0.1.1's published files on PyPI are immutable, so this small release was the only way to get a correctly-rendered project page there.

v0.1.1 — fixes for real Home Assistant installs

Choose a tag to compare

@jmleclercq jmleclercq released this 12 Sep 08:44

Bug-fix release, validated against a real Home Assistant instance (v0.1.0 was only tested against the local mock server).

Fixed

  • Empty views on modern dashboards: views built with the "sections" layout (the default dashboard editor since Home Assistant 2024.9) showed zero entities — only the legacy top-level cards list was parsed.
  • Live state updates never reaching the terminal: entity rows were tracked using str(row_key), which returns DataTable's generic object repr instead of the entity_id. Toggling a light actually worked in Home Assistant, but the table kept showing the old state.
  • Crash on Enter/Space with an empty table: CellDoesNotExist was raised and crashed the app when activating a selection on a view with no entities.

Changed

  • Additional Lovelace dashboards are no longer mirrored by default (this was producing confusing duplicate views). Opt in with include_extra_dashboards: true in config.yaml if you want all of your dashboards.

Full Changelog

v0.1.0...v0.1.1

v0.1.0 — first release

Choose a tag to compare

@jmleclercq jmleclercq released this 12 Sep 08:20

First release of hastty: a terminal (TUI) viewer for your Home Assistant dashboards, with keyboard shortcuts to trigger commands.

Features

  • Mirrors your existing Lovelace views (views, entities, and order)
  • Live entity state updates via the Home Assistant WebSocket API (no polling)
  • Keyboard navigation: switch views, move selection, activate an entity (toggle/scene/script/automation)
  • Custom global keyboard shortcuts bound to any service call, configurable in YAML
  • Tested end-to-end against a local mock Home Assistant server (tests/)

Install

git clone https://github.com/jmleclercq/hastty.git
cd hastty
python3 -m venv .venv && source .venv/bin/activate
pip install -e .

See the README for configuration and usage.