Spritpreise aus Website in Openhab integrieren
-
- Beiträge: 43
- Registriert: 26. Jan 2019 13:27
Spritpreise aus Website in Openhab integrieren
Hallo Zusammen
Ich würde gerne eine Übersicht über die Spritpreise in Openhab integrieren.
Dazu habe ich diese Website gefunden:
https://www.oeamtc.at/spritapp/SimpleSe ... tversion=1
In der "printversion" sieht dies nun schon ganz Übersichtlich aus
Gibt es nun eine Möglichkeit die Daten:
Top 13
.) Name
.) Adresse
.) Preis
zu grabben und in Openhab zu integrieren?
alternativ habe ich noch gesehen, dass es von e-Control selbst die Daten als json gibt:
https://api.e-control.at/sprit/1.0/sear ... osed=false
allerdings sind hier nur die Top 5, ÖAMTC bekommt scheinbar mehr Daten (13).
Hier wäre: name, address & amount abzurufen
Ich weiß zwar dass es ein HTTP Binding gibt, aber so ganz hab ich das nicht durchschaut.
Bzw hat jemand einen anderen Weg gefunden Spritpreise aus Wien abzufragen. Das Tankerkönig funktioniert für Wien nicht
Vielen Dank
VG Zacki
Ich würde gerne eine Übersicht über die Spritpreise in Openhab integrieren.
Dazu habe ich diese Website gefunden:
https://www.oeamtc.at/spritapp/SimpleSe ... tversion=1
In der "printversion" sieht dies nun schon ganz Übersichtlich aus
Gibt es nun eine Möglichkeit die Daten:
Top 13
.) Name
.) Adresse
.) Preis
zu grabben und in Openhab zu integrieren?
alternativ habe ich noch gesehen, dass es von e-Control selbst die Daten als json gibt:
https://api.e-control.at/sprit/1.0/sear ... osed=false
allerdings sind hier nur die Top 5, ÖAMTC bekommt scheinbar mehr Daten (13).
Hier wäre: name, address & amount abzurufen
Ich weiß zwar dass es ein HTTP Binding gibt, aber so ganz hab ich das nicht durchschaut.
Bzw hat jemand einen anderen Weg gefunden Spritpreise aus Wien abzufragen. Das Tankerkönig funktioniert für Wien nicht
Vielen Dank
VG Zacki
-
- Beiträge: 73
- Registriert: 11. Nov 2018 06:51
Re: Spritpreise aus Website in Openhab integrieren
Hallo,
für die deutschen Benzinpreise habe ich eine Lösung.
Wäre das interessant?
Grüße
für die deutschen Benzinpreise habe ich eine Lösung.
Wäre das interessant?
Grüße
- udo1toni
- Beiträge: 13859
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Spritpreise aus Website in Openhab integrieren
Zacki schreibt ja explizit, dass er sich für die Spritpreise in Wien interessiert.
Für Deutschland gibt es Tankerkönig (auch wenn ich nicht weiß, ob das Tankstellennetz komplett abgebildet ist, so hab ich bisher jede "meiner" Tankstellen gefunden)
Der Quellcode der Seite ist einigermaßen hässlich. Das JSON ist einfach zu parsen, da openHAB hierfür Werkzeuge an Bord hat. Allerdings sind 5 Tankstellen statt 181 Tankstellen schon ein bisschen arg mager.
Ich hab noch ein paar andere Preisvergleichsseiten gefunden.
Das Hauptproblem dabei ist immer, ob die Daten einigermaßen vernünftig auf der Seite vorliegen, um mit vertretbarem Aufwand extrahiert zu werden.
Für Deutschland gibt es Tankerkönig (auch wenn ich nicht weiß, ob das Tankstellennetz komplett abgebildet ist, so hab ich bisher jede "meiner" Tankstellen gefunden)
Der Quellcode der Seite ist einigermaßen hässlich. Das JSON ist einfach zu parsen, da openHAB hierfür Werkzeuge an Bord hat. Allerdings sind 5 Tankstellen statt 181 Tankstellen schon ein bisschen arg mager.
Ich hab noch ein paar andere Preisvergleichsseiten gefunden.
Das Hauptproblem dabei ist immer, ob die Daten einigermaßen vernünftig auf der Seite vorliegen, um mit vertretbarem Aufwand extrahiert zu werden.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 43
- Registriert: 26. Jan 2019 13:27
Re: Spritpreise aus Website in Openhab integrieren
ja, ich bin nur an Wien interessiert.
um ehrlich zu sein, wären 5 Tankstellen, nicht das Problem, allerdings müssten es die 5 richtigen sein
Vielleicht sollte ich auf mein Ziel etwas genauer eingehen.
In der Umgebung meines Wohnortes gibt es 5 Tankstellen, und wenn ich tanken muss, will ich schnell und einfach nachschauen, welche am billigsten ist, und das soll mir in Openhab angezeigt werden.
Folgende 5 wären für mich interessant:
.) Leopoldauer Straße 40
.) Leopoldauer Straße 51
.) Brünner Straße 64
.) Shuttleworthstraße 11
.) Donaufelder Straße 135
Ich habe auch ein paar unterschiedliche Webseiten gefunden. So wie es für mich aussieht, greifen alle auf die Daten von e-Control zu.
Auch der Öamtc, warum der jedoch bis zu 15 bekommt, und alle anderen nur 5, kann ich nicht beantworten.
Ich dachte mir, die einfachste Art und weiße die Daten auszulesen, wäre über:
https://www.oeamtc.at/spritapp/SimpleSe ... tversion=1
und hier hätte ich auch 15 statt 5 Tankstellen.
nur irgendwie bin ich drauf gekommen, dass mein Standort im Cache gespeichert werden dürfte, weil ich von Zeit zu Zeit immer wieder aufgefordert werden den Standort erneut einzugeben. In meinem Fall 1210 Wien
Hat jemand eine Idee, wie ich dass nun umsetzen könnte?
Auf der ÖAMTC Seite, sind diese 5 so gut wie immer vertreten, und wenn nicht, dann wäre es auch ok, wenn "nicht unter den günstigsten" angezeigt wird.
Aber wie löse ich die Herausforderung mit der Eingabe der PLZ?
Und wie lese ich die 5 richtigen aus?
Vielen Dank
LG René
um ehrlich zu sein, wären 5 Tankstellen, nicht das Problem, allerdings müssten es die 5 richtigen sein
Vielleicht sollte ich auf mein Ziel etwas genauer eingehen.
In der Umgebung meines Wohnortes gibt es 5 Tankstellen, und wenn ich tanken muss, will ich schnell und einfach nachschauen, welche am billigsten ist, und das soll mir in Openhab angezeigt werden.
Folgende 5 wären für mich interessant:
.) Leopoldauer Straße 40
.) Leopoldauer Straße 51
.) Brünner Straße 64
.) Shuttleworthstraße 11
.) Donaufelder Straße 135
Ich habe auch ein paar unterschiedliche Webseiten gefunden. So wie es für mich aussieht, greifen alle auf die Daten von e-Control zu.
Auch der Öamtc, warum der jedoch bis zu 15 bekommt, und alle anderen nur 5, kann ich nicht beantworten.
Ich dachte mir, die einfachste Art und weiße die Daten auszulesen, wäre über:
https://www.oeamtc.at/spritapp/SimpleSe ... tversion=1
und hier hätte ich auch 15 statt 5 Tankstellen.
nur irgendwie bin ich drauf gekommen, dass mein Standort im Cache gespeichert werden dürfte, weil ich von Zeit zu Zeit immer wieder aufgefordert werden den Standort erneut einzugeben. In meinem Fall 1210 Wien
Hat jemand eine Idee, wie ich dass nun umsetzen könnte?
Auf der ÖAMTC Seite, sind diese 5 so gut wie immer vertreten, und wenn nicht, dann wäre es auch ok, wenn "nicht unter den günstigsten" angezeigt wird.
Aber wie löse ich die Herausforderung mit der Eingabe der PLZ?
Und wie lese ich die 5 richtigen aus?
Vielen Dank
LG René
-
- Beiträge: 43
- Registriert: 26. Jan 2019 13:27
Re: Spritpreise aus Website in Openhab integrieren
sooooo, ich bin meinem Ziel nun etwas näher gekommen....
Allerdings brauche ich nun bitte Hilfe:
Ich hole mir die Daten über:
https://api.e-control.at/sprit/1.0/sear ... osed=false
und nun zu meiner Herausforderung mit JASON transformation
erstelle ich folgende ITEMS,
String TSName1 "[%s]" {http="<[spritmonitorJSONPATH($..name)]"}
String TSAdresse1 "[%s]" {http="<[spritmonitorJSONPATH($..location.address)]"}
bekomme ich die Meldung im Logfile:
JsonPath expressions with more than one result are not allowed, please adapt your selector. Result: [...,...,...]
es werden die gewünschten Daten ausgelesen, aber eben alle Namen bzw Adressen. Zumindest im Logfile, das Item selber hat den Wert Null
Ändere ich mein ITEM nun auf:
String TSName2 "[%s]" {http="<[spritmonitorJSONPATH($..name[0])]"}
String TSAdresse2 "[%s]" {http="<[spritmonitorJSONPATH($..location.address[0])]"}
was mir aus meiner Sicht, den 1. Namen od die 1. Adresse geben sollte
steht im Logfile:
TSName2 changed from NULL to NULL
und den Preis selber bekomme ich gar nicht hin:
hier wird mir weder im Logfile etwas mit
String TSPreis2 "[%d]" {http="<[spritmonitorJSONPATH($..prices.amount)]"}
noch mit
String TSPreis2 "[%d]" {http="<[spritmonitorJSONPATH($..prices[0].amount)]"}
angezeigt. Da hat das Item immer den Wert "-"
Wie komme ich zu den Werten?
Danke
LG René
Allerdings brauche ich nun bitte Hilfe:
Ich hole mir die Daten über:
https://api.e-control.at/sprit/1.0/sear ... osed=false
und nun zu meiner Herausforderung mit JASON transformation
erstelle ich folgende ITEMS,
String TSName1 "[%s]" {http="<[spritmonitorJSONPATH($..name)]"}
String TSAdresse1 "[%s]" {http="<[spritmonitorJSONPATH($..location.address)]"}
bekomme ich die Meldung im Logfile:
JsonPath expressions with more than one result are not allowed, please adapt your selector. Result: [...,...,...]
es werden die gewünschten Daten ausgelesen, aber eben alle Namen bzw Adressen. Zumindest im Logfile, das Item selber hat den Wert Null
Ändere ich mein ITEM nun auf:
String TSName2 "[%s]" {http="<[spritmonitorJSONPATH($..name[0])]"}
String TSAdresse2 "[%s]" {http="<[spritmonitorJSONPATH($..location.address[0])]"}
was mir aus meiner Sicht, den 1. Namen od die 1. Adresse geben sollte
steht im Logfile:
TSName2 changed from NULL to NULL
und den Preis selber bekomme ich gar nicht hin:
hier wird mir weder im Logfile etwas mit
String TSPreis2 "[%d]" {http="<[spritmonitorJSONPATH($..prices.amount)]"}
noch mit
String TSPreis2 "[%d]" {http="<[spritmonitorJSONPATH($..prices[0].amount)]"}
angezeigt. Da hat das Item immer den Wert "-"
Wie komme ich zu den Werten?
Danke
LG René
- udo1toni
- Beiträge: 13859
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Spritpreise aus Website in Openhab integrieren
Dein JSON ist falsch. Wie kommst Du auf zwei Punkte hintereinander? Du hast eine Ergebnisliste mit 10 Tankstellen, jede der Tankstellen hat einen Namen, eine Adresse, einen Preis usw. Wenn Du Name, Adresse und Preis haben willst, sieht das für die erste Tanke so aus:
Da es sich beim Preis um eine Zahl handelt, kann man die auch gleich als Zahl verarbeiten (bei http geht das)
Code: Alles auswählen
String TSName1 "Tanke1 [%s]" {http="<[spritmonitor:30000:JSONPATH($.[0].name)]"}
String TSAdresse1 "Tanke1 [%s]" {http="<[spritmonitor:30000:JSONPATH($.[0].location.address)]"}
Number TSPreis1 "Tanke1 Super [%.2f EUR]" {http="<[spritmonitor:30000:JSONPATH($.[0].prices[0].amount)]"}
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 43
- Registriert: 26. Jan 2019 13:27
Re: Spritpreise aus Website in Openhab integrieren
Perfekt, funktioniert. VIELEN DANK!!!
-
- Beiträge: 2
- Registriert: 21. Jul 2021 14:23
Re: Spritpreise aus Website in Openhab integrieren
Hallo, ich versuche das gerade in OH3 abzubilden. Scheitere aber an dem Verständnis wie ich die Things und Channels dafür konfiguriere. Hab auch schon einiges ausprobiert und mit JSONPATH herumgespielt. Vielleicht könnt ihr mir hier weiterhelfen. LG Andreas
openHAB 3.2.0. in einem Ubuntu-Container mit openHABian (LXC) unter Proxmox 7.x
- sihui
- Beiträge: 1827
- Registriert: 11. Apr 2018 19:03
Re: Spritpreise aus Website in Openhab integrieren
Ich empfehle die einfache Variante über ein Binding:
https://www.openhab.org/addons/bindings/tankerkoenig/
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.
-
- Beiträge: 2
- Registriert: 21. Jul 2021 14:23
Re: Spritpreise aus Website in Openhab integrieren
Leider geht Tankerkönig nur in Deutschland. Ich brauche die Daten aus Österreich und hole die Daten wie schon weiter oben beschrieben via HTTP Binding von E-Control (https://api.e-control.at/sprit/1.0/sear ... osed=false) ab.
openHAB 3.2.0. in einem Ubuntu-Container mit openHABian (LXC) unter Proxmox 7.x