mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-06 14:39:22 +00:00
@@ -1198,6 +1198,11 @@ Shared, framework-light modules keep the two views from diverging:
|
||||
use the shared `ResolvedDevicePresentation` and `renderDeviceFace`; optional card settings
|
||||
can disable ordinary live dressing, temperature or signal without creating another
|
||||
semantic implementation.
|
||||
- `src/glow-scene.ts` — one canonical Glow transport/runtime/SVG implementation
|
||||
shared by the full renderer and the opt-in static adapter. The static card's
|
||||
public `light_pools` flag defaults to false and gates barrier/visibility work
|
||||
before it starts; each mounted card owns and disposes its bounded clip cache,
|
||||
source transitions and timers.
|
||||
- `src/config-store.ts` — module-level `{config, rev, configFingerprint, layout,
|
||||
layoutRev, layoutFingerprint}` cache shared by all embedded
|
||||
cards (dedupes `houseplan/config/get`), seeded synchronously from the full card's
|
||||
@@ -1244,10 +1249,10 @@ its configured space.
|
||||
pools → sun/interactive layers. A resolved data/static fill (`lqi`, `light`,
|
||||
`temp`, `custom`) never receives the dark base, so its exact color and alpha
|
||||
remain visible; a dynamic mode without usable data or a custom fill with
|
||||
zero opacity receives the base instead of exposing bright paper. Radial pools stay
|
||||
independent and continue to render. The static
|
||||
room card uses the same data/base projection, omits empty base groups, and
|
||||
deliberately has no live pools.
|
||||
zero opacity receives the base instead of exposing bright paper. Radial pools
|
||||
stay independent and continue to render. The static room card uses the same
|
||||
data/base projection, omits empty base groups, and renders the same live pools
|
||||
only when its default-off `light_pools` option is enabled.
|
||||
- **Custom room fill** (#56): `space.settings.custom_fill` is the space color
|
||||
and `room.settings.custom_fill` is an optional explicit override. The pure
|
||||
projection is room → space → `{c:'#607d8b',a:.18}` and every read crosses
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
- The read-only `houseplan-space-card` can now opt into the full plan's radial
|
||||
Glow and wall shadows with `light_pools: true`. It uses the same source
|
||||
colour, brightness, radius, openings and physical occluders while remaining
|
||||
fully non-interactive; the option defaults to `false` to preserve the cheap
|
||||
existing-card path ([#374](https://github.com/Matysh/houseplan-card/issues/374)).
|
||||
|
||||
- `houseplan-space-card` with an explicit `title: ""` now removes the empty
|
||||
top framing strip together with the header, while preserving its side and
|
||||
bottom spacing ([#372](https://github.com/Matysh/houseplan-card/issues/372)).
|
||||
|
||||
@@ -8,6 +8,13 @@
|
||||
|
||||
## Не выпущено
|
||||
|
||||
- В read-only `houseplan-space-card` теперь можно включить радиальный Glow и
|
||||
тени от стен как на полном плане: `light_pools: true`. Цвет, яркость, радиус,
|
||||
проёмы и физические преграды общие с полным рендерером, а схема остаётся
|
||||
полностью неинтерактивной. По умолчанию опция выключена, чтобы существующие
|
||||
карточки сохранили дешёвый путь отрисовки
|
||||
([#374](https://github.com/Matysh/houseplan-card/issues/374)).
|
||||
|
||||
- `houseplan-space-card` с явно заданным `title: ""` теперь убирает вместе с
|
||||
заголовком пустую полосу кадрирования сверху, сохраняя боковые и нижнее поля
|
||||
([#372](https://github.com/Matysh/houseplan-card/issues/372)).
|
||||
|
||||
+11
-13
@@ -248,20 +248,18 @@ The complete UI and runtime truth table lives in
|
||||
|
||||
## Which surfaces render pools
|
||||
|
||||
Pools — and therefore wall shadows — exist on the **full plan only**:
|
||||
`houseplan-card` and the geometry editors. `visibilityPolygon()`
|
||||
(`src/light-visibility.ts`) is imported by those surfaces and by nothing else.
|
||||
The full `houseplan-card` always renders pools for rooms where Glow is enabled.
|
||||
`houseplan-space-card` uses the same canonical source projection, barrier scene,
|
||||
visibility clip and SVG pool renderer when its public `light_pools: true` option
|
||||
is enabled. It remains off by default: in that path the static card builds no
|
||||
barrier/visibility geometry, starts no Glow transition timers and paints only
|
||||
the shared room/data/base projection.
|
||||
|
||||
`houseplan-space-card` takes the static path (`renderSpaceStatic()` in
|
||||
`src/space-render.ts`) and deliberately has no live radial pools; it shares the
|
||||
room fills and the independent data/base projection with the full plan, so a lit
|
||||
room is painted flat. Without a pool there is no shape to occlude, so the compact
|
||||
card shows no wall shadows. This is a cost decision, not an omission: the pool
|
||||
layer is the heaviest thing the product renders — it owns its own performance
|
||||
workflow, budgets and a per-run smoke (`large-house-glow-overlay-v1`).
|
||||
|
||||
Reported from the field as a bug (#370), because the user guide promised that
|
||||
markers share everything with the full plan and said nothing about light.
|
||||
The opt-in remains fully static — `.hp-static-stage` and the Glow layer have
|
||||
`pointer-events:none`. It is independent from the card's `live_states` marker
|
||||
dressing. Separate `large-space-card-default-v1` and
|
||||
`large-space-card-glow-v1` profiles protect the cheap default and the bounded
|
||||
opt-in path alongside the full-plan profiles.
|
||||
|
||||
## Performance
|
||||
|
||||
|
||||
@@ -2141,6 +2141,13 @@ require hands on real hardware — they remain for the human pass.
|
||||
- [ ] Unknown `space` → tidy error card [manual]
|
||||
- [ ] `show_button: false` hides the footer
|
||||
- [ ] Full card honours `#space=<id>` on load and on hashchange; invalid id ignored [manual]
|
||||
- [ ] Static Glow (#374): omitted/false `light_pools` creates no pool layer,
|
||||
visibility geometry, cache entries or transition timers; `true` renders
|
||||
the same source coordinates, radius, colour, brightness, per-source floor
|
||||
clip, opening transmission and masonry shadows as the full card. The
|
||||
stage remains `pointer-events:none`, and `live_states:false` does not
|
||||
disable pools [unit: glow-scene; auto: smoke_glow_blending; performance:
|
||||
large-space-card-default-v1 + large-space-card-glow-v1].
|
||||
|
||||
## Unified device status and pulse activity (#98)
|
||||
|
||||
|
||||
+8
-7
@@ -763,17 +763,18 @@ text sizing. `cycle` enables automatic space changes; interaction pauses it for
|
||||
hover, drag, more-info or actions. A footer button opens the full plan. Use it
|
||||
for compact dashboard navigation, not for home control.
|
||||
|
||||
**Light is deliberately different here.** The compact card paints the flat fill
|
||||
of a lit room and the data-mode fills, but it builds no radial light pools from
|
||||
the lamps. Consequently it draws no wall shadows either: a shadow exists only as
|
||||
the shape of a pool, and with no pools there is nothing to occlude. The full plan
|
||||
computes the pools and how walls, openings and columns block them
|
||||
(`docs/LIGHT.md`); that is the most expensive part of the render, and it is
|
||||
exactly what the compact card trades away for being cheap.
|
||||
The compact card keeps radial light pools and wall shadows off by default, so
|
||||
existing dashboards retain the cheapest render path. Set `light_pools: true`
|
||||
to show the full plan's Glow: the same source colour, brightness and radius,
|
||||
additive overlap, passages and shadows from walls, partitions and columns.
|
||||
This is independent from `live_states`; disabling ordinary live marker dressing
|
||||
does not disable light transport. The option is intentionally heavier than the
|
||||
default because every visible source needs clipped floor visibility geometry.
|
||||
|
||||
```yaml
|
||||
type: custom:houseplan-space-card
|
||||
space: ground
|
||||
light_pools: true
|
||||
```
|
||||
|
||||
By default the card uses the configured space name as its header. A non-empty
|
||||
|
||||
+10
-6
@@ -1484,12 +1484,14 @@ House Plan скрывает только собственную шапку. Ша
|
||||
план, но не открывают подсказки или more-info. Единственный интерактивный
|
||||
элемент — нижняя кнопка перехода.
|
||||
|
||||
**Свет здесь другой, и это намеренно.** Компактная карточка рисует ровную
|
||||
заливку освещённой комнаты и заливки data-режимов, но не строит радиальные пулы
|
||||
света от ламп. Значит, на ней нет и теней от стен: тень существует только как
|
||||
форма пула, и без пулов затенять нечего. Полный план считает пулы и перекрытие
|
||||
светом стен, проёмов и колонн (`docs/LIGHT.md`) — это самая дорогая часть
|
||||
отрисовки, и компактная карточка платит за свою дешевизну именно ею.
|
||||
Радиальные пулы света и тени от стен по умолчанию выключены, поэтому уже
|
||||
созданные компактные карточки сохраняют самый дешёвый путь отрисовки. Включите
|
||||
`light_pools: true`, чтобы получить полный Glow: те же цвет, яркость и радиус
|
||||
источника, сложение пересекающихся пятен, прохождение через проёмы и тени от
|
||||
стен, перегородок и колонн. Опция не зависит от `live_states`: отключение
|
||||
обычного живого оформления маркеров не выключает свет. Включённый режим тяжелее
|
||||
default-варианта, потому что для каждого видимого источника строится геометрия
|
||||
доступного ему пола.
|
||||
|
||||
```yaml
|
||||
type: custom:houseplan-space-card
|
||||
@@ -1502,6 +1504,7 @@ icon_size: 2.5
|
||||
live_states: true
|
||||
show_temperature: true
|
||||
show_signal: true
|
||||
light_pools: true
|
||||
```
|
||||
|
||||
| Поле | По умолчанию | Назначение |
|
||||
@@ -1515,6 +1518,7 @@ show_signal: true
|
||||
| `live_states` | `true` | Рабочие/открытые/недоступные состояния, смена иконок и активность; тревоги видны всегда |
|
||||
| `show_temperature` | `true` | Компактные температура и влажность у подходящих устройств |
|
||||
| `show_signal` | `true` | LQI у маркеров, если он доступен |
|
||||
| `light_pools` | `false` | Радиальные пулы Glow и тени от стен как на полном плане; более тяжёлая отрисовка |
|
||||
|
||||
Если название уже показано секцией dashboard, задайте `title: ""` явно. В
|
||||
этом случае карточка уберёт заголовок и верхнее пустое поле сцены, но сохранит
|
||||
|
||||
Reference in New Issue
Block a user