Hallo Miteinander,
habe vor einigen Wochen mit HA begonnen.
Ich habe bisher keine Erfahrung mit programmieren, aber mit GPT läuft das echt gut. Daher Anfänger.
Seit einigen Tagen möchte ich meine Wetterstation, in HA einbinden. Für ne LAngzeitspeicherung werden die Daten in eine CSV geschrieben.
Ich bekommen auch die Daten in das Diagramm geladen, nur bleibt es rechts immer leer, oder ein Strich des letzten Wertes wird nach rechts gezogen.
Ich möchte, dass rechts immer der letzte Wert steht, und sich das Diagramm dann aufbaut.
Da ich auch Diagramme für Woche, Monat, Jahr haben möchte ist es mein anliegen, dass rechts der letzte Wert steht und links zB Tagesbeginn.
Auch kämfpe ich, dass Min und Max als Punkte angezeigt werden.
Achja: ICh habe einen Daten Generator, wie gesagt, es funktioniert, nur halt leer.
Kann mir bitte wer helfen?
Bin schon am Verzweifeln.
Danke
Lg Philipp
Hier mein Code:
type: custom:apexcharts-card
header:
title: Temp. Heute
show: true
graph_span: 1d
update_interval: 5min
span:
start: day
apex_config:
chart:
height: 300px
animations:
enabled: true
stroke:
curve: smooth
series:
- entity: sensor.ihartl98_temperature
type: line
name: Temperatur
color: orange
extend_to: now
data_generator: |
return fetch('/local/wetter/temp/temp_chart_data_today.json')
.then(res => res.json())
.then(data => {
const result = data.map(d => ({ x: new Date(d[0]), y: d[1] }));
const last = result[result.length - 1];
const now = new Date();
const nowTime = now.getHours() * 60 + now.getMinutes();
const lastTime = last.x.getHours() * 60 + last.x.getMinutes();
if (nowTime > lastTime) {
result.push({ x: now, y: last.y });
}
return result;
});
- entity: sensor.ihartl98_dewpoint
type: line
name: Min
color: blue
stroke_width: 0
data_generator: |
return fetch('/local/wetter/temp/temp_chart_data_today.json')
.then(res => res.json())
.then(data => {
const minVal = Math.min(...data.map(d => d[1]));
const min = data.find(d => d[1] === minVal);
return min ? [{ x: new Date(min[0]), y: min[1] }] : [];
});
- entity: sensor.ihartl98_dewpoint
type: line
name: Max
color: red
stroke_width: 0
data_generator: |
return fetch('/local/wetter/temp/temp_chart_data_today.json')
.then(res => res.json())
.then(data => {
const maxVal = Math.max(...data.map(d => d[1]));
const max = data.find(d => d[1] === maxVal);
return max ? [{ x: new Date(max[0]), y: max[1] }] : [];
});