Ankündigung

Einklappen
Keine Ankündigung bisher.

Spritpreise per HTTP-Binding und JSON

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    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.

    Kommentar


      #32
      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


        #33
        Hi, erstmal Danke für die super Idee und die Anleitung!
        Hat es jemand geschafft die Tankstellen nach dem Preis in der Sitemap zu sortieren?

        Kommentar


          #34
          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


            #35
            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)
            Was stimmt hier noch nicht?
            Danke

            Kommentar


              #36
              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


                #37
                Hallo,
                ja ist drin
                Code:
                  http:tank1Cache.url=https://creativecommons.tankerkoenig.de/json/detail.php?id=7859c737-7ba0-4506-9ebd-867609d63371&apikey=<myKey>
                  http:tank1Cache.updateInterval=300000
                Das war meine erste Vermutung

                Grüße Martin

                Kommentar


                  #38
                  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)]" }
                  Und ich bekomme direkt einen Fehler:
                  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'
                  Aber ich habe keine Ahnung an was das liegen kann....

                  Kommentar


                    #39
                    Ich hatte auch mal das. Lag bei mir daran, dass ich das Zertifikat nicht zu Java hinzugefügt hatte bzw. die falsche Java-Version ausgeführt hatte (siehe Post 16).

                    Kommentar


                      #40
                      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


                        #41
                        Hi,
                        Zitat von deMaFi Beitrag anzeigen
                        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.
                        Ich weiss zwar nicht, was du unter "eigenen" API verstehst., aber natürlich geht das. Ich rufe bei mir die Werte für 5 Tankstellen im Umkreis ab.

                        Gruss,
                        thoern

                        Kommentar


                          #42
                          Hi, danke für die Antwort. Ich meinte damit, dass man mit seiner API, die man beim Tankerkönig beantragt hat, nur eine Abfrage starten kann oder wie in deinem Fall, mehrere.

                          Dann werde ich das nochmal testen und prüfen, warum ich dann einen Fehler bekommen habe.

                          Viele Grüße Martin

                          Kommentar


                            #43
                            Du meinst den API-Key, das ist etwas anderes als die API

                            Kommentar


                              #44
                              ja, API-Key ...

                              Eine andere Frage: Die Benzinpreise sind meist beispielsweise 0,929. Wenn ich aber nur zwei Stelle nach dem Komma angezeigt haben möchte, ohne das aufgerundet wird....geht das?

                              Danke Martin

                              Kommentar


                                #45
                                gehen tut das sicher, Du kannst z.B. vor dem Runden 0,005 abziehen aber mal ehrlich: Wenn da auf dem Schild 1,199 steht, lese ich 1,20, das entspricht eher den Tatsachen...

                                Kommentar

                                Lädt...
                                X