From 42eac3cb560966178fe429291518b93f4537eb94 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Fri, 24 Jul 2026 18:46:00 +0000 Subject: [PATCH] =?UTF-8?q?Loadpoint:=20don't=20abort=20update=20cycle=20o?= =?UTF-8?q?n=20unavailable=20=C2=A714a=20dimmer=20state?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A charger's Dimmer.Dimmed() legitimately returns api.ErrNotAvailable when the LPC scenario isn't announced (e.g. eebus-ohpcf when the partner has no active consumption limit). Treating this as fatal aborted the whole per-cycle update before status/session tracking, leaving the loadpoint permanently stuck as disconnected despite real charger activity. --- core/loadpoint.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/loadpoint.go b/core/loadpoint.go index deaddf4cf17..ce0072ca25d 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -2085,12 +2085,12 @@ func (lp *Loadpoint) Update(sitePower, batteryBoostPower float64, consumption, f // ยง14a if dimmer, ok := api.Cap[api.Dimmer](lp.charger); ok { dimmed, err := dimmer.Dimmed() - if err != nil { + if err != nil && !errors.Is(err, api.ErrNotAvailable) { lp.log.ERROR.Printf("dimmed: %v", err) return } - if dim != nil { + if dim != nil && err == nil { if *dim != dimmed { if err := dimmer.Dim(*dim); err != nil { lp.log.ERROR.Printf("dim: %v", err)