From 2c6a5dce5ffb26bc3af8c1c60484d4a93ee4dec4 Mon Sep 17 00:00:00 2001 From: Brett-S-OWB Date: Fri, 18 Sep 2026 15:20:30 +0200 Subject: [PATCH 1/3] add consumer temperature readings to consumer card --- .../source/src/components/ConsumerCard.vue | 21 +++++++++++ .../koala/source/src/stores/mqtt-store.ts | 36 +++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/packages/modules/web_themes/koala/source/src/components/ConsumerCard.vue b/packages/modules/web_themes/koala/source/src/components/ConsumerCard.vue index 33f01554fd..e4222a63cf 100644 --- a/packages/modules/web_themes/koala/source/src/components/ConsumerCard.vue +++ b/packages/modules/web_themes/koala/source/src/components/ConsumerCard.vue @@ -38,6 +38,23 @@ + +
+ {{ + temperatures.sensorCount > 1 + ? `Temperatur ${sensor.index + 1}:` + : 'Temperatur:' + }} +
+
+ {{ sensor.textValue }} +
+
+ @@ -87,6 +104,10 @@ const powerValue = computed( ); const isRunning = computed(() => powerValue.value > 0); +const temperatures = computed(() => + mqttStore.consumerTemperatures(props.consumerId), +); + const runTime = computed(() => { const seconds = mqttStore.consumerOnTime(props.consumerId); if (seconds === undefined) { 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 4c79ea3885..a73143d3d1 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 @@ -3828,6 +3828,41 @@ export const useMqttStore = defineStore('mqtt', () => { }; }); + /** + * Get the temperature readings of a consumer identified by the consumer id. + * @param consumerId + * @returns { sensorCount, sensors } + */ + const consumerTemperatures = computed(() => { + return ( + consumerId: number, + ): { + sensorCount: number; + sensors: { index: number; value: number; textValue: string }[]; + } => { + const temperatures = getValue.value( + `openWB/consumer/${consumerId}/get/temperatures`, + ); + if (!Array.isArray(temperatures)) { + return { sensorCount: 0, sensors: [] }; + } + const sensors = temperatures + .map((value: unknown, index: number) => ({ index, value })) + .filter( + (sensor): sensor is { index: number; value: number } => + typeof sensor.value === 'number', + ) + .map((sensor) => ({ + ...sensor, + textValue: `${sensor.value.toLocaleString(undefined, { + minimumFractionDigits: 1, + maximumFractionDigits: 1, + })} °C`, + })); + return { sensorCount: temperatures.length, sensors }; + }; + }); + /** * Get the status text of a consumer identified by the consumer id * @param consumerId consumer id @@ -4584,6 +4619,7 @@ export const useMqttStore = defineStore('mqtt', () => { consumerSumPower, consumerDailyImported, consumerOnTime, + consumerTemperatures, consumerStateStr, consumerFaultState, consumerFaultStr, From 3931b1c6706e6386b33b7c1248e4d94ba66db718 Mon Sep 17 00:00:00 2001 From: Brett-S-OWB Date: Mon, 28 Sep 2026 14:57:50 +0200 Subject: [PATCH 2/3] check if temperature data is present --- .../koala/source/src/stores/mqtt-store.ts | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) 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 a73143d3d1..d298d902c9 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 @@ -3838,7 +3838,7 @@ export const useMqttStore = defineStore('mqtt', () => { consumerId: number, ): { sensorCount: number; - sensors: { index: number; value: number; textValue: string }[]; + sensors: { index: number; textValue: string }[]; } => { const temperatures = getValue.value( `openWB/consumer/${consumerId}/get/temperatures`, @@ -3846,19 +3846,19 @@ export const useMqttStore = defineStore('mqtt', () => { if (!Array.isArray(temperatures)) { return { sensorCount: 0, sensors: [] }; } - const sensors = temperatures - .map((value: unknown, index: number) => ({ index, value })) - .filter( - (sensor): sensor is { index: number; value: number } => - typeof sensor.value === 'number', - ) - .map((sensor) => ({ - ...sensor, - textValue: `${sensor.value.toLocaleString(undefined, { - minimumFractionDigits: 1, - maximumFractionDigits: 1, - })} °C`, - })); + if (!temperatures.some((value: unknown) => typeof value === 'number')) { + return { sensorCount: 0, sensors: [] }; + } + const sensors = temperatures.map((value: unknown, index: number) => ({ + index, + textValue: + typeof value === 'number' + ? `${value.toLocaleString(undefined, { + minimumFractionDigits: 1, + maximumFractionDigits: 1, + })} °C` + : '---', + })); return { sensorCount: temperatures.length, sensors }; }; }); From 607655aa86577899d49f3e0e36326f80629828be Mon Sep 17 00:00:00 2001 From: Brett-S-OWB Date: Tue, 29 Sep 2026 09:08:22 +0200 Subject: [PATCH 3/3] use getValueObject for formatting --- .../koala/source/src/stores/mqtt-store.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) 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 d298d902c9..18049692eb 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 @@ -3851,13 +3851,15 @@ export const useMqttStore = defineStore('mqtt', () => { } const sensors = temperatures.map((value: unknown, index: number) => ({ index, - textValue: - typeof value === 'number' - ? `${value.toLocaleString(undefined, { - minimumFractionDigits: 1, - maximumFractionDigits: 1, - })} °C` - : '---', + textValue: getValueObject.value( + typeof value === 'number' ? value : undefined, + '°C', + '', + false, + false, + '---', + 1, + ).textValue, })); return { sensorCount: temperatures.length, sensors }; };