Optimizer: enable by default (#28213)

This commit is contained in:
andig 2026-04-02 19:50:29 +02:00 • committed by GitHub
parent f24b670312
commit b93061bc86
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 151 additions and 6 deletions

View file

@ -28,6 +28,7 @@ const (
SetupRequired = "setupRequired" // initial setup is required (lp = 0), fresh installation
Plant = "plant"
Telemetry = "telemetry"
Optimizer = "optimizer"
DemoMode = "demoMode"
AuthDisabled = "authDisabled"
AuthProviders = "authProviders"

View file

@ -767,13 +767,19 @@ func (site *Site) updateMeters() error {
return err
}
if sponsor.IsAuthorized() {
if sponsor.IsAuthorized() && optimizerEnabled() {
go site.optimizerUpdateAsync()
}
return nil
}
func optimizerEnabled() bool {
exp, _ := settings.Bool(keys.Experimental)
opt, _ := settings.Bool(keys.Optimizer)
return exp && opt
}
func (site *Site) updateHomeConsumption(homePower float64) {
site.householdEnergy.AddPower(homePower)

View file

@ -54,6 +54,8 @@ func (r optimizerResult) MarshalBytes() ([]byte, error) {
type batteryType string
const (
OPTIMIZER_URI = "https://optimizer.evcc.io"
batteryTypeLoadpoint batteryType = "loadpoint"
batteryTypeVehicle batteryType = "vehicle"
batteryTypeBattery batteryType = "battery"
@ -127,11 +129,6 @@ func (site *Site) optimizerUpdateAsync() {
}
func (site *Site) optimizerUpdate(battery []types.Measurement) error {
uri := os.Getenv("OPTIMIZER_URI")
if uri == "" {
return nil
}
solarTariff := site.GetTariff(api.TariffUsageSolar)
solar := currentRates(solarTariff)
@ -237,6 +234,7 @@ func (site *Site) optimizerUpdate(battery []types.Measurement) error {
httpClient := request.NewClient(site.log)
httpClient.Timeout = 30 * time.Second
uri := lo.CoalesceOrEmpty(os.Getenv("OPTIMIZER_URI"), OPTIMIZER_URI)
apiClient, err := optimizer.NewClientWithResponses(uri, optimizer.WithHTTPClient(httpClient))
if err != nil {
return err