diff --git a/packages/modules/web_themes/koala/source/src/components/VehicleCard.vue b/packages/modules/web_themes/koala/source/src/components/VehicleCard.vue index c7e8b50b65..ba50d9c764 100644 --- a/packages/modules/web_themes/koala/source/src/components/VehicleCard.vue +++ b/packages/modules/web_themes/koala/source/src/components/VehicleCard.vue @@ -6,6 +6,36 @@ {{ vehicle?.name }} +
+
+
Hersteller:
+ {{ vehicleInfo?.manufacturer || 'keine Angabe' }} +
+
+
Modell:
+ {{ vehicleInfo?.model || 'keine Angabe' }} +
+
+
+
+
SoC Modul:
+ {{ vehicleSocModule || 'nicht konfiguriert' }} +
+
+
+
+ +
+
Ladestand: {{ vehicleSocValue }}%
+
@@ -23,10 +53,27 @@ const mqttStore = useMqttStore(); const vehicle = computed(() => { return mqttStore.vehicleList.find((v) => v.id === props.vehicleId); }); + +const vehicleInfo = computed(() => { + return mqttStore.vehicleInfo(props.vehicleId); +}); + +const vehicleSocModule = computed(() => { + return mqttStore.vehicleSocModuleName(props.vehicleId); +}); + +const vehicleSocValue = computed(() => { + return mqttStore.vehicleSocValue(props.vehicleId); +}); diff --git a/packages/modules/web_themes/koala/source/src/pages/IndexPage.vue b/packages/modules/web_themes/koala/source/src/pages/IndexPage.vue index c611a3b21e..6d990d3d90 100644 --- a/packages/modules/web_themes/koala/source/src/pages/IndexPage.vue +++ b/packages/modules/web_themes/koala/source/src/pages/IndexPage.vue @@ -10,9 +10,9 @@ - + @@ -27,9 +27,9 @@ - + @@ -47,7 +47,7 @@ import { ref } from 'vue'; import ChartCarousel from 'src/components/ChartCarousel.vue'; import ChargePointInformation from 'src/components/ChargePointInformation.vue'; import BatteryInformation from 'src/components/BatteryInformation.vue'; -// import VehicleInformation from 'src/components/VehicleInformation.vue'; +import VehicleInformation from 'src/components/VehicleInformation.vue'; // import SmartHomeInformation from 'src/components/SmartHomeInformation.vue'; defineOptions({ 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 f7b4e77bc9..dad34d5b95 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 @@ -120,6 +120,17 @@ export interface Vehicle { id: number; name: string; } +export interface vehicleInfo { + manufacturer: string; + model: string; +} + +export interface vehicleSocModule { + name?: string; + type: string | null; + official?: boolean; + configuration: object; +} export interface ScheduledChargingPlan { id: 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 c941e81767..16d7095605 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 @@ -15,6 +15,8 @@ import type { ValueObject, ChargePointConnectedVehicleInfo, Vehicle, + vehicleInfo, + vehicleSocModule, ScheduledChargingPlan, ChargePointConnectedVehicleSoc, GraphDataPoint, @@ -1842,6 +1844,42 @@ export const useMqttStore = defineStore('mqtt', () => { }); }); + /** + * Get vehicle manufacturer and model info identified by the vehicle id + * @param vehicleId vehicle id + * @returns vehicleInfo + */ + const vehicleInfo = computed(() => { + return (vehicleId: number | undefined) => { + return getValue.value(`openWB/vehicle/${vehicleId}/info`) as vehicleInfo; + }; + }); + + /** + * Get vehicle SoC module name identified by the vehicle id + * @param vehicleId vehicle id + * @returns string + */ + const vehicleSocModuleName = computed(() => { + return (vehicleId: number | undefined) => { + const socModule = getValue.value( + `openWB/vehicle/${vehicleId}/soc_module/config`, + ) as vehicleSocModule; + return socModule?.name; + }; + }); + + /** + * Get vehicle SoC value identified by the vehicle id + * @param vehicleId vehicle id + * @returns number | null + */ + const vehicleSocValue = computed(() => { + return (vehicleId: number | undefined) => { + return getValue.value(`openWB/vehicle/${vehicleId}/get/soc`) as number | null; + }; + }); + /** * Get scheduled charging plan/s data identified by the charge point id * @param chargePointId charge point id @@ -2535,6 +2573,9 @@ export const useMqttStore = defineStore('mqtt', () => { // vehicle data vehicleList, chargePointConnectedVehicleConfig, + vehicleInfo, + vehicleSocModuleName, + vehicleSocValue, chargePointConnectedVehicleSoc, vehicleActivePlan, vehicleChargeTarget,