From 4873d3d205221afd79ef6e87cb4a8c31222762dd Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 11 Jun 2022 10:16:54 +0200 Subject: [PATCH] Keba: error if auth required and tag not present (#3616) --- charger/keba.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/charger/keba.go b/charger/keba.go index c1effdaed..e7f314c53 100644 --- a/charger/keba.go +++ b/charger/keba.go @@ -182,10 +182,6 @@ func (c *Keba) Status() (api.ChargeStatus, error) { return api.StatusA, err } - if kr.AuthON == 1 && c.rfid.Tag == "" { - c.log.WARN.Println("missing credentials for RFID authorization") - } - if kr.Plug < 5 { return api.StatusA, nil } @@ -217,22 +213,25 @@ func (c *Keba) enableRFID() error { if err := c.roundtrip("report", 2, &kr); err != nil { return err } + + // no auth required if kr.AuthReq == 0 { return nil } - // authorize - var resp string - if err := c.roundtrip(fmt.Sprintf("start %s", c.rfid.Tag), 0, &resp); err != nil { - return err + // auth required but missing tag + if c.rfid.Tag == "" { + return errors.New("missing credentials for RFID authorization") } - return nil + // authorize + var resp string + return c.roundtrip(fmt.Sprintf("start %s", c.rfid.Tag), 0, &resp) } // Enable implements the api.Charger interface func (c *Keba) Enable(enable bool) error { - if enable && c.rfid.Tag != "" { + if enable { if err := c.enableRFID(); err != nil { return err }