mirror of
https://github.com/Matysh/houseplan-card
synced 2026-07-31 08:28:31 +00:00
feat v1.13.0: universality — floors-import wizard, editable icon rules, tap actions (phase 9)
- floors wizard: spaces from the HA floor registry, step-by-step with mandatory plan upload per floor, skip support, auto-markup after the last one - icon rules as data (settings.icon_rules) + in-card editor with live test, invalid-regex guard, bilingual defaults, device_class fallback chain - tap_action (card) + per-device override; security model: card-wide toggle only for light/switch/fan/humidifier, explicit override for covers, never lock/alarm; 600ms long-press always opens the info card - i18n dictionaries → src/i18n/*.json (+parity tests); light-theme badge fixes - frontend tests 15→28
This commit is contained in:
@@ -1,5 +1,26 @@
|
||||
# Changelog
|
||||
|
||||
## v1.13.0 — 2026-07-05 (universality: floors import, icon rules, tap actions)
|
||||
- **Floors import wizard**: on first run, if the HA registry has floors, the card
|
||||
offers to create a space per floor — names prefilled, the (mandatory) plan image is
|
||||
requested step by step, any floor can be skipped; after the last one the room-markup
|
||||
mode opens automatically. No floors / old HA → the old single-dialog onboarding.
|
||||
- **Editable icon rules**: the built-in "name pattern → MDI icon" rules are now data
|
||||
(`settings.icon_rules`) with an in-card editor (⬡ in the header): reorder, delete,
|
||||
add, live test field, invalid-regex highlighting, one-click reset to the bilingual
|
||||
(EN/RU) defaults. Fallback chain: rules → entity `device_class` → generic chip.
|
||||
Invalid user regexes are skipped safely.
|
||||
- **Tap actions**: `tap_action` card option (`info` default | `more-info` | `toggle`)
|
||||
plus a per-device override in the device dialog. Safety model: a card-wide toggle
|
||||
only affects lights/switches/fans/humidifiers; covers/valves need a conscious
|
||||
per-device toggle; locks and alarm panels never toggle from the plan. A long press
|
||||
(600 ms) always opens the info card.
|
||||
- **i18n dictionaries moved to JSON** (`src/i18n/{en,ru}.json`) — new languages can be
|
||||
contributed without touching TypeScript; tests enforce key and placeholder parity.
|
||||
- Light-theme pass: hardcoded dark badge backgrounds replaced with theme variables.
|
||||
- Tests: 28 frontend (was 15) — tap-action resolver incl. security cases, icon-rule
|
||||
compilation/overrides/device-class fallback, floors sorting, i18n parity.
|
||||
|
||||
## v1.12.0 — 2026-07-05 (Quality Scale: Bronze + selected Silver/Gold)
|
||||
Backend brought to Integration Quality Scale patterns (custom integrations are not
|
||||
formally graded; progress is tracked in `custom_components/houseplan/quality_scale.yaml`):
|
||||
|
||||
+4
-2
@@ -13,14 +13,14 @@
|
||||
|
||||
| Item | State |
|
||||
|---|---|
|
||||
| Version | **v1.12.0** everywhere (manifest, const.py, package.json, CARD_VERSION) |
|
||||
| Version | **v1.13.0** everywhere (manifest, const.py, package.json, CARD_VERSION) |
|
||||
| GitHub | https://github.com/Matysh/houseplan-card — branch `main`, releases v1.9.3…v1.11.2 |
|
||||
| CI | `.github/workflows/validate.yml` (hacs + hassfest + frontend + backend) — **fully green** since v1.11.1; `release.yml` auto-attaches the card bundle (needs `permissions: contents: write`, fixed) |
|
||||
| HACS | Works as custom repository (id 1290210112 on the home instance). **Inclusion PR: https://github.com/hacs/default/pull/8995** (queue ≈2 months as of 2026-07) |
|
||||
| Brands | Ships **inside the integration**: `custom_components/houseplan/brand/{icon,icon@2x,logo,logo@2x}.png` (HA ≥2026.3 local-brands mechanism). home-assistant/brands PR #10700 was auto-closed — that repo no longer accepts custom integrations |
|
||||
| Home instance | ha.jbstudio.pro (SSH port 323, key `ha_jb`), deployed v1.11.2, installed *via HACS* (custom repo) — updates flow through HACS now |
|
||||
| Localization | UI en/ru (`src/i18n.ts`), auto by `hass.locale` + `language` card option; codebase and docs are English-first (`README.ru.md` is the Russian copy) |
|
||||
| Tests | 15 frontend (node:test) + 10 pure backend (anywhere) + 12 HA-harness backend (CI only, py3.13 + pytest-homeassistant-custom-component; skipped locally — sandbox has py3.10) |
|
||||
| Tests | 28 frontend (node:test) + 10 pure backend (anywhere) + 12 HA-harness backend (CI only, py3.13; skipped locally — sandbox has py3.10) |
|
||||
|
||||
## Recent milestones (details in CHANGELOG.md)
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
- **v1.12.0** — Quality Scale conformance: runtime_data, test-before-setup, unloading,
|
||||
single_config_entry, Store migrations hook, diagnostics, repairs, system health,
|
||||
uninstall cleanup, HA-harness tests in CI, quality_scale.yaml.
|
||||
- **v1.13.0** — universality: floors-import wizard, editable icon rules (+device_class
|
||||
fallback), tap actions with a security model, i18n dictionaries in JSON, light-theme pass.
|
||||
|
||||
## Where things live
|
||||
|
||||
|
||||
Reference in New Issue
Block a user