feat v1.4.0 (phase 2): room markup editor — dot grid, two-click lines with snap, closed contour enables save with HA area dropdown, polygon rooms, tools add/erase-line/delete-room, shared wall segments in space.segments

This commit is contained in:
JB
2026-07-04 11:03:51 +03:00
parent 18c0ea1703
commit b97b61a8e6
11 changed files with 714 additions and 97 deletions
+8
View File
@@ -98,6 +98,14 @@ more-info по приоритету доменов), temp, members[] (групп
Если server config пуст — карточка работает от legacy-бандла (дача) и показывает кнопку
миграции «На сервер» в режиме правки. Дача мигрирована 2026-07-04.
## Редактор разметки (v1.4.0+)
Состояние в карточке: `_markup` (режим), `_tool` (draw/erase/delroom), `_path` (текущий контур,
вершины по сетке GRID_N=60). Клики по stage → `_svgPoint``_snap`. Каждая пара точек добавляет
сегмент в `space.segments` (дедуп по ключу, сохранение config/set с дебаунсом). Контур замкнут
= клик по первой вершине → селект зоны (hass.areas) + имя → room {poly}. Комнаты-полигоны и
прямоугольники рендерятся единообразно (hit-test: point-in-polygon / rect).
## WS API интеграции
| Команда | Параметры | Ответ |
+12
View File
@@ -1,5 +1,17 @@
# Changelog
## 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).
+1 -1
View File
@@ -36,7 +36,7 @@
- Единицы координат: нормированные (0..1 от плана) для новых конфигов — независимость от
разрешения исходника; миграция дачи пересчитает 1489×1053 → нормированные.
## Фаза 2 — Редактор разметки в карточке
## Фаза 2 — Редактор разметки в карточке ← ✅ ЯДРО СДЕЛАНО в v1.4.0 (осталось: загрузка плана из UI, правка view_box, редактирование существующих комнат)
- Режим «Настройка» (отдельно от drag-раскладки): рисование/ресайз прямоугольников комнат
поверх плана, привязка к area (селектор ha-area-picker), редактирование viewBox (кадр).
- Позже: полигональные комнаты (SVG path), повороты планов.