HEMS: add templates (#25832)

Co-authored-by: Michael Geers <michael@geers.tv>
Co-authored-by: premultiply <4681172+premultiply@users.noreply.github.com>
This commit is contained in:
andig 2026-06-27 14:32:13 +02:00 • committed by GitHub
parent 37e96867ab
commit 06f6eb1d26
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
35 changed files with 985 additions and 175 deletions

View file

@ -108,6 +108,16 @@ func ConfigurationsByClass(class templates.Class) ([]Config, error) {
return res, tx.Error
}
// ConfigurationByClass returns the single configuration for class, or nil if none
func ConfigurationByClass(class templates.Class) (*Config, error) {
configs, err := ConfigurationsByClass(class)
if err != nil || len(configs) == 0 {
return nil, err
}
return &configs[0], nil
}
// ConfigByID returns device by id from the database
func ConfigByID(id int) (Config, error) {
var config Config

View file

@ -4,6 +4,7 @@ import (
evbus "github.com/asaskevich/EventBus"
"github.com/evcc-io/evcc/api"
"github.com/evcc-io/evcc/core/loadpoint"
"github.com/evcc-io/evcc/hems/hems"
)
var bus = evbus.New()
@ -13,6 +14,7 @@ var instance struct {
chargers *handler[api.Charger]
vehicles *handler[api.Vehicle]
circuits *handler[api.Circuit]
hems *handler[hems.API]
messengers *handler[api.Messenger]
loadpoints *handler[loadpoint.API]
tariffs *handler[api.Tariff]
@ -27,6 +29,7 @@ func Reset() {
instance.chargers = &handler[api.Charger]{topic: "charger"}
instance.vehicles = &handler[api.Vehicle]{topic: "vehicle"}
instance.circuits = &handler[api.Circuit]{topic: "circuit"}
instance.hems = &handler[hems.API]{topic: "hems"}
instance.messengers = &handler[api.Messenger]{topic: "messenger"}
instance.loadpoints = &handler[loadpoint.API]{topic: "loadpoint"}
instance.tariffs = &handler[api.Tariff]{topic: "tariff"}
@ -60,6 +63,10 @@ func Circuits() Handler[api.Circuit] {
return instance.circuits
}
func Hems() Handler[hems.API] {
return instance.hems
}
func Loadpoints() Handler[loadpoint.API] {
return instance.loadpoints
}

View file

@ -12,4 +12,5 @@ const (
Loadpoint
Circuit
Messenger
Hems
)

View file

@ -7,11 +7,11 @@ import (
"strings"
)
const _ClassName = "chargermetervehicletariffloadpointcircuitmessenger"
const _ClassName = "chargermetervehicletariffloadpointcircuitmessengerhems"
var _ClassIndex = [...]uint8{0, 7, 12, 19, 25, 34, 41, 50}
var _ClassIndex = [...]uint8{0, 7, 12, 19, 25, 34, 41, 50, 54}
const _ClassLowerName = "chargermetervehicletariffloadpointcircuitmessenger"
const _ClassLowerName = "chargermetervehicletariffloadpointcircuitmessengerhems"
func (i Class) String() string {
i -= 1
@ -32,9 +32,10 @@ func _ClassNoOp() {
_ = x[Loadpoint-(5)]
_ = x[Circuit-(6)]
_ = x[Messenger-(7)]
_ = x[Hems-(8)]
}
var _ClassValues = []Class{Charger, Meter, Vehicle, Tariff, Loadpoint, Circuit, Messenger}
var _ClassValues = []Class{Charger, Meter, Vehicle, Tariff, Loadpoint, Circuit, Messenger, Hems}
var _ClassNameToValueMap = map[string]Class{
_ClassName[0:7]: Charger,
@ -51,6 +52,8 @@ var _ClassNameToValueMap = map[string]Class{
_ClassLowerName[34:41]: Circuit,
_ClassName[41:50]: Messenger,
_ClassLowerName[41:50]: Messenger,
_ClassName[50:54]: Hems,
_ClassLowerName[50:54]: Hems,
}
var _ClassNames = []string{
@ -61,6 +64,7 @@ var _ClassNames = []string{
_ClassName[25:34],
_ClassName[34:41],
_ClassName[41:50],
_ClassName[50:54],
}
// ClassString retrieves an enum value from the enum constants string name.

View file

@ -33,7 +33,7 @@ func init() {
baseTmpl = template.Must(FuncMap(template.New("base")).ParseFS(includeFS, "includes/*.tpl"))
for _, class := range []Class{Charger, Meter, Vehicle, Tariff, Messenger, Circuit} {
for _, class := range []Class{Charger, Meter, Vehicle, Tariff, Messenger, Circuit, Hems} {
load(class)
}
}