From 079850860f08841c21d5fe0995939d5e0863146b Mon Sep 17 00:00:00 2001 From: BrettS Date: Wed, 1 Oct 2025 15:25:05 +0200 Subject: [PATCH 1/7] Add surplus PV - Battery mode buttons to display --- .../display_themes/cards/source/src/App.vue | 1 + .../components/Battery/BatteryModeModal.vue | 82 +++++++++++++++++++ .../src/components/Dashboard/FlowCard.vue | 15 ++++ .../cards/source/src/stores/mqtt.js | 3 + 4 files changed, 101 insertions(+) create mode 100644 packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue diff --git a/packages/modules/display_themes/cards/source/src/App.vue b/packages/modules/display_themes/cards/source/src/App.vue index 3a1efb2390..1433979f83 100644 --- a/packages/modules/display_themes/cards/source/src/App.vue +++ b/packages/modules/display_themes/cards/source/src/App.vue @@ -54,6 +54,7 @@ export default { "openWB/counter/+/get/power", "openWB/counter/get/hierarchy", "openWB/counter/set/home_consumption", + "openWB/general/chargemode_config/pv_charging/bat_mode", "openWB/optional/et/provider", "openWB/optional/et/get/prices", "openWB/optional/int_display/theme", diff --git a/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue b/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue new file mode 100644 index 0000000000..703c90a1b7 --- /dev/null +++ b/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue @@ -0,0 +1,82 @@ + + + + diff --git a/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue b/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue index e9bd936a92..7783be27d4 100644 --- a/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue +++ b/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue @@ -2,12 +2,14 @@ import { useMqttStore } from "@/stores/mqtt.js"; import DashboardCard from "@/components/DashboardCard.vue"; import ChargeModeModal from "../ChargePoints/ChargeModeModal.vue"; +import BatteryModeModal from "../Battery/BatteryModeModal.vue"; export default { name: "DashboardFlowCard", components: { DashboardCard, ChargeModeModal, + BatteryModeModal, }, props: { changesLocked: { required: false, type: Boolean, default: false }, @@ -27,6 +29,7 @@ export default { numColumns: 3, }, modalChargeModeSettingsVisible: false, + modalBatteryModeSettingsVisible: false, modalChargePointId: 0, }; }, @@ -314,6 +317,9 @@ export default { label: ["Speicher", this.absoluteValue(this.batteryPower).textValue], soc: this.batterySoc, icon: "icons/owbBattery.svg", + clicked: () => { + this.selectBatteryMode(); + }, }); } // charge point and vehicle components @@ -491,6 +497,7 @@ export default { // hide all modals if lock is kicking in if (oldValue !== true && newValue === true) { this.modalChargeModeSettingsVisible = false; + this.modalBatteryModeSettingsVisible = false; } }, }, @@ -569,6 +576,11 @@ export default { this.modalChargeModeSettingsVisible = true; } }, + selectBatteryMode() { + if (!this.changesLocked) { + this.modalBatteryModeSettingsVisible = true; + } + }, }, }; @@ -578,6 +590,9 @@ export default { v-model="modalChargeModeSettingsVisible" :charge-point-id="modalChargePointId" /> + - - diff --git a/packages/modules/display_themes/cards/source/src/components/ChargePoints/SimpleChargePointCard.vue b/packages/modules/display_themes/cards/source/src/components/ChargePoints/SimpleChargePointCard.vue index 8c88374470..952fd8ed1a 100644 --- a/packages/modules/display_themes/cards/source/src/components/ChargePoints/SimpleChargePointCard.vue +++ b/packages/modules/display_themes/cards/source/src/components/ChargePoints/SimpleChargePointCard.vue @@ -289,12 +289,6 @@ export default { cursor: pointer; } -.large-button { - height: 3.75rem; - font-size: 1.5rem; - padding: 0.75rem 1.5rem; -} - .button-group-wrapper { display: flex; flex-direction: column; diff --git a/packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue b/packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue index 0cee34cee8..580a24db60 100644 --- a/packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue +++ b/packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue @@ -94,10 +94,4 @@ export default { max-height: 72vh; overflow-y: scroll; } - -.large-button { - height: 3.5rem; - font-size: 1.5rem; - padding: 0.75rem 1.5rem; -} diff --git a/packages/modules/display_themes/cards/source/src/main.scss b/packages/modules/display_themes/cards/source/src/main.scss index 907d406bd9..d95be03380 100644 --- a/packages/modules/display_themes/cards/source/src/main.scss +++ b/packages/modules/display_themes/cards/source/src/main.scss @@ -22,6 +22,12 @@ body { scrollbar-color: color('primary-70') transparent; } +.large-button { + height: 3.5rem !important; + font-size: 1.5rem !important; + padding: 0.75rem 1.5rem !important; +} + /* width */ ::-webkit-scrollbar { width: 4px; From 45bde07cd1a929ff77501b84e7e89ac9d200533c Mon Sep 17 00:00:00 2001 From: BrettS Date: Wed, 15 Oct 2025 18:32:36 +0200 Subject: [PATCH 5/7] Update / rename title in battery mode modal --- .../components/Battery/BatteryModeModal.vue | 2 +- .../src/components/Dashboard/FlowCard.vue | 27 +++++++------------ 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue b/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue index c316feed4b..86a4836cca 100644 --- a/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue +++ b/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue @@ -5,7 +5,7 @@ @update:model-value="$emit('update:modelValue', $event)" > diff --git a/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue b/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue index e120beb1ce..3b4a03aa9b 100644 --- a/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue +++ b/packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue @@ -243,14 +243,6 @@ export default { case "min_soc_bat_mode": return "icons/owbBattery40.svg"; default: return "---"; } - }, - batteryModeColor() { - switch (this.mqttStore.getBatteryMode) { - case "ev_mode": return "var(--color--primary)"; - case "bat_mode": return "var(--color--warning)"; - case "min_soc_bat_mode": return "var(--color--success)"; - default: return "var(--color--primary)"; - } }, svgComponents() { var components = []; @@ -771,22 +763,21 @@ export default { @@ -940,7 +931,7 @@ text .fill-dark { } .battery-mode-button { - stroke: black !important; + stroke: var(--color--warning) !important; } .home text { From 218dec297d101d6ec0c66e21c73946b677951017 Mon Sep 17 00:00:00 2001 From: BrettS Date: Wed, 15 Oct 2025 18:50:21 +0200 Subject: [PATCH 6/7] Rename battery options "charge with excess energy" --- .../koala/source/src/components/BatterySettingsDialog.vue | 4 ++-- packages/modules/web_themes/standard_legacy/web/index.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/modules/web_themes/koala/source/src/components/BatterySettingsDialog.vue b/packages/modules/web_themes/koala/source/src/components/BatterySettingsDialog.vue index f096f6514e..483b4783e0 100644 --- a/packages/modules/web_themes/koala/source/src/components/BatterySettingsDialog.vue +++ b/packages/modules/web_themes/koala/source/src/components/BatterySettingsDialog.vue @@ -7,7 +7,7 @@
-
Einstellungen:
+
Speicher-Beachtung:
{{ name }}
@@ -15,7 +15,7 @@ -
Laden mit Überschuss Modus:
+
Überschuss primär für:
diff --git a/packages/modules/web_themes/standard_legacy/web/index.html b/packages/modules/web_themes/standard_legacy/web/index.html index 401c6bc794..6872480e30 100644 --- a/packages/modules/web_themes/standard_legacy/web/index.html +++ b/packages/modules/web_themes/standard_legacy/web/index.html @@ -152,12 +152,12 @@
- Einstellungen: + Speicher-Beachtung
- Laden mit Überschuss + Überschuss primär für:
Date: Wed, 22 Oct 2025 10:27:04 +0200 Subject: [PATCH 7/7] Remove default values from modelValue --- .../cards/source/src/components/Battery/BatteryModeModal.vue | 2 +- .../source/src/components/ChargePoints/ChargeModeModal.vue | 2 +- .../source/src/components/ChargePoints/ManualSocInput.vue | 4 ++-- .../source/src/components/ChargePoints/VehicleSelectModal.vue | 2 +- .../cards/source/src/components/ExtendedNumberInput.vue | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue b/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue index 86a4836cca..d1bfb9f81e 100644 --- a/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue +++ b/packages/modules/display_themes/cards/source/src/components/Battery/BatteryModeModal.vue @@ -38,7 +38,7 @@ import { useMqttStore } from "@/stores/mqtt.js"; export default { name: "BatteryModeModal", props: { - modelValue: { type: Boolean, required: false, default: false }, + modelValue: { required: true, type: Boolean }, }, emits: ["update:modelValue"], data() { diff --git a/packages/modules/display_themes/cards/source/src/components/ChargePoints/ChargeModeModal.vue b/packages/modules/display_themes/cards/source/src/components/ChargePoints/ChargeModeModal.vue index 49d51bdc7b..d78420dabc 100644 --- a/packages/modules/display_themes/cards/source/src/components/ChargePoints/ChargeModeModal.vue +++ b/packages/modules/display_themes/cards/source/src/components/ChargePoints/ChargeModeModal.vue @@ -4,7 +4,7 @@ import { useMqttStore } from "@/stores/mqtt.js"; export default { name: "ChargeModeModal", props: { - modelValue: { required: true, type: Boolean, default: false }, + modelValue: { required: true, type: Boolean }, chargePointId: { type: Number, required: true, diff --git a/packages/modules/display_themes/cards/source/src/components/ChargePoints/ManualSocInput.vue b/packages/modules/display_themes/cards/source/src/components/ChargePoints/ManualSocInput.vue index ee36a455c8..100786a062 100644 --- a/packages/modules/display_themes/cards/source/src/components/ChargePoints/ManualSocInput.vue +++ b/packages/modules/display_themes/cards/source/src/components/ChargePoints/ManualSocInput.vue @@ -11,8 +11,8 @@ export default { NumberPad, }, props: { - modelValue: { required: true, type: Boolean, default: false }, - vehicleId: { required: true, type: Number, default: 0 }, + modelValue: { required: true, type: Boolean }, + vehicleId: { required: true, type: Number }, }, emits: ["update:modelValue"], data() { diff --git a/packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue b/packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue index 580a24db60..e1f18abd4a 100644 --- a/packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue +++ b/packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue @@ -4,7 +4,7 @@ import { useMqttStore } from "@/stores/mqtt.js"; export default { name: "VehicleSelectModal", props: { - modelValue: { required: true, type: Boolean, default: false }, + modelValue: { required: true, type: Boolean }, chargePointId: { type: Number, required: true, diff --git a/packages/modules/display_themes/cards/source/src/components/ExtendedNumberInput.vue b/packages/modules/display_themes/cards/source/src/components/ExtendedNumberInput.vue index 5e00199c52..d602016552 100644 --- a/packages/modules/display_themes/cards/source/src/components/ExtendedNumberInput.vue +++ b/packages/modules/display_themes/cards/source/src/components/ExtendedNumberInput.vue @@ -3,7 +3,7 @@ export default { name: "ExtendedNumberInput", inheritAttrs: false, props: { - modelValue: { type: Number, required: true, default: NaN }, + modelValue: { type: Number, required: true}, unit: { type: String, default: "" }, min: { type: Number, default: 0 }, max: { type: Number, default: 100 },