http Abfrage mit Xpath generieren

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
maddin2020
Beiträge: 30
Registriert: 29. Sep 2019 11:21
Answers: 0

http Abfrage mit Xpath generieren

Beitrag von maddin2020 »

Hallo ich möchte gerne den aktuellen Rücknahmepreis einer Wertanlage täglich auslesen. Die Rule für täglich auszulesen ist kein Problem nur hänge ich bei der Abfrage selbst fest. Grundsätzlich denke ich das ich über eine http anfrage die in Kombination mit Xpath lösen sollte. Kann mir dort jemand ein Denkanstoss geben.

Hier die Seite

https://www.deka.de/privatkunden/fondsp ... 0008474511

Ich möchte den aktuellen Rücklesepreis auslesen. Der steht im HTML Code unter dem XPATH dort /html/body/div[1]/div[3]/div[1]/div/div/div[2]/div/div/div[1]/div[2]/div/div/text()

Wie bekomme ich nun den Text dort ausgelesen ?

Per HTTP Bindung hab ich die Seite einmal in den Cache abgelegt

Bank.url=https://www.deka.de/privatkunden/fondsp ... 0008474511
Bank.updateInterval=5000

Danke für eure Tips

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: http Abfrage mit Xpath generieren

Beitrag von udo1toni »

Ich glaube nicht, dass Du XPath dafür missbrauchen kannst, XPath setzt ein gültiges XML Dokument voraus.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

maddin2020
Beiträge: 30
Registriert: 29. Sep 2019 11:21
Answers: 0

Re: http Abfrage mit Xpath generieren

Beitrag von maddin2020 »

oh ok danke für das Feedback. Siehst du sonst eine Chance die daten in der HTML Datei auszulesen

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: http Abfrage mit Xpath generieren

Beitrag von udo1toni »

Eigentlich sollte das mit REGEX ganz gut gehen. z.B. so:

Code: Alles auswählen

REGEX(.*Ausgabepreis</span>.*<div class=.item-detail.>[ \t]*(.*) EUR.*)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

juschi
Beiträge: 13
Registriert: 23. Mär 2020 21:49
Answers: 0

Re: http Abfrage mit Xpath generieren

Beitrag von juschi »

So gehts ganz einfach:

Code: Alles auswählen

Items:
Number deka		"Deka[%s €]"			<line>

Rules:
rule	"Deka"
when    Time cron "0 0/1 * * * ?"
then     val String deka_data = sendHttpGetRequest("https://www.tradegate.de/refresh.php?isin=DE0008474511")
	    var String deka_price = transform("JSONPATH", ".['bid']", deka_data)
	    deka.postUpdate(Float::parseFloat(String::format("%s",deka_price).replace(',','.')))
end
Müsste auf anhieb funktionieren ;)

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: http Abfrage mit Xpath generieren

Beitrag von udo1toni »

Allerdings ist das eine andere Website :) aber vermutlich wird die Datenbasis auch passen. Ohne Frage ist ein gültiges JSON Objekt (oder alternativ auch XML...) zu bevorzugen, wenn es zur Verfügung steht.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

juschi
Beiträge: 13
Registriert: 23. Mär 2020 21:49
Answers: 0

Re: http Abfrage mit Xpath generieren

Beitrag von juschi »

Ja genau, die Quelle ist in diesem Fall Tradegate. Dort kann man jedoch so ziemlich alle Kurse abfragen. Wahrscheinlich bekommt man sogar aktuellere Werte als bei Deka. Hab in Erinnerung, dass die eh nur gegen 12 Uhr die Kurse einmal am Tag aktualisieren :D

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: http Abfrage mit Xpath generieren

Beitrag von udo1toni »

Womit mal wieder bewiesen wäre, dass eine gute Lösung eines Problems manchmal schon vor der ursprünglichen Aufgabenstellung ansetzen muss. :)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten