Erst einmal ein Hallo in die Runde. Ich bin neu in diesem Forum.
Ich habe mir einen Scrape Sensor angelegt um aus einer Seite den aktuellen Ölpreis auszulesen.
Das funktioniert auch ohne Probleme.
Wenn ich jetzt allerdings mit folgendem Code eine Graph Linie ausgeben möchte bekomme ich nur die Meldung, dass es keine historischen Daten gibt:
graph: line
type: sensor
entity: sensor.olpreis
Ich habe im Yaml auch für den Recorder diesen Sonsor nicht eingeschränkt oder so.
Was jetzt echt seltsam ist, wenn ich den Sensor anklicke sehe ich nicht nur den aktuellen Preis:
Auch wenn ich über custom:apexcharts-card ausgebe bekomme ich eine Linie.
type: custom:apexcharts-card
header:
show: false
show_states: true
graph_span: 3d
span:
end: day
series:
- entity: sensor.olpreis
Wieso bekomme ich denn für diesen Sensor jetzt keine Historischen Daten angezeigt.
Kann ich das irgendwie ändern, dass ich auch über die Standard graph: line eine Ausgabe hinbekomme?
1 „Gefällt mir“
compoundbow83:
Scrape Sensor
Versuche mal:
einen Helfer Template Sensor daraus zu machen
1 „Gefällt mir“
Wie meinst du das?
Soll ich jetzt zusätzlich zum Scraper noch ein Template Sensor machen, der den Wert von dem Scraper Sensor holt?
Den Sensor habe ich nicht als Helper angelegt sondern über die Scraper Integration.
Genau so meinte ich das, also ein Template Sensor von dem erzeugten Scraper Sensor.
Kannst ja erst mal in den EntwicklerWerkzeugen bei Template die Ausgabe testen:
{{ states(‚sensor.olpreis‘)|float(0) }}
wenn ich es im Entwicklerwerkzeug mit diesem Code probiere (hattest bei deinem Code ein Einführungszeichen falsch gesetzt):
{{ states('sensor.olpreis')|float(0) }}
kommt als Ausgabe einfach nur 0 heraus.
lasse ich |float(0) weg also:
{{ states('sensor.olpreis') }}
kommt folgndes heraus:
105,36
€
Ich denke hier ist wohl genau mein Problem, warum die Historie nicht funktioniert. Aber wie kann ich das ändern?
Du musst in deinem Scrape Sensor ein Wert-Template verwenden und das € entfernen und daraus einen float Wert machen ungefähr so:
{{ (value.replace('€', '')| float(0) }}
Wenn du das zusätzlich mit einem Template machen möchtest, würde es ungefähr so aussehen:
{{ "105,36 €" | replace("€", "") | replace(" ", "") | replace(",", ".") | float(0) }}
Wobei du bei den "105,36 € deinen Scrape Sensor eingibst
{{ states('deinscrapesensor') | replace("€", "") | replace(" ", "") | replace(",", ".") | float(0) }}
→ ungetestet , kann noch Fehler enthalten. Ggf. musst du beim Scrape Sensor auch noch das „,“ durch einen „.“ entfernen, wie ich es jetzt beim Templatesensor gemacht habe. Da bin ich mir gerade nicht sicher.
1 „Gefällt mir“
habe das jetzt mal mit dem Wert-Template im Scrape Sensor versucht.
Mit diesem Code funktioniert es und ich habe den Preis ohne das € Zeichen am Ende:
{{ (value.replace('€', '')| replace(" ", "") | replace(",", ".") | float(0)) }}
damit klappt jetzt auch der graph: line.
Vielen dank für die Hilfe
1 „Gefällt mir“