Add MeterReturnEnergy (#29805)

This commit is contained in:
andig 2026-06-02 13:53:13 +02:00 • committed by GitHub
parent 869ac1d6eb
commit 7b5df178ce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 196 additions and 57 deletions

View file

@ -9,7 +9,7 @@ import (
"golang.org/x/oauth2"
)
//go:generate go tool mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff
//go:generate go tool mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,MeterReturnEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff
// Meter provides total active power in W
type Meter interface {
@ -21,6 +21,11 @@ type MeterEnergy interface {
TotalEnergy() (float64, error)
}
// MeterReturnEnergy provides total returned energy in kWh
type MeterReturnEnergy interface {
ReturnEnergy() (float64, error)
}
// PhaseCurrents provides per-phase current A
type PhaseCurrents interface {
Currents() (float64, float64, float64, error)

View file

@ -273,6 +273,21 @@ func (i *iMeterEnergy) TotalEnergy() (float64, error) {
return i.meterEnergy0()
}
func MeterReturnEnergy(meterReturnEnergy0 func() (float64, error)) api.MeterReturnEnergy {
if meterReturnEnergy0 == nil {
return nil
}
return &iMeterReturnEnergy{meterReturnEnergy0}
}
type iMeterReturnEnergy struct {
meterReturnEnergy0 func() (float64, error)
}
func (i *iMeterReturnEnergy) ReturnEnergy() (float64, error) {
return i.meterReturnEnergy0()
}
func PhaseCurrents(phaseCurrents0 func() (float64, float64, float64, error)) api.PhaseCurrents {
if phaseCurrents0 == nil {
return nil

View file

@ -1,9 +1,9 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/evcc-io/evcc/api (interfaces: Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff)
// Source: github.com/evcc-io/evcc/api (interfaces: Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,MeterReturnEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff)
//
// Generated by this command:
//
// mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff
// mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,MeterReturnEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff
//
// Package api is a generated GoMock package.
@ -448,6 +448,45 @@ func (mr *MockMeterEnergyMockRecorder) TotalEnergy() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TotalEnergy", reflect.TypeOf((*MockMeterEnergy)(nil).TotalEnergy))
}
// MockMeterReturnEnergy is a mock of MeterReturnEnergy interface.
type MockMeterReturnEnergy struct {
ctrl *gomock.Controller
recorder *MockMeterReturnEnergyMockRecorder
isgomock struct{}
}
// MockMeterReturnEnergyMockRecorder is the mock recorder for MockMeterReturnEnergy.
type MockMeterReturnEnergyMockRecorder struct {
mock *MockMeterReturnEnergy
}
// NewMockMeterReturnEnergy creates a new mock instance.
func NewMockMeterReturnEnergy(ctrl *gomock.Controller) *MockMeterReturnEnergy {
mock := &MockMeterReturnEnergy{ctrl: ctrl}
mock.recorder = &MockMeterReturnEnergyMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockMeterReturnEnergy) EXPECT() *MockMeterReturnEnergyMockRecorder {
return m.recorder
}
// ReturnEnergy mocks base method.
func (m *MockMeterReturnEnergy) ReturnEnergy() (float64, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ReturnEnergy")
ret0, _ := ret[0].(float64)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ReturnEnergy indicates an expected call of ReturnEnergy.
func (mr *MockMeterReturnEnergyMockRecorder) ReturnEnergy() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReturnEnergy", reflect.TypeOf((*MockMeterReturnEnergy)(nil).ReturnEnergy))
}
// MockPhaseCurrents is a mock of PhaseCurrents interface.
type MockPhaseCurrents struct {
ctrl *gomock.Controller