Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. SQL History - (Garagentor) in iobroker.vis tabellarisch darstellen

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

SQL History - (Garagentor) in iobroker.vis tabellarisch darstellen

Scheduled Pinned Locked Moved Unsolved Visualisierung
vis
25 Posts 5 Posters 4.3k Views 6 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I I-Punkt

    @assid
    Irgendwie scheinen wir doch aneinander vorbei zu denken.:wink: Ich würde:
    A: grundsätzlich nach SQL loggen für z.B. ein Jahr oder was auch immer gewünscht ist und würde zusätzlich
    B: in einem Datenpunkt ein JSON halten, welches immer nur die letzten 10 Datensätze beinhaltet
    Punkt A erledigt der SQL-Adapter, Punkt B ein kleines Script, getriggert bei Änderung des Tor-Status -> ältesten Datensatz raus aus dem JSON, neuen Datensatz rein. Im JSON stehen dann immer nur die letzten 10 Datensätze. Statt JSON geht natürlich auch ein HTML-String/Tabelle oder was auch immer sich gut im VIS verarbeiten läßt.

    A Offline
    A Offline
    assid
    wrote on last edited by
    #16

    @I-Punkt
    Ja soweit so gut, das hatte ich auch schon mal umgesetzt. Aber dann macht das SQL Loging keinen Sinn, wenn man diese Daten eh nicht abrufen kann. Weißt was ich meine?
    Irgendwie probiere ich gerade, direkt aus VIS herraus, mittels reinem HTML Widget auf die SQL Datenbank zuzugreifen und die Daten zu Listen. Komme da aber nicht wirklich weiter.

    I 1 Reply Last reply
    0
    • A assid

      @I-Punkt
      Ja soweit so gut, das hatte ich auch schon mal umgesetzt. Aber dann macht das SQL Loging keinen Sinn, wenn man diese Daten eh nicht abrufen kann. Weißt was ich meine?
      Irgendwie probiere ich gerade, direkt aus VIS herraus, mittels reinem HTML Widget auf die SQL Datenbank zuzugreifen und die Daten zu Listen. Komme da aber nicht wirklich weiter.

      I Offline
      I Offline
      I-Punkt
      wrote on last edited by
      #17

      @assid
      Ah, okay. Für den "intensiveren Blick in meine SQL-Daten" habe ich mir HeidiSQL (gibt sicher auch noch andere) installiert und kann nun nach Belieben in den SQL-Daten von meinem PC aus rumgucken, filtern, exportieren usw. wenn mich was genauer interessiert. Solche "Recherche" würde ich aber nicht über VIS machen, da würde ich mir nur die jeweils letzten x Datensätze anzeigen lassen. Eben halt nur für den "kurzen Blick drauf".
      HeidiSQL.jpg
      Flot wäre vielleicht auch noch eine Alternative so als "Mittelweg". Da kannst du die Diagramme ja so einstellen, dass er dir beim Draufzeigen die Zeiten und Werte für den jeweiligen Datenpunkt anzeigt.
      Flot_Boolean.jpg

      1 Reply Last reply
      0
      • A Offline
        A Offline
        assid
        wrote on last edited by assid
        #18

        Wir kommen der Sache näher, anstatt HeidiSQL, nutze ich Navicat. Aber das sollte hier jetzt weniger relavant sein.

        Das Flot Diagramm ist ja, wie oben schon erwähnt, mein eigentliches Problem. Denn Flot kann lediglich Graphen anzeigen, aber keine Tabellen.

        Es gibt da noch "Grafana", dies ist aber extern von ioBroker zu verwenden (auch zu installieren)

        Wenn ich bei Google eingebe: "mysql in html ausgeben" komme ich immer zu PHP mySQL Abfragen, soweit ich weiß kann aber das ioBroker VIS kein PHP. Demzufolge ist dies auch nicht meinem Ziel ein stückchen näher.

        Mein Ziel:
        ioBroker VIS, einfach Knopf drücken und dann sind ALLE geloggten öffnungen und schließungen "des Objektes (Türkontakt)" untereinander aufgeführt. Kann doch nicht so schwer sein, dies umzusetzen. .... wenne es schon so leicht ist hier zu beschreiben. lach

        Es gibt bei VIS auch ein Widget "history - Event list"
        Unbenannt.png

        Das macht FAST das richtige für mein Vorhaben, dazu müsste ich mich mal durch den Quellcode wühlen. Ich vermute lagsam, ich habe meinen Post hier ins falsche Unterforum gestellt. Sollte wohl eher in die Kategorie "Skripten"

        1 Reply Last reply
        0
        • I Offline
          I Offline
          I-Punkt
          wrote on last edited by
          #19

          Jetzt verwirrst du mich wieder. :relaxed: Also doch ALLE Werte im VIS anzeigen und nicht nur die letzten X?
          Falls es doch in Richtung "nur X Elemente" (wobei X < 20 oder so) gehen sollte, es aber Datensätze aus einem beliebigen Zeitraum sein sollen, dann würde ich mir mal getHistory ansehen.
          Oder als User Querie zusammenbauen. Dann ab in ein JSON und mit dem JSON-Table-Widget anzeigen.
          Ansonsten kannst du auch hier vielleicht noch was finden.

          A 2 Replies Last reply
          0
          • I I-Punkt

            Jetzt verwirrst du mich wieder. :relaxed: Also doch ALLE Werte im VIS anzeigen und nicht nur die letzten X?
            Falls es doch in Richtung "nur X Elemente" (wobei X < 20 oder so) gehen sollte, es aber Datensätze aus einem beliebigen Zeitraum sein sollen, dann würde ich mir mal getHistory ansehen.
            Oder als User Querie zusammenbauen. Dann ab in ein JSON und mit dem JSON-Table-Widget anzeigen.
            Ansonsten kannst du auch hier vielleicht noch was finden.

            A Offline
            A Offline
            assid
            wrote on last edited by assid
            #20

            @I-Punkt
            Cool, das sind schon mal paar sehr hilfreiche Links. Da muss ich mal schauen, ob ich da was drauß machen kann. Danke.
            Wenn du / ihr schon ähnliche Skripte kennt. Über Links würde ich mich freuen. Denn ich kann nur "basteln" und nicht fließend "schreiben (programmieren)"

            Frage mich halt nur wie ich diese JavaSkripte direkt ins HTML Widget ins VIS bekomme. ICh kann ja sicherlich schlecht die komplette Datenbank in einen JSON Datenpunkt schreiben und dann über ein Widget über VIS ausgeben...

            1 Reply Last reply
            0
            • I I-Punkt

              Jetzt verwirrst du mich wieder. :relaxed: Also doch ALLE Werte im VIS anzeigen und nicht nur die letzten X?
              Falls es doch in Richtung "nur X Elemente" (wobei X < 20 oder so) gehen sollte, es aber Datensätze aus einem beliebigen Zeitraum sein sollen, dann würde ich mir mal getHistory ansehen.
              Oder als User Querie zusammenbauen. Dann ab in ein JSON und mit dem JSON-Table-Widget anzeigen.
              Ansonsten kannst du auch hier vielleicht noch was finden.

              A Offline
              A Offline
              assid
              wrote on last edited by
              #21

              @I-Punkt

              OK, das wird jetzt länger dauern. Ich bekomme nicht einen einzigen Wert herraus, zudem auch nicht korrekt formatiert. Für "History" Skript Beispiele wäre ich dankbar.

              I 1 Reply Last reply
              0
              • A assid

                @I-Punkt

                OK, das wird jetzt länger dauern. Ich bekomme nicht einen einzigen Wert herraus, zudem auch nicht korrekt formatiert. Für "History" Skript Beispiele wäre ich dankbar.

                I Offline
                I Offline
                I-Punkt
                wrote on last edited by
                #22

                @assid
                Versuche mal folgenden Code:

                sendTo('sql.0', 'getHistory', {
                    id: 'hm-rpc.0.OEQXXXXXXXXX.1.MOTION',
                    options: {
                        end:       new Date().getTime(),
                        count:     5,
                        aggregate: 'onchange'
                    }
                }, function (result) {
                    Jstring = "[";
                    for (var i = 0; i < result.result.length; i++) {
                        console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                        Jstring=Jstring + "{\"Wert\":\""+result.result[i].val+"\",\"Zeit\":\""+formatDate(result.result[i].ts, "DD.MM.YYYY hh:mm")+"\"}";
                        if (i < result.result.length-1) {
                            Jstring = Jstring +",";
                        }
                    }
                    Jstring = Jstring + "]"
                    Jstring=Jstring.replace(/false/g,'Garagentor geschlossen');
                    Jstring=Jstring.replace(/true/g,'Garagentor offen');
                    setState('javascript.0.Test.JSON-Objekt'/*JSON-Objekt*/,  Jstring);
                });
                

                Geht bestimmt schöner und hübscher, sollte aber erstmal funktionieren.
                Voraussetzung: zu überwachender Datenpunkt wird in SQL geloggt und Datenpunkt für den JSON wurde angelegt
                Sieht im VIS mit diesem Widget
                json2.jpg
                dann so aus:
                json.jpg

                ice987I 1 Reply Last reply
                1
                • I I-Punkt

                  @assid
                  Versuche mal folgenden Code:

                  sendTo('sql.0', 'getHistory', {
                      id: 'hm-rpc.0.OEQXXXXXXXXX.1.MOTION',
                      options: {
                          end:       new Date().getTime(),
                          count:     5,
                          aggregate: 'onchange'
                      }
                  }, function (result) {
                      Jstring = "[";
                      for (var i = 0; i < result.result.length; i++) {
                          console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                          Jstring=Jstring + "{\"Wert\":\""+result.result[i].val+"\",\"Zeit\":\""+formatDate(result.result[i].ts, "DD.MM.YYYY hh:mm")+"\"}";
                          if (i < result.result.length-1) {
                              Jstring = Jstring +",";
                          }
                      }
                      Jstring = Jstring + "]"
                      Jstring=Jstring.replace(/false/g,'Garagentor geschlossen');
                      Jstring=Jstring.replace(/true/g,'Garagentor offen');
                      setState('javascript.0.Test.JSON-Objekt'/*JSON-Objekt*/,  Jstring);
                  });
                  

                  Geht bestimmt schöner und hübscher, sollte aber erstmal funktionieren.
                  Voraussetzung: zu überwachender Datenpunkt wird in SQL geloggt und Datenpunkt für den JSON wurde angelegt
                  Sieht im VIS mit diesem Widget
                  json2.jpg
                  dann so aus:
                  json.jpg

                  ice987I Offline
                  ice987I Offline
                  ice987
                  wrote on last edited by
                  #23

                  Hallo zusammen,

                  Ich habe den code von @I-Punkt bei mir eingebaut und dieser funktioniert einwandfrei. Vielen Dank.
                  Ich versuche nun seit längerem, die Ausgabe umzukehren, so dass der neueste Eintrag zuoberst und nicht zuunterst ausgegeben wird. Laut SQL ist „ORDER BY ts, ... ASC|DESC;“ dafür zuständig.
                  Gibts unter dem Befehl „options: {„ evtl. Die Möglichkeit dies direkt einzupflegen, bzw. gibts eine Übersicht, welche Befehle in diesem Abschnitt erlaubt sind? (Unter https://github.com/ioBroker/ioBroker.sql ist nichts zu finden).

                  @I-Punkt said in SQL History - (Garagentor) in iobroker.vis tabellarisch darstellen:

                  @assid
                  Versuche mal folgenden Code:

                  sendTo('sql.0', 'getHistory', {
                      id: 'hm-rpc.0.OEQXXXXXXXXX.1.MOTION',
                      options: {
                          end:       new Date().getTime(),
                          count:     5,
                          aggregate: 'onchange'
                      }
                  }, function (result) {
                      Jstring = "[";
                      for (var i = 0; i < result.result.length; i++) {
                          console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                          Jstring=Jstring + "{\"Wert\":\""+result.result[i].val+"\",\"Zeit\":\""+formatDate(result.result[i].ts, "DD.MM.YYYY hh:mm")+"\"}";
                          if (i < result.result.length-1) {
                              Jstring = Jstring +",";
                          }
                      }
                      Jstring = Jstring + "]"
                      Jstring=Jstring.replace(/false/g,'Garagentor geschlossen');
                      Jstring=Jstring.replace(/true/g,'Garagentor offen');
                      setState('javascript.0.Test.JSON-Objekt'/*JSON-Objekt*/,  Jstring);
                  });
                  

                  Geht bestimmt schöner und hübscher, sollte aber erstmal funktionieren.
                  Voraussetzung: zu überwachender Datenpunkt wird in SQL geloggt und Datenpunkt für den JSON wurde angelegt
                  Sieht im VIS mit diesem Widget
                  json2.jpg
                  dann so aus:
                  json.jpg

                  husqvarna-automower, meteoblue, wiserbyfeller, spritmonitor

                  GlasfaserG I 2 Replies Last reply
                  0
                  • ice987I ice987

                    Hallo zusammen,

                    Ich habe den code von @I-Punkt bei mir eingebaut und dieser funktioniert einwandfrei. Vielen Dank.
                    Ich versuche nun seit längerem, die Ausgabe umzukehren, so dass der neueste Eintrag zuoberst und nicht zuunterst ausgegeben wird. Laut SQL ist „ORDER BY ts, ... ASC|DESC;“ dafür zuständig.
                    Gibts unter dem Befehl „options: {„ evtl. Die Möglichkeit dies direkt einzupflegen, bzw. gibts eine Übersicht, welche Befehle in diesem Abschnitt erlaubt sind? (Unter https://github.com/ioBroker/ioBroker.sql ist nichts zu finden).

                    @I-Punkt said in SQL History - (Garagentor) in iobroker.vis tabellarisch darstellen:

                    @assid
                    Versuche mal folgenden Code:

                    sendTo('sql.0', 'getHistory', {
                        id: 'hm-rpc.0.OEQXXXXXXXXX.1.MOTION',
                        options: {
                            end:       new Date().getTime(),
                            count:     5,
                            aggregate: 'onchange'
                        }
                    }, function (result) {
                        Jstring = "[";
                        for (var i = 0; i < result.result.length; i++) {
                            console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                            Jstring=Jstring + "{\"Wert\":\""+result.result[i].val+"\",\"Zeit\":\""+formatDate(result.result[i].ts, "DD.MM.YYYY hh:mm")+"\"}";
                            if (i < result.result.length-1) {
                                Jstring = Jstring +",";
                            }
                        }
                        Jstring = Jstring + "]"
                        Jstring=Jstring.replace(/false/g,'Garagentor geschlossen');
                        Jstring=Jstring.replace(/true/g,'Garagentor offen');
                        setState('javascript.0.Test.JSON-Objekt'/*JSON-Objekt*/,  Jstring);
                    });
                    

                    Geht bestimmt schöner und hübscher, sollte aber erstmal funktionieren.
                    Voraussetzung: zu überwachender Datenpunkt wird in SQL geloggt und Datenpunkt für den JSON wurde angelegt
                    Sieht im VIS mit diesem Widget
                    json2.jpg
                    dann so aus:
                    json.jpg

                    GlasfaserG Offline
                    GlasfaserG Offline
                    Glasfaser
                    wrote on last edited by Glasfaser
                    #24

                    @ice987
                    Kennst du den Adapter Log Parser , da hast du viel mehr Möglichkeiten !

                    1.JPG
                    .
                    2.jpg

                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                    1 Reply Last reply
                    0
                    • ice987I ice987

                      Hallo zusammen,

                      Ich habe den code von @I-Punkt bei mir eingebaut und dieser funktioniert einwandfrei. Vielen Dank.
                      Ich versuche nun seit längerem, die Ausgabe umzukehren, so dass der neueste Eintrag zuoberst und nicht zuunterst ausgegeben wird. Laut SQL ist „ORDER BY ts, ... ASC|DESC;“ dafür zuständig.
                      Gibts unter dem Befehl „options: {„ evtl. Die Möglichkeit dies direkt einzupflegen, bzw. gibts eine Übersicht, welche Befehle in diesem Abschnitt erlaubt sind? (Unter https://github.com/ioBroker/ioBroker.sql ist nichts zu finden).

                      @I-Punkt said in SQL History - (Garagentor) in iobroker.vis tabellarisch darstellen:

                      @assid
                      Versuche mal folgenden Code:

                      sendTo('sql.0', 'getHistory', {
                          id: 'hm-rpc.0.OEQXXXXXXXXX.1.MOTION',
                          options: {
                              end:       new Date().getTime(),
                              count:     5,
                              aggregate: 'onchange'
                          }
                      }, function (result) {
                          Jstring = "[";
                          for (var i = 0; i < result.result.length; i++) {
                              console.log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                              Jstring=Jstring + "{\"Wert\":\""+result.result[i].val+"\",\"Zeit\":\""+formatDate(result.result[i].ts, "DD.MM.YYYY hh:mm")+"\"}";
                              if (i < result.result.length-1) {
                                  Jstring = Jstring +",";
                              }
                          }
                          Jstring = Jstring + "]"
                          Jstring=Jstring.replace(/false/g,'Garagentor geschlossen');
                          Jstring=Jstring.replace(/true/g,'Garagentor offen');
                          setState('javascript.0.Test.JSON-Objekt'/*JSON-Objekt*/,  Jstring);
                      });
                      

                      Geht bestimmt schöner und hübscher, sollte aber erstmal funktionieren.
                      Voraussetzung: zu überwachender Datenpunkt wird in SQL geloggt und Datenpunkt für den JSON wurde angelegt
                      Sieht im VIS mit diesem Widget
                      json2.jpg
                      dann so aus:
                      json.jpg

                      I Offline
                      I Offline
                      I-Punkt
                      wrote on last edited by
                      #25

                      @ice987
                      Im Widget gibt es diesen Schalter. Evtl. reicht der ja schon?
                      7c61b676-4fef-4491-9e6d-777b3f6a2dcc-image.png

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      887

                      Online

                      32.4k

                      Users

                      81.5k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe