mirror of
https://github.com/Matysh/houseplan-card
synced 2026-07-31 08:28:31 +00:00
129 lines
13 KiB
Markdown
129 lines
13 KiB
Markdown
# Changelog
|
||
|
||
## v1.6.2 — 2026-07-04
|
||
- Поле «Комната» в диалоге устройства теперь для ВСЕХ значков (не только виртуальных):
|
||
для привязанных — «переопределить размещение» (по умолчанию по зоне устройства); смена
|
||
комнаты переставляет значок в её центр. Сохраняется в marker.space/area и выигрывает у зоны HA.
|
||
- В инфо-карточке добавлена кнопка «Редактировать» — открывает диалог редактирования устройства.
|
||
|
||
## v1.6.0 — 2026-07-04 (Фаза 3: редактор устройств)
|
||
- Модель «маркеров» (config.markers[]): гибрид — авто-устройства HA появляются сами, маркеры
|
||
правят/перепривязывают/дополняют их и описывают ручные/виртуальные значки. id маркера
|
||
сохраняет позицию (device→device_id, entity→lg_<eid>, virtual→v_<rand>).
|
||
- Клик по значку: обычный режим → инфо-карточка (имя, модель, состояние, ссылка, описание,
|
||
PDF-инструкции, кнопка «Открыть в HA»); режим правки → диалог редактирования.
|
||
- Диалог устройства: имя, привязка (пикер всех устройств/групп HA+Z2M+хелперов с текстовым
|
||
фильтром, минус уже размещённые и дубли по имя|area, + «Виртуальное устройство»), MDI-иконка
|
||
(ha-icon-picker), модель, ссылка, описание, прикрепление файлов-инструкций (PDF на сервер),
|
||
комната (для виртуальных), Убрать/Отмена/Сохранить.
|
||
- Тулбар: кнопка «+» (тултип «Добавить устройство») — пустой диалог.
|
||
- Бэкенд: MARKER_SCHEMA в config; WS houseplan/file/set (файлы в /config/houseplan/files/,
|
||
≤25 МБ, отдача /houseplan_files/files/); статика files зарегистрирована.
|
||
- Виртуальные значки теперь перетаскиваются и позиционируются как обычные (layout по id).
|
||
|
||
## v1.6.1 — 2026-07-04
|
||
- Пикер привязки прячет дубли устройств по «имя|area» (Tuya/LocalTuya), как дедуп на плане.
|
||
|
||
## 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-раскладка.
|