From c03b854083d34911f6bdf87c619cb90e5e762945 Mon Sep 17 00:00:00 2001 From: electron Date: Wed, 7 Oct 2026 16:46:59 +0100 Subject: [PATCH] fix consumer display issues --- .../source/src/assets/js/processMessages.ts | 4 +++ .../source/src/assets/js/sendMessages.ts | 3 +- .../components/consumerList/ConsumerList.vue | 24 ++++++++++++++- .../consumerList/ConsumerSettings.vue | 30 +++++++++++++++++++ .../src/components/consumerList/model.ts | 12 ++++++-- .../consumerList/processMessages.ts | 5 ++-- 6 files changed, 70 insertions(+), 8 deletions(-) create mode 100644 packages/modules/web_themes/colors/source/src/components/consumerList/ConsumerSettings.vue diff --git a/packages/modules/web_themes/colors/source/src/assets/js/processMessages.ts b/packages/modules/web_themes/colors/source/src/assets/js/processMessages.ts index 6bcc8ecd3d..22184c48e1 100755 --- a/packages/modules/web_themes/colors/source/src/assets/js/processMessages.ts +++ b/packages/modules/web_themes/colors/source/src/assets/js/processMessages.ts @@ -32,6 +32,7 @@ import { import { mqttClientId } from './mqttClient' import { add } from '@/components/mqttViewer/model' import { globalConfig } from './themeConfig' +import { addConsumer } from '@/components/consumerList/model' const topicsToSubscribe = [ 'openWB/counter/#', @@ -159,6 +160,9 @@ function processHierarchy(hierarchy: Hierarchy) { case 'inverter': addPvSystem(hierarchy.id) break + case 'consumer': + addConsumer(hierarchy.id) + break default: // console.warn('Ignored Hierarchy type: ' + hierarchy.type) } diff --git a/packages/modules/web_themes/colors/source/src/assets/js/sendMessages.ts b/packages/modules/web_themes/colors/source/src/assets/js/sendMessages.ts index 81661d2fc9..053c9a7c0e 100644 --- a/packages/modules/web_themes/colors/source/src/assets/js/sendMessages.ts +++ b/packages/modules/web_themes/colors/source/src/assets/js/sendMessages.ts @@ -12,8 +12,7 @@ const topics: { [topic: string]: string } = { chargeMode: 'openWB/set/vehicle/template/charge_template/%/chargemode/selected', cpPriority: 'openWB/set/vehicle/template/charge_template/%/prio', - pvBatteryPriority: - 'openWB/set/general/chargemode_config/bat/mode', + pvBatteryPriority: 'openWB/set/general/chargemode_config/bat/mode', cpVehicle: 'openWB/set/chargepoint/%/config/ev', cpInstantChargeLimitMode: 'openWB/set/vehicle/template/charge_template/%/chargemode/instant_charging/limit/selected', diff --git a/packages/modules/web_themes/colors/source/src/components/consumerList/ConsumerList.vue b/packages/modules/web_themes/colors/source/src/components/consumerList/ConsumerList.vue index f85192b47c..80280c11dd 100644 --- a/packages/modules/web_themes/colors/source/src/components/consumerList/ConsumerList.vue +++ b/packages/modules/web_themes/colors/source/src/components/consumerList/ConsumerList.vue @@ -1,9 +1,18 @@ diff --git a/packages/modules/web_themes/colors/source/src/components/consumerList/model.ts b/packages/modules/web_themes/colors/source/src/components/consumerList/model.ts index a65066b5a9..5c8ebce7d6 100644 --- a/packages/modules/web_themes/colors/source/src/components/consumerList/model.ts +++ b/packages/modules/web_themes/colors/source/src/components/consumerList/model.ts @@ -40,7 +40,7 @@ export class Consumer implements PowerItem { } set showInGraph(val: boolean) { this._showInGraph = val - registry.items.get('sh' + this.id)!.showInGraph = val + registry.items.get('consumer' + this.id)!.showInGraph = val savePrefs() } setShowInGraph(val: boolean) { @@ -51,12 +51,20 @@ export class Consumer implements PowerItem { export const consumers = reactive(new Map()) export function addConsumer(index: number, showInList = true) { + const consumerColorCount = 5 if (!consumers.has(index)) { consumers.set(index, new Consumer(index, showInList)) const dev = consumers.get(index)! - dev.color = 'var(--color-consumer' + consumers.size + ')' + dev.color = + 'var(--color-consumer' + + (((consumers.size - 1) % consumerColorCount) + 1) + + ')' // console.log('Added consumer with index ' + index + ' and color ' + dev.color) } else { console.warn('Consumer with index ' + index + ' already exists.') } } + +export function resetConsumers() { + consumers.clear() +} diff --git a/packages/modules/web_themes/colors/source/src/components/consumerList/processMessages.ts b/packages/modules/web_themes/colors/source/src/components/consumerList/processMessages.ts index f385dc868b..8e44482a82 100644 --- a/packages/modules/web_themes/colors/source/src/components/consumerList/processMessages.ts +++ b/packages/modules/web_themes/colors/source/src/components/consumerList/processMessages.ts @@ -4,7 +4,6 @@ import { updateShSummary } from '../smartHome/processMessages' // Process incoming messages for consumers based on the topic export function processConsumerMessages(topic: string, message: string) { - // console.debug('Consumer: Received message on topic ' + topic + ': ' + message) if (topic.match(/^openWB\/consumer\/config\//i)) { processConsumerConfigMessages(topic, message) } else if (topic.match(/^openWB\/consumer\/[0-9]+\//i)) { @@ -22,7 +21,7 @@ function processConsumerDeviceMessages(topic: string, message: string) { return } if (!consumers.has(index)) { - addConsumer(index) + console.warn('Invalid consumer id received: ' + index) } const dev = consumers.get(index)! if (topic.match(/^openWB\/consumer\/[0-9]+\/get\/power$/i)) { @@ -56,7 +55,7 @@ function processConsumerConfigMessages(topic: string, message: string) { } if (!consumers.has(index)) { console.warn('Invalid device id received: ' + index) - addConsumer(index) + // addConsumer(index) } const dev = consumers.get(index)! if (