diff --git a/README.md b/README.md index c5d3009..2cf4e29 100755 --- a/README.md +++ b/README.md @@ -1,30 +1,42 @@ -# 🏠 House Plan — an interactive house plan for Home Assistant +# 🏠 House Plan — interactive floor plan card for Home Assistant -**A live map of your home right inside Home Assistant: floors, rooms and devices on a real floor plan — with live states, temperature and signal strength. Everything is configured with the mouse, without a single line of YAML.** +[![HACS Custom](https://img.shields.io/badge/HACS-Custom-41BDF5.svg)](https://github.com/hacs/integration) +[![GitHub release](https://img.shields.io/github/v/release/Matysh/houseplan-card)](https://github.com/Matysh/houseplan-card/releases) +[![GitHub stars](https://img.shields.io/github/stars/Matysh/houseplan-card)](https://github.com/Matysh/houseplan-card/stargazers) +[![CI](https://github.com/Matysh/houseplan-card/actions/workflows/validate.yml/badge.svg)](https://github.com/Matysh/houseplan-card/actions) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) -![House Plan demo](docs/images/demo.gif) +**Turn Home Assistant into a live, interactive map of your home.** Upload or draw +a floor plan, outline the rooms with your mouse — and every smart device appears +in its real place: live states, tap-to-toggle lights, temperature and humidity per +room, Zigbee signal maps, glowing light pools and a fullscreen kiosk mode for wall +tablets. No YAML, no Inkscape, no external editors — the whole floorplan lives +right on your Lovelace dashboard. + +![Interactive Home Assistant floor plan: live rooms, devices, lights and climate on a real floorplan card](docs/images/demo.gif) 🇷🇺 [Документация на русском](README.ru.md) +**Feature highlights** + +- 🖱 **GUI-first floorplan editor** — rooms, doors & windows, island rooms, + virtual walls and a visual decor layer, all drawn with clicks; smart + alignment guides and a live ruler in real meters/feet. +- 💡 **Lights toggle on click** out of the box; wall-switch markers can control + whole groups of lights (works for dumb switches and stateless remotes too). +- 🌒 **“Light sources” fill** — a dark house where every lit lamp casts a pool + of its own color that spills through doorways and open zone boundaries. +- 🌡 **Room cards** with temperature, humidity, Zigbee LQI and light count; + comfort-range temperature fills, per-room signal heatmap. +- 🚪 **Doors, windows and locks** with contact sensors — unlocking is always an + explicit button, never an accidental tap. +- 📺 **Kiosk mode** for wall tablets and TVs: fullscreen, swipe between floors, + auto-carousel, per-screen icon sizes. +- 🔔 New devices appear automatically with a red “new” dot; the layout is stored + **server-side** — one shared plan for every user and screen, synced live. + --- -## Wall tablet / TV (kiosk mode) - -Add the card to a dedicated dashboard with a **panel view** and set `kiosk: true` -(or tick "Wall device (kiosk) mode" in the card editor): - -```yaml -type: custom:houseplan-card -kiosk: true -cycle: 0 # seconds between auto space switches, 0 = off (nice for TVs) -``` - -No header, no editors — just the live plan. Swipe to change floors (at 1:1), -pinch to zoom, double-tap to reset. Long-press an empty spot for 3 seconds to -tune icon and text sizes for THIS screen (saved per device). To hide Home -Assistant's own header use the companion app's kiosk settings or the -[kiosk-mode](https://github.com/NemesisRE/kiosk-mode) plugin. - ## What it is and why House Plan shows your smart home the way it actually looks — on a floor plan. Instead of long lists of entities, you see rooms and devices in their real places: where the leak is, what the temperature is in the kids' room, whether the light is on in the hallway, whether the gate is open. @@ -66,6 +78,23 @@ Key advantages in short: --- +## Wall tablet / TV (kiosk mode) + +Add the card to a dedicated dashboard with a **panel view** and set `kiosk: true` +(or tick "Wall device (kiosk) mode" in the card editor): + +```yaml +type: custom:houseplan-card +kiosk: true +cycle: 0 # seconds between auto space switches, 0 = off (nice for TVs) +``` + +No header, no editors — just the live plan. Swipe to change floors (at 1:1), +pinch to zoom, double-tap to reset. Long-press an empty spot for 3 seconds to +tune icon and text sizes for THIS screen (saved per device). To hide Home +Assistant's own header use the companion app's kiosk settings or the +[kiosk-mode](https://github.com/NemesisRE/kiosk-mode) plugin. + ## Installation One click if you already run HACS: diff --git a/README.ru.md b/README.ru.md index f3c629a..daacbe9 100644 --- a/README.ru.md +++ b/README.ru.md @@ -1,29 +1,40 @@ -# 🏠 House Plan — интерактивный план дома для Home Assistant +# 🏠 House Plan — интерактивный поэтажный план дома для Home Assistant -**Живая карта вашего дома прямо в Home Assistant: этажи, комнаты и устройства на настоящем плане — с реальными состояниями, температурой и уровнем сигнала. Всё настраивается мышкой, без единой строчки YAML.** +[![HACS Custom](https://img.shields.io/badge/HACS-Custom-41BDF5.svg)](https://github.com/hacs/integration) +[![GitHub release](https://img.shields.io/github/v/release/Matysh/houseplan-card)](https://github.com/Matysh/houseplan-card/releases) +[![GitHub stars](https://img.shields.io/github/stars/Matysh/houseplan-card)](https://github.com/Matysh/houseplan-card/stargazers) -![House Plan demo](docs/images/demo.gif) +**Превратите Home Assistant в живую интерактивную карту дома.** Загрузите или +нарисуйте план этажа, обведите комнаты мышкой — и умные устройства появятся на +своих местах: живые состояния, свет по клику, температура и влажность по +комнатам, карта Zigbee-сигнала, светящиеся пятна ламп и полноэкранный +киоск-режим для настенного планшета. Без YAML, без Inkscape и внешних +редакторов — весь план настраивается прямо на дашборде. -🇬🇧 [English documentation](README.md) +![Интерактивный план дома для Home Assistant: комнаты, устройства, свет и климат на реальном поэтажном плане](docs/images/demo.gif) + +🇬🇧 [Documentation in English](README.md) + +**Главное** + +- 🖱 **Редакторы прямо в карточке** — комнаты, двери и окна, комнаты-острова, + виртуальные стены и декор-слой рисуются кликами; помощник выравнивания и + линейка в реальных метрах. +- 💡 **Свет переключается кликом** из коробки; значок выключателя может + управлять группой ламп (в т.ч. «тупые» выключатели и кнопки-пульты). +- 🌒 **Заливка «Свет по источникам»** — тёмный дом, где каждая горящая лампа + даёт пятно своего цвета, проникающее через дверные проёмы и открытые зоны. +- 🌡 **Карточки комнат**: температура, влажность, Zigbee-сигнал, свет «1 из 3»; + температурная заливка по комфортным границам. +- 🚪 **Двери, окна и замки** с датчиками — отпирание только явной кнопкой, + никогда случайным тапом. +- 📺 **Киоск-режим** для настенных планшетов и ТВ: полноэкранно, свайп между + этажами, автокарусель, свои размеры на каждом экране. +- 🔔 Новые устройства сами появляются на плане с красной точкой; раскладка + хранится **на сервере HA** — один план для всех экранов, живая синхронизация. --- -## Настенный планшет / ТВ (киоск-режим) - -Отдельный дашборд с view типа «панель», у карточки — `kiosk: true` (или -галочка «Режим настенного устройства» в редакторе карточки): - -```yaml -type: custom:houseplan-card -kiosk: true -cycle: 0 # автосмена пространств каждые N секунд, 0 = выкл (удобно для ТВ) -``` - -Без шапки и редакторов — только живой план. Свайп листает этажи (при 1:1), -пинч — зум, двойной тап — сброс. Долгое нажатие (3 с) по пустому месту — -настройка размеров значков и текста для ЭТОГО экрана (хранится на -устройстве). Шапку самого Home Assistant скрывают настройки companion-app -или плагин [kiosk-mode](https://github.com/NemesisRE/kiosk-mode). ## Что это и зачем @@ -66,6 +77,23 @@ House Plan показывает ваш умный дом так, как он в --- +## Настенный планшет / ТВ (киоск-режим) + +Отдельный дашборд с view типа «панель», у карточки — `kiosk: true` (или +галочка «Режим настенного устройства» в редакторе карточки): + +```yaml +type: custom:houseplan-card +kiosk: true +cycle: 0 # автосмена пространств каждые N секунд, 0 = выкл (удобно для ТВ) +``` + +Без шапки и редакторов — только живой план. Свайп листает этажи (при 1:1), +пинч — зум, двойной тап — сброс. Долгое нажатие (3 с) по пустому месту — +настройка размеров значков и текста для ЭТОГО экрана (хранится на +устройстве). Шапку самого Home Assistant скрывают настройки companion-app +или плагин [kiosk-mode](https://github.com/NemesisRE/kiosk-mode). + ## Установка В один клик, если у вас уже есть HACS: diff --git a/custom_components/houseplan/const.py b/custom_components/houseplan/const.py index cf1779e..c24b226 100755 --- a/custom_components/houseplan/const.py +++ b/custom_components/houseplan/const.py @@ -11,7 +11,7 @@ PLANS_DIR = "houseplan/plans" # relative to the HA configuration directory FILES_URL = "/houseplan_files/files" FILES_DIR = "houseplan/files" CONF_ADMIN_ONLY = "admin_only" -VERSION = "1.41.0" +VERSION = "1.41.1" DEFAULT_CONFIG: dict = { "spaces": [], diff --git a/custom_components/houseplan/frontend/houseplan-card.js b/custom_components/houseplan/frontend/houseplan-card.js index cba0a5e..d1c032f 100755 --- a/custom_components/houseplan/frontend/houseplan-card.js +++ b/custom_components/houseplan/frontend/houseplan-card.js @@ -2382,4 +2382,4 @@ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow - `}}Ji.properties={hass:{attribute:!1},_config:{state:!0},_space:{state:!0},_layout:{state:!0},_devices:{state:!0},_tip:{state:!0},_selId:{state:!0},_toast:{state:!0},_serverCfg:{state:!0},_mode:{state:!0},_tool:{state:!0},_path:{state:!0},_cursorPt:{state:!0},_mergeSel:{state:!0},_openingDialog:{state:!0},_openingInfo:{state:!0},_mergeDialog:{state:!0},_splitSel:{state:!0},_decorTool:{state:!0},_decorStyle:{state:!0},_decorDraft:{state:!0},_decorSel:{state:!0},_decorTextDialog:{state:!0},_kioskDialog:{state:!0},_kioskDots:{state:!0},_areaSel:{state:!0},_nameSel:{state:!0},_roomDialog:{state:!0},_spaceDialog:{state:!0},_infoCard:{state:!0},_rulesDialog:{state:!0},_settingsDialog:{state:!0},_importDialog:{state:!0},_markerDialog:{state:!0},_zoom:{state:!0},_view:{state:!0}},Ji.styles=Ci,customElements.get("houseplan-card")||customElements.define("houseplan-card",Ji),window.customCards=window.customCards||[],window.customCards.find(t=>"houseplan-card"===t.type)||window.customCards.push({type:"houseplan-card",name:"House Plan Card",description:"Interactive house plan: spaces, rooms and devices with live states and drag layout."}),console.info("%c HOUSEPLAN-CARD %c v1.41.0 ","background:#3ea6ff;color:#04121f;font-weight:700",""); + `}}Ji.properties={hass:{attribute:!1},_config:{state:!0},_space:{state:!0},_layout:{state:!0},_devices:{state:!0},_tip:{state:!0},_selId:{state:!0},_toast:{state:!0},_serverCfg:{state:!0},_mode:{state:!0},_tool:{state:!0},_path:{state:!0},_cursorPt:{state:!0},_mergeSel:{state:!0},_openingDialog:{state:!0},_openingInfo:{state:!0},_mergeDialog:{state:!0},_splitSel:{state:!0},_decorTool:{state:!0},_decorStyle:{state:!0},_decorDraft:{state:!0},_decorSel:{state:!0},_decorTextDialog:{state:!0},_kioskDialog:{state:!0},_kioskDots:{state:!0},_areaSel:{state:!0},_nameSel:{state:!0},_roomDialog:{state:!0},_spaceDialog:{state:!0},_infoCard:{state:!0},_rulesDialog:{state:!0},_settingsDialog:{state:!0},_importDialog:{state:!0},_markerDialog:{state:!0},_zoom:{state:!0},_view:{state:!0}},Ji.styles=Ci,customElements.get("houseplan-card")||customElements.define("houseplan-card",Ji),window.customCards=window.customCards||[],window.customCards.find(t=>"houseplan-card"===t.type)||window.customCards.push({type:"houseplan-card",name:"House Plan Card",description:"Interactive house plan: spaces, rooms and devices with live states and drag layout."}),console.info("%c HOUSEPLAN-CARD %c v1.41.1 ","background:#3ea6ff;color:#04121f;font-weight:700",""); diff --git a/custom_components/houseplan/manifest.json b/custom_components/houseplan/manifest.json index 46d65a9..885e688 100755 --- a/custom_components/houseplan/manifest.json +++ b/custom_components/houseplan/manifest.json @@ -16,5 +16,5 @@ "issue_tracker": "https://github.com/Matysh/houseplan-card/issues", "requirements": [], "single_config_entry": true, - "version": "1.41.0" + "version": "1.41.1" } diff --git a/dist/houseplan-card.js b/dist/houseplan-card.js index cba0a5e..d1c032f 100755 --- a/dist/houseplan-card.js +++ b/dist/houseplan-card.js @@ -2382,4 +2382,4 @@ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow - `}}Ji.properties={hass:{attribute:!1},_config:{state:!0},_space:{state:!0},_layout:{state:!0},_devices:{state:!0},_tip:{state:!0},_selId:{state:!0},_toast:{state:!0},_serverCfg:{state:!0},_mode:{state:!0},_tool:{state:!0},_path:{state:!0},_cursorPt:{state:!0},_mergeSel:{state:!0},_openingDialog:{state:!0},_openingInfo:{state:!0},_mergeDialog:{state:!0},_splitSel:{state:!0},_decorTool:{state:!0},_decorStyle:{state:!0},_decorDraft:{state:!0},_decorSel:{state:!0},_decorTextDialog:{state:!0},_kioskDialog:{state:!0},_kioskDots:{state:!0},_areaSel:{state:!0},_nameSel:{state:!0},_roomDialog:{state:!0},_spaceDialog:{state:!0},_infoCard:{state:!0},_rulesDialog:{state:!0},_settingsDialog:{state:!0},_importDialog:{state:!0},_markerDialog:{state:!0},_zoom:{state:!0},_view:{state:!0}},Ji.styles=Ci,customElements.get("houseplan-card")||customElements.define("houseplan-card",Ji),window.customCards=window.customCards||[],window.customCards.find(t=>"houseplan-card"===t.type)||window.customCards.push({type:"houseplan-card",name:"House Plan Card",description:"Interactive house plan: spaces, rooms and devices with live states and drag layout."}),console.info("%c HOUSEPLAN-CARD %c v1.41.0 ","background:#3ea6ff;color:#04121f;font-weight:700",""); + `}}Ji.properties={hass:{attribute:!1},_config:{state:!0},_space:{state:!0},_layout:{state:!0},_devices:{state:!0},_tip:{state:!0},_selId:{state:!0},_toast:{state:!0},_serverCfg:{state:!0},_mode:{state:!0},_tool:{state:!0},_path:{state:!0},_cursorPt:{state:!0},_mergeSel:{state:!0},_openingDialog:{state:!0},_openingInfo:{state:!0},_mergeDialog:{state:!0},_splitSel:{state:!0},_decorTool:{state:!0},_decorStyle:{state:!0},_decorDraft:{state:!0},_decorSel:{state:!0},_decorTextDialog:{state:!0},_kioskDialog:{state:!0},_kioskDots:{state:!0},_areaSel:{state:!0},_nameSel:{state:!0},_roomDialog:{state:!0},_spaceDialog:{state:!0},_infoCard:{state:!0},_rulesDialog:{state:!0},_settingsDialog:{state:!0},_importDialog:{state:!0},_markerDialog:{state:!0},_zoom:{state:!0},_view:{state:!0}},Ji.styles=Ci,customElements.get("houseplan-card")||customElements.define("houseplan-card",Ji),window.customCards=window.customCards||[],window.customCards.find(t=>"houseplan-card"===t.type)||window.customCards.push({type:"houseplan-card",name:"House Plan Card",description:"Interactive house plan: spaces, rooms and devices with live states and drag layout."}),console.info("%c HOUSEPLAN-CARD %c v1.41.1 ","background:#3ea6ff;color:#04121f;font-weight:700",""); diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 85fe4c2..05e53b4 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## v1.41.1 — 2026-07-24 (docs) +- README (en/ru) reworked for discoverability: keyword-rich hero ("interactive + floor plan card for Home Assistant"), badges, a feature-highlights list + covering glow, controls, kiosk, virtual walls and room cards; the kiosk + recipe moved next to Installation. Demo GIF slot ready for the new capture. + ## v1.41.0 — 2026-07-24 (kiosk mode for wall devices) - New card option **`kiosk: true`** (also in the GUI editor): the full View experience — live states, glow, lamp taps, info cards, locks — with no diff --git a/package.json b/package.json index fb7cebb..6a31e87 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "houseplan-card", - "version": "1.41.0", + "version": "1.41.1", "description": "Interactive house plan Lovelace card for Home Assistant", "license": "MIT", "type": "module", diff --git a/src/houseplan-card.ts b/src/houseplan-card.ts index 3cf3cc8..88a5eaf 100755 --- a/src/houseplan-card.ts +++ b/src/houseplan-card.ts @@ -32,7 +32,7 @@ import './space-card'; import { cardStyles } from './styles'; import { langOf, t, type I18nKey } from './i18n'; -const CARD_VERSION = '1.41.0'; +const CARD_VERSION = '1.41.1'; const LS_KEY = 'houseplan_card_layout_v1'; const LS_CFG = 'houseplan_card_cfg_v1'; // cache of the server config+layout for instant rendering const LS_ZOOM = 'houseplan_card_zoom_v1';