diff --git a/packages/modules/web_themes/koala/source/src/components/ChargePointBidiSettings.vue b/packages/modules/web_themes/koala/source/src/components/ChargePointBidiSettings.vue new file mode 100644 index 0000000000..1801d0ed88 --- /dev/null +++ b/packages/modules/web_themes/koala/source/src/components/ChargePointBidiSettings.vue @@ -0,0 +1,66 @@ + + + diff --git a/packages/modules/web_themes/koala/source/src/components/ChargePointInstantSettings.vue b/packages/modules/web_themes/koala/source/src/components/ChargePointInstantSettings.vue index 1ad91b72b0..00ee122623 100644 --- a/packages/modules/web_themes/koala/source/src/components/ChargePointInstantSettings.vue +++ b/packages/modules/web_themes/koala/source/src/components/ChargePointInstantSettings.vue @@ -132,15 +132,3 @@ const limitEnergy = computed(() => ), ); - - diff --git a/packages/modules/web_themes/koala/source/src/components/ChargePointModeButtons.vue b/packages/modules/web_themes/koala/source/src/components/ChargePointModeButtons.vue index e9c3824041..8e5886cc2f 100644 --- a/packages/modules/web_themes/koala/source/src/components/ChargePointModeButtons.vue +++ b/packages/modules/web_themes/koala/source/src/components/ChargePointModeButtons.vue @@ -30,17 +30,28 @@ - - - +
+ + + + + + +
- - diff --git a/packages/modules/web_themes/koala/source/src/components/ChargePointSettings.vue b/packages/modules/web_themes/koala/source/src/components/ChargePointSettings.vue index 67d7e7fa04..7c5e9fcde7 100644 --- a/packages/modules/web_themes/koala/source/src/components/ChargePointSettings.vue +++ b/packages/modules/web_themes/koala/source/src/components/ChargePointSettings.vue @@ -35,7 +35,7 @@ /> -
+
@@ -56,6 +56,10 @@ :charge-point-id="props.chargePointId" />
+ +
+ +
@@ -85,6 +89,7 @@ import ChargePointLock from './ChargePointLock.vue'; import ChargePointModeButtons from './ChargePointModeButtons.vue'; import ChargePointVehicleSelect from './ChargePointVehicleSelect.vue'; import ChargePointTimeChargingPlans from './ChargePointTimeChargingPlans.vue'; +import ChargePointBidiSettings from './ChargePointBidiSettings.vue'; const $q = useQuasar(); const mqttStore = useMqttStore(); diff --git a/packages/modules/web_themes/koala/source/src/components/ChargePointVehicleSelect.vue b/packages/modules/web_themes/koala/source/src/components/ChargePointVehicleSelect.vue index d3e165922c..15ad9514c4 100644 --- a/packages/modules/web_themes/koala/source/src/components/ChargePointVehicleSelect.vue +++ b/packages/modules/web_themes/koala/source/src/components/ChargePointVehicleSelect.vue @@ -52,6 +52,3 @@ const connectedVehicle = mqttStore.chargePointConnectedVehicleInfo( const vehicles = computed(() => mqttStore.vehicleList); - - diff --git a/packages/modules/web_themes/koala/source/src/components/PlanDetailsDisplay.vue b/packages/modules/web_themes/koala/source/src/components/PlanDetailsDisplay.vue new file mode 100644 index 0000000000..63b44fbce5 --- /dev/null +++ b/packages/modules/web_themes/koala/source/src/components/PlanDetailsDisplay.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/packages/modules/web_themes/koala/source/src/composables/useChargeModes.ts b/packages/modules/web_themes/koala/source/src/composables/useChargeModes.ts index 60e9238e0f..9895b4289e 100644 --- a/packages/modules/web_themes/koala/source/src/composables/useChargeModes.ts +++ b/packages/modules/web_themes/koala/source/src/composables/useChargeModes.ts @@ -4,6 +4,7 @@ export const useChargeModes = () => { { value: 'pv_charging', label: 'PV', color: 'positive' }, { value: 'scheduled_charging', label: 'Ziel', color: 'primary' }, { value: 'eco_charging', label: 'Eco', color: 'accent' }, + { value: 'bidi_charging', label: 'Bidi', color: 'light' }, { value: 'stop', label: 'Stop', color: 'light' }, ]; return { diff --git a/packages/modules/web_themes/koala/source/src/stores/mqtt-store-model.ts b/packages/modules/web_themes/koala/source/src/stores/mqtt-store-model.ts index 24b1471f8f..8cacb19d24 100644 --- a/packages/modules/web_themes/koala/source/src/stores/mqtt-store-model.ts +++ b/packages/modules/web_themes/koala/source/src/stores/mqtt-store-model.ts @@ -72,6 +72,32 @@ export interface ChargeTemplateConfiguration { }; chargemode: { selected: string; + bidi_charging: { + plan: { + id: number; + name: string; + active: boolean; + current: number; + dc_current: number; + et_active: boolean; + time: string; + phases_to_use: number; + phases_to_use_pv: number; + + frequency: { + selected: string; + once?: string; + weekly: boolean[]; + }; + limit: { + selected: string; + amount?: number; + soc_limit?: number; + soc_scheduled?: number; + }; + }; + power: number; + }; eco_charging: { current: number; dc_current: number; diff --git a/packages/modules/web_themes/koala/source/src/stores/mqtt-store.ts b/packages/modules/web_themes/koala/source/src/stores/mqtt-store.ts index c40c6cd711..f2a5303b85 100644 --- a/packages/modules/web_themes/koala/source/src/stores/mqtt-store.ts +++ b/packages/modules/web_themes/koala/source/src/stores/mqtt-store.ts @@ -1615,6 +1615,88 @@ export const useMqttStore = defineStore('mqtt', () => { }); }; + /** + * Get the charge point connected vehicle bidi charging plan identified by the charge point id + * @param chargePointId charge point id + * @returns object | undefined + */ + const chargePointConnectedVehicleBidiChargePlan = computed(() => { + return (chargePointId: number) => { + return chargePointConnectedVehicleChargeTemplate(chargePointId).value + ?.chargemode?.bidi_charging?.plan + }; + }); + + /** + * Get or set the charge point connected vehicle bidi charging minimaler Entlade-SoC identified by the charge point id + * @param chargePointId charge point id + * @returns number | undefined + */ + const chargePointConnectedVehicleBidiChargeMinDischargeSoC = ( + chargePointId: number, + ) => { + return computed({ + get() { + const soc = + chargePointConnectedVehicleChargeTemplate(chargePointId).value + ?.chargemode?.bidi_charging?.plan?.limit?.soc_scheduled; + if (soc === undefined) { + return; + } + return soc; + }, + set(newValue: number) { + return updateTopic( + `openWB/chargepoint/${chargePointId}/set/charge_template`, + newValue, + 'chargemode.bidi_charging.plan.limit.soc_scheduled', + true, + ); + }, + }); + }; + + /** + * Get or set the charge point connected vehicle bidi charging current identified by the charge point id + * @param chargePointId charge point id + * @returns number | undefined + */ + const chargePointConnectedVehicleBidiChargeCurrent = ( + chargePointId: number, + ) => { + return computed({ + get() { + const current = + chargePointConnectedVehicleChargeTemplate(chargePointId).value + ?.chargemode?.bidi_charging?.plan?.current; + if (current === undefined) { + return; + } + return current; + }, + set(newValue: number) { + return updateTopic( + `openWB/chargepoint/${chargePointId}/set/charge_template`, + newValue, + 'chargemode.bidi_charging.plan.current', + true, + ); + }, + }); + }; + + /** + * Get the active state {energy tariff} of the bidi charging plan identified by the charge point id + * @param chargePointId charge point id + * @returns boolean | undefined + */ + const chargePointConnectedVehicleBidiChargeEtActive = computed(() => { + return (chargePointId: number) => { + return chargePointConnectedVehicleChargeTemplate(chargePointId).value + ?.chargemode?.bidi_charging?.plan.et_active; + }; + }); + /** * Get or set the charge point connected vehicle charge priority identified by the charge point id * @param chargePointId charge point id @@ -2884,6 +2966,10 @@ export const useMqttStore = defineStore('mqtt', () => { chargePointConnectedVehicleEcoChargeLimitSoC, chargePointConnectedVehicleEcoChargeLimitEnergy, chargePointConnectedVehicleEcoChargeMaxPrice, + chargePointConnectedVehicleBidiChargePlan, + chargePointConnectedVehicleBidiChargeMinDischargeSoC, + chargePointConnectedVehicleBidiChargeCurrent, + chargePointConnectedVehicleBidiChargeEtActive, chargePointConnectedVehiclePriority, chargePointConnectedVehicleTimeCharging, chargePointConnectedVehicleChargeTemplate, diff --git a/packages/modules/web_themes/standard_legacy/web/index.html b/packages/modules/web_themes/standard_legacy/web/index.html index 04f7b2d621..5750da45f8 100644 --- a/packages/modules/web_themes/standard_legacy/web/index.html +++ b/packages/modules/web_themes/standard_legacy/web/index.html @@ -1182,6 +1182,87 @@

Einstellungen für "Eco"

+ +
+
+
+

Einstellungen für "Bidi"

+
+
+ +
+
+
+
+ Minimaler Entlade-SoC +
+
+
+
+ +
+ +
+
+
+
+
+ Stromstärke +
+
+
+
+ +
+ +
+
+
+ +
+
+
+ -- +
+
+ + + + -- + + + -- + + + -- + + -- + +
+
+
+
@@ -1660,7 +1741,7 @@