Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Tankerkönig in Grafana mit Ajax / SimpleAPI

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Tankerkönig in Grafana mit Ajax / SimpleAPI

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      h1ob last edited by Homoran

      Ich logge ja die sich laufend ändernden Preise in meiner SQL DB. Die kann ich mir auch problemlos ausgeben lassen.
      Bei der günstigsten Tanke will ich eine Momentaufnahme haben und sie genau deswegen nicht zusätzlich loggen. Zumal man mit dem SimpleAPI Adapter genug Möglichkeiten hat.

      Ich möchte auch nicht zusätzlich noch Flot haben, da ich aktuell alles auf Grafana migriere. Vorher hatte ich Flot, VIS und NodeRed im Einsatz.

      Ich möchte gerne sowas (https://www.schlaue-huette.de/apis-co/tankerkoenig-spritpreise/) in Grafana haben.

      arteck 1 Reply Last reply Reply Quote 0
      • SBorg
        SBorg Forum Testing Most Active last edited by

        Jo, und das ist genau was @arteck schrieb und ich auch nicht verstehe, denn genau die Angaben hast du:
        Bild 1.png

        1 Reply Last reply Reply Quote 0
        • arteck
          arteck Developer Most Active @h1ob last edited by

          @h1ob sowas realisert man über ein Widget nicht über grafana

          H 1 Reply Last reply Reply Quote 0
          • H
            h1ob @arteck last edited by h1ob

            @arteck said in Tankerkönig in Grafana mit Ajax / SimpleAPI:

            @h1ob sowas realisert man über ein Widget nicht über grafana

            Wow, sehr erhellende Antwort, vielen Dank! Vor allem vor dem Hintergrund, dass ich extra geschrieben habe, dass ich nichts anderes als Grafana nutzen möchte und aktuell alles migriere.

            @SBorg - Ich weiß, dass ich die Daten vom Tankerkönig Adapter bekomme. Das habe ich doch mit keinem Wort in Frage gestellt. Was ich möchte, ist eben jene Daten in Grafana in einem Panel aufbereitet anzuzeigen.

            Ich versuche mich die Tage an meiner initialen Idee, die Aufbereitung in einer eigenen HTML Seite zu machen und mir diese Seite einfach im Dashboard anzeigen zu lassen. Das erscheint mir aktuell am Einfachsten. Ich werde berichten.

            M 1 Reply Last reply Reply Quote 0
            • Dolomiti
              Dolomiti last edited by

              Ich habe mir das JSON-Plugin für Grafana installiert und als Server-URL http://IP-ioBroker:8087/ eingetragen und als Panel-Typ Single-Stat ausgewählt. Dort den DP eingetragen und mir wird immer der aktuelle Wert angezeigt. Vielleicht hilft das ja weiter

              Gruß
              Dolomiti

              1 Reply Last reply Reply Quote 0
              • M
                Mercyful 0 @h1ob last edited by

                @h1ob said in Tankerkönig in Grafana mit Ajax / SimpleAPI:

                @arteck said in Tankerkönig in Grafana mit Ajax / SimpleAPI:

                @h1ob sowas realisert man über ein Widget nicht über grafana

                Wow, sehr erhellende Antwort, vielen Dank! Vor allem vor dem Hintergrund, dass ich extra geschrieben habe, dass ich nichts anderes als Grafana nutzen möchte und aktuell alles migriere.

                @SBorg - Ich weiß, dass ich die Daten vom Tankerkönig Adapter bekomme. Das habe ich doch mit keinem Wort in Frage gestellt. Was ich möchte, ist eben jene Daten in Grafana in einem Panel aufbereitet anzuzeigen.

                Ich versuche mich die Tage an meiner initialen Idee, die Aufbereitung in einer eigenen HTML Seite zu machen und mir diese Seite einfach im Dashboard anzeigen zu lassen. Das erscheint mir aktuell am Einfachsten. Ich werde berichten.

                Moin!
                Bist du da schon weiter gekommen da ich ähnliches vorhabe und ebenfalls Grafana nutzen möchte.
                Schöne Grüße
                Mercy

                ? 1 Reply Last reply Reply Quote 0
                • ?
                  A Former User @Mercyful 0 last edited by

                  @mercyful-0

                  ist Dir bewusst, dass Du auf einen drei Jahre alten Beitrag antwortest oder da nach einer Lösung fragst 😉

                  Wenn Du mal in den verschiedenen Forums Beiträgen zur Visualisierung suchst, dann findest Du da sicherlich einige Lösungen 🙂
                  Hast Du dir auch schon den Neusten Tankerkönig Adapter angeschaut, da er ziemlich aufgebohrt wurde und jetzt noch mehr Daten liefert.


                  e4f3c9b5-deea-4371-85be-5342b99c9cb5-grafik.png

                  Ich lasse mir nur den Aktuellen Preis in die influxdb schreiben und Werte die dann mit Grafana aus,


                  a6493642-e5cb-4144-9371-713535d1cf3c-grafik.png

                  VG
                  Bernd

                  Domi920 1 Reply Last reply Reply Quote 0
                  • Domi920
                    Domi920 @Guest last edited by

                    @dp20eic hi, lasse ebenfalls die Spritkosten mit InfluxDB mitloggen & lasse sie mir mit Grafana als Diagramm aufzeichnen.

                    Bin allerdings auf ein kleines "Problem" gestoßen:
                    Lasse mir den aktuellen Tagesverlauf anzeigen.
                    Wenn aber seit 3 Stunden keine Änderungen vom Preis vorgenommen wurden, wird das Diagramm auch nicht für diesen Zeitraum gefüllt.
                    Mir ist bewusst das ich den Datenpunkt auch alle x Sekunden auch ohne Änderung in die Datenbank schreiben kann.
                    Allerdings wäre eine Alternative Lösung besser, die den Grafen trotzdem bis zum jetzigen Zeitpunkt anzeigt.

                    Weißt du eine Lösung?

                    Gruß Dominik

                    ? 1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User @Domi920 last edited by

                      @domi920 sagte in Tankerkönig in Grafana mit Ajax / SimpleAPI:

                      Allerdings wäre eine Alternative Lösung besser, die den Grafen trotzdem bis zum jetzigen Zeitpunkt anzeigt.

                      Moin,

                      ja, denke schon.

                      Diese Antwort hilft Dir ebenso wenig wie mir Deine Frage, wenn Du nicht zeigst, was Du, wie machst.

                      Also welche Version von influxDB, das ist von Interesse, da die V 1.8 mit der Abfragesprache QL arbeitet und die V 2.x mit FLUX.

                      Wie sieht Deine Query aus?
                      Wenn möglich als Text, nicht als Screenshot.

                      VG
                      Bernd

                      Domi920 1 Reply Last reply Reply Quote 0
                      • Domi920
                        Domi920 @Guest last edited by Domi920

                        @dp20eic Vielen Dank für Deine schnelle Antwort!
                        Natürlich, da hast du recht.
                        Sorry bin ziemlich neu in der Thematik von Grafana & InfluxDB und hab auf verschiedene Konfigurationen gar nicht mehr gedacht.

                        Grafana v9.4.3
                        Influx v2.6.1
                        Arbeite mit der FLUX Sprache.

                        Hier meine Query:

                        from(bucket: "ioBroker1")
                          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                          |> filter(fn: (r) => r["_measurement"] == "Sprit_Diesel_Hengersberg_Freie")
                          |> filter(fn: (r) => r["_field"] == "value")
                          |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                          |> yield(name: "last")
                        

                        79df97d8-b022-4580-82bc-9ac61c8beb06-image.png

                        Hier sieht man das keine aktuellen Spritpreise vorhanden sind weil der letzte Wert um 15:54 Uhr geschrieben wurde.
                        Gleiches ist am Anfang.
                        Es wäre schön, wenn die Linie einfach weiter gezogen wird (rückwärts & vorwärts), damit es schöner aussieht.

                        Danke schon mal für deine Hilfe!

                        Gruß Dominik

                        ? 1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @Domi920 last edited by

                          @domi920

                          Moin,

                          ich denke, dass Dir einfach nur das hier in Deiner Abfrage fehlt

                            |> fill(column: "_value", usePrevious: true)
                          

                          Damit werden die null Werte durch den Wert der davor gültig war ersetzt.

                          Und hier Doku fill() function

                          VG
                          Bernd

                          1 Reply Last reply Reply Quote 0
                          • Domi920
                            Domi920 last edited by Domi920

                            @dp20eic Leider funktioniert es nicht.
                            Egal wo ich die Zeile einfüge bekomme ich kein anderes Ergebnis.

                            Habe mit die Doku angeschaut aber die hilft mir nicht wirklich weiter.

                            Was mache ich falsch?

                            ? 1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User @Domi920 last edited by

                              @domi920

                              Moin,

                              wie sehen denn die Daten in der InfluxDB aus, melde dich mal an der WebUI von `influxDB an:

                              http://deine.ip.adresse:8086
                              

                              Um welchen Datenpunkt vom tankerkönig - Adapter handelt es sich?
                              Hast du irgendwelche min/max eingerichtet?

                              Hier sieht man das keine aktuellen Spritpreise vorhanden sind weil der letzte Wert um 15:54 Uhr geschrieben wurde.

                              Hat denn die Tanke zugemacht (Geschlossen) oder einfach nichts mehr gesendet, dann liegt das an der Tanke/Tankerkönig, bei mir kommen 0 Werte nur dann, wenn die Tanke geschlossen ist, dann sollen meine Diagramme ja auch nichts mehr anzeigen, da es ja auch keinen Sprit mehr zu kaufen gibt.

                              Hast du mehrere Tankstellen im tankerkönig eingerichtet, zeigen die noch Werte an?

                              Domi920 1 Reply Last reply Reply Quote 0
                              • Domi920
                                Domi920 @Guest last edited by

                                @dp20eic hier die Daten von InfluxDB:
                                Screenshot_20230324_223631_Gallery.jpg

                                Und hier nochmal in Grafana:
                                Screenshot_20230324_223640_Gallery.jpg

                                So sieht die Grafik aus:
                                Screenshot_20230324_223637_Gallery.jpg

                                Ich logge nur die aktuellen Werte.
                                Die Tankstelle hat einen Tankautomaten, deshalb ist sie immer geöffnet.

                                Andere Tankstellen, die aktuell geschlossen sind bekommen keine Aktualisierungen in der InfluxDB (habe ich in IOBroker beim Log eingestellt).

                                Du kannst mir auch gerne den kompletten Code schicken, dass wir 100% ausschließen können dass es mein Fehler ist.

                                Danke im Voraus für Deine großartige Hilfe!

                                ? 1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User @Domi920 last edited by

                                  @domi920

                                  Moin,

                                  wenn ich das richtig sehe, dann hast Du in den vergangenen 12 Stunden nur diese drei/vier Werte bekommen, ansonsten schau mal bei einer anderen Tanke nach, denn da müssten für 12 Stunden mehr Werte sein und wenn geschlossen dann halt 0.

                                  Wenn ich eine von meinen Tankstellen anschaue, dann sieht das so aus, wenn ich 12 Stunden abfrage, ich habe in der Zeit wenn geschlossen, dann einen 0 Wert in der Datenbank.
                                  ecd0fa7a-531b-4738-b676-5da0b6f28876-grafik.png

                                  Du bekommst aber keine Werte von der Tankstelle geliefert, hast Du mal den Adapter tankerkönig auf debug gestellt und dir dann das Log-File angeschaut was da bei der Tankstelle kommt?

                                  ce323e58-b8be-4fdc-be59-ae00e911c2f0-grafik.png
                                  785b3324-206c-45a0-87d1-139eef05c7e8-grafik.png
                                  78789610-6789-4c4b-a9db-d91beac7f745-grafik.png

                                  Gib mir mal die Daten der Tankstelle, ich richte mir die mal ein und schaue was da kommt

                                  d41484aa-12de-45d1-a52c-5e9bf00d88c4-grafik.png

                                  VG
                                  Bernd

                                  Domi920 1 Reply Last reply Reply Quote 0
                                  • Domi920
                                    Domi920 @Guest last edited by

                                    @dp20eic Guten Morgen, ich bekomme nur wenige Werte, weil die Tankstelle sie nicht oft ändert.
                                    So wie ich das sehe, wird bei Dir oft mals immer wieder der gleiche Wert geloggt. Das wollte ich im besten Fall verhindern, weil "nur" Änderungen zu protokollieren wären.

                                    Ich möchte aus diesen Grafana:
                                    c8763029-fb9d-464e-a9f1-4dd72da7d8d6-image.png

                                    So einen Graf, wies mir z. B. in der App Clever Tanken angezeigt wird:
                                    e43c9f7c-8b9d-4aeb-9888-615371f2cfcb-image.png

                                    Das wäre möglich wenn ich z. B. alle x Sekunden bzw. Minuten den Wert mitloggen lasse.
                                    Aber das möchte ich wenn möglich verhindern, so könnte ich die Verfallszeit auf 1 Jahr oder so lassen, weil nicht so viele Daten anfallen.
                                    Weißt Du was ich meine?

                                    0 fällt z. B. in dieser Tankstelle nicht an, weil diese 24 Stunden geöffnet hat 🙂

                                    Schicke Dir aber trotzdem gerne die Daten von der Tankstelle:
                                    d247870a-e5ed-4a03-b506-a69e82a11998-image.png
                                    Station ID:
                                    c8786291-8ea5-4641-b9c8-4a75242e15c4

                                    Gruß Dominik

                                    ? 1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User @Domi920 last edited by

                                      @domi920

                                      Moin,

                                      habe mir die Tanke mal eingerichtet und schaue mal was da bei mir in den kommenden Stunden so reinkommt und verarbeite das dann in Grafana.

                                      VG
                                      Bernd

                                      Domi920 1 Reply Last reply Reply Quote 0
                                      • Domi920
                                        Domi920 @Guest last edited by

                                        @dp20eic danke für Deine Bemühungen.
                                        Halte mich dazu gerne auf dem Laufenden.

                                        Gruß Dominik

                                        ? 2 Replies Last reply Reply Quote 0
                                        • ?
                                          A Former User @Domi920 last edited by

                                          @domi920

                                          Moin,

                                          die Daten kommen, aber diese Tanke sendet wirklich nur alle paar Stunden etwas, ich werde jetzt mal die Sicherung so einstellen, dass ich alle stunde auch einen gleichen Wert sichere.

                                          Gib mir mal noch ein/zwei Tage, um genügend Werte zu haben.

                                          VG
                                          Bernd

                                          1 Reply Last reply Reply Quote 0
                                          • ?
                                            A Former User @Domi920 last edited by

                                            @domi920

                                            Moin,

                                            so, ich habe mal etwas geforscht.

                                            Erst einmal die Rahmenbedingungen.

                                            Datenpunkt E10, so wie ich ihn gerade in influxDB sichere:
                                            48595e90-40c1-4541-a405-a05e0fad1b9b-grafik.png

                                            Aktuelle Werte des Datenpunkts:
                                            f5ef5481-16dc-4966-aaee-0d3b3e6c0d7f-grafik.png

                                            Ich habe die Grafik nicht in Grafana erstellt, da ich die Datenbank nicht eingebunden habe, ist aber egal, da die Query auch in Grafana funktionieren sollte. So sieht die Query, aktuell aus, wenn ich nichts weiter beachte:

                                            from(bucket: "ioBroker")
                                              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                              |> filter(fn: (r) => r["_measurement"] == "Tankstelle4Forum")
                                              |> filter(fn: (r) => r["from"] == "system.adapter.tankerkoenig.0")
                                              |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: true)
                                              |> yield(name: "last")
                                            

                                            25225661-4a19-47dd-b1bc-493b2654fb11-grafik.png

                                            Und so, wenn ich etwas an den Einstellungen tune:

                                            import "experimental"
                                            from(bucket: "ioBroker")
                                              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                              |> filter(fn: (r) => r["_measurement"] == "Tankstelle4Forum")
                                              |> filter(fn: (r) => r["from"] == "system.adapter.tankerkoenig.0")
                                              |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: true)
                                              |> experimental.fill(usePrevious: true)
                                              |> yield(name: "last")
                                            

                                            e1234bd4-103d-4a3a-99a3-4c1886b13a58-grafik.png

                                            Datenpunkt Diesel, so wie ich ihn gerade in influxDB sichere:
                                            1bae9fc7-f04e-4ad6-8b89-75f1df513c5f-grafik.png

                                            Aktuelle Werte:
                                            59d2e56c-dbd8-47b4-b3a4-5e9ffddfdc5d-grafik.png

                                            Die Query und die daraus erstellte Grafik:

                                            from(bucket: "ioBroker")
                                              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                              |> filter(fn: (r) => r["_measurement"] == "tankerkoenig.0.stations.6.diesel.short")
                                              |> filter(fn: (r) => r["_field"] == "value")
                                              |> filter(fn: (r) => r["from"] == "system.adapter.influxdb.0")
                                              |> aggregateWindow(every: 12h, fn: last, createEmpty: false)
                                              |> yield(name: "last")
                                            

                                            b9831dd8-7ce9-4428-a705-a03ab61d7ae9-grafik.png

                                            VG
                                            Bernd

                                            Domi920 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            634
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            own project
                                            7
                                            38
                                            2773
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo