evcc-io/core/site/api.go
2026-02-17 12:40:02 +01:00

86 lines
1.7 KiB
Go

package site
import (
"github.com/evcc-io/evcc/api"
"github.com/evcc-io/evcc/core/loadpoint"
)
// publisher gives access to the site's publish function
type Publisher interface {
Publish(key string, val any)
}
// API is the external site API
type API interface {
Publisher
Loadpoints() []loadpoint.API
Vehicles() Vehicles
// Meta
GetTitle() string
SetTitle(string)
// Config
GetGridMeterRef() string
SetGridMeterRef(string)
GetPVMeterRefs() []string
SetPVMeterRefs([]string)
GetBatteryMeterRefs() []string
SetBatteryMeterRefs([]string)
GetAuxMeterRefs() []string
SetAuxMeterRefs([]string)
GetExtMeterRefs() []string
SetExtMeterRefs([]string)
// circuits
GetCircuit() api.Circuit
SetCircuit(api.Circuit)
//
// battery
//
GetBatterySoc() float64
GetPrioritySoc() float64
SetPrioritySoc(float64) error
GetBufferSoc() float64
SetBufferSoc(float64) error
GetBufferStartSoc() float64
SetBufferStartSoc(float64) error
// GetBatteryGridChargeLimit get the grid charge limit
GetBatteryGridChargeLimit() *float64
// SetBatteryGridChargeLimit sets the grid charge limit
SetBatteryGridChargeLimit(limit *float64) error
//
// power and energy
//
GetResidualPower() float64
SetResidualPower(float64) error
//
// tariffs and costs
//
// GetTariff returns the respective tariff
GetTariff(api.TariffUsage) api.Tariff
//
// battery control
//
GetBatteryDischargeControl() bool
SetBatteryDischargeControl(bool) error
//
// battery control external
//
// GetBatteryModeExternal returns the external battery mode
GetBatteryModeExternal() api.BatteryMode
// SetBatteryModeExternal sets the external battery mode
SetBatteryModeExternal(api.BatteryMode) error
}