Hallo,
ich ziehe mir aus einer Webseite den tagesaktuellen Heizöl-Preis:
scrape:
- resource: https://www.esyoil.com/
sensor:
- name: "Aktueller Heizölpreis"
unique_id: "aktueller_heizolpreis"
select: "#default-page-layout > main > section:nth-child(3) > div > div > div.data-tile-container > div > div.single-data-container > div.price > p"
Dieser Sensor liefert mit folgenden Wert: “101,76 €”. Das ist der Preis pro 100 Liter.
In der configuration.yaml habe ich diesen Sensor definiert, der mir die momentan nachzutankende Menge an Heizöl anzeigt:
- name: "Tanken"
unique_id: "tanken"
unit_of_measurement: "L"
state: >
{{ states('input_number.max_oil_fill') | float - states('sensor.oilfox_ow8440194250_filllevelquantity') | float }}
Dieser Sensor liefert mir diesen Wert: “1103.0”. Also mit Punkt und ohne Einheit.
Ich wollte nun mit einem weiteren Sensor die voraussichtlichen Kosten für das Nachtanken berechnen. Die Idee war folgendermaßen:
- name: "Gesamtkosten Heizöl"
unique_id: "gesamtkosten_heizol"
unit_of_measurement: "€"
state: >
{{ (states('sensor.aktueller_heizolpreis').replace(' €', '').replace(',', '.') | float / 100) * states('sensor.tanken').replace(',', '.') | float | round(2) }}
Ich hatte auch schon Versionen in denen die unterschiedlichen Werte (Punkt/Komma) und auch die Einheit “€” (mit oder ohne) berücksichtig wurden, leider alles ohne Erfolg. Der sensor.gesamtkosten_heizol liefert immer “nicht verfügbar”. Wo liegt mein Denkfehler bzw. Rechenfehler?
Grüße
Stony