From b0ea0582e2d30be0cbed80e4fcb89fd48b33ea5f Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 3 Aug 2024 15:23:50 +0200 Subject: [PATCH] Add battery grid charging (#14855) --- api/rates.go | 2 +- assets/css/app.css | 7 + assets/js/components/BatterySettingsModal.vue | 529 ++++++++++-------- .../Config/UserInterfaceSettings.vue | 6 +- assets/js/components/CustomSelect.vue | 2 +- .../js/components/Energyflow/Energyflow.vue | 34 +- .../components/Energyflow/EnergyflowEntry.vue | 53 +- .../js/components/LoadpointSettingsModal.vue | 4 +- assets/js/components/Site.vue | 3 +- assets/js/components/SmartCostLimit.vue | 44 +- assets/js/components/SponsorTokenExpires.vue | 2 +- assets/js/components/TelemetrySettings.vue | 7 +- cmd/demo.yaml | 14 +- core/helper.go | 17 + core/keys/site.go | 2 + core/loadpoint.go | 26 +- core/loadpoint/api.go | 4 +- core/loadpoint/mock.go | 6 +- core/loadpoint_api.go | 18 +- core/loadpoint_smartcost.go | 31 + core/loadpoint_test.go | 28 +- core/loadpoint_vehicle_test.go | 4 +- core/planner/helper.go | 2 +- core/planner/planner.go | 4 +- core/site.go | 47 +- core/site/api.go | 5 + core/site_api.go | 32 +- core/site_battery.go | 81 +-- core/site_battery_test.go | 36 -- i18n/de.toml | 25 +- i18n/en.toml | 25 +- server/http.go | 6 +- server/http_site_handler.go | 27 +- server/mqtt.go | 8 +- server/mqtt_setter.go | 12 + tests/battery-settings.evcc.yaml | 71 +++ tests/battery-settings.spec.js | 62 ++ 37 files changed, 797 insertions(+), 489 deletions(-) create mode 100644 core/loadpoint_smartcost.go delete mode 100644 core/site_battery_test.go create mode 100755 tests/battery-settings.evcc.yaml create mode 100644 tests/battery-settings.spec.js diff --git a/api/rates.go b/api/rates.go index afe05fd38..578a59aa0 100644 --- a/api/rates.go +++ b/api/rates.go @@ -31,7 +31,7 @@ func (r Rates) Sort() { // Current returns the rates current rate or error func (r Rates) Current(now time.Time) (Rate, error) { for _, rr := range r { - if (rr.Start.Before(now) || rr.Start.Equal(now)) && rr.End.After(now) { + if !rr.Start.After(now) && rr.End.After(now) { return rr, nil } } diff --git a/assets/css/app.css b/assets/css/app.css index f7880b5e6..4c7a52653 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -184,6 +184,13 @@ a:hover { --bs-btn-border-width: 2px; } +.btn-reset { + border: none; + background: none; + padding: 0; + color: inherit; +} + .btn-primary, .btn-primary:focus { background-color: var(--bs-primary); diff --git a/assets/js/components/BatterySettingsModal.vue b/assets/js/components/BatterySettingsModal.vue index 9fa382ba6..a5554035b 100644 --- a/assets/js/components/BatterySettingsModal.vue +++ b/assets/js/components/BatterySettingsModal.vue @@ -1,252 +1,270 @@