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 }