Files
houseplan-card/docs/CHANGELOG.md
T

105 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## v1.5.1 — 2026-07-04 (управление пространствами)
- Иконка-карандаш справа от названия каждого пространства в верхнем тулбаре + кнопка «+»
(только при server config).
- Диалог пространства: поле «Название», превью текущей подложки + «Загрузить/Заменить…»
(SVG/PNG/JPG/WebP, base64 → houseplan/plan/set, пропорции определяются из файла),
кнопки Удалить / Отмена / Сохранить. Создание пустого пространства и удаление (со всеми
комнатами и разметкой, с подтверждением). Сохранение через config/set с ревизией.
## v1.5.0 — 2026-07-04 (группы света = сущности)
- Лампы заменены сущностями групп: HA light-groups (platform=group, area из реестра сущности)
и Z2M-группы (device model=Group) рендерятся иконкой mdi:lightbulb-group; клик → more-info
группы (управление всей группой и участниками штатно в HA).
- Одиночные лампы скрываются в комнатах, где есть группа света (settings.group_lights=false
возвращает поштучный режим).
- Выпилена старая визуальная группировка и кастомное меню участников (упрощение кода).
- Позиции старых групп (grp_<area>) перенесены на новые id (lg_<entity_id>) в раскладке дачи.
## v1.4.4 — 2026-07-04 (КРИТИЧЕСКИЙ фикс: гонка конфигураций)
- ИНЦИДЕНТ: config сохранялся целиком по принципу last-writer-wins — открытый клиент со
старой копией затирал чужие правки (потеряна первая итерация пользовательской разметки).
- Фикс: оптимистичная блокировка — конфиг несёт `rev`; `config/set` принимает `expected_rev`
и возвращает ошибку `conflict` при несовпадении; клиент перечитывает конфиг.
- Live-синхронизация: `config/set` рассылает событие `houseplan_config_updated`; все открытые
карточки подписаны и перечитывают конфиг автоматически (окна больше не расходятся).
- Позиции при drag сохраняются точечно через `layout/update` (dirty-set), а не полным
`layout/set` — раскладка тоже больше не затирается между окнами.
- Бэкап конфига перед деплоем: .storage/houseplan.config.bak-*.
## v1.4.3 — 2026-07-04
- Иконки устройств привязываются к той же сетке, что и разметка (центр иконки = узел, снап
при перетаскивании и вводе X/Y). Существующие 57 позиций в БД дачи снапнуты к узлам.
## v1.4.2 — 2026-07-04 (сетка разметки)
- Шаг сетки уменьшен в 2 раза: GRID_N 60 → 120 (шаг 8.33 рендер-ед. ≈ 0.83% ширины плана).
- Точки сетки рендерятся ПОВЕРХ плана и комнат (grid-rect перенесён из под-плана в верхний
markup-слой); точки контрастнее (r=0.14g, обводка).
- Данные дачи: границы всех 13 комнат привязаны к узлам сетки (снап рёбер, сдвиги ≤ полшага;
правка только конфига инстанса через houseplan/config/set, код не менялся).
- Кэш карточки: URL модуля ?v= берётся из const.VERSION — при обновлении фронтенда бампать
const.py и рестартовать HA, иначе браузеры держат старый модуль в memory-cache.
## v1.4.1 — 2026-07-04 (UX разметки)
- Esc / Ctrl+Z при рисовании убирают последнюю точку (и её линию, если она была добавлена
этим шагом; переиспользованные чужие стены не трогаются).
- Панель редактирования (разметка и правка раскладки) перенесена наверх под шапку карточки
и закреплена вместе с ней (общий sticky-контейнер .hdr).
- Замыкание контура автоматически открывает модальный диалог «Новая комната»: отображаемое
имя, выпадающий список ТОЛЬКО свободных зон HA (не назначенных ни одной комнате конфига),
Сохранить/Отмена. Отмена (или Esc) снимает замыкающую точку — контур можно продолжить.
Выбор зоны при пустом имени подставляет название зоны.
## v1.4.0 — 2026-07-04 (Фаза 2: редактор разметки комнат)
- Режим «Разметка» в карточке (кнопка mdi:vector-square-edit, только при server config):
сетка точек (60 узлов по ширине), линии парами кликов со снапом к узлам, полилиния-превью.
- Замкнутый контур (клик по первой точке) активирует «Сохранить»: выбор зоны HA из
выпадающего списка + название; комната сохраняется полигоном (poly, нормированные вершины).
- Инструменты: Добавить (рисование), Стереть линию (клик по линии), Удалить комнату
(клик внутри + confirm). Линии-«стены» хранятся в space.segments и переиспользуются
соседними комнатами (общие стены — кликами по существующим узлам).
- Рендер комнат: полигоны наравне с прямоугольниками (hover, клик в зону, LQI-тултип,
подпись в центроиде); в режиме разметки контуры и названия всех комнат видимы.
- Бэкенд: ROOM_SCHEMA принимает poly (≥3 вершин) или x/y/w/h; SPACE_SCHEMA — segments.
## v1.3.0 — 2026-07-04 (Фаза 1: серверная конфигурация)
- Store `houseplan.config`: spaces (план, aspect, view_box, комнаты), device_overrides
(hidden/icon/name), virtual_devices, settings (exclude_integrations, group_lights).
- WS: `houseplan/config/get|set`, `houseplan/plan/set` (загрузка файла плана base64 →
`<config>/houseplan/plans/`, отдача через /houseplan_files/plans/).
- Карточка: резолв-модель — server config (координаты НОРМИРОВАННЫЕ 0..1, рендер 1000×1000/aspect)
или legacy-бандл (холст 1489×1053). Раскладка v2: {device_id: {s, x, y}} нормированная.
- Кнопка «На сервер» в режиме правки — миграция legacy-конфига в один клик (планы, комнаты,
view_box, раскладка). Выполнена на даче: .storage/houseplan.config + plans/f1.svg,f2.svg.
- Read-side поддержка оверрайдов устройств и виртуальных устройств (UI управления — фазы 3–4).
## v1.2.2 — 2026-07-04
- Тулбар карточки (вкладки этажей) закрепляется при скролле под шапкой HA
(`position: sticky; top: var(--header-height)`; ha-card overflow: visible).
- Инцидент: промежуточная сборка на нестабильном mount дала битый бандл, роняющий рендер
дашбордов; правило «собирать только в /tmp + md5-контроль» закреплено в DEVELOPMENT.md.
## v1.2.1 — 2026-07-04
- Иконки не увеличиваются при наведении/перетаскивании (убран transform: scale).
## v1.2.0 — 2026-07-03
- Границы комнат сняппены к стенам векторного плана.
- Zigbee LQI: значение под иконкой, среднее по комнате в тултипе, градиент красный→зелёный,
опция show_signal.
- `mdi:lock` для любых устройств с сущностью lock.* (TTLock).
- Выключатель прихожей: исправлена зона устройства в реестре HA (был в detskaia_elina).
## v1.1.0 — 2026-07-03
- Векторные подложки (SVG РЕМПЛАННЕР), автосовмещение масштаба/сдвига растровой корреляцией.
- Размер иконок в % ширины плана (container queries, дефолт 2.5%).
## v1.0.1 — 2026-07-03
- fix: вложенные SVG-фрагменты через lit svg`` (подложка/комнаты не рендерились).
- fix: версия из const вместо блокирующего чтения manifest.json в event loop.
## v1.0.0 — 2026-07-03
- Первый релиз: Lovelace-карточка (TS+Lit, без токена, от hass) + интеграция houseplan
(WS-хранилище раскладки, раздача JS). Перенос модели прототипа: курирование, группы ламп,
iconFor, температура, more-info, навигация в зоны, drag-раскладка.