From 69f6685e4ea7dddf0e336104a8491b52d3a652db Mon Sep 17 00:00:00 2001 From: Michael Geers Date: Thu, 3 Nov 2022 20:19:40 +0100 Subject: [PATCH] Remove plant id required on startup (#5029) --- assets/js/components/TelemetrySettings.vue | 50 +++++++++++++------ cmd/demo.yaml | 1 - cmd/setup.go | 11 ++-- .../{index.fc0aa81e.js => index.2e41d610.js} | 38 +++++++------- ...{index.d482998a.css => index.ab3ceb62.css} | 2 +- dist/index.html | 4 +- util/telemetry/charge.go | 39 ++++++++------- 7 files changed, 83 insertions(+), 62 deletions(-) rename dist/assets/{index.fc0aa81e.js => index.2e41d610.js} (55%) rename dist/assets/{index.d482998a.css => index.ab3ceb62.css} (99%) diff --git a/assets/js/components/TelemetrySettings.vue b/assets/js/components/TelemetrySettings.vue index 5274e6fbe..39ca36448 100644 --- a/assets/js/components/TelemetrySettings.vue +++ b/assets/js/components/TelemetrySettings.vue @@ -1,35 +1,48 @@ + - + + diff --git a/util/telemetry/charge.go b/util/telemetry/charge.go index cb6665e93..b6d5e19fa 100644 --- a/util/telemetry/charge.go +++ b/util/telemetry/charge.go @@ -12,38 +12,41 @@ import ( "github.com/evcc-io/evcc/util/sponsor" ) -const api = "https://api.evcc.io" +const ( + api = "https://api.evcc.io" + enabledSetting = "telemetry" +) var instanceID string func Enabled() bool { - enabled, _ := settings.Bool("telemetry.enabled") - return enabled && sponsor.IsAuthorized() + enabled, _ := settings.Bool(enabledSetting) + return enabled && sponsor.IsAuthorized() && instanceID != "" } func Enable(enable bool) error { - if enable && !sponsor.IsAuthorized() { - return errors.New("telemetry requires sponsorship") - } - settings.SetBool("telemetry.enabled", enable) - // TODO: remove once settings has central persistance mechanism - err := settings.Persist() - return err -} - -func Create(machineID string) error { - if machineID == "" { - var err error - if machineID, err = machine.ProtectedID("evcc-api"); err != nil { - return err + if enable { + if !sponsor.IsAuthorized() { + return errors.New("telemetry requires sponsorship") + } + if instanceID == "" { + return fmt.Errorf("using docker? Telemetry requires a unique instance ID. Add this to your config: `plant: %s`", machine.RandomID()) } } - instanceID = machineID + settings.SetBool(enabledSetting, enable) return nil } +func Create(machineID string) { + if machineID == "" { + machineID, _ = machine.ProtectedID("evcc-api") + } + + instanceID = machineID +} + func UpdateChargeProgress(log *util.Logger, power, deltaCharged, deltaGreen float64) { log.DEBUG.Printf("telemetry: charge: Δ%.0f/%.0fWh @ %.0fW", deltaGreen*1e3, deltaCharged*1e3, power)