diff --git a/packages/modules/web_themes/koala/config.py b/packages/modules/web_themes/koala/config.py index 8e38d4b5bd..cd228bc9c8 100644 --- a/packages/modules/web_themes/koala/config.py +++ b/packages/modules/web_themes/koala/config.py @@ -6,11 +6,13 @@ @auto_str class KoalaWebThemeConfiguration: def __init__(self, + hide_standard_vehicle: bool = False, history_chart_range: int = 3600, chargePoint_card_view_breakpoint: int = 4, vehicle_card_view_breakpoint: int = 4, chargePoint_table_search_input_field: bool = False, vehicle_table_search_input_field: bool = False) -> None: + self.hide_standard_vehicle = hide_standard_vehicle self.history_chart_range = history_chart_range self.chargePoint_card_view_breakpoint = chargePoint_card_view_breakpoint self.vehicle_card_view_breakpoint = vehicle_card_view_breakpoint 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..0177378566 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 @@ -1,4 +1,5 @@ export interface ThemeConfiguration { + hide_standard_vehicle: boolean; history_chart_range: number; chargePoint_card_view_breakpoint: number; vehicle_card_view_breakpoint: 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 dbc1041905..2659be64c4 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 @@ -978,7 +978,7 @@ export const useMqttStore = defineStore('mqtt', () => { */ const convertDcCurrentToPower = (dcCurrent: number): number => { return Math.round((dcCurrent * 3 * 230) / 1000); - } + }; /** * Converts power in Kilowatts to DC current in Ampere. @@ -991,8 +991,8 @@ export const useMqttStore = defineStore('mqtt', () => { * @returns number */ const convertPowerToDcCurrent = (power: number): number => { - return Math.round(power * 1000 / (230 * 3)); - } + return Math.round((power * 1000) / (230 * 3)); + }; /** * Get or set the charge point connected vehicle instant charging DC power identified by the charge point id @@ -2022,14 +2022,25 @@ export const useMqttStore = defineStore('mqtt', () => { * Get a list of all vehicles * @returns Vehicle[] */ - const vehicleList = computed(() => { + const vehicleList = computed(() => { const list = getWildcardValues.value('openWB/vehicle/+/name'); + const hideStandardFahrzeuge = + themeConfiguration.value?.hide_standard_vehicle; + // Filter out Standard-Fahrzeug if hideStandardFahrzeuge is true + const filteredList = hideStandardFahrzeuge + ? Object.fromEntries( + Object.entries(list).filter( + ([, name]) => + typeof name === 'string' && name !== 'Standard-Fahrzeug', + ), + ) + : list; // generate an array of objects, containing vehicle index and name - return Object.keys(list).map((key) => { + return Object.keys(filteredList).map((key) => { const vehicleIndex = parseInt(key.split('/')[2]); return { id: vehicleIndex, - name: list[key], + name: filteredList[key], } as Vehicle; }); });