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. ioBroker Allgemein
  4. SQL-Adapter Datetime generieren

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

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

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

SQL-Adapter Datetime generieren

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
11 Beiträge 3 Kommentatoren 853 Aufrufe 4 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.
  • Domi1893D Offline
    Domi1893D Offline
    Domi1893
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich möchte meine Daten im SQL-Adapter irgendwie im Datetime Format mit ablegen. Für Grafana wäre das geschickter, denke ich. Ich kann zwar in Grafana die Daten abrufen und das funktioniert grundsätzlich alles. Jedoch bekomme ich ein Problem, wenn ich Daten zeitlich gruppiere, dann habe ich einen Versatz um den Betrag der Lokalzeit zu UTC. Wenn ich die Daten ohne Gruppierung auftrage, habe ich diesen Versatz nicht. Da scheint dann irgendwas mit der Erkennung der lokalen Zeit schief zu gehen. Deshalb würde ich zusätzlich gerne den Timestamp als Datetime mit ablegen.
    In der Doku steht, dass man das in Date konvertieren kann. Mir ist nur nicht klar wie, und ob das für meine Zwecke mit der Beschreibung funktioniert.

    35169301-8e65-4fec-a749-9eb59b140eb4-image.png

    Für eine Hilfe wäre ich super dankbar.

    Grüße,

    Domi

    F 1 Antwort Letzte Antwort
    0
    • Domi1893D Domi1893

      Hallo,

      ich möchte meine Daten im SQL-Adapter irgendwie im Datetime Format mit ablegen. Für Grafana wäre das geschickter, denke ich. Ich kann zwar in Grafana die Daten abrufen und das funktioniert grundsätzlich alles. Jedoch bekomme ich ein Problem, wenn ich Daten zeitlich gruppiere, dann habe ich einen Versatz um den Betrag der Lokalzeit zu UTC. Wenn ich die Daten ohne Gruppierung auftrage, habe ich diesen Versatz nicht. Da scheint dann irgendwas mit der Erkennung der lokalen Zeit schief zu gehen. Deshalb würde ich zusätzlich gerne den Timestamp als Datetime mit ablegen.
      In der Doku steht, dass man das in Date konvertieren kann. Mir ist nur nicht klar wie, und ob das für meine Zwecke mit der Beschreibung funktioniert.

      35169301-8e65-4fec-a749-9eb59b140eb4-image.png

      Für eine Hilfe wäre ich super dankbar.

      Grüße,

      Domi

      F Offline
      F Offline
      fastfoot
      schrieb am zuletzt editiert von
      #2

      @domi1893 mir ist nicht klar was du vorhast. Hast du eine Abfrage für Grafana und wie lautet die? Die Datenbank kannst du ja nicht verändern(erweitern) und das braucht es wohl auch nicht

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      Domi1893D 1 Antwort Letzte Antwort
      0
      • F fastfoot

        @domi1893 mir ist nicht klar was du vorhast. Hast du eine Abfrage für Grafana und wie lautet die? Die Datenbank kannst du ja nicht verändern(erweitern) und das braucht es wohl auch nicht

        Domi1893D Offline
        Domi1893D Offline
        Domi1893
        schrieb am zuletzt editiert von
        #3

        @fastfoot sagte in SQL-Adapter Datetime generieren:

        Die Datenbank kannst du ja nicht verändern(erweitern) und das braucht es wohl auch nicht

        Das wäre meine Frage gewesen. Ich habe das Gefühl, dass Grafana Probleme hat, den lokalen Zeitstempel zu identifizieren und zwar dann, wenn ich gruppiere.

        Als Beispiel:

        Wenn ich folgendes tue:

        SELECT
        ts/1000 AS "time",
        val as "Temperatur"
        FROM ts_number
        where id = 39 and val >0

        erhalte ich die Werte in der korrekten Zeit dargestellt (Grafana ist in der gleichen Zeitzone eingestellt, wie der Server selbst und dessen Werte, die auch in der lokalen Zeit abgelegt werden, wenn ich das richtig verstanden habe.

        Tue ich hingegen folgendes:

        SELECT
        $__unixEpochGroup(ts/1000,'1d') as "time",
        max(ts/1000) as max,
        min(ts/1000) as min,
        (max(ts/1000)-min(ts/1000))/3600 as testen,
        avg(val)*(max(ts/1000)-min(ts/1000))/3600000 as "Hausverbrauch",
        sum(val)/360000 as "Int"
        from ts_number
        where id = 39 and val>0 and $__unixEpochFilter(ts/1000)
        group by time

        dann kommt in der Anzeige ein Versatz raus und zwar im die Differenz der lokalen Abweichung zur UTC. Das könnte ich in der Vis zwar korrigieren, indem ich einfach auf UTC stelle, das Problem der falschen Gruppierung bleibt allerdings bestehen. Das habe ich getesten, in dem ich mir den kleinsten Wert des TS für den Tag ausgeben lasse, der ist dann aktuell bei 2 Uhr in der Nacht. Im ersten Moment dachte ich an einen Makro-Fehler bei Grafana. Was mich jedoch stutzig macht ist die Tatsache, dass bei allen Probleme in Grafana mit MySQL immer gefragt wird, ob die Daten in Datetime vorliegen. Das ist hier ja nicht der Fall, deshalb mein Weg hierrüber.

        Ich würde mir jetzt quasi eine Datetime-Spalte zusätzlich mit füllen wollen, um zu testen, ob das Problem dann immer noch besteht. Nur ist mir nicht ganz klar, wie ich das tun kann, da ich mit dem Datenbankthema nicht so vertraut bin.

        Ich hoffe ich konnte mein Problem halbwegs darstellen und ich habe nichts vergessen.
        Eine Hilfe zur Lösung wäre wirklich dufte.

        F O 2 Antworten Letzte Antwort
        0
        • Domi1893D Domi1893

          @fastfoot sagte in SQL-Adapter Datetime generieren:

          Die Datenbank kannst du ja nicht verändern(erweitern) und das braucht es wohl auch nicht

          Das wäre meine Frage gewesen. Ich habe das Gefühl, dass Grafana Probleme hat, den lokalen Zeitstempel zu identifizieren und zwar dann, wenn ich gruppiere.

          Als Beispiel:

          Wenn ich folgendes tue:

          SELECT
          ts/1000 AS "time",
          val as "Temperatur"
          FROM ts_number
          where id = 39 and val >0

          erhalte ich die Werte in der korrekten Zeit dargestellt (Grafana ist in der gleichen Zeitzone eingestellt, wie der Server selbst und dessen Werte, die auch in der lokalen Zeit abgelegt werden, wenn ich das richtig verstanden habe.

          Tue ich hingegen folgendes:

          SELECT
          $__unixEpochGroup(ts/1000,'1d') as "time",
          max(ts/1000) as max,
          min(ts/1000) as min,
          (max(ts/1000)-min(ts/1000))/3600 as testen,
          avg(val)*(max(ts/1000)-min(ts/1000))/3600000 as "Hausverbrauch",
          sum(val)/360000 as "Int"
          from ts_number
          where id = 39 and val>0 and $__unixEpochFilter(ts/1000)
          group by time

          dann kommt in der Anzeige ein Versatz raus und zwar im die Differenz der lokalen Abweichung zur UTC. Das könnte ich in der Vis zwar korrigieren, indem ich einfach auf UTC stelle, das Problem der falschen Gruppierung bleibt allerdings bestehen. Das habe ich getesten, in dem ich mir den kleinsten Wert des TS für den Tag ausgeben lasse, der ist dann aktuell bei 2 Uhr in der Nacht. Im ersten Moment dachte ich an einen Makro-Fehler bei Grafana. Was mich jedoch stutzig macht ist die Tatsache, dass bei allen Probleme in Grafana mit MySQL immer gefragt wird, ob die Daten in Datetime vorliegen. Das ist hier ja nicht der Fall, deshalb mein Weg hierrüber.

          Ich würde mir jetzt quasi eine Datetime-Spalte zusätzlich mit füllen wollen, um zu testen, ob das Problem dann immer noch besteht. Nur ist mir nicht ganz klar, wie ich das tun kann, da ich mit dem Datenbankthema nicht so vertraut bin.

          Ich hoffe ich konnte mein Problem halbwegs darstellen und ich habe nichts vergessen.
          Eine Hilfe zur Lösung wäre wirklich dufte.

          F Offline
          F Offline
          fastfoot
          schrieb am zuletzt editiert von
          #4

          @domi1893 so ganz verstehe ich das nicht, liegt aber an fehlenden Kenntnissen zu Grafana und dazu was diese beiden Makros bewirken. Sonst könnte man das ja in SQL nachbauen. Eine Datetime kannst du dir aber mit FROM_UNIXTIME(ts/1000) erzeugen. Ob dein Mysql/Mariadb tatsächlich auf lokale Zeit eingestellt ist kannst du mit FROM_UNIXTIME(0) testen, dann müsste er dir 1970-01-01 01:00:00 anzeigen

          iobroker läuft unter Docker auf QNAP TS-451+
          SkriptRecovery: https://forum.iobroker.net/post/930558

          Domi1893D 1 Antwort Letzte Antwort
          0
          • F fastfoot

            @domi1893 so ganz verstehe ich das nicht, liegt aber an fehlenden Kenntnissen zu Grafana und dazu was diese beiden Makros bewirken. Sonst könnte man das ja in SQL nachbauen. Eine Datetime kannst du dir aber mit FROM_UNIXTIME(ts/1000) erzeugen. Ob dein Mysql/Mariadb tatsächlich auf lokale Zeit eingestellt ist kannst du mit FROM_UNIXTIME(0) testen, dann müsste er dir 1970-01-01 01:00:00 anzeigen

            Domi1893D Offline
            Domi1893D Offline
            Domi1893
            schrieb am zuletzt editiert von
            #5

            @fastfoot Ja, für mich ist das auch nicht nachvollziehbar. Meine Prüfung zum TS in der DB sah wie folgt aus. Ich habe Werte, die sekündlich abgelegt werden. Ich nehme mir einfach den letzten Wert, rechne ihn in UTC um, wenn dann meine lokale, aktuelle Zeit rauskommt, wäre das für mich der Nachweis, dass die Daten dort im lokalen Zeitstempel abliegen. Die Frage ist: kann ich in einer Abfrage die Daten vorher von lokal in UTC konvertieren?

            Vielleicht muss ich das Problem doch eher in Grafana suchen...

            F 1 Antwort Letzte Antwort
            0
            • Domi1893D Domi1893

              @fastfoot Ja, für mich ist das auch nicht nachvollziehbar. Meine Prüfung zum TS in der DB sah wie folgt aus. Ich habe Werte, die sekündlich abgelegt werden. Ich nehme mir einfach den letzten Wert, rechne ihn in UTC um, wenn dann meine lokale, aktuelle Zeit rauskommt, wäre das für mich der Nachweis, dass die Daten dort im lokalen Zeitstempel abliegen. Die Frage ist: kann ich in einer Abfrage die Daten vorher von lokal in UTC konvertieren?

              Vielleicht muss ich das Problem doch eher in Grafana suchen...

              F Offline
              F Offline
              fastfoot
              schrieb am zuletzt editiert von
              #6

              @domi1893 sagte in SQL-Adapter Datetime generieren:

              @fastfoot Ja, für mich ist das auch nicht nachvollziehbar. Meine Prüfung zum TS in der DB sah wie folgt aus. Ich habe Werte, die sekündlich abgelegt werden. Ich nehme mir einfach den letzten Wert, rechne ihn in UTC um, wenn dann meine lokale, aktuelle Zeit rauskommt, wäre das für mich der Nachweis, dass die Daten dort im lokalen Zeitstempel abliegen. Die Frage ist: kann ich in einer Abfrage die Daten vorher von lokal in UTC konvertieren?

              Vielleicht muss ich das Problem doch eher in Grafana suchen...

              TS ist immer UTC! Die Frage ist ob Grafana das in lokale Zeit wandelt. Du wolltest aber in eine Datetime Spalte wandeln, und da liefert FROM_UNIXTIME() eben auch einen gewandelten Wert, je nach Einstellung in der DB

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              1 Antwort Letzte Antwort
              0
              • Domi1893D Domi1893

                @fastfoot sagte in SQL-Adapter Datetime generieren:

                Die Datenbank kannst du ja nicht verändern(erweitern) und das braucht es wohl auch nicht

                Das wäre meine Frage gewesen. Ich habe das Gefühl, dass Grafana Probleme hat, den lokalen Zeitstempel zu identifizieren und zwar dann, wenn ich gruppiere.

                Als Beispiel:

                Wenn ich folgendes tue:

                SELECT
                ts/1000 AS "time",
                val as "Temperatur"
                FROM ts_number
                where id = 39 and val >0

                erhalte ich die Werte in der korrekten Zeit dargestellt (Grafana ist in der gleichen Zeitzone eingestellt, wie der Server selbst und dessen Werte, die auch in der lokalen Zeit abgelegt werden, wenn ich das richtig verstanden habe.

                Tue ich hingegen folgendes:

                SELECT
                $__unixEpochGroup(ts/1000,'1d') as "time",
                max(ts/1000) as max,
                min(ts/1000) as min,
                (max(ts/1000)-min(ts/1000))/3600 as testen,
                avg(val)*(max(ts/1000)-min(ts/1000))/3600000 as "Hausverbrauch",
                sum(val)/360000 as "Int"
                from ts_number
                where id = 39 and val>0 and $__unixEpochFilter(ts/1000)
                group by time

                dann kommt in der Anzeige ein Versatz raus und zwar im die Differenz der lokalen Abweichung zur UTC. Das könnte ich in der Vis zwar korrigieren, indem ich einfach auf UTC stelle, das Problem der falschen Gruppierung bleibt allerdings bestehen. Das habe ich getesten, in dem ich mir den kleinsten Wert des TS für den Tag ausgeben lasse, der ist dann aktuell bei 2 Uhr in der Nacht. Im ersten Moment dachte ich an einen Makro-Fehler bei Grafana. Was mich jedoch stutzig macht ist die Tatsache, dass bei allen Probleme in Grafana mit MySQL immer gefragt wird, ob die Daten in Datetime vorliegen. Das ist hier ja nicht der Fall, deshalb mein Weg hierrüber.

                Ich würde mir jetzt quasi eine Datetime-Spalte zusätzlich mit füllen wollen, um zu testen, ob das Problem dann immer noch besteht. Nur ist mir nicht ganz klar, wie ich das tun kann, da ich mit dem Datenbankthema nicht so vertraut bin.

                Ich hoffe ich konnte mein Problem halbwegs darstellen und ich habe nichts vergessen.
                Eine Hilfe zur Lösung wäre wirklich dufte.

                O Offline
                O Offline
                onweb
                schrieb am zuletzt editiert von
                #7

                @domi1893 sagte in SQL-Adapter Datetime generieren:

                SELECT
                ts/1000 AS "time",
                val as "Temperatur"
                FROM ts_number
                where id = 39 and val >0

                Warum machst du "ts/1000" ?

                Nach meiner Erfahrung erkennt dies Grafana selbstständig und man muss die Millisekunden nicht rausrechnen.
                Vielleicht dies auch die Ursache deines Darstellungsproblems mit Grafana

                F 1 Antwort Letzte Antwort
                0
                • O onweb

                  @domi1893 sagte in SQL-Adapter Datetime generieren:

                  SELECT
                  ts/1000 AS "time",
                  val as "Temperatur"
                  FROM ts_number
                  where id = 39 and val >0

                  Warum machst du "ts/1000" ?

                  Nach meiner Erfahrung erkennt dies Grafana selbstständig und man muss die Millisekunden nicht rausrechnen.
                  Vielleicht dies auch die Ursache deines Darstellungsproblems mit Grafana

                  F Offline
                  F Offline
                  fastfoot
                  schrieb am zuletzt editiert von
                  #8

                  @onweb sagte in SQL-Adapter Datetime generieren:

                  Warum machst du "ts/1000" ?

                  Also mein Grafana(latest) will das so oder es gibt keine Daten

                  iobroker läuft unter Docker auf QNAP TS-451+
                  SkriptRecovery: https://forum.iobroker.net/post/930558

                  Domi1893D 1 Antwort Letzte Antwort
                  0
                  • F fastfoot

                    @onweb sagte in SQL-Adapter Datetime generieren:

                    Warum machst du "ts/1000" ?

                    Also mein Grafana(latest) will das so oder es gibt keine Daten

                    Domi1893D Offline
                    Domi1893D Offline
                    Domi1893
                    schrieb am zuletzt editiert von
                    #9

                    @fastfoot

                    @fastfoot sagte in SQL-Adapter Datetime generieren:

                    @onweb sagte in SQL-Adapter Datetime generieren:

                    Warum machst du "ts/1000" ?

                    Also mein Grafana(latest) will das so oder es gibt keine Daten

                    So ist es bei mir auch. Grundsätzlich funktioniert das ja. Die Daten werden grundsätzlich auch richtig dargestellt auf der Zeitachse, nur, sobald ich das Group-Makro verwende und z.B. nach Tagen gruppiere und mir dazu die Tagesgrenzen ausgeben lasse, sehe ich die Grenze von 2 bis 2 Uhr.

                    Grüße,

                    Domi

                    F 1 Antwort Letzte Antwort
                    0
                    • Domi1893D Domi1893

                      @fastfoot

                      @fastfoot sagte in SQL-Adapter Datetime generieren:

                      @onweb sagte in SQL-Adapter Datetime generieren:

                      Warum machst du "ts/1000" ?

                      Also mein Grafana(latest) will das so oder es gibt keine Daten

                      So ist es bei mir auch. Grundsätzlich funktioniert das ja. Die Daten werden grundsätzlich auch richtig dargestellt auf der Zeitachse, nur, sobald ich das Group-Makro verwende und z.B. nach Tagen gruppiere und mir dazu die Tagesgrenzen ausgeben lasse, sehe ich die Grenze von 2 bis 2 Uhr.

                      Grüße,

                      Domi

                      F Offline
                      F Offline
                      fastfoot
                      schrieb am zuletzt editiert von
                      #10

                      @domi1893 sagte in SQL-Adapter Datetime generieren:

                      So ist es bei mir auch. Grundsätzlich funktioniert das ja. Die Daten werden grundsätzlich auch richtig dargestellt auf der Zeitachse, nur, sobald ich das Group-Makro verwende und z.B. nach Tagen gruppiere und mir dazu die Tagesgrenzen ausgeben lasse, sehe ich die Grenze von 2 bis 2 Uhr.

                      Die Tagesgrenzen werden immer in UTC berechnet(ts/1000 DIV 86400 * 86400), weshalb es dann bei der Berechnung in die lokale Zeit zu dieser Differenz kommt. Wenn du Daten aus dem Februar abrufst wird die Differenz nur 1Std betragen, wegen der Winterzeit. Ob das jetzt aber ein Fehler ist oder tatsächlich nicht anders zu berechnen ist, vermag ich nicht zu beurteilen

                      iobroker läuft unter Docker auf QNAP TS-451+
                      SkriptRecovery: https://forum.iobroker.net/post/930558

                      Domi1893D 1 Antwort Letzte Antwort
                      0
                      • F fastfoot

                        @domi1893 sagte in SQL-Adapter Datetime generieren:

                        So ist es bei mir auch. Grundsätzlich funktioniert das ja. Die Daten werden grundsätzlich auch richtig dargestellt auf der Zeitachse, nur, sobald ich das Group-Makro verwende und z.B. nach Tagen gruppiere und mir dazu die Tagesgrenzen ausgeben lasse, sehe ich die Grenze von 2 bis 2 Uhr.

                        Die Tagesgrenzen werden immer in UTC berechnet(ts/1000 DIV 86400 * 86400), weshalb es dann bei der Berechnung in die lokale Zeit zu dieser Differenz kommt. Wenn du Daten aus dem Februar abrufst wird die Differenz nur 1Std betragen, wegen der Winterzeit. Ob das jetzt aber ein Fehler ist oder tatsächlich nicht anders zu berechnen ist, vermag ich nicht zu beurteilen

                        Domi1893D Offline
                        Domi1893D Offline
                        Domi1893
                        schrieb am zuletzt editiert von
                        #11

                        @fastfoot sagte in SQL-Adapter Datetime generieren:

                        Die Tagesgrenzen werden immer in UTC berechnet(ts/1000 DIV 86400 * 86400), weshalb es dann bei der Berechnung in die lokale Zeit zu dieser Differenz kommt. Wenn du Daten aus dem Februar abrufst wird die Differenz nur 1Std betragen, wegen der Winterzeit. Ob das jetzt aber ein Fehler ist oder tatsächlich nicht anders zu berechnen ist, vermag ich nicht zu beurteilen

                        Ja genau, die Frage ist, ob ich den Frame in Abhängigkeit der aktuellen Ortszeit anpassen kann? Gerade beim Stromverbrauch etc. ist dieser Versatz ungünstig.

                        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
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        900

                        Online

                        32.5k

                        Benutzer

                        81.6k

                        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