Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana / MariaDB: Aus 2 Queries 1 machen?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Grafana / MariaDB: Aus 2 Queries 1 machen?

Geplant Angeheftet Gesperrt Verschoben Off Topic
10 Beiträge 3 Kommentatoren 853 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    bfit
    schrieb am zuletzt editiert von
    #1

    Ich nutze den SQL-Adapter, um aus dem ioBroker Messwerte in eine MySQL/MariaDB zu schreiben. Zwei dieser Messwerte möchte ich nun gerne in Grafana in einem Scatter-/XY-Chart visualisieren.

    Mein Problem: Der SQL-Adapter schreibt die Werte mit verschiedenen IDs (je Objekt) in die selbe Tabelle ts_number. Als z.B. den Messwert Außentemperatur mit der ID 14

    id  ts                   val
    14  2022-11-13 23:59:59  4.42
    14  2022-11-14 23:59:59  5.88
    14  2022-11-15 23:59:59  6.30
    

    und den Messwert Heizenergie mit der ID 25

    id  ts                   val
    25  2022-11-13 23:59:00  23
    25  2022-11-14 23:59:00  24
    25  2022-11-15 23:59:00  16
    

    Wenn ich in Grafana mehrere Messwerte in einem Zeitreihen-Chart anzeigen wollte, habe ich mir bisher einfach damit beholfen, dass ich zwei Queries gemacht habe.Für die Außentemperatur z.B.

    SELECT
      ts AS "time",
      val AS "Außentemperatur"
    FROM ts_number
    WHERE
      id = 14
    ORDER BY ts
    

    und analog noch mal einen für die Heizenergie mit id = 25.

    Das geht beim XY-Chart aber leider nicht, dieser Panel-Typ benötigt wohl beide Werte aus einem Query bzw. im Ergebnis in einer Datentabelle, die so aussieht:

    ts           Temp   Energie
    2022-11-13   4.42   23
    2022-11-14   5.88   24
    2022-11-15   6.30   16
    

    Der Query müsste also beide IDs zusammenbringen und gleichzeitig den Zeitversatz der beiden Objekte von jeweils 59 Sekunden (durch eine Gruppierung?) ausbügeln.

    Leider stehe ich auf dem Schlauch: Wie müsste der entsprechende Query aussehen?

    CodierknechtC OliverIOO 2 Antworten Letzte Antwort
    0
    • B bfit

      Ich nutze den SQL-Adapter, um aus dem ioBroker Messwerte in eine MySQL/MariaDB zu schreiben. Zwei dieser Messwerte möchte ich nun gerne in Grafana in einem Scatter-/XY-Chart visualisieren.

      Mein Problem: Der SQL-Adapter schreibt die Werte mit verschiedenen IDs (je Objekt) in die selbe Tabelle ts_number. Als z.B. den Messwert Außentemperatur mit der ID 14

      id  ts                   val
      14  2022-11-13 23:59:59  4.42
      14  2022-11-14 23:59:59  5.88
      14  2022-11-15 23:59:59  6.30
      

      und den Messwert Heizenergie mit der ID 25

      id  ts                   val
      25  2022-11-13 23:59:00  23
      25  2022-11-14 23:59:00  24
      25  2022-11-15 23:59:00  16
      

      Wenn ich in Grafana mehrere Messwerte in einem Zeitreihen-Chart anzeigen wollte, habe ich mir bisher einfach damit beholfen, dass ich zwei Queries gemacht habe.Für die Außentemperatur z.B.

      SELECT
        ts AS "time",
        val AS "Außentemperatur"
      FROM ts_number
      WHERE
        id = 14
      ORDER BY ts
      

      und analog noch mal einen für die Heizenergie mit id = 25.

      Das geht beim XY-Chart aber leider nicht, dieser Panel-Typ benötigt wohl beide Werte aus einem Query bzw. im Ergebnis in einer Datentabelle, die so aussieht:

      ts           Temp   Energie
      2022-11-13   4.42   23
      2022-11-14   5.88   24
      2022-11-15   6.30   16
      

      Der Query müsste also beide IDs zusammenbringen und gleichzeitig den Zeitversatz der beiden Objekte von jeweils 59 Sekunden (durch eine Gruppierung?) ausbügeln.

      Leider stehe ich auf dem Schlauch: Wie müsste der entsprechende Query aussehen?

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von Codierknecht
      #2

      Soll das tatsächlich nur tagesgenau sein?
      Werden die Werte nur 1x/Tag geschrieben? Oder muss da noch Summe/Durchschnitt oder so berechnet werden?

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      B 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        Soll das tatsächlich nur tagesgenau sein?
        Werden die Werte nur 1x/Tag geschrieben? Oder muss da noch Summe/Durchschnitt oder so berechnet werden?

        B Offline
        B Offline
        bfit
        schrieb am zuletzt editiert von bfit
        #3

        @codierknecht ja, das soll tatsächlich nur tagesgenau sein – die Werte werden nur einmal täglich zu den genannten Uhrzeiten von verschiedenen Adaptern/Scripts erzeugt.

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • B bfit

          @codierknecht ja, das soll tatsächlich nur tagesgenau sein – die Werte werden nur einmal täglich zu den genannten Uhrzeiten von verschiedenen Adaptern/Scripts erzeugt.

          CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von
          #4

          @bfit

          SELECT A.ts, A.val AS WERT1, B.val AS WERT2
            FROM ts_number A 
           INNER JOIN ts_number B ON date_format(from_unixtime(B.ts/1000), '%Y-%m-%d') = date_format(from_unixtime(A.ts/1000), '%Y-%m-%d') AND B.id = 25
           WHERE A.id = 14
          

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          B 1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

            @bfit

            SELECT A.ts, A.val AS WERT1, B.val AS WERT2
              FROM ts_number A 
             INNER JOIN ts_number B ON date_format(from_unixtime(B.ts/1000), '%Y-%m-%d') = date_format(from_unixtime(A.ts/1000), '%Y-%m-%d') AND B.id = 25
             WHERE A.id = 14
            
            B Offline
            B Offline
            bfit
            schrieb am zuletzt editiert von
            #5

            @codierknecht Vielen Dank!

            Wenn ich es direkt so übernehme, spuckt Grafana direkt folgende Meldung unter dem Query Editor aus:

            db has no time column: no time column found
            

            Streiche ich das "/1000" aus dem Join, zeigt er mir im Table View immerhin die Spalten richtig an, nur leider noch ohne Daten
            Bildschirmfoto 2022-11-16 um 15.09.08.png
            Woran könnte das liegen?

            CodierknechtC 1 Antwort Letzte Antwort
            0
            • B bfit

              @codierknecht Vielen Dank!

              Wenn ich es direkt so übernehme, spuckt Grafana direkt folgende Meldung unter dem Query Editor aus:

              db has no time column: no time column found
              

              Streiche ich das "/1000" aus dem Join, zeigt er mir im Table View immerhin die Spalten richtig an, nur leider noch ohne Daten
              Bildschirmfoto 2022-11-16 um 15.09.08.png
              Woran könnte das liegen?

              CodierknechtC Online
              CodierknechtC Online
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #6

              @bfit
              Das "/1000" darfst Du an der Stelle nicht entfernen.
              Das "ts" ist ein timestamp - dummerweise mit Millisekunden. Damit kommt MySQL nicht klar um ein Datum auszurechnen.
              Das wird aber gebraucht um die beiden Tabelleneinträge in Beziehung zu setzen.

              Ich schau mal in Grafana ...

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • CodierknechtC Codierknecht

                @bfit
                Das "/1000" darfst Du an der Stelle nicht entfernen.
                Das "ts" ist ein timestamp - dummerweise mit Millisekunden. Damit kommt MySQL nicht klar um ein Datum auszurechnen.
                Das wird aber gebraucht um die beiden Tabelleneinträge in Beziehung zu setzen.

                Ich schau mal in Grafana ...

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #7

                @codierknecht

                SELECT A.ts AS "time", A.val AS WERT1, B.val AS WERT2
                

                Liefert bei mir zumindest mal Daten.
                3a17373b-bf7c-4cff-9d17-6e65e4d4819a-image.png

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                B 1 Antwort Letzte Antwort
                0
                • CodierknechtC Codierknecht

                  @codierknecht

                  SELECT A.ts AS "time", A.val AS WERT1, B.val AS WERT2
                  

                  Liefert bei mir zumindest mal Daten.
                  3a17373b-bf7c-4cff-9d17-6e65e4d4819a-image.png

                  B Offline
                  B Offline
                  bfit
                  schrieb am zuletzt editiert von
                  #8

                  @codierknecht Mit

                  AS "time"
                  

                  hat es nun auch geklappt – vielen Dank!!

                  1 Antwort Letzte Antwort
                  0
                  • B bfit

                    Ich nutze den SQL-Adapter, um aus dem ioBroker Messwerte in eine MySQL/MariaDB zu schreiben. Zwei dieser Messwerte möchte ich nun gerne in Grafana in einem Scatter-/XY-Chart visualisieren.

                    Mein Problem: Der SQL-Adapter schreibt die Werte mit verschiedenen IDs (je Objekt) in die selbe Tabelle ts_number. Als z.B. den Messwert Außentemperatur mit der ID 14

                    id  ts                   val
                    14  2022-11-13 23:59:59  4.42
                    14  2022-11-14 23:59:59  5.88
                    14  2022-11-15 23:59:59  6.30
                    

                    und den Messwert Heizenergie mit der ID 25

                    id  ts                   val
                    25  2022-11-13 23:59:00  23
                    25  2022-11-14 23:59:00  24
                    25  2022-11-15 23:59:00  16
                    

                    Wenn ich in Grafana mehrere Messwerte in einem Zeitreihen-Chart anzeigen wollte, habe ich mir bisher einfach damit beholfen, dass ich zwei Queries gemacht habe.Für die Außentemperatur z.B.

                    SELECT
                      ts AS "time",
                      val AS "Außentemperatur"
                    FROM ts_number
                    WHERE
                      id = 14
                    ORDER BY ts
                    

                    und analog noch mal einen für die Heizenergie mit id = 25.

                    Das geht beim XY-Chart aber leider nicht, dieser Panel-Typ benötigt wohl beide Werte aus einem Query bzw. im Ergebnis in einer Datentabelle, die so aussieht:

                    ts           Temp   Energie
                    2022-11-13   4.42   23
                    2022-11-14   5.88   24
                    2022-11-15   6.30   16
                    

                    Der Query müsste also beide IDs zusammenbringen und gleichzeitig den Zeitversatz der beiden Objekte von jeweils 59 Sekunden (durch eine Gruppierung?) ausbügeln.

                    Leider stehe ich auf dem Schlauch: Wie müsste der entsprechende Query aussehen?

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von
                    #9

                    @bfit sagte in Grafana / MariaDB: Aus 2 Queries 1 machen?:

                    SELECT
                      ts AS "time",
                      val AS "Außentemperatur"
                    FROM ts_number
                    WHERE
                      id = 14 OR id = 25
                    ORDER BY ts
                    

                    und wenn man in die Abfrage den ID des anderen Datenpunkts mit einschließt?

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    CodierknechtC 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @bfit sagte in Grafana / MariaDB: Aus 2 Queries 1 machen?:

                      SELECT
                        ts AS "time",
                        val AS "Außentemperatur"
                      FROM ts_number
                      WHERE
                        id = 14 OR id = 25
                      ORDER BY ts
                      

                      und wenn man in die Abfrage den ID des anderen Datenpunkts mit einschließt?

                      CodierknechtC Online
                      CodierknechtC Online
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @oliverio
                      Dann hast Du jeweils 2 Zeilen, weil die Timestamps unterschiedlich sind.

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      765

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe