From a24b8b89f57882e62969e77068d2af99dc12fdb9 Mon Sep 17 00:00:00 2001 From: premultiply <4681172+premultiply@users.noreply.github.com> Date: Tue, 7 Jan 2025 10:56:05 +0100 Subject: [PATCH] ABL eMH: force re-enable outlet (#17950) --- charger/abl.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/charger/abl.go b/charger/abl.go index 9a5953b2e9..c2f0f57c9f 100644 --- a/charger/abl.go +++ b/charger/abl.go @@ -3,7 +3,7 @@ package charger // LICENSE // Copyright (c) 2019-2022 andig -// Copyright (c) 2022 premultiply +// Copyright (c) 2022-2024 premultiply // This module is NOT covered by the MIT license. All rights reserved. @@ -157,15 +157,20 @@ func (wb *ABLeMH) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - r := rune(b[1]>>4-0x0A) + 'A' + s := string(rune((b[1]>>4)-0x0A) + 'A') - switch r { - case 'A', 'B', 'C': - return api.ChargeStatus(r), nil + switch s { + case "A", "B", "C": + return api.ChargeStatusString(s) default: + // ensure Outlet is re-enabled after wake-up + if b[1] == 0xE0 { // Outlet is disabled + return api.StatusB, wb.set(ablRegModifyState, 0xA1A1) + } + status, ok := ablStatus[b[1]] if !ok { - status = string(r) + status = s } return api.StatusNone, fmt.Errorf("invalid status: %s", status)