Spritpreise aus Website in Openhab integrieren

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Zacki
Beiträge: 43
Registriert: 26. Jan 2019 13:27

Spritpreise aus Website in Openhab integrieren

Beitrag von Zacki »

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

Stefan Otten
Beiträge: 73
Registriert: 11. Nov 2018 06:51

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von Stefan Otten »

Hallo,

für die deutschen Benzinpreise habe ich eine Lösung.
Wäre das interessant?

Grüße

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

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von udo1toni »

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.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Zacki
Beiträge: 43
Registriert: 26. Jan 2019 13:27

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von Zacki »

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é

Zacki
Beiträge: 43
Registriert: 26. Jan 2019 13:27

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von Zacki »

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="<[spritmonitor:30000:JSONPATH($..name)]"}
String TSAdresse1 "[%s]" {http="<[spritmonitor:30000:JSONPATH($..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="<[spritmonitor:30000:JSONPATH($..name[0])]"}
String TSAdresse2 "[%s]" {http="<[spritmonitor:30000:JSONPATH($..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="<[spritmonitor:30000:JSONPATH($..prices.amount)]"}
noch mit
String TSPreis2 "[%d]" {http="<[spritmonitor:30000:JSONPATH($..prices[0].amount)]"}
angezeigt. Da hat das Item immer den Wert "-"

Wie komme ich zu den Werten?

Danke
LG René

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

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von udo1toni »

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:

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)]"}
Da es sich beim Preis um eine Zahl handelt, kann man die auch gleich als Zahl verarbeiten (bei http geht das)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Zacki
Beiträge: 43
Registriert: 26. Jan 2019 13:27

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von Zacki »

Perfekt, funktioniert. VIELEN DANK!!!

AndiB
Beiträge: 2
Registriert: 21. Jul 2021 14:23

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von AndiB »

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

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von sihui »

AndiB hat geschrieben: 18. Jan 2022 13:35 Vielleicht könnt ihr mir hier weiterhelfen
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.

AndiB
Beiträge: 2
Registriert: 21. Jul 2021 14:23

Re: Spritpreise aus Website in Openhab integrieren

Beitrag von AndiB »

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

Antworten