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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Grafana-Abfragen von iobroker MySQL

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Mitch last edited by

      Hi,

      ich lasse mir über einen Graphen immer den Tagesverbrauch angeben:

      SELECT
        floor(n.ts/1000) as time_sec,
        n.val as value,
        d.name as metric
      FROM ts_number n,datapoints d
      WHERE $__unixEpochFrom()*1000<n.ts and/$__unixepochto()*1000="">n.ts and n.id = 8 and n.id=d.id
      ORDER BY n.ts ASC</n.ts>
      

      Allerdings ist das immer der Wert von gestern, der geloggt wird. Wie kann ich jetzt immer einen Tag oben im SQL-Statement abziehen, damit der Tag wieder stimmt?

      1 Reply Last reply Reply Quote 0
      • 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

                            414
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

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