Erstmal Danke für den Tip toto1975 habe das nun gefunden nur wenn ich das richtig verstehe brauche ich ja die IDs der Tankstellen diese sehe ich aber in der Übersicht nicht. Und was leider schade ist das nur E10 E5 und Diesel gelistet Super Plus wäre noch gut.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Spritpreise per HTTP-Binding und JSON
Einklappen
X
-
Hallo und vielen Dank für die Anleitung!
Hier noch ein paar Tips für diejenigen, die mehere Infos darstellen wollen, z.B. Spritpreis und ob die Tankstelle geöffnet ist. Dazu sollte man die JSON-Antwort zwischenspeichern, um unnötige Abfragen bei Tankerkönig zu vermeiden. Ich habe es z.B. so bei mir gelöst:
openhab.cfg:
http:tankstelle1Cache.url=https://creativecommons.tankerkoenig.de/json/detail.php?id=<id>&apikey=<apikey>
http:tankstelle1Cache.updateInterval=300000
usw...
sprit.items:
Group BP "Aktuelle Benzinpreise (E10)" <oil> (All)
Number Tanstelle1 "Tankstelle1 [%.3f Euro]" <logoTankstelle1> (BP) { http="<[tankstelle1Cache:300000:JS(e10.js)]" }
Switch Tankstelle1Closed "Tankstelle 1 geschlossen" <logoTankstelle1> (BP) { http="<[tankstelle1Cache:300000:JS(stationIsClosed.js)]" }
in transforms-Verzeichnis:
e10.js:
JSON.parse(input).station.e10;
stationIsClosed.js:
JSON.parse(input).station.isOpen ? "OFF":"ON";
in sitemap:
Group item=BP {
Text item=Tankstelle1 visibility=[Tankstelle1Closed!=ON]
Text item=Tankstelle1Closed visibility=[Tankstelle1Closed==ON]
}Zuletzt geändert von dschaadt; 18.01.2016, 21:30.
Kommentar
-
Hallo,
ich bin neu hab habe versucht, entsprechend der Anleitung die Benzinpreise angezeigt zu bekommen.
Allerdings erfolgt keine Anzeige, in den Logs konnte ich aber keine Fehler finden und wenn ich den Link direkt in den Brower eingebe, dann bekomme ich die Daten vom Tankerkönig geliefert.
Das ist meine Items:
Number Tankstelle1 "Tankstelle1 [%.3f]" { http="<[tank1Cache:300000:JS(sprit.js)]" }
Das die Sitemap:
Text item=Tankstelle1
Ich könnte mir vorstellen, dass es irgendwas mit der sprit.js zu tun hat. Hier habe ich folgendes drin stehen:
JSON.parse(input).station.diesel;
Danke für die Hilfe
Martin
Kommentar
-
Hallo,
so die Dummheit ist ja kaum zu überbieten. Also ohne Binding File im Addon Verzeichnis wird es nix werden.
Jetzt kommt aber folgender Fehler:
Code:13:20:42.513 [DEBUG] [.o.b.http.internal.HttpBinding:166 ] - item 'Tankstelle1' is not a valid URL or is a cache id yet to be initialised (tank1Cache)
Danke
Kommentar
-
In der openhab.cfg den Cache für die Abfrage bei der Webseite eingestellt???
siehe Post #32 von dschaadt:
openhab.cfg:
http:tankstelle1Cache.url=https://creativecommons.tankerkoenig.de/json/detail.php?id=<id>&apikey=<apikey>
http:tankstelle1Cache.updateInterval=300000
Also bei Dir dann "tank1Cache" anstatt "tankstelle1Cache"
Grüße,
andreas
Kommentar
-
Hallo,
ich habe mal folgendes gemacht:
Und zwar habe ich das HTTP Binding direkt in die ITEMS definition geschrieben:
Code:Number Tankstelle1 "Tankstelle1 [%.3f Euro]" { http="<[https://creativecommons.tankerkoenig.de/json/detail.php?id=7859c737-7ba0-4506-9ebd-867609d63371&apikey=00000000-0000-0000-0000-000000000002:30000:JS(sprit.js)]" }
Code:2016-01-18 14:06:54.283 [ERROR] [g.openhab.io.net.http.HttpUtil] - Fatal transport error: java.net.UnknownHostException: creativecommons.tankerkoenig.de 2016-01-18 14:06:54.283 [ERROR] [.o.b.http.internal.HttpBinding] - No response received from 'https://creativecommons.tankerkoenig.de/json/detail.php?id=7859c737-7ba0-4506-9ebd-867609d63371&apikey=00000000-0000-0000-0000-000000000002'
Kommentar
-
Hallo,
ich konnte das Problem lösen. Es war mein Proxy. Nachdem ich den ausgeklemmt hatte, hat der Aufruf auch über openHab funktioniert.
Mal was anderes: Kann man mehr als ein Tankstelle mit der eigenen API abrufen? Bei mir hat er für die erste Tankstelle im Umkreis den Dieselpreis sauber abgerufen, für die zweite Tankstelle kam eine Fehlermeldung von der URL zurück.
Danke Martin
Kommentar
-
Hi,
Zitat von deMaFi Beitrag anzeigenMal was anderes: Kann man mehr als ein Tankstelle mit der eigenen API abrufen? Bei mir hat er für die erste Tankstelle im Umkreis den Dieselpreis sauber abgerufen, für die zweite Tankstelle kam eine Fehlermeldung von der URL zurück.
Gruss,
thoern
Kommentar
Kommentar