Documentation ¶
Index ¶
- Constants
- Variables
- func FeatureStrings() []string
- func TariffTypeStrings() []string
- type ActionConfig
- type AuthProvider
- type Authorizer
- type Battery
- type BatteryCapacity
- type ChargeMode
- type ChargeRater
- type ChargeState
- type ChargeStatus
- type ChargeTimer
- type Charger
- type ChargerEx
- type CsvWriter
- type CurrentGetter
- type CurrentLimiter
- type Diagnosis
- type Feature
- type FeatureDescriber
- type IconDescriber
- type Identifier
- type Meter
- type MeterEnergy
- type PhaseCurrents
- type PhasePowers
- type PhaseSwitcher
- type PhaseVoltages
- type Rate
- type Rates
- type Resurrector
- type SocLimiter
- type Tariff
- type TariffType
- type Vehicle
- type VehicleChargeController
- type VehicleClimater
- type VehicleFinishTimer
- type VehicleOdometer
- type VehiclePosition
- type VehicleRange
Constants ¶
const Custom = "custom"
Custom meter/charger/vehicle type
Variables ¶
var ErrAsleep error = errAsleep{}
ErrAsleep indicates that vehicle is asleep. Caller may chose to wake up the vehicle and retry.
var ErrMissingCredentials = errors.New("missing credentials")
ErrMissingCredentials indicates that user/password are missing
var ErrMustRetry = errors.New("must retry")
ErrMustRetry indicates that a rate-limited operation should be retried
var ErrNotAvailable = errors.New("not available")
ErrNotAvailable indicates that a feature is not available
var ErrOutdated = errors.New("outdated")
ErrOutdated indicates that result is outdated
var ErrSponsorRequired = errors.New("sponsorship required, see https://github.com/thommyho/robotui#sponsorship")
ErrSponsorRequired indicates that a sponsor token is required
var ErrTimeout error = errTimeoutError{}
ErrTimeout is the error returned when a timeout happened. Modeled after context.DeadlineError
Functions ¶
func FeatureStrings ¶
func FeatureStrings() []string
FeatureStrings returns a slice of all String values of the enum
func TariffTypeStrings ¶
func TariffTypeStrings() []string
TariffTypeStrings returns a slice of all String values of the enum
Types ¶
type ActionConfig ¶
type ActionConfig struct { Mode *ChargeMode `mapstructure:"mode,omitempty"` // Charge Mode MinCurrent *float64 `mapstructure:"minCurrent,omitempty"` // Minimum Current MaxCurrent *float64 `mapstructure:"maxCurrent,omitempty"` // Maximum Current MinSoc *int `mapstructure:"minSoc,omitempty"` // Minimum Soc TargetSoc *int `mapstructure:"targetSoc,omitempty"` // Target Soc Priority *int `mapstructure:"priority,omitempty"` // Priority }
ActionConfig defines an action to take on event
func (ActionConfig) Merge ¶
func (a ActionConfig) Merge(m ActionConfig) ActionConfig
Merge merges all non-nil properties of the additional config into the base config. The receiver's config remains immutable.
func (ActionConfig) String ¶
func (a ActionConfig) String() string
String implements Stringer and returns the ActionConfig as comma-separated key:value string
type AuthProvider ¶
type AuthProvider interface { SetCallbackParams(baseURL, redirectURL string, authenticated chan<- bool) LoginHandler() http.HandlerFunc LogoutHandler() http.HandlerFunc }
AuthProvider is the ability to provide OAuth authentication through the ui
type Authorizer ¶
Authorizer authorizes a charging session by supplying RFID credentials
type BatteryCapacity ¶
type BatteryCapacity interface {
Capacity() float64
}
BatteryCapacity provides a capacity in kWh
type ChargeMode ¶
type ChargeMode string
ChargeMode is the charge operation mode. Valid values are off, now, minpv and pv
const ( ModeEmpty ChargeMode = "" ModeOff ChargeMode = "off" ModeNow ChargeMode = "now" ModeMinPV ChargeMode = "minpv" ModePV ChargeMode = "pv" )
Charge modes
func ChargeModeString ¶
func ChargeModeString(mode string) (ChargeMode, error)
ChargeModeString converts string to ChargeMode
func (*ChargeMode) UnmarshalText ¶
func (c *ChargeMode) UnmarshalText(text []byte) error
type ChargeRater ¶
ChargeRater provides charged energy amount in kWh
type ChargeState ¶
type ChargeState interface {
Status() (ChargeStatus, error)
}
ChargeState provides current charging status
type ChargeStatus ¶
type ChargeStatus string
ChargeStatus is the EV's charging status from A to F
const ( StatusNone ChargeStatus = "" StatusA ChargeStatus = "A" // Fzg. angeschlossen: nein Laden aktiv: nein Ladestation betriebsbereit, Fahrzeug getrennt StatusB ChargeStatus = "B" // Fzg. angeschlossen: ja Laden aktiv: nein Fahrzeug verbunden, Netzspannung liegt nicht an StatusC ChargeStatus = "C" // Fzg. angeschlossen: ja Laden aktiv: ja Fahrzeug lädt, Netzspannung liegt an StatusD ChargeStatus = "D" // Fzg. angeschlossen: ja Laden aktiv: ja Fahrzeug lädt mit externer Belüfungsanforderung (für Blei-Säure-Batterien) StatusE ChargeStatus = "E" // Fzg. angeschlossen: ja Laden aktiv: nein Fehler Fahrzeug / Kabel (CP-Kurzschluss, 0V) StatusF ChargeStatus = "F" // Fzg. angeschlossen: ja Laden aktiv: nein Fehler EVSE oder Abstecken simulieren (CP-Wake-up, -12V) )
Charging states
func ChargeStatusString ¶
func ChargeStatusString(s string) (ChargeStatus, error)
ChargeStatusString converts a string to ChargeStatus
func ChargeStatusStringWithMapping ¶
func ChargeStatusStringWithMapping(s string, m map[ChargeStatus]ChargeStatus) (ChargeStatus, error)
ChargeStatusStringWithMapping converts a string to ChargeStatus. In case of error, mapping is applied.
type ChargeTimer ¶
ChargeTimer provides current charge cycle duration
type Charger ¶
type Charger interface { ChargeState Enabled() (bool, error) Enable(enable bool) error CurrentLimiter }
Charger provides current charging status and enable/disable charging
type CurrentGetter ¶
CurrentGetter provides getting charging maximum charging current for validation
type CurrentLimiter ¶
CurrentLimiter provides settings charging maximum charging current
type Diagnosis ¶
type Diagnosis interface {
Diagnose()
}
Diagnosis is a helper interface that allows to dump diagnostic data to console
type Feature ¶
type Feature int
const ( Offline Feature CoarseCurrent IntegratedDevice )
func FeatureString ¶
FeatureString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.
func (Feature) IsAFeature ¶
IsAFeature returns "true" if the value is listed in the enum definition. "false" otherwise
func (*Feature) UnmarshalText ¶
type FeatureDescriber ¶
type FeatureDescriber interface {
Features() []Feature
}
FeatureDescriber optionally provides a list of supported non-api features
type IconDescriber ¶
type IconDescriber interface {
Icon() string
}
IconDescriber optionally provides an icon
type Identifier ¶
Identifier identifies a vehicle and is implemented by the charger
type MeterEnergy ¶
MeterEnergy provides total energy in kWh
type PhaseCurrents ¶
PhaseCurrents provides per-phase current A
type PhasePowers ¶
PhasePowers provides signed per-phase power W
type PhaseSwitcher ¶
PhaseSwitcher provides 1p3p switching
type PhaseVoltages ¶
PhaseVoltages provides per-phase voltage V
type Rate ¶
type Rate struct { Start time.Time `json:"start"` End time.Time `json:"end"` Price float64 `json:"price"` }
Rate is a grid tariff rate
type Resurrector ¶
type Resurrector interface {
WakeUp() error
}
Resurrector provides wakeup calls to the vehicle with an API call or a CP interrupt from the charger
type SocLimiter ¶
SocLimiter returns the vehicles charge limit
type Tariff ¶
type Tariff interface { Rates() (Rates, error) Type() TariffType }
Tariff is a tariff capable of retrieving tariff rates
type TariffType ¶
type TariffType int
const ( TariffTypePriceStatic TariffType TariffTypePriceDynamic TariffTypeCo2 )
func TariffTypeString ¶
func TariffTypeString(s string) (TariffType, error)
TariffTypeString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.
func TariffTypeValues ¶
func TariffTypeValues() []TariffType
TariffTypeValues returns all values of the enum
func (TariffType) IsATariffType ¶
func (i TariffType) IsATariffType() bool
IsATariffType returns "true" if the value is listed in the enum definition. "false" otherwise
func (TariffType) String ¶
func (i TariffType) String() string
type Vehicle ¶
type Vehicle interface { Battery BatteryCapacity IconDescriber Title() string SetTitle(string) Phases() int Identifiers() []string OnIdentified() ActionConfig }
Vehicle represents the EV and it's battery
type VehicleChargeController ¶
VehicleChargeController allows to start/stop the charging session on the vehicle side
type VehicleClimater ¶
VehicleClimater provides climatisation data
type VehicleFinishTimer ¶
VehicleFinishTimer provides estimated charge cycle finish time. Finish time is normalized for charging to 100% and may deviate from vehicle display if soc limit is effective.
type VehicleOdometer ¶
VehicleOdometer returns the vehicles milage
type VehiclePosition ¶
VehiclePosition returns the vehicles position in latitude and longitude
type VehicleRange ¶
VehicleRange provides the vehicles remaining km range