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,