Refactor to support Wallbe dip 10 enable/disable

This commit is contained in:
andig 2020-03-18 16:16:35 +01:00
parent 3c503b333d
commit da74ce17fd
48 changed files with 1274 additions and 1393 deletions

View file

@ -2,19 +2,19 @@ package api
import "time"
//go:generate mockgen -package mock -destination ../mock/mock.go github.com/andig/evcc/api Charger,ChargeController,Meter,MeterEnergy
//go:generate mockgen -package mock -destination ../mock/mock.go github.com/andig/evcc/api Charger,Meter,MeterEnergy
// Meter is able to provide current power at metering point
type Meter interface {
CurrentPower() (float64, error)
}
// ChargeMode are charge modes modeled after OpenWB
type ChargeMode string
// MeterEnergy is able to provide current power at metering point
type MeterEnergy interface {
TotalEnergy() (float64, error)
}
const (
ModeOff ChargeMode = "off"
ModeNow ChargeMode = "now"
ModeMinPV ChargeMode = "minpv"
ModePV ChargeMode = "pv"
)
// ChargeStatus is the EVSE models charging status from A to F
// ChargeStatus is the EV's charging status from A to F
type ChargeStatus string
const (
@ -27,17 +27,21 @@ const (
StatusF ChargeStatus = "F" // Fzg. angeschlossen: ja Laden möglich: nein
)
// Meter is able to provide current power in W
type Meter interface {
CurrentPower() (float64, error)
}
// MeterEnergy is able to provide current energy in kWh
type MeterEnergy interface {
TotalEnergy() (float64, error)
}
// Charger is able to provide current charging status and to enable/disabler charging
type Charger interface {
Status() (ChargeStatus, error)
Enabled() (bool, error)
Enable(enable bool) error
ActualCurrent() (int64, error)
// MaxCurrent(current int64) error
}
// ChargeController provides controlling of the charger's max allowed power
type ChargeController interface {
MaxCurrent(current int64) error
}
@ -46,21 +50,11 @@ type ChargeTimer interface {
ChargingTime() (time.Duration, error)
}
// ChargeRater provides charged energy amount
// ChargeRater provides charged energy amount in kWh
type ChargeRater interface {
ChargedEnergy() (float64, error)
}
// ChargeMode are charge modes modeled after OpenWB
type ChargeMode string
const (
ModeOff ChargeMode = "off"
ModeNow ChargeMode = "now"
ModeMinPV ChargeMode = "minpv"
ModePV ChargeMode = "pv"
)
// SoC represents the EV battery's state
type SoC interface {
ChargeState() (float64, error)