Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Grafana-Abfragen von iobroker MySQL

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Grafana-Abfragen von iobroker MySQL

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dutchman
      Dutchman Developer Most Active Administrators last edited by

      Brauchst du nicht, in Grafana hast du Time-Shift in den grafiek Optionen

      Sent from my iPhone using Tapatalk

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

        @Dutchman:

        Brauchst du nicht, in Grafana hast du Time-Shift in den grafiek Optionen

        Sent from my iPhone using Tapatalk `

        Das verschiebt nur die Anzeige, aber die Werte bleiben an den falschen Tagen, also + 1

        1 Reply Last reply Reply Quote 0
        • andre
          andre Developer last edited by

          Hallo,
          ich mache gerade meine ersten Schritte in Grafana und stehe noch ein wenig mit der SQL-Syntax auf Kriegsfuß. Besser gesagt bekomme ich meinen Graphen nicht "smooth"...
          Im Detail geht es um meine PV-Leistung. Ich habe aktuell diese Abfrage:

          SELECT
            floor(ts/1000) as time_sec,
            val as value,
            "PV-Leistung" as metric
          FROM ts_number
          WHERE $__unixEpochFrom()*1000 < ts and $__unixEpochTo()*1000 > ts and id = 2
          ORDER BY ts
          
          

          Funktioniert soweit tadellos. 🙂 Jetzt versuche ich seit Tagen übers zusammen-googlen mit MEAN bzw. AVG und GROUP BY meine Abfrage zu tunen. Zum einen in Hinblick auf kleinere Datenmengen bei der Abfrage, zum Anderen für eine "smoothe" Grafik...
          Hat vielleicht jemand ein Beispiel dazu, welches ich mit meinen SQL-Grundkenntnissen auch verstehen kann? Oder wie müsste meine Abfrage erweitert werden, wenn ich z.B. aus den Werten von jeweils 5 Minuten einen Mittelwert bilden möchte?

          Danke.

          MfG,
          André

          1 Reply Last reply Reply Quote 0
          • D
            Denis103 last edited by

            Ich mache grad meine ersten Gehversuche mit Garfana und einer mySQL-DB als Datenquelle. Als Beispiel habe ich hier aus dem Thread meine Test-Abfrage adaptiert:

            SELECT
              floor(nb.ts/1000) AS time_sec,
              nb.val AS value,
              dp.name AS metric
            FROM ts_number AS nb, datapoints AS dp
            WHERE $__unixEpochFrom()*1000 < nb.ts AND $__unixEpochTo()*1000 > nb.ts AND nb.id = 3 AND nb.id = dp.id
            ORDER BY nb.ts ASC
            

            Beim ausführen der Abfrage erhalte ich in PHPMYADMIN folgenden Fehler:

            #1305 - FUNCTION iobroker.$__unixEpochFrom does not exist 
            

            Füge ich das Query in Grafana ein, dann kommt da kein Fehler, aber der Graph zeigt auch keine Daten an.

            Stimmt etwas mit meiner mySQL-Syntax nicht?

            simatec 1 Reply Last reply Reply Quote 0
            • simatec
              simatec Developer Most Active @Denis103 last edited by simatec

              Ich muss das Thema hier noch einmal aufwärmen. Ich bin gerade dabei bei mir auf Grafana umzustellen und hänge an folgenden Punkt.
              Ich möchte gerne eine Graph erstellen, in dem ich meinen Tagesverbrauch an Strom darstellen kann.
              Mein Stromzähler werte ich aus und alle Daten werden bei mir in die mysql Datenbank geschrieben.

              Wie bekomme ich diese Graph hin, in der mir Tageweise der Verbrauch angezeigt wird?

              Hier ein Beispiel, wie ich mir das gerne bauen will:
              Bildschirmfoto 2020-11-15 um 15.47.43.png

              Meine Datenpunkt in mysql lese ich wie folgt aus:

              SELECT
              floor(n.ts/1000) as time_sec,
              n.val as value,
              "Tagesverbrauch" as metric
              FROM ts_number n
              WHERE $__unixEpochFrom()*1000<n.ts and $__unixEpochTo()*1000>n.ts and n.id = 18
              GROUP BY $__unixEpochGroup(n.ts,$__interval,previous)
              ORDER BY n.ts ASC
              
              Segway 1 Reply Last reply Reply Quote 0
              • Segway
                Segway @simatec last edited by

                @simatec

                Hallo Ich sowas bei mir laufen. Hier die tägliche PV Produktion - fest eingestellt auf die letzten 2 Wochen:
                ce04fd4d-7882-47cf-83c1-2ff60c4db431-grafik.png

                Das ganze per InfluxDB und Grafana:
                f296e975-f988-4cce-b914-b72d3ff60450-grafik.png

                simatec 1 Reply Last reply Reply Quote 0
                • simatec
                  simatec Developer Most Active @Segway last edited by

                  @Segway
                  Ich habe inzwischen auch auf Influx gewechselt und meine Log Daten von mysql auf Influx portiert.

                  Segway 1 Reply Last reply Reply Quote 0
                  • Segway
                    Segway @simatec last edited by

                    @simatec
                    Läuft es denn dann ?

                    simatec 1 Reply Last reply Reply Quote 0
                    • simatec
                      simatec Developer Most Active @Segway last edited by

                      @Segway
                      Ja mit Influx lässt sich das einfacher in Grafana umsetzen

                      1 Reply Last reply Reply Quote 0
                      • W
                        WernerS @sissiwup last edited by

                        @sissiwup

                        Hallo

                        also das funktioniert bei mir. Ich benutze Mysql und MariaDB.

                        SELECT
                          floor(nb.ts/1000) AS time_sec,
                        
                          nb.val AS value,
                          dp.name AS metric
                        FROM ts_number AS nb, datapoints AS dp
                        WHERE $__unixEpochFrom()*1000 < nb.ts AND $__unixEpochTo()*1000 > nb.ts AND nb.id = 36 AND nb.id = dp.id
                        ORDER BY nb.ts ASC
                        

                        Ich bekomme manchmal den Fehler "Data is missing a Time Field" obwohl daten vorhanden sind

                        Gruß
                        Werner

                        Benjamin Häublein 1 Reply Last reply Reply Quote 0
                        • Benjamin Häublein
                          Benjamin Häublein Developer @WernerS last edited by

                          @werners Ich habe es jetzt folgendermaßen gelöst:

                          SELECT val AS value, ts AS "time" FROM iobroker.ts_number WHERE id = 12 AND $__unixEpochFilter(ts/1000)
                          

                          Das scheint mir das einfachste zu sein.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          983
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          12
                          37
                          14706
                          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