Tankstellenpreis in openHAB anzeigen

Wer stellt sich die Frage nicht: Welche Tankstelle bietet mir gerade den günstigsten Sprit an? Im Radius ca. 10 km habe ich vier Tankstellen, an denen ich oft vorbei komme. Ich bin nicht der Sparfuchs, der mehrere Kilometer mehr fährt, um den letzten Cent herauszukitzeln. Aber gar nicht auf die Preisanzeige zu schauen – „Ich tanke immer nur für 30 EUR“, ist auch nicht meins. Daher ist ein Vergleich von mehreren Tankstellen auf meinen Weg schon eine Pflicht.

Das Portal „Tankerkönig“ http://www.tankerkoenig.de/ bietet genau so einen Vergleich nach Spritart und Entfernung an. Lt. Tankerkönig kommen die Daten kommen von der Markttransparenzstelle für Kraftstoffe (MTS-K) einer Abteilung des Bundeskartellamtes. Im Moment sind mehr als 14000 Tankstellen bundesweit in dieses System eingebunden. Das heißt, alle Tankstellen Deutschlands, mit wenigen Ausnahmen, melden ihre Preise nach einer Änderung umgehend an diese Stelle. Der Aktualisierungsrhythmus beträgt im Schnitt vier Minuten! Also durchaus eine zuverlässige Quelle für einen Spritpreisvergleich!

Das ganze bekommt einen zusätzlichen Charme, wenn nun openHAB diesen Vergleich darstellt bzw. über Veränderungen informiert!

Über das http-Binding von openHAB ist das schnell gemacht:

Das Binding ruft über die API von Tankerkönig die Informationen zur der Tankstelle ab. Dies ist ein verschachteltes Daten-Array, welches per JSON ausgelesen werden kann. Hört sich kompliziert an, ist es aber nicht!

Erst einmal benötigst du eine API von Tankerkönig. Das erledigst du hier https://creativecommons.tankerkoenig.de/
Die Tankstellen-ID bekommst du am einfachsten, wenn du über die mobile Version http://www.tankerkoenig.de/index.php?type=phone den Link auf die Detail-Seite deine Tankstelle kopierst. In dem Link wird nach „id=“ die Tankstellen-ID genannt.

Hier ein Beispiel:

Falls noch nicht passiert, installierst du das Binding per Terminal:

Deine API und die ID trägst du dann als Item in deine demo.items ein:

Damit im Ergebnis nur der Preis angezeigt wird, muss ein Extrakt aus dem Array von Tankerkönig gezogen werden. Dies machst du mit Hilfe der Datei der „e5.js“, die im Verzeichnis „configurations/transform“ liegt:

Fertig, nun sollten dir die ersten Preise angezeigt werden.

Trouble-Shooting:

Solltest du keinen Preis angezeigt bekommen und in dem Log-File folgender Eintrag

stehen, musst du in deiner Java-Installation noch das Zertifikat für die https-Verbindung hinzufügen. Mit diesen paar Zeilen ist das schnell erledigt:

Wenn du nicht genau weist, ob Java bereits installiert ist, bekommst du es hiermit raus:

Der Befehl nennt dir die Version, die du im Einsatz hast. Damit ist klar, dass Java auch vorhanden ist. Das fehlende Zertifikat installierst du dann mit den beiden Zeilen:

Das Passwort lautet: changeit

Nun viel Erfolg beim Vergleichen!

21 Gedanken zu „Tankstellenpreis in openHAB anzeigen“

  1. Hallo,

    ich bekomme es nicht hin dass mir der Benzinpreis angezeigt wird. Ich habe mich genau an die Anleitung gehalten.

    Gruss Michael

    1. Hast du auch das Zertifikat in Java eingebunden? Das war bei mir das Problem. Schau mal in deinen Logfile. Dort wird dann ein Hinweis zu finden sein. Der Logfile liegt im Verzeichnis /var/log/openhab/openhab.log.

  2. Hallo,

    ich habe in der Logfile in der Zeile wo Openhab versucht Tankerkönig zu laden am Ende der Zeile das gefunden.

    doesn’t contain a valid binding configuration

    Ich habe das Binding falsch eingestellt. Muss mal nachschauen.

    Gruss Michael

    1. Hi Michael,
      ich hatte einen Fehler bei der Benennung der js-Datei – es muss e5.js und nicht spritpreis.js heißen (Artikel ist bereits aktualisiert!). Hast du meinen Fehler in deine Konfiguration übernommen?!
      Viele Grüße
      Marc

  3. Hi,

    aus meiner Logdatei habe ich das kopiert.

    2015-12-14 19:50:27.344 [ERROR] [i.internal.GenericItemProvider] – Binding configuration of type ‚http‘ of item ‘diesel‘ could not be parsed correctly.
    org.openhab.model.item.binding.BindingConfigParseException: bindingConfig ‚<[https://creativecommons.tankerkoenig.de/json/detail.php?id=8ca3988e-fac2-4f2e-a748-d3b250cd7d71&apikey=e57280ce-77069-76cc-6379-59651118dd14:300000:JS(e5.js)]‘ doesn’t contain a valid binding configuration

    Gruss Michael

  4. Hi,

    hab gerade auch das Problem mit dem HTTPS Zertifikat.
    Auf meinem Desktoprechner hat es ohne Probleme funktioniert. Nun habe ich OH auf einen RPi2 umgezogen. Läuft auch soweit alles außer die Tankenstellenpreise. Habe wie oben beschrieben das Zertifikat installiert. Hat soweit ich das nochvollziehen kann auch funktioniert. Fehlermeldung bleibt aber die gleiche „Fatal transport error …“
    Jemand eine Idee was ich noch probieren könnt? Liegt es evtl. am Pi? Läuft mit Ubuntu MATE und Oracle Jave8.

    Grüße
    Sebastian

  5. Ok, hat sich erledigt. Gab wohl kurzfristig ein neues Zertifikat bei tankerkoenig.de das mit Java noch nicht funktioniert. Jetzt ist wohl das alte wieder aktiv und alles funktioniert

    Grüße
    Sebastian

    1. Vielen Dank für deinen Hinweis! Ich werde mal beobachten, ob es einen zweiten Anlauf für ein neues Zertifikat bei Tankerkönig gibt.
      Einzelne Aufsetzer hatte ich hier und da durch das zu häufige Abfragen. Da half dann das Hochsetzen des Zeitintervalls.

  6. Hallo,

    ich bekomme folgende Fehlermeldung:
    Fatal transport error: java.net.UnknownHostException: creativecommons.tankerkoenig.de

    Ist das bekannt?

    Danke

    1. Hast du noch ein paar mehr Infos für mich? Wie sieht dein Items-Eintrag aus? Kannst du mit dem Link aus dem Item-Eintrag Werte per Browser abfragen oder erhältst du auch dort eine Fehlermeldung?

  7. Hallo,

    seit dem Update auf openHab 2 funktioniert das holen der Spritpreise bei mir nicht mehr. Vorher lief alles, nach deiner Anleitung, wunderbar.
    Gab es irgendeine Änderung die völlig an mir vorbei ging?
    Per Browseraufruf bekomme ich nach wie vor Werte von Tankerkönig zurückgeliefert, lediglich die „Übersetzung“ in openHab funktioniert nicht mehr.
    Hat dieses Problem noch jemand beobachtet?
    Liebe Grüße

    1. Ich bin leider noch nicht auf openHAB2 umgestiegen. Unter einer bestimmten Java-Version gab es mal das Problem, dass die SSL-Zertifikate von Tankerkönig nicht akzeptiert wurden. Könnte das ein Lösungsansatz sein?

      1. Hallo!
        Danke für deine Antwort…
        Naja, eigentlich hatte es ja die ganze Zeit unter der Beta 4 Variante problemlos funktioniert. Kann mir nicht vorstellen, dass beim Umstieg von V2 Beta 4 auf die offizielle V2 nun Probleme mit Java vorhanden sein könnten. Aber nichts ist ja ausgeschlossen.
        Muss ich nach dem Urlaub mal ausprobieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.