From 69db34e768d6931d1f6d976e1b9fa1023ed57ab3 Mon Sep 17 00:00:00 2001 From: andig Date: Mon, 9 Mar 2026 12:11:43 +0100 Subject: [PATCH] HEMS: refactor handling of production/feedin limits (BC) (#27567) --- assets/js/components/Config/CircuitTags.vue | 62 ++++++++++ assets/js/components/Config/HemsModal.vue | 4 +- assets/js/components/HemsWarning.vue | 4 +- assets/js/types/evcc.ts | 23 ++-- assets/js/utils/circuits.test.ts | 51 +++++++++ assets/js/utils/circuits.ts | 28 +++++ assets/js/views/Config.vue | 62 +++------- cmd/root.go | 5 +- core/site_circuits.go | 9 +- hems/config.go | 3 + hems/eebus/eebus.go | 69 ++---------- hems/fnn/fnn-3.go | 89 ++++++++------- hems/hems/api.go | 15 --- hems/relay/relay.go | 77 ++++--------- hems/shared/helper.go | 30 ----- hems/smartgrid/circuit.go | 42 +++++++ hems/smartgrid/smartgrid.go | 28 +++++ hems/smartgrid/types.go | 2 +- i18n/de.json | 3 +- i18n/en.json | 3 +- tests/config-circuit.spec.ts | 25 ++--- tests/hems-grid.evcc.yaml | 11 ++ tests/hems-yaml.evcc.yaml | 13 ++- tests/hems.spec.ts | 118 +++++++++++--------- 24 files changed, 440 insertions(+), 336 deletions(-) create mode 100644 assets/js/components/Config/CircuitTags.vue create mode 100644 assets/js/utils/circuits.test.ts create mode 100644 assets/js/utils/circuits.ts delete mode 100644 hems/shared/helper.go create mode 100644 hems/smartgrid/circuit.go create mode 100644 tests/hems-grid.evcc.yaml diff --git a/assets/js/components/Config/CircuitTags.vue b/assets/js/components/Config/CircuitTags.vue new file mode 100644 index 000000000..92d1fc1d0 --- /dev/null +++ b/assets/js/components/Config/CircuitTags.vue @@ -0,0 +1,62 @@ + + + diff --git a/assets/js/components/Config/HemsModal.vue b/assets/js/components/Config/HemsModal.vue index b8dce4384..da3510001 100644 --- a/assets/js/components/Config/HemsModal.vue +++ b/assets/js/components/Config/HemsModal.vue @@ -80,7 +80,9 @@ export default { methods: { async loadSessions() { try { - const response = await api.get("gridsessions"); + const response = await api.get("gridsessions", { + validateStatus: (code) => [200, 404].includes(code), + }); this.sessions = response.data || []; } catch (e) { // Silently fail if no sessions available diff --git a/assets/js/components/HemsWarning.vue b/assets/js/components/HemsWarning.vue index 738947d97..1620cdffd 100644 --- a/assets/js/components/HemsWarning.vue +++ b/assets/js/components/HemsWarning.vue @@ -7,7 +7,7 @@