core

package
v0.0.0-...-a8dc8ba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2019 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

func CurrentToPower

func CurrentToPower(current, voltage, phases float64) float64

func NewChargeController

func NewChargeController(maxCurrentS api.IntSetter) api.ChargeController

NewChargeController creates a new charge controller

func NewCharger

func NewCharger(
	statusP api.StringProvider,
	actualCurrentP api.IntProvider,
	enabledP api.BoolProvider,
	enableS api.BoolSetter,
) api.Charger

NewCharger creates a new charger

func NewMeter

func NewMeter(currentPowerP api.FloatProvider) api.Meter

NewMeter creates a new charger

func PowerToCurrent

func PowerToCurrent(power, voltage, phases float64) float64

Types

type ChargeController

type ChargeController struct {
	// contains filtered or unexported fields
}

func (*ChargeController) MaxCurrent

func (m *ChargeController) MaxCurrent(current int64) error

type Charger

type Charger struct {
	// contains filtered or unexported fields
}

func (*Charger) ActualCurrent

func (m *Charger) ActualCurrent() (int64, error)

func (*Charger) Enable

func (m *Charger) Enable(enable bool) error

func (*Charger) Enabled

func (m *Charger) Enabled() (bool, error)

func (*Charger) Status

func (m *Charger) Status() (api.ChargeStatus, error)

type LoadPoint

type LoadPoint struct {
	sync.Mutex
	Name        string
	Mode        api.ChargeMode
	GridMeter   api.Meter // home usage meter
	PVMeter     api.Meter // pv generation meter
	ChargeMeter api.Meter // charger usage meter
	Charger     api.Charger
	MinCurrent  int64 // PV mode: start current	Min+PV mode: min current
	MaxCurrent  int64
	Voltage     float64
	Phases      float64
	// contains filtered or unexported fields
}

LoadPoint is responsible for controlling charge depending on SoC needs and power availability.

Power availability is goverened by this equation (positiv sign signals consumption, negative sign is grid production):

HAges = HArest + EV

therefore

HArest = HAges - EVist
EVsoll = -HArest

func NewLoadPoint

func NewLoadPoint(name string, charger api.Charger) *LoadPoint

NewLoadPoint creates a LoadPoint with sane defaults

func (*LoadPoint) ApplyModeNow

func (lp *LoadPoint) ApplyModeNow() error

ApplyModeNow sets "now" charger mode

func (*LoadPoint) ApplyModePV

func (lp *LoadPoint) ApplyModePV(mode api.ChargeMode) error

ApplyModePV sets "minpv" or "pv" load modes

func (*LoadPoint) ChargeMode

func (lp *LoadPoint) ChargeMode(mode api.ChargeMode) error

ChargeMode updates charge mode

func (*LoadPoint) ChargedEnergy

func (lp *LoadPoint) ChargedEnergy() (float64, error)

ChargedEnergy returns energy consumption since charge start

func (*LoadPoint) CurrentChargeMode

func (lp *LoadPoint) CurrentChargeMode() api.ChargeMode

CurrentChargeMode returns current charge mode

func (*LoadPoint) Update

func (lp *LoadPoint) Update()

Update reevaluates meters and charger state

type Meter

type Meter struct {
	// contains filtered or unexported fields
}

func (*Meter) CurrentPower

func (m *Meter) CurrentPower() (float64, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL