Hoi allemaal,
Graag had ik actuele prijzen van energie opgezocht en gebruikt in mijn Home Assistant. Voor de berekening heb ik de huidige zgn. "Endex 103" waarde nodig die via volgende link opvraagbaar zijn: https://www.engie.be/nl/energie/elektri ... triciteit/
Deze waarde had ik graag opgehaald via de Multiscrape HACS, maar ik heb me al suf gezocht. Ik kan van deze webpagina bijna alles ophalen, behalve de waarde van Endex 103 voor de huidige maand uit de tabel op bovenvermelde webpagina.
extract uit mijn Yaml file:
- resource: https://www.engie.be/nl/energie/elektri ... triciteit/
scan_interval: 86400 # om de 24h prijs ophalen 24x3600s
sensor:
- unique_id: my_energiemaandprijs_endex103
name: Elektriciteitsprijs maand volgens Endex 103
select: ".table_body > table_row:nth-child(2) > table_cell:nth-child(1) > table_mobile_data" #> h1:nth-child(1)" # > .table_cell.cell1" #> .table_mobile_header > .table_mobile_data "
- unique_id: my_energiemaandprijs_endex103_test
name: Elektriciteitsprijs maand volgens Endex 103 TEST
select: ".col-12 > h1:nth-child(1)" # > .table_cell.cell1" #> .table_mobile_header > .table_mobile_data "
my_energiemaandprijs_endex103 retourneert me "unavailable"
my_energiemaandprijs_endex103_test retourneert me "Indexeringsparameters elektriciteit", wat ik ook verwacht had.
Mijn vraag: Kan iemand me de juiste "select" string geven zodat ik de Endex waarde kan ophalen uit de webpagina?
thx!
Home assistant - multiscrape
-
- Plus Member
- Berichten: 176
- Lid geworden op: 08 aug 2011, 15:09
- Uitgedeelde bedankjes: 1 keer
- Bedankt: 6 keer
ik heb dit staan
Code: Selecteer alles
div:nth-child(1) > div > div > div > div:nth-child(2) > div.table_cell.cell3 > span.table_mobile_data > div > p
-
- Starter
- Berichten: 3
- Lid geworden op: 05 nov 2023, 20:34
Dag elmariachi, bedankt de code. Ik heb de code in de select geplakt, maar steeds nog "unavailable". Kan je misschien de volledige code van je sensor posten aub?
-
- Elite Poster
- Berichten: 843
- Lid geworden op: 07 mei 2007, 09:19
- Uitgedeelde bedankjes: 81 keer
- Bedankt: 39 keer
Ik ben zelf niet helemaal vertrouwd met HA maar misschien kan het eraan liggen dat de waarde "113,47" niet geparsed kan worden naar een cijfer door de plugin omdat dit Belgische notatie is?
Misschien dat een value_template waarde dan kan helpen die de komma met een punt vervangt?
Zoiets? Weet niet of dit werkt.
Misschien dat een value_template waarde dan kan helpen die de komma met een punt vervangt?
Zoiets? Weet niet of dit werkt.
Code: Selecteer alles
value_template: '{{ (value.replace(",", ".") }}'
-
- Starter Plus
- Berichten: 43
- Lid geworden op: 12 dec 2020, 12:56
- Bedankt: 1 keer
Yep, dat werkt en is inderdaad het probleem.
Ik heb hetzelfde reeds in gebruik gehad, maar heb de code in mijn yaml bewaard.
Dit is de code dat ik gebruikte:
## Engie gas price
## engie_flow_gas_price_eur_per_m3:
## friendly_name: Engie Flow gas price EUR/m3
## unit_of_measurement: EUR/m³
## value_template: '{{ ((((((states("sensor.engie_dutch_ttf_gas") |replace(",", ".")| float(default=0) / 10 | round (2)) + (1.80 | float)) * 1.06) + (2.56)) * 10.1471) / 100) | round (2)}}'
Ik kan bevestigen dat dit werkte, maar het probleem dat ik ervaarde, was dat als Engie een nieuwe waarde op de site toevoegde, dat ik opnieuw dit
div:nth-child(1) > div > div > div > div:nth-child(2) > div.table_cell.cell3 > span.table_mobile_data > div > p in de multiscape moest aanpassen. Na enkele maanden ben ik ermee gestopt. De cel waar de data naar verwijst leek elke maand telkens veranderd te zijn. Ik vond zelf niet hoe ik dit kon oplossen en heb het dan laten rusten. Ik blijf dit even verder volgen, want als het werkt is het wel een leuke toevoeging.
Ik heb hetzelfde reeds in gebruik gehad, maar heb de code in mijn yaml bewaard.
Dit is de code dat ik gebruikte:
## Engie gas price
## engie_flow_gas_price_eur_per_m3:
## friendly_name: Engie Flow gas price EUR/m3
## unit_of_measurement: EUR/m³
## value_template: '{{ ((((((states("sensor.engie_dutch_ttf_gas") |replace(",", ".")| float(default=0) / 10 | round (2)) + (1.80 | float)) * 1.06) + (2.56)) * 10.1471) / 100) | round (2)}}'
Ik kan bevestigen dat dit werkte, maar het probleem dat ik ervaarde, was dat als Engie een nieuwe waarde op de site toevoegde, dat ik opnieuw dit
div:nth-child(1) > div > div > div > div:nth-child(2) > div.table_cell.cell3 > span.table_mobile_data > div > p in de multiscape moest aanpassen. Na enkele maanden ben ik ermee gestopt. De cel waar de data naar verwijst leek elke maand telkens veranderd te zijn. Ik vond zelf niet hoe ik dit kon oplossen en heb het dan laten rusten. Ik blijf dit even verder volgen, want als het werkt is het wel een leuke toevoeging.
-
- Elite Poster
- Berichten: 843
- Lid geworden op: 07 mei 2007, 09:19
- Uitgedeelde bedankjes: 81 keer
- Bedankt: 39 keer
Probeer deze eens?
Deze pakt effectief de eerste tabel, ipv de rare "zoekactie" die gebeurt met "div:nth-child(1) > div > div > div > div:nth-child(2)". Als ze iets kleins aan de structuur van de pagina veranderen, is die css-selector kapot.
Voor Endex 303 kan je "cell3" vervangen met "cell2". Voor Endex 101 is het "cell4".
Code: Selecteer alles
.table_body > .table_row > .table_cell.cell3 > .table_mobile_data p
Voor Endex 303 kan je "cell3" vervangen met "cell2". Voor Endex 101 is het "cell4".
-
- Starter Plus
- Berichten: 43
- Lid geworden op: 12 dec 2020, 12:56
- Bedankt: 1 keer
Tnx! Ga ik zeker uitproberen een van de dagen. Zal laten weten of het heeft gewerkt!dean3009 schreef: 07 nov 2023, 09:48 Probeer deze eens?
Deze pakt effectief de eerste tabel, ipv de rare "zoekactie" die gebeurt met "div:nth-child(1) > div > div > div > div:nth-child(2)". Als ze iets kleins aan de structuur van de pagina veranderen, is die css-selector kapot.Code: Selecteer alles
.table_body > .table_row > .table_cell.cell3 > .table_mobile_data p
Voor Endex 303 kan je "cell3" vervangen met "cell2". Voor Endex 101 is het "cell4".
-
- Starter
- Berichten: 3
- Lid geworden op: 05 nov 2023, 20:34
Super bedankt!
Ik kan de waarde ophalen uit de tabellen van engie nu.
Zonder value template komt er een correcte string terug.
De Yaml code die ik gebruikt heb om te testen:
- resource: https://www.engie.be/nl/energie/elektri ... triciteit/
scan_interval: 86400 # om de 24h prijs ophalen 86400 = 24x3600s
sensor:
- unique_id: my_energiemaandprijs_endex103
name: Elektriciteitsprijs maand volgens Endex 103
select: .table_body > .table_row > .table_cell.cell2 > .table_mobile_data p
geen value template gebruikt....
Ik kan de waarde ophalen uit de tabellen van engie nu.
Zonder value template komt er een correcte string terug.
De Yaml code die ik gebruikt heb om te testen:
- resource: https://www.engie.be/nl/energie/elektri ... triciteit/
scan_interval: 86400 # om de 24h prijs ophalen 86400 = 24x3600s
sensor:
- unique_id: my_energiemaandprijs_endex103
name: Elektriciteitsprijs maand volgens Endex 103
select: .table_body > .table_row > .table_cell.cell2 > .table_mobile_data p
geen value template gebruikt....