From 0164ce8df358a3e5f6ea2824183ca16dc6990f19 Mon Sep 17 00:00:00 2001 From: Claus Hagen Date: Sat, 13 Sep 2025 10:11:03 +0200 Subject: [PATCH 1/2] update pricechart handling --- .../source/src/assets/js/themeConfig.ts | 3 +-- .../chargePointList/VehicleData.vue | 9 ++++--- .../powerGraph/processLiveGraphData.ts | 18 +++++++------- .../priceChart/GlobalPriceChart.vue | 16 ++++++++++--- .../src/components/priceChart/PriceChart.vue | 24 ++++++++++++++----- .../source/src/components/priceChart/model.ts | 9 +++++-- .../components/priceChart/processMessages.ts | 4 ++++ 7 files changed, 58 insertions(+), 25 deletions(-) diff --git a/packages/modules/web_themes/colors/source/src/assets/js/themeConfig.ts b/packages/modules/web_themes/colors/source/src/assets/js/themeConfig.ts index e215dd9572..786d6ec07b 100644 --- a/packages/modules/web_themes/colors/source/src/assets/js/themeConfig.ts +++ b/packages/modules/web_themes/colors/source/src/assets/js/themeConfig.ts @@ -43,8 +43,6 @@ export class Config { private _lowerPriceBound = 0 private _upperPriceBound = 0 private _showPmLabels = true - isEtEnabled: boolean = false - etPrice: number = 20.5 showRightButton = true showLeftButton = true // graphMode = '' @@ -407,6 +405,7 @@ export class GlobalData { cpDailyExported = 0 evuId = 0 etProvider = '' + country = 'de' get pvBatteryPriority() { return this._pvBatteryPriority } diff --git a/packages/modules/web_themes/colors/source/src/components/chargePointList/VehicleData.vue b/packages/modules/web_themes/colors/source/src/components/chargePointList/VehicleData.vue index 24744fb9d2..dc752f4ee7 100644 --- a/packages/modules/web_themes/colors/source/src/components/chargePointList/VehicleData.vue +++ b/packages/modules/web_themes/colors/source/src/components/chargePointList/VehicleData.vue @@ -120,14 +120,14 @@ heading="Strompreis:" class="grid-col-4 grid-left" > - {{ currentPrice }} ct + {{ etData.etCurrentPriceString }} {{ props.chargepoint.etActive ? (Math.round(props.chargepoint.etMaxPrice * 10) / 10).toFixed(1) + - ' ct' + priceUnit : '-' }} { } } }) - +const priceUnit = computed(() => { + return globalData.country === 'ch' ? ' Rp' : ' ct' +}) //methods function loadSoc() { updateServer('socUpdate', 1, props.chargepoint.connectedVehicle) diff --git a/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts b/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts index 599a68c22d..03f090446a 100755 --- a/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts +++ b/packages/modules/web_themes/colors/source/src/components/powerGraph/processLiveGraphData.ts @@ -125,18 +125,18 @@ function extractValues(data: RawGraphDataItem): GraphDataItem { values.charging = +data['charging-all'] // charge points - we only show a maximum of 10 chargepoints in the graph -/* for (let i = 0; i < 10; i++) { + /* for (let i = 0; i < 10; i++) { const idx = 'cp' + i values[idx] = +(data[idx + '-power'] ?? 0) } */ -Object.keys(data) -.filter(key => re_cp.test(key)) - .forEach((key) => { - const found = key.match(re_cp) - if (found && found[1]) { - values['cp' + found[1]] = +(data[key] ?? 0) - } - }) + Object.keys(data) + .filter((key) => re_cp.test(key)) + .forEach((key) => { + const found = key.match(re_cp) + if (found && found[1]) { + values['cp' + found[1]] = +(data[key] ?? 0) + } + }) values.selfUsage = values.pv - values.evuOut if (values.selfUsage < 0) { values.selfUsage = 0 diff --git a/packages/modules/web_themes/colors/source/src/components/priceChart/GlobalPriceChart.vue b/packages/modules/web_themes/colors/source/src/components/priceChart/GlobalPriceChart.vue index 53fe483039..1883077239 100755 --- a/packages/modules/web_themes/colors/source/src/components/priceChart/GlobalPriceChart.vue +++ b/packages/modules/web_themes/colors/source/src/components/priceChart/GlobalPriceChart.vue @@ -127,7 +127,11 @@ const xAxisGenerator = computed(() => { .ticks(plotdata.value.length) .tickSize(5) .tickSizeInner(-height) - .tickFormat((d) => (d.getHours() % 6 == 0 ? timeFormat('%H:%M')(d) : '')) + .tickFormat((d) => + d.getHours() % 6 == 0 && d.getMinutes() == 0 + ? timeFormat('%H:%M')(d) + : '', + ) }) const yAxisGenerator = computed(() => { return ( @@ -156,7 +160,9 @@ const draw = computed(() => { bargroups .append('rect') .attr('class', 'bar') - .attr('x', (d) => xScale.value(d[0])) + .attr('x', (d) => { + return xScale.value(d[0]) + }) .attr('y', (d) => yScale.value(d[1])) .attr('width', barwidth.value) .attr('height', (d) => yScale.value(yDomain.value[0]) - yScale.value(d[1])) @@ -172,7 +178,11 @@ const draw = computed(() => { .selectAll('.tick line') .attr('stroke', 'var(--color-bg)') .attr('stroke-width', (d) => - (d as Date).getHours() % 6 == 0 ? '2' : '0.5', + (d as Date).getMinutes() == 0 + ? (d as Date).getHours() % 6 == 0 + ? '2' + : '0.5' + : '0', ) xAxis.select('.domain').attr('stroke', 'var(--color-bg') // Y Axis diff --git a/packages/modules/web_themes/colors/source/src/components/priceChart/PriceChart.vue b/packages/modules/web_themes/colors/source/src/components/priceChart/PriceChart.vue index 7399c297cb..1ecbebd3f1 100755 --- a/packages/modules/web_themes/colors/source/src/components/priceChart/PriceChart.vue +++ b/packages/modules/web_themes/colors/source/src/components/priceChart/PriceChart.vue @@ -23,7 +23,7 @@ :show-subrange="true" :subrange-min="prices[0]" :subrange-max="prices[prices.length - 1]" - unit="ct" + :unit="globalData.country == 'ch' ? 'Rp' : 'ct'" />
@@ -50,6 +50,7 @@