Hoi,
Ik zit momenteel even vast met een sensor en zie niet waar ik de mist in ben gegaan.
De bedoeling is om een sensor te maken dat de waarde van een multiscrapesensor neemt en daar een berekening op maakt.
De multiscrape sensor werkt en is de volgende:
- resource: https://www.engie.be/nl/energie/elektri ... eters-gas/
scan_interval: 3600
sensor:
- unique_id: engie dutch ttf gas
name: Engie dutch TTF gas
select: ".table_col5 > div:nth-child(2) > div:nth-child(5) > span:nth-child(2) > div:nth-child(1) > p:nth-child(1)"
unit_of_measurement: "EUR/MWh"
Wat ik zou willen doen is deze waarde nemen en hierop een prijsformule toepassen in een nieuwe sensor.
Voorlopig ziet deze er zo uit (maar geeft de waarde unavailable weer):
- platform: template
sensors:
## Engie gas price
engie_flow_gas_price_ct_per_kwh:
friendly_name: Engie Flow gas price ct/kWh
unit_of_measurement: ct/kWh
value_template: '{{ ((((states("sensor.engie_dutch_ttf_gas") | float / 10 | round (2)) + (1.80 | float)) * 1.06) + (9.38) + (((9.03 * 12)/365)/24)) | round (2)}}'
Technisch werkt de sensor en de formule als ik s"ensor.engie_dutch_ttf_gas" vervang door eender welke andere bestaande sensor, bijvoorbeeld die van de epex spot prijs of zo.
Deze sensor zou de waarde van een multiscrape sensor moeten nemen, maar geeft enkel de waarde unavailable weer ipv de berekening.
Ik stap over op dynamische prijzen vanaf 18 maart en voor elektriciteit heb ik het werkende, maar voor gas nog niet. Als ik deze voor gas ook werkende krijg, dan moet ik niet elke maand de nieuwe prijs in mijn dashboard ingeven om mijn verbruik te tracken, dan gaat het automatisch en dat is het einddoel.
Ik zit dus enkel vast met de prijs van gas, gezien deze van een multiscrapesensor komt.
Heeft iemand een idee waar het mis gaat of wat ik moet veranderen?
Home assistant sensor unavailable
Had er nog niet bij stil gestaan dat ik dat daar even kon controleren.liber! schreef: 07 maa 2023, 08:32 Wat zie je als je de Developer Tools van Home Assistant bekijkt? En zeker de Template tab.

Ik krijg de volgende boodschap:
ValueError: Template error: float got invalid input '52,2944' when rendering template '- platform: template
sensors:
## Engie gas price
engie_flow_gas_price_ct_per_kwh:
friendly_name: Engie Flow gas price ct/kWh
unit_of_measurement: ct/kWh
value_template: '{{ ((((states("sensor.engie_dutch_ttf_gas") | float / 10 | round (2)) + (1.80 | float)) * 1.06) + (9.38) + (((9.03 * 12)/365)/24)) | round (2)}}'' but no default was specified
Wellicht moet ik dit "float" veranderen door iets anders?
- Joe de Mannen
- Elite Poster
- Berichten: 6919
- Lid geworden op: 22 feb 2005, 12:46
- Uitgedeelde bedankjes: 523 keer
- Bedankt: 673 keer
Ik ben alleen verantwoordelijk voor mij eigen uitspraken, niet voor wat anderen ervan maken of aan toevoegen...
Tnx voor de link!Joe de Mannen schreef: 07 maa 2023, 09:12 dit helpt misschien:
https://community.home-assistant.io/t/t ... ate/353198
J.
Ik bestudeer dit verder als ik wat meer tijd heb dan vandaag.

Een snelle blik zegt me dat ik hier alvast wat van zal opsteken.

Toegevoegd na 3 minuten 21 seconden:
Mijn oog viel daarnet ook op het volgende:
ValueError: Template error: float got invalid input '52,2944' when rendering template '
De waarde die gescraped wordt van de website bevat een komma en geen punt.
De rest bevat punten ipv komma's. Zou dit de error niet veroorzaken?
value_template: '{{ ((((states("sensor.engie_dutch_ttf_gas") | float / 10 | round (2)) + (1.80 | float)) * 1.06) + (9.38) + (((9.03 * 12)/365)/24)) | round (2)}}'
Met andere woorden:
De waarde die sensor.engie_dutch_ttf_gas van de site scraped is '52,2944' en niet '52.2944'

Als ik de sensor sensor.engie_dutch_ttf_gas vervang door een andere sensor met een waarde met een punt, dan werkt het wel.
Het wordt denk ik zoeken naar hoe de waarde omzetten naar een waarde met een punt ipv komma.

Toegevoegd na 12 minuten 34 seconden:
Als ik
value_template: '{{ ((((states("sensor.engie_dutch_ttf_gas") | float / 10 | round (2)) + (1.80 | float)) * 1.06) + (9.38) + (((9.03 * 12)/365)/24)) | round (2)}}'
verander in
value_template: '{{ ((((states("sensor.engie_import_spot_price_ct_per_kwh") | float / 10 | round (2)) + (1.80 | float)) * 1.06) + (9.38) + (((9.03 * 12)/365)/24)) | round (2)}}
sensors:
## Engie gas price
engie_flow_gas_price_ct_per_kwh:
friendly_name: Engie Flow gas price ct/kWh
unit_of_measurement: ct/kWh
value_template: '{{ ((((states("sensor.engie_import_spot_price_ct_per_kwh") | float / 10 | round (2)) + (1.80 | float)) * 1.06) + (9.38) + (((9.03 * 12)/365)/24)) | round (2)}}'' but no default was specified
Dan geeft hij wel een waarde:
sensors:
## Engie gas price
engie_flow_gas_price_ct_per_kwh:
friendly_name: Engie Flow gas price ct/kWh
unit_of_measurement: ct/kWh
value_template: '13.9'' but no default was specified
Toegevoegd na 32 minuten 4 seconden:
Ik heb het gevonden!

sensors:
## Engie gas price
engie_flow_gas_price_ct_per_kwh:
friendly_name: Engie Flow gas price ct/kWh
unit_of_measurement: ct/kWh
value_template: '16.84'' but no default was specified
Ik heb het volgende toegevoegd in de value template!
|replace(",", ".")
## Engie gas price (werkt niet)
engie_flow_gas_price_ct_per_kwh:
friendly_name: Engie Flow gas price ct/kWh
unit_of_measurement: ct/kWh
value_template: '{{ ((((states("sensor.engie_dutch_ttf_gas") |replace(",", ".")| float / 10 | round (2)) + (1.80 | float)) * 1.06) + (9.38) + (((9.03 * 12)/365)/24)) | round (2)}}'
Tnx guys! Ook al heb ik het zelf gevonden, jullie suggesties hebben me naar de oplossing gebracht!
De uiteindelijke "clue" heb ik hier gevonden: https://jinja.palletsprojects.com/en/la ... s.replace
Die link staat bij developers tools / Template
jinja-filters.replace(s: str, old: str, new: str, count: Optional[int] = None) → str
Return a copy of the value with all occurrences of a substring replaced with a new one. The first argument is the substring that should be replaced, the second is the replacement string. If the optional third argument count is given, only the first count occurrences are replaced:
voorbeeld:
{{ "Hello World"|replace("Hello", "Goodbye") }}
-> Goodbye World
{{ "aaaaargh"|replace("a", "d'oh, ", 2) }}
-> d'oh, d'oh, aaargh
Case closed!

"Feel free to copy" voor je eigen Home assistant!
Nu kan ik naast de dynamische elektriciteitsprijzen, ook de dynamische gasprijzen automatisch tracken in Home assistant en moet ik deze niet meer elke maand ingeven!

Nog enkel omzetten naar prijs per M³ en "Off to the races!"
