From 4d4b7fb047cb18819d40c68560a49014e9d6f141 Mon Sep 17 00:00:00 2001 From: Lutz Finsterle Date: Mon, 6 Apr 2026 16:18:18 +0200 Subject: [PATCH] Fix WW boost toggle: move WWBoostDisabled into consumerView Template range loop sets . to consumerView, not pageData, so .WWBoostDisabled was undefined. Added the field to consumerView and populated it from the wwBoostDisabled local in the handler. Co-Authored-By: Claude Sonnet 4.6 --- internal/status/status.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/status/status.go b/internal/status/status.go index 9943e54..9dcedd4 100644 --- a/internal/status/status.go +++ b/internal/status/status.go @@ -134,9 +134,10 @@ type consumerView struct { Since time.Time Reason string Unconfigured bool - CanOverride bool // true for Shelly consumers (hardware read-back available) - IsWW bool // true for ConsumerWW — shows reset button instead of override - ManualOverride bool + CanOverride bool // true for Shelly consumers (hardware read-back available) + IsWW bool // true for ConsumerWW — shows reset button instead of override + WWBoostDisabled bool // copied from pageData for template access inside range + ManualOverride bool OverrideUntil time.Time LivePowerW float64 // from Shelly PM; 0 for non-PM devices } @@ -339,9 +340,10 @@ func (s *Store) Handler() http.HandlerFunc { Active: rec.active, Since: rec.since, Reason: rec.reason, - CanOverride: c != engine.ConsumerWW, - IsWW: c == engine.ConsumerWW, - ManualOverride: rec.manualOverride, + CanOverride: c != engine.ConsumerWW, + IsWW: c == engine.ConsumerWW, + WWBoostDisabled: c == engine.ConsumerWW && wwBoostDisabled, + ManualOverride: rec.manualOverride, OverrideUntil: rec.overrideUntil, LivePowerW: rec.livePowerW, }