From 11fc9ebc9917daccf356a9e14971cde3337a28cf Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 30 May 2025 17:46:42 +0200 Subject: [PATCH] Homeassisstant Switch: require power entity (#21537) --- charger/homeassistant-switch.go | 15 +++++++++------ .../definition/charger/homeassistant-switch.yaml | 1 + 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/charger/homeassistant-switch.go b/charger/homeassistant-switch.go index 8c152cc0f..642f1d438 100644 --- a/charger/homeassistant-switch.go +++ b/charger/homeassistant-switch.go @@ -1,6 +1,7 @@ package charger import ( + "errors" "fmt" "net/http" @@ -49,6 +50,13 @@ func NewHomeAssistantSwitch(embed embed, baseURL, token, switchEntity, powerEnti Helper: request.NewHelper(util.NewLogger("ha-switch")), } + if switchEntity == "" { + return nil, errors.New("missing switch entity") + } + if powerEntity == "" { + return nil, errors.New("missing power entity") + } + c.switchSocket = NewSwitchSocket(&embed, c.Enabled, c.currentPower, standbypower) c.Helper.Client.Transport = &transport.Decorator{ Decorator: transport.DecorateHeaders(map[string]string{ @@ -58,12 +66,7 @@ func NewHomeAssistantSwitch(embed embed, baseURL, token, switchEntity, powerEnti Base: c.Helper.Client.Transport, } - var currentPower func() (float64, error) - if powerEntity != "" { - currentPower = c.currentPower - } - - return decorateHomeAssistantSwitch(c, currentPower), nil + return decorateHomeAssistantSwitch(c, c.currentPower), nil } // Enabled implements the api.Charger interface diff --git a/templates/definition/charger/homeassistant-switch.yaml b/templates/definition/charger/homeassistant-switch.yaml index 28d00ec30..9e7e56cb7 100644 --- a/templates/definition/charger/homeassistant-switch.yaml +++ b/templates/definition/charger/homeassistant-switch.yaml @@ -21,6 +21,7 @@ params: de: Entity ID des schaltbaren Geräts (z.B. switch.smartsocket) en: Entity ID of the switch device (e.g. switch.smartsocket) - name: powerentity + required: true description: de: Entity ID für Leistungsmessung (optional, z.B. sensor.smartsocket_power) en: Entity ID for power measurement (optional, e.g. sensor.smartsocket_power)