Skip to content

Commit f4fea64

Browse files
committed
Release 2026.9.2-a4
1 parent abbaef5 commit f4fea64

4 files changed

Lines changed: 59 additions & 22 deletions

File tree

ARCHITECTURE.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -243,9 +243,12 @@ moment, dashed, as its own line: the same shape, only its certainty gives way.
243243

244244
The curve is projected by the engine but rendered as a **HUD layer**, not scene
245245
geometry, and deliberately: `#map-container` is its own stacking context, so
246-
anything the renderer draws is pinned below the chips. Like the sun arc it is
247-
layered in two depth passes around them (far behind at z 5, near over at z 11),
248-
which also puts it clear of the buildings it would otherwise cut through. The engine
246+
anything the renderer draws is pinned below the chips. It is layered in two depth
247+
passes (far and near) so the curve self-occludes at its own crossings, and both
248+
passes sit **above** the solar overlays (sun disc, arc, incidence ray, irradiance
249+
label): with auto-rotation the sun would otherwise sweep across the curve and hide
250+
the reading, so the diagram wins that overlap. It stays below the per-chip detail
251+
panel and the timeline, and clear of the buildings it would otherwise cut through. The engine
249252
stamps the radius on because it owns the arc scale, so the card hands over everything
250253
but that.
251254

@@ -302,7 +305,11 @@ altitude), and rain, snow and thunderstorm stack on top. The overlay is CSS
302305
layers plus two particle canvases (`WeatherRain`, `WeatherSnow`) and a scripted
303306
lightning flash (`WeatherStorm`), driven by `--wx-*` custom properties the card
304307
sets from the layer strengths. It sits between the scene and the chips, so weather
305-
tints the map, never the data.
308+
tints the map, never the data. The scene grade itself (saturation + brightness for
309+
cloud cover) is **baked into the ground and building paint** by the renderer
310+
(`SceneRenderer.setWeatherGrade`), not applied as a CSS `filter` on the map layer:
311+
a filter there wraps the CSS 3D-transformed basemap and forces the whole scene to
312+
re-flatten every frame while rotating, which flickers hard on Android WebViews.
306313

307314
### Weather overrides, `data/sources/irradiance.ts`, `data/sources/weather-override.ts`
308315

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,31 @@ rotation on a **CPU-rasterized** basemap, which dodges the corruption while stay
5656
pixel-correct, so the scene turns smoothly on those devices too. Thanks to
5757
@beatschubser (#383).
5858

59+
### Fixed: no more flicker on Android tablets when the map rotates
60+
61+
On Android WebViews (the Home Assistant app, kiosk browsers) the scene could flicker
62+
heavily while rotating or panning. The "your real sky" weather grade was applied as a
63+
CSS filter over the map, which forced the whole 3D scene to re-draw every frame on
64+
those devices. The grade is now painted straight into the ground and buildings, so the
65+
map turns cleanly. This also removes a small per-frame cost on every device. Thanks to
66+
@Aaroneisele55 (#396) and @charleslales (#370).
67+
68+
### Fixed: the energy diagram stays readable while the scene turns
69+
70+
With auto-rotation on, the sun path and the irradiance readout swept in front of the
71+
day's energy diagram, so you had to wait for the rotation to come round before you
72+
could read it. The diagram now always draws on top of the sun path. Thanks to
73+
@beatschubser (#397).
74+
75+
### Fixed: the cost chip no longer flips to zero between meter reports
76+
77+
For a grid meter that reports on a coarse cadence (every 15 minutes, say), Home
78+
Assistant's cost sensor only steps when the meter does, leaving the buckets in between
79+
at zero. The cost chip read those as a real 0.00/h, so it flickered between the true
80+
rate and zero while you were genuinely importing. It now recognises the meter's
81+
reporting cadence and holds the last report's rate between updates, while a meter that
82+
has genuinely stopped still falls to zero. Thanks to @Rag30 (#395).
83+
5984
---
6085

6186
## 2026.9.1

dist/helios.js

Lines changed: 22 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "helios",
3-
"version": "2026.9.2-a3",
3+
"version": "2026.9.2-a4",
44
"description": "HELIOS - real-time solar exposure, cloud cover and PV production card for Home Assistant",
55
"license": "GPL-3.0-or-later",
66
"type": "module",

0 commit comments

Comments
 (0)