chore: use Go 1.24 (#17656)
This commit is contained in:
parent
3020e1a03a
commit
91ad41d2c1
76 changed files with 91 additions and 118 deletions
8
.github/workflows/default.yml
vendored
8
.github/workflows/default.yml
vendored
|
|
@ -1,8 +1,5 @@
|
|||
name: Default
|
||||
|
||||
env:
|
||||
GO_VERSION: ^1.23
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
|
@ -20,7 +17,6 @@ jobs:
|
|||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
cache: false
|
||||
id: go
|
||||
|
||||
|
|
@ -58,7 +54,6 @@ jobs:
|
|||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
cache: false
|
||||
id: go
|
||||
|
||||
|
|
@ -91,7 +86,6 @@ jobs:
|
|||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
cache: false
|
||||
id: go
|
||||
|
||||
|
|
@ -117,7 +111,6 @@ jobs:
|
|||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
cache: false # avoid cache thrashing
|
||||
id: go
|
||||
|
||||
|
|
@ -183,7 +176,6 @@ jobs:
|
|||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
cache: false
|
||||
id: go
|
||||
|
||||
|
|
|
|||
4
.github/workflows/documentation.yml
vendored
4
.github/workflows/documentation.yml
vendored
|
|
@ -1,8 +1,5 @@
|
|||
name: Deploy updated templates
|
||||
|
||||
env:
|
||||
GO_VERSION: ^1.23
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 2 * * *" # same time as nightly is triggered
|
||||
|
|
@ -20,7 +17,6 @@ jobs:
|
|||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
id: go
|
||||
|
||||
- name: Build docs
|
||||
|
|
|
|||
4
.github/workflows/nightly.yml
vendored
4
.github/workflows/nightly.yml
vendored
|
|
@ -1,8 +1,5 @@
|
|||
name: Nightly Build
|
||||
|
||||
env:
|
||||
GO_VERSION: ^1.23
|
||||
|
||||
on:
|
||||
schedule: # runs on the default branch: master
|
||||
- cron: "0 2 * * *" # run at 2 AM UTC
|
||||
|
|
@ -84,7 +81,6 @@ jobs:
|
|||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
id: go
|
||||
|
||||
- name: Patch ASN1
|
||||
|
|
|
|||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -1,8 +1,5 @@
|
|||
name: Release
|
||||
|
||||
env:
|
||||
GO_VERSION: ^1.23
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
|
|
@ -64,7 +61,6 @@ jobs:
|
|||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
id: go
|
||||
|
||||
- name: Patch ASN1
|
||||
|
|
|
|||
4
.github/workflows/website.yml
vendored
4
.github/workflows/website.yml
vendored
|
|
@ -1,8 +1,5 @@
|
|||
name: Deploy data to website
|
||||
|
||||
env:
|
||||
GO_VERSION: ^1.23
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [created]
|
||||
|
|
@ -18,7 +15,6 @@ jobs:
|
|||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
id: go
|
||||
|
||||
- name: Build docs
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
run:
|
||||
go: "1.23"
|
||||
go: "1.24"
|
||||
|
||||
issues:
|
||||
exclude:
|
||||
|
|
|
|||
|
|
@ -33,14 +33,6 @@ builds:
|
|||
flags:
|
||||
- -trimpath
|
||||
- -tags=release,timetzdata
|
||||
- goos: darwin
|
||||
goarch: arm64
|
||||
ldflags:
|
||||
- -X github.com/evcc-io/evcc/server.Version={{ .Tag }} -X github.com/evcc-io/evcc/server.Commit={{ .ShortCommit }} -s -w -B gobuildid
|
||||
- goos: darwin
|
||||
goarch: amd64
|
||||
ldflags:
|
||||
- -X github.com/evcc-io/evcc/server.Version={{ .Tag }} -X github.com/evcc-io/evcc/server.Commit={{ .ShortCommit }} -s -w -B gobuildid
|
||||
|
||||
archives:
|
||||
- builds:
|
||||
|
|
|
|||
|
|
@ -38,14 +38,6 @@ builds:
|
|||
flags:
|
||||
- -trimpath
|
||||
- -tags=release,timetzdata
|
||||
- goos: darwin
|
||||
goarch: arm64
|
||||
ldflags:
|
||||
- -X github.com/evcc-io/evcc/server.Version={{ .Version }} -s -w -B gobuildid
|
||||
- goos: darwin
|
||||
goarch: amd64
|
||||
ldflags:
|
||||
- -X github.com/evcc-io/evcc/server.Version={{ .Version }} -s -w -B gobuildid
|
||||
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ RUN make ui
|
|||
|
||||
|
||||
# STEP 2 build executable binary
|
||||
FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS builder
|
||||
FROM --platform=$BUILDPLATFORM golang:1.24-alpine AS builder
|
||||
|
||||
# Install git + SSL ca certificates.
|
||||
# Git is required for fetching the dependencies.
|
||||
|
|
|
|||
2
Makefile
2
Makefile
|
|
@ -37,7 +37,7 @@ clean::
|
|||
rm -rf dist/
|
||||
|
||||
install::
|
||||
go install $$(go list -e -f '{{join .Imports " "}}' tools.go)
|
||||
go install tool
|
||||
|
||||
install-ui::
|
||||
npm ci
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
//go:generate mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ChargeRater,Battery,Tariff,BatteryController,Circuit
|
||||
//go:generate go tool mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ChargeRater,Battery,Tariff,BatteryController,Circuit
|
||||
|
||||
// Meter provides total active power in W
|
||||
type Meter interface {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package api
|
|||
// BatteryMode is the home battery operation mode. Valid values are normal, locked and charge
|
||||
type BatteryMode int
|
||||
|
||||
//go:generate enumer -type BatteryMode -trimprefix Battery -transform=lower
|
||||
//go:generate go tool enumer -type BatteryMode -trimprefix Battery -transform=lower
|
||||
const (
|
||||
BatteryUnknown BatteryMode = iota
|
||||
BatteryNormal
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package api
|
|||
|
||||
type Feature int
|
||||
|
||||
//go:generate enumer -type Feature -text
|
||||
//go:generate go tool enumer -type Feature -text
|
||||
const (
|
||||
_ Feature = iota
|
||||
Offline
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package api
|
|||
|
||||
type Reason int
|
||||
|
||||
//go:generate enumer -type Reason -trimprefix Reason -transform=lower
|
||||
//go:generate go tool enumer -type Reason -trimprefix Reason -transform=lower
|
||||
const (
|
||||
ReasonUnknown Reason = iota
|
||||
ReasonWaitingForAuthorization
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package api
|
||||
|
||||
//go:generate enumer -type TariffType -trimprefix TariffType -transform=lower -text
|
||||
//go:generate enumer -type TariffUsage -trimprefix TariffUsage -transform=lower
|
||||
//go:generate go tool enumer -type TariffType -trimprefix TariffType -transform=lower -text
|
||||
//go:generate go tool enumer -type TariffUsage -trimprefix TariffUsage -transform=lower
|
||||
|
||||
type TariffType int
|
||||
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ func NewABLeMHFromConfig(other map[string]interface{}) (api.Charger, error) {
|
|||
return NewABLeMH(cc.URI, cc.Device, cc.Comset, cc.Baudrate, cc.ID, cc.Timeout)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateABLeMH -b *ABLeMH -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decorateABLeMH -b *ABLeMH -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewABLeMH creates ABLeMH charger
|
||||
func NewABLeMH(uri, device, comset string, baudrate int, slaveID uint8, timeout time.Duration) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ func init() {
|
|||
registry.AddCtx("alfen", NewAlfenFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateAlfen -b *Alfen -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
//go:generate go tool decorate -f decorateAlfen -b *Alfen -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
|
||||
// NewAlfenFromConfig creates a Alfen charger from generic config
|
||||
func NewAlfenFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ func init() {
|
|||
registry.AddCtx("amperfied", NewAmperfiedFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateAmperfied -b *Amperfied -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
//go:generate go tool decorate -f decorateAmperfied -b *Amperfied -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
|
||||
// NewAmperfiedFromConfig creates a Amperfied charger from generic config
|
||||
func NewAmperfiedFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ func NewBenderCCFromConfig(other map[string]interface{}) (api.Charger, error) {
|
|||
return NewBenderCC(cc.URI, cc.ID)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateBenderCC -b *BenderCC -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.Identifier,Identify,func() (string, error)"
|
||||
//go:generate go tool decorate -f decorateBenderCC -b *BenderCC -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.Identifier,Identify,func() (string, error)"
|
||||
|
||||
// NewBenderCC creates BenderCC charger
|
||||
func NewBenderCC(uri string, id uint8) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ func init() {
|
|||
registry.Add("cfos", NewCfosPowerBrainFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateCfos -b *CfosPowerBrain -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
//go:generate go tool decorate -f decorateCfos -b *CfosPowerBrain -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
|
||||
// NewCfosPowerBrainFromConfig creates a cFos charger from generic config
|
||||
func NewCfosPowerBrainFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ func init() {
|
|||
registry.AddCtx(api.Custom, NewConfigurableFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateCustom -b *Charger -r api.Charger -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.Identifier,Identify,func() (string, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Resurrector,WakeUp,func() error" -t "api.Battery,Soc,func() (float64, error)" -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decorateCustom -b *Charger -r api.Charger -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.Identifier,Identify,func() (string, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Resurrector,WakeUp,func() error" -t "api.Battery,Soc,func() (float64, error)" -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewConfigurableFromConfig creates a new configurable charger
|
||||
func NewConfigurableFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ const (
|
|||
// https://www.notion.so/Charger-template-c6a20ff7cfea41e2b5f80b00afb34af5
|
||||
type ObservationID int
|
||||
|
||||
//go:generate enumer -type ObservationID
|
||||
//go:generate go tool enumer -type ObservationID
|
||||
const (
|
||||
SELF_TEST_RESULT ObservationID = 1 // PASSED or error codes [String]
|
||||
SELF_TEST_DETAILS ObservationID = 2 // JSON with details from self-test [String]
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ func NewEEBusFromConfig(other map[string]interface{}) (api.Charger, error) {
|
|||
return NewEEBus(cc.Ski, cc.Ip, cc.Meter, cc.ChargedEnergy, cc.VasVW)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateEEBus -b *EEBus -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.ChargeRater,ChargedEnergy,func() (float64, error)"
|
||||
//go:generate go tool decorate -f decorateEEBus -b *EEBus -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.ChargeRater,ChargedEnergy,func() (float64, error)"
|
||||
|
||||
// NewEEBus creates EEBus charger
|
||||
func NewEEBus(ski, ip string, hasMeter, hasChargedEnergy, vasVW bool) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ func init() {
|
|||
registry.Add("em2go-home", NewEm2GoFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateEm2Go -b *Em2Go -r api.Charger -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
//go:generate go tool decorate -f decorateEm2Go -b *Em2Go -r api.Charger -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
|
||||
// NewEm2GoFromConfig creates a Em2Go charger from generic config
|
||||
func NewEm2GoFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ func init() {
|
|||
registry.Add("evsewifi", NewEVSEWifiFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateEVSE -b *EVSEWifi -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.Identifier,Identify,func() (string, error)"
|
||||
//go:generate go tool decorate -f decorateEVSE -b *EVSEWifi -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.Identifier,Identify,func() (string, error)"
|
||||
|
||||
// NewEVSEWifiFromConfig creates a EVSEWifi charger from generic config
|
||||
func NewEVSEWifiFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ func init() {
|
|||
})
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateGoE -b *GoE -r api.Charger -t "api.ChargeRater,ChargedEnergy,func() (float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
//go:generate go tool decorate -f decorateGoE -b *GoE -r api.Charger -t "api.ChargeRater,ChargedEnergy,func() (float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
|
||||
// newGoEFromConfig creates a go-e charger from generic config
|
||||
func newGoEFromConfig(v2 bool, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ func init() {
|
|||
registry.AddCtx("hardybarth-salia", NewSaliaFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateSalia -b *Salia -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
//go:generate go tool decorate -f decorateSalia -b *Salia -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
|
||||
// NewSaliaFromConfig creates a Salia cPH2 charger from generic config
|
||||
func NewSaliaFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ func NewInnogyFromConfig(other map[string]interface{}) (api.Charger, error) {
|
|||
return decorateInnogy(wb, totalEnergy, voltages), nil
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateInnogy -b *Innogy -r api.Charger -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decorateInnogy -b *Innogy -r api.Charger -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewInnogy creates a Innogy charger
|
||||
func NewInnogy(uri string, id uint8) (*Innogy, error) {
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ func init() {
|
|||
registry.AddCtx("keba-modbus", NewKebaFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateKeba -b *Keba -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.Identifier,Identify,func() (string, error)" -t "api.StatusReasoner,StatusReason,func() (api.Reason, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
//go:generate go tool decorate -f decorateKeba -b *Keba -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.Identifier,Identify,func() (string, error)" -t "api.StatusReasoner,StatusReason,func() (api.Reason, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
|
||||
// NewKebaFromConfig creates a new Keba ModbusTCP charger
|
||||
func NewKebaFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ func init() {
|
|||
registry.Add("keba-udp", NewKebaUdpFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateKebaUdp -b *KebaUdp -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decorateKebaUdp -b *KebaUdp -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewKebaUdpFromConfig creates a new Keba UDP charger
|
||||
func NewKebaUdpFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ func NewKSEFromConfig(other map[string]interface{}) (api.Charger, error) {
|
|||
return NewKSE(cc.URI, cc.Device, cc.Comset, cc.Baudrate, cc.ID)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateKSE -b *KSE -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)" -t "api.Identifier,Identify,func() (string, error)"
|
||||
//go:generate go tool decorate -f decorateKSE -b *KSE -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)" -t "api.Identifier,Identify,func() (string, error)"
|
||||
|
||||
// NewKSE creates KSE charger
|
||||
func NewKSE(uri, device, comset string, baudrate int, slaveID uint8) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ func init() {
|
|||
registry.Add("nrggen2", NewNRGKickGen2FromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateNRGKickGen2 -b *NRGKickGen2 -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
//go:generate go tool decorate -f decorateNRGKickGen2 -b *NRGKickGen2 -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
|
||||
// NewNRGKickGen2FromConfig creates a NRGKickGen2 charger from generic config
|
||||
func NewNRGKickGen2FromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ func NewOCPPFromConfig(other map[string]interface{}) (api.Charger, error) {
|
|||
return decorateOCPP(c, powerG, totalEnergyG, currentsG, voltagesG, currentG, phasesS, socG), nil
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateOCPP -b *OCPP -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.CurrentGetter,GetMaxCurrent,func() (float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Battery,Soc,func() (float64, error)"
|
||||
//go:generate go tool decorate -f decorateOCPP -b *OCPP -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.CurrentGetter,GetMaxCurrent,func() (float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Battery,Soc,func() (float64, error)"
|
||||
|
||||
// NewOCPP creates OCPP charger
|
||||
func NewOCPP(id string, connector int, idTag string,
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ func init() {
|
|||
registry.Add("openevse", NewOpenEVSEFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateOpenEVSE -b *OpenEVSE -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
//go:generate go tool decorate -f decorateOpenEVSE -b *OpenEVSE -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
|
||||
// NewOpenEVSEFromConfig creates an OpenEVSE charger from generic config
|
||||
func NewOpenEVSEFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ func init() {
|
|||
|
||||
// https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf
|
||||
|
||||
//go:generate decorate -f decorateOpenWB20 -b *OpenWB20 -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Identifier,Identify,func() (string, error)"
|
||||
//go:generate go tool decorate -f decorateOpenWB20 -b *OpenWB20 -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Identifier,Identify,func() (string, error)"
|
||||
|
||||
// NewOpenWB20FromConfig creates a OpenWB20 charger from generic config
|
||||
func NewOpenWB20FromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ type OpenWB struct {
|
|||
authS func(string) error
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateOpenWB -b *OpenWB -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Battery,Soc,func() (float64, error)"
|
||||
//go:generate go tool decorate -f decorateOpenWB -b *OpenWB -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.Battery,Soc,func() (float64, error)"
|
||||
|
||||
// NewOpenWBFromConfig creates a new configurable charger
|
||||
func NewOpenWBFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ func init() {
|
|||
registry.Add("pcelectric", NewPCElectricFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decoratePCE -b *PCElectric -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decoratePCE -b *PCElectric -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewPCElectricFromConfig creates a PCElectric charger from generic config
|
||||
func NewPCElectricFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ func init() {
|
|||
registry.Add("peblar", NewPeblarFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decoratePeblar -b *Peblar -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
//go:generate go tool decorate -f decoratePeblar -b *Peblar -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
|
||||
// NewPeblarFromConfig creates a Peblar charger from generic config
|
||||
func NewPeblarFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ func init() {
|
|||
registry.Add("phoenix-charx", NewPhoenixCharxFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decoratePhoenixCharx -b *PhoenixCharx -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decoratePhoenixCharx -b *PhoenixCharx -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewPhoenixCharxFromConfig creates a Phoenix charger from generic config
|
||||
func NewPhoenixCharxFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ func init() {
|
|||
registry.Add("phoenix-em-eth", NewPhoenixEMEthFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decoratePhoenixEMEth -b *PhoenixEMEth -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decoratePhoenixEMEth -b *PhoenixEMEth -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewPhoenixEMEthFromConfig creates a Phoenix charger from generic config
|
||||
func NewPhoenixEMEthFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ func init() {
|
|||
registry.Add("phoenix-ev-eth", NewPhoenixEVEthFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decoratePhoenixEVEth -b *PhoenixEVEth -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.Identifier,Identify,func() (string, error)"
|
||||
//go:generate go tool decorate -f decoratePhoenixEVEth -b *PhoenixEVEth -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.Identifier,Identify,func() (string, error)"
|
||||
|
||||
// NewPhoenixEVEthFromConfig creates a PhoenixEVEth charger from generic config
|
||||
func NewPhoenixEVEthFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ func init() {
|
|||
registry.AddCtx("pulsares", NewPulsaresFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decoratePulsares -b *Pulsares -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
//go:generate go tool decorate -f decoratePulsares -b *Pulsares -r api.Charger -t "api.PhaseSwitcher,Phases1p3p,func(int) error"
|
||||
|
||||
// NewPulsaresFromConfig creates a Pulsares charger from generic config
|
||||
func NewPulsaresFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ const (
|
|||
Stop
|
||||
)
|
||||
|
||||
//go:generate decorate -f decorateSgReady -b *SgReady -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.SocLimiter,GetLimitSoc,func() (int64, error)"
|
||||
//go:generate go tool decorate -f decorateSgReady -b *SgReady -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.SocLimiter,GetLimitSoc,func() (int64, error)"
|
||||
|
||||
// NewSgReadyFromConfig creates an SG Ready configurable charger from generic config
|
||||
func NewSgReadyFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ type SwitchSocket struct {
|
|||
*switchSocket
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateSwitchSocket -b *SwitchSocket -r api.Charger -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)"
|
||||
//go:generate go tool decorate -f decorateSwitchSocket -b *SwitchSocket -r api.Charger -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)"
|
||||
|
||||
func NewSwitchSocketFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
var cc struct {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ func init() {
|
|||
registry.Add("tasmota", NewTasmotaFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateTasmota -b *Tasmota -r api.Charger -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decorateTasmota -b *Tasmota -r api.Charger -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewTasmotaFromConfig creates a Tasmota charger from generic config
|
||||
func NewTasmotaFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ type Vaillant struct {
|
|||
systemId string
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateVaillant -b *Vaillant -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)"
|
||||
//go:generate go tool decorate -f decorateVaillant -b *Vaillant -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)"
|
||||
|
||||
// NewVaillantFromConfig creates an Vaillant configurable charger from generic config
|
||||
func NewVaillantFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ func init() {
|
|||
registry.Add("wallbe", NewWallbeFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateWallbe -b *Wallbe -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.ChargerEx,MaxCurrentMillis,func(float64) error"
|
||||
//go:generate go tool decorate -f decorateWallbe -b *Wallbe -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.ChargerEx,MaxCurrentMillis,func(float64) error"
|
||||
|
||||
// NewWallbeFromConfig creates a Wallbe charger from generic config
|
||||
func NewWallbeFromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ type EmConfig struct {
|
|||
PhaseSwitchingMode int `json:"phase_switching_mode"`
|
||||
}
|
||||
|
||||
//go:generate enumer -type ExternalControl -trimprefix ExternalControl -transform whitespace
|
||||
//go:generate go tool enumer -type ExternalControl -trimprefix ExternalControl -transform whitespace
|
||||
type ExternalControl int
|
||||
|
||||
const (
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ func init() {
|
|||
registry.Add("warp-fw2", NewWarp2FromConfig) // deprecated
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateWarp2 -b *Warp2 -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.Identifier,Identify,func() (string, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
//go:generate go tool decorate -f decorateWarp2 -b *Warp2 -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.Identifier,Identify,func() (string, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
|
||||
// NewWarpFromConfig creates a new configurable charger
|
||||
func NewWarp2FromConfig(other map[string]interface{}) (api.Charger, error) {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ const ApiURL = "https://api.zaptec.com"
|
|||
|
||||
type ObservationID int
|
||||
|
||||
//go:generate enumer -type ObservationID
|
||||
//go:generate go tool enumer -type ObservationID
|
||||
|
||||
// Commands
|
||||
const (
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import (
|
|||
"golang.org/x/tools/imports"
|
||||
)
|
||||
|
||||
//go:generate go run ./decorate.go -f decorateTest -b api.Charger -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
//go:generate go tool decorate -f decorateTest -b api.Charger -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)"
|
||||
|
||||
//go:embed decorate.tpl
|
||||
var srcTmpl string
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import (
|
|||
|
||||
type Class int
|
||||
|
||||
//go:generate enumer -type Class -trimprefix Class -transform=lower -text
|
||||
//go:generate go tool enumer -type Class -trimprefix Class -transform=lower -text
|
||||
const (
|
||||
_ Class = iota
|
||||
ClassConfigFile
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import (
|
|||
"github.com/evcc-io/evcc/api"
|
||||
)
|
||||
|
||||
//go:generate mockgen -package loadpoint -destination mock.go -mock_names API=MockAPI github.com/evcc-io/evcc/core/loadpoint API
|
||||
//go:generate go tool mockgen -package loadpoint -destination mock.go -mock_names API=MockAPI github.com/evcc-io/evcc/core/loadpoint API
|
||||
|
||||
// Controller gives access to loadpoint
|
||||
type Controller interface {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import (
|
|||
"github.com/evcc-io/evcc/api"
|
||||
)
|
||||
|
||||
//go:generate mockgen -package vehicle -destination mock.go -mock_names API=MockAPI github.com/evcc-io/evcc/core/vehicle API
|
||||
//go:generate go tool mockgen -package vehicle -destination mock.go -mock_names API=MockAPI github.com/evcc-io/evcc/core/vehicle API
|
||||
|
||||
type API interface {
|
||||
// Instance returns the vehicle instance
|
||||
|
|
|
|||
16
go.mod
16
go.mod
|
|
@ -1,6 +1,6 @@
|
|||
module github.com/evcc-io/evcc
|
||||
|
||||
go 1.23.3
|
||||
go 1.24
|
||||
|
||||
require (
|
||||
dario.cat/mergo v1.0.1
|
||||
|
|
@ -25,7 +25,6 @@ require (
|
|||
github.com/containrrr/shoutrrr v0.8.0
|
||||
github.com/coreos/go-oidc/v3 v3.12.0
|
||||
github.com/denisbrodbeck/machineid v1.0.1
|
||||
github.com/dmarkham/enumer v1.5.10
|
||||
github.com/dylanmei/iso8601 v0.1.0
|
||||
github.com/eclipse/paho.mqtt.golang v1.5.0
|
||||
github.com/enbility/eebus-go v0.7.0
|
||||
|
|
@ -118,11 +117,14 @@ require (
|
|||
github.com/azihsoyn/rijndael256 v0.0.0-20200316065338-d14eefa2b66b // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/bitly/go-simplejson v0.5.0 // indirect
|
||||
github.com/breml/rootcerts v0.2.10 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
|
||||
github.com/cronokirby/saferith v0.33.0 // indirect
|
||||
github.com/cstockton/go-conv v1.0.0 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/dmarkham/enumer v1.5.10 // indirect
|
||||
github.com/donovanhide/eventsource v0.0.0-20210830082556-c59027999da0 // indirect
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/enbility/go-avahi v0.0.0-20240909195612-d5de6b280d7a // indirect
|
||||
github.com/enbility/zeroconf/v2 v2.0.0-20240920094356-be1cae74fda6 // indirect
|
||||
|
|
@ -138,8 +140,11 @@ require (
|
|||
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
||||
github.com/go-playground/locales v0.14.1 // indirect
|
||||
github.com/go-playground/universal-translator v0.18.1 // indirect
|
||||
github.com/gokrazy/internal v0.0.0-20250126213949-423a5b587b57 // indirect
|
||||
github.com/gokrazy/tools v0.0.0-20250128200151-63160424957c // indirect
|
||||
github.com/golanguzb70/lrucache v1.2.0 // indirect
|
||||
github.com/google/go-querystring v1.1.0 // indirect
|
||||
github.com/google/renameio/v2 v2.0.0 // indirect
|
||||
github.com/gorilla/websocket v1.5.3 // indirect
|
||||
github.com/grid-x/serial v0.0.0-20211107191517-583c7356b3aa // indirect
|
||||
github.com/huandu/xstrings v1.5.0 // indirect
|
||||
|
|
@ -204,6 +209,13 @@ require (
|
|||
nhooyr.io/websocket v1.8.17 // indirect
|
||||
)
|
||||
|
||||
tool (
|
||||
github.com/dmarkham/enumer
|
||||
github.com/evcc-io/evcc/cmd/decorate
|
||||
github.com/gokrazy/tools/cmd/gok
|
||||
go.uber.org/mock/mockgen
|
||||
)
|
||||
|
||||
replace gopkg.in/yaml.v3 => github.com/andig/yaml v0.0.0-20240531135838-1ff5761ab467
|
||||
|
||||
replace github.com/grid-x/modbus => github.com/evcc-io/modbus v0.0.0-20241027151224-722a7a5ae529
|
||||
|
|
|
|||
10
go.sum
10
go.sum
|
|
@ -76,6 +76,8 @@ github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngE
|
|||
github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w=
|
||||
github.com/bogosj/tesla v1.3.1 h1:2iTieXh8jqG8FGWs63aQfRWbD7toLUm6fQ7677eevIE=
|
||||
github.com/bogosj/tesla v1.3.1/go.mod h1:JvkjZAswd288BeRYd37fKqyYKLcDj3E5oY/OuLzndaI=
|
||||
github.com/breml/rootcerts v0.2.10 h1:UGVZ193UTSUASpGtg6pbDwzOd7XQP+at0Ssg1/2E4h8=
|
||||
github.com/breml/rootcerts v0.2.10/go.mod h1:24FDtzYMpqIeYC7QzaE8VPRQaFZU5TIUDlyk8qwjD88=
|
||||
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
||||
|
|
@ -123,6 +125,8 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
|
|||
github.com/dmarkham/enumer v1.5.2/go.mod h1:jZ3PNbNJDEkFGx54MlkSjnDQUo7445l7/guoKdh9cY8=
|
||||
github.com/dmarkham/enumer v1.5.10 h1:ygL0L6quiTiH1jpp68DyvsWaea6MaZLZrTTkIS++R0M=
|
||||
github.com/dmarkham/enumer v1.5.10/go.mod h1:e4VILe2b1nYK3JKJpRmNdl5xbDQvELc6tQ8b+GsGk6E=
|
||||
github.com/donovanhide/eventsource v0.0.0-20210830082556-c59027999da0 h1:C7t6eeMaEQVy6e8CarIhscYQlNmw5e3G36y7l7Y21Ao=
|
||||
github.com/donovanhide/eventsource v0.0.0-20210830082556-c59027999da0/go.mod h1:56wL82FO0bfMU5RvfXoIwSOP2ggqqxT+tAfNEIyxuHw=
|
||||
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||
|
|
@ -228,6 +232,10 @@ github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFG
|
|||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||
github.com/gokrazy/internal v0.0.0-20250126213949-423a5b587b57 h1:f5bEvO4we3fbfiBkECrrUgWQ8OH6J3SdB2Dwxid/Yx4=
|
||||
github.com/gokrazy/internal v0.0.0-20250126213949-423a5b587b57/go.mod h1:SJG1KwuJQXFEoBgryaNCkMbdISyovDgZd0xmXJRZmiw=
|
||||
github.com/gokrazy/tools v0.0.0-20250128200151-63160424957c h1:iEbS8GrNOn671ze8J/AfrYFEVzf8qMx8aR5K0VxPK2w=
|
||||
github.com/gokrazy/tools v0.0.0-20250128200151-63160424957c/go.mod h1:f2vZhnaPzy92+Bjpx1iuZHK7VuaJx6SNCWQWmu23HZA=
|
||||
github.com/gokrazy/updater v0.0.0-20240113102150-4ac511a17e33 h1:m6NVAznErzAL9fzaIh+HeFbbImxV6ku4iaUUHhYctmg=
|
||||
github.com/gokrazy/updater v0.0.0-20240113102150-4ac511a17e33/go.mod h1:PYOvzGOL4nlBmuxu7IyKQTFLaxr61+WPRNRzVtuYOHw=
|
||||
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
|
||||
|
|
@ -270,6 +278,8 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
|
|||
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo=
|
||||
github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/renameio/v2 v2.0.0 h1:UifI23ZTGY8Tt29JbYFiuyIU3eX+RNFtUwefq9qAhxg=
|
||||
github.com/google/renameio/v2 v2.0.0/go.mod h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxehU6hfe7jRt4=
|
||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ func init() {
|
|||
registry.Add("bosch-bpt", NewBoschBpts5HybridFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateBoschBpts5Hybrid -b api.Meter -t "api.Battery,Soc,func() (float64, error)"
|
||||
//go:generate go tool decorate -f decorateBoschBpts5Hybrid -b api.Meter -t "api.Battery,Soc,func() (float64, error)"
|
||||
|
||||
// NewBoschBpts5HybridFromConfig creates a Bosch BPT-S 5 Hybrid Meter from generic config
|
||||
func NewBoschBpts5HybridFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ func init() {
|
|||
registry.Add("dsmr", NewDsmrFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateDsmr -b api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decorateDsmr -b api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewDsmrFromConfig creates a DSMR meter from generic config
|
||||
func NewDsmrFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ func init() {
|
|||
registry.Add("e3dc-rscp", NewE3dcFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateE3dc -b *E3dc -r api.Meter -t "api.BatteryCapacity,Capacity,func() float64" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error"
|
||||
//go:generate go tool decorate -f decorateE3dc -b *E3dc -r api.Meter -t "api.BatteryCapacity,Capacity,func() float64" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error"
|
||||
|
||||
func NewE3dcFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
cc := struct {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ func init() {
|
|||
registry.Add("goodwe-wifi", NewGoodWeWifiFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateGoodWeWifi -b *goodWeWiFi -r api.Meter -t "api.Battery,Soc,func() (float64, error)"
|
||||
//go:generate go tool decorate -f decorateGoodWeWifi -b *goodWeWiFi -r api.Meter -t "api.Battery,Soc,func() (float64, error)"
|
||||
|
||||
// TODO deprecated remove
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ func init() {
|
|||
registry.Add("lgess15", NewLgEss15FromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateLgEss -b *LgEss -r api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64"
|
||||
//go:generate go tool decorate -f decorateLgEss -b *LgEss -r api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64"
|
||||
|
||||
func NewLgEss8FromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
return NewLgEssFromConfig(other, lgpcs.LgEss8)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ func init() {
|
|||
registry.Add("mbmd", NewModbusMbmdFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateModbusMbmd -b api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhasePowers,Powers,func() (float64, float64, float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64"
|
||||
//go:generate go tool decorate -f decorateModbusMbmd -b api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhasePowers,Powers,func() (float64, float64, float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64"
|
||||
|
||||
// NewModbusMbmdFromConfig creates api.Meter from config
|
||||
func NewModbusMbmdFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ func init() {
|
|||
registry.AddCtx(api.Custom, NewConfigurableFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateMeter -b api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhasePowers,Powers,func() (float64, float64, float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64" -t "api.MaxACPower,MaxACPower,func() float64" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error"
|
||||
//go:generate go tool decorate -f decorateMeter -b api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhasePowers,Powers,func() (float64, float64, float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64" -t "api.MaxACPower,MaxACPower,func() float64" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error"
|
||||
|
||||
// NewConfigurableFromConfig creates api.Meter from config
|
||||
func NewConfigurableFromConfig(ctx context.Context, other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ func init() {
|
|||
registry.Add("powerwall", NewPowerWallFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decoratePowerWall -b *PowerWall -r api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error"
|
||||
//go:generate go tool decorate -f decoratePowerWall -b *PowerWall -r api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error"
|
||||
|
||||
// NewPowerWallFromConfig creates a PowerWall Powerwall Meter from generic config
|
||||
func NewPowerWallFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ func init() {
|
|||
registry.Add("rct", NewRCTFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateRCT -b *RCT -r api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error" -t "api.BatteryCapacity,Capacity,func() float64"
|
||||
//go:generate go tool decorate -f decorateRCT -b *RCT -r api.Meter -t "api.MeterEnergy,TotalEnergy,func() (float64, error)" -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryController,SetBatteryMode,func(api.BatteryMode) error" -t "api.BatteryCapacity,Capacity,func() float64"
|
||||
|
||||
// NewRCTFromConfig creates an RCT from generic config
|
||||
func NewRCTFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ func init() {
|
|||
registry.Add("sma", NewSMAFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateSMA -b *SMA -r api.Meter -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64"
|
||||
//go:generate go tool decorate -f decorateSMA -b *SMA -r api.Meter -t "api.Battery,Soc,func() (float64, error)" -t "api.BatteryCapacity,Capacity,func() float64"
|
||||
|
||||
// NewSMAFromConfig creates an SMA meter from generic config
|
||||
func NewSMAFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ func init() {
|
|||
registry.Add("tasmota", NewTasmotaFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateTasmota -b *Tasmota -r api.Meter -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decorateTasmota -b *Tasmota -r api.Meter -t "api.PhaseVoltages,Voltages,func() (float64, float64, float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewTasmotaFromConfig creates a Tasmota meter from generic config
|
||||
func NewTasmotaFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ type TqEm struct {
|
|||
dataG func() (tqemData, error)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateTqEm -b api.Meter -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
//go:generate go tool decorate -f decorateTqEm -b api.Meter -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)"
|
||||
|
||||
// NewTqEmFromConfig creates a new configurable meter
|
||||
func NewTqEmFromConfig(other map[string]interface{}) (api.Meter, error) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package settings
|
||||
|
||||
//go:generate mockgen -package settings -destination mock.go -mock_names API=MockAPI github.com/evcc-io/evcc/server/db/settings API
|
||||
//go:generate go tool mockgen -package settings -destination mock.go -mock_names API=MockAPI github.com/evcc-io/evcc/server/db/settings API
|
||||
|
||||
type API interface {
|
||||
String(key string) (string, error)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
//go:generate enumer -type Day
|
||||
//go:generate go tool enumer -type Day
|
||||
type Day int
|
||||
|
||||
const (
|
||||
|
|
|
|||
9
tools.go
9
tools.go
|
|
@ -1,9 +0,0 @@
|
|||
//go:build tools
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
_ "github.com/dmarkham/enumer"
|
||||
_ "github.com/evcc-io/evcc/cmd/decorate"
|
||||
_ "go.uber.org/mock/mockgen"
|
||||
)
|
||||
|
|
@ -2,7 +2,7 @@ package templates
|
|||
|
||||
type Class int
|
||||
|
||||
//go:generate enumer -type Class -transform=lower
|
||||
//go:generate go tool enumer -type Class -transform=lower
|
||||
const (
|
||||
_ Class = iota
|
||||
Charger
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package templates
|
|||
|
||||
type ParamType int
|
||||
|
||||
//go:generate enumer -type ParamType -trimprefix Type -text
|
||||
//go:generate go tool enumer -type ParamType -trimprefix Type -text
|
||||
const (
|
||||
TypeString ParamType = iota // default type string
|
||||
TypeBool
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package templates
|
|||
|
||||
type Usage int
|
||||
|
||||
//go:generate enumer -type Usage -trimprefix Usage -transform=lower -text
|
||||
//go:generate go tool enumer -type Usage -trimprefix Usage -transform=lower -text
|
||||
const (
|
||||
UsageGrid Usage = iota
|
||||
UsagePV
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ func init() {
|
|||
registry.Add("tronity", NewTronityFromConfig)
|
||||
}
|
||||
|
||||
//go:generate decorate -f decorateTronity -b *Tronity -r api.Vehicle -t "api.ChargeState,Status,func() (api.ChargeStatus, error)" -t "api.VehicleOdometer,Odometer,func() (float64, error)" -t "api.ChargeController,ChargeEnable,func(bool) error"
|
||||
//go:generate go tool decorate -f decorateTronity -b *Tronity -r api.Vehicle -t "api.ChargeState,Status,func() (api.ChargeStatus, error)" -t "api.VehicleOdometer,Odometer,func() (float64, error)" -t "api.ChargeController,ChargeEnable,func(bool) error"
|
||||
|
||||
// NewTronityFromConfig creates a new vehicle
|
||||
func NewTronityFromConfig(other map[string]interface{}) (api.Vehicle, error) {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
"github.com/evcc-io/evcc/util"
|
||||
)
|
||||
|
||||
//go:generate decorate -f decorateVehicle -b api.Vehicle -t "api.SocLimiter,GetLimitSoc,func() (int64, error)" -t "api.ChargeState,Status,func() (api.ChargeStatus, error)" -t "api.VehicleRange,Range,func() (int64, error)" -t "api.VehicleOdometer,Odometer,func() (float64, error)" -t "api.VehicleClimater,Climater,func() (bool, error)" -t "api.CurrentController,MaxCurrent,func(int64) error" -t "api.CurrentGetter,GetMaxCurrent,func() (float64, error)" -t "api.VehicleFinishTimer,FinishTime,func() (time.Time, error)" -t "api.Resurrector,WakeUp,func() error" -t "api.ChargeController,ChargeEnable,func(bool) error"
|
||||
//go:generate go tool decorate -f decorateVehicle -b api.Vehicle -t "api.SocLimiter,GetLimitSoc,func() (int64, error)" -t "api.ChargeState,Status,func() (api.ChargeStatus, error)" -t "api.VehicleRange,Range,func() (int64, error)" -t "api.VehicleOdometer,Odometer,func() (float64, error)" -t "api.VehicleClimater,Climater,func() (bool, error)" -t "api.CurrentController,MaxCurrent,func(int64) error" -t "api.CurrentGetter,GetMaxCurrent,func() (float64, error)" -t "api.VehicleFinishTimer,FinishTime,func() (time.Time, error)" -t "api.Resurrector,WakeUp,func() error" -t "api.ChargeController,ChargeEnable,func(bool) error"
|
||||
|
||||
// Vehicle is an api.Vehicle implementation with configurable getters and setters.
|
||||
type Vehicle struct {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue