Homeassisstant Switch: require power entity (#21537)

This commit is contained in:
andig 2025-05-30 17:46:42 +02:00 • committed by GitHub
parent a4a6c6bb9f
commit 11fc9ebc99
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 6 deletions

View file

@ -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

View file

@ -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)