Files
houseplan-card/docs/CHANGELOG.md
T

9.4 KiB
Raw Blame History

Changelog

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_) перенесены на новые 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-раскладка.