Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. SQL History - (Garagentor) in iobroker.vis tabellarisch darstellen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

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

      Hallo,
      ich logge den Zustand meines Garagentores in einer SQL Datenbank (Boolean). Nun möchte ich tabellarisch die letzten Öffnungen und Schließungen mit Zeitstempel angezeigt haben.

      Beispiel:
      02.03.2019 – 17:00 Uhr - Garagentor -- geschlosse
      02.03.2019 – 17:05 Uhr - Garagentor -- geöffnet

      Leider finde ich dazu keine treffenden Hilfestellungen hier im Forum, oder ich sehe den Wald vor lauter Bäumen nicht. Kann mir jemand passenden Rat geben?

      Freundliche Grüße

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

        @assid
        Guten Morgen !

        Ist es eine Option einfach mehrere Widgets dafür zu nehmen und hintereinander zu stellen.
        Da könnte man dann nehmen

        html Widget und/oder basic number und/oder basic last change timestamp

        Dann geht auch sowas:
        1f54b421-ba83-4d89-8571-83e33a26ee24-image.png

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

          @Segway

          Naja, nicht wirklich. Ich habe das jetzt schon so, zudem habe ich ein Skript das den Log ausliest, und mir die letzten "Schaltvorgänge" listet. Wenn ich aber dieses Skript für mehrere Ereignisse einsetzte. Wird das ganze sehr Prozessor lastig.

          Aus diesem Grund möchte ich etwas "richtiges" haben.

          Ein JS welches die "Schaltvorgänge" bei jedem Schalten aus der SQL liest und in ein JSON Datenpunkt schreibt fällt auch flach, denn 1 Jahr auslesen. Ist auch Prozessorlastig.

          Ich glaub die richtige Herangehensweise wird ein VIS HTML Widget sein, das direkt aus VIS die Daten aller zB. 60 Sekunden aus der SQL liest (alle Schaltzustandsänderungen 1Jahr) und es direkt tabellarisch in VIS untereinander listet.

          Eine VIS History, für Licht, Wohnungstür, Garage usw. getrennt voneinander, verstehst? Das habe ich hier im Forum so noch nicht finden können. Und iobroker.flot kann eben nur Graphen anzeigen, keine Tabellarische Auflistungen.

          A 1 Reply Last reply Reply Quote 0
          • A
            assid @assid last edited by assid

            CSS, SVG, JavaScript sollte für mich weniger das Problem sein, ich Fuchs mich schon rein, aber ich brauch Denkanstöße bzw. Skriptfetzen.

            SQL Daten auslesen, aus true ein geöffnet anzeigen lassen und tabellarisch HTML Konform machen, ja, da mach ich mich dann doch etwas schwer. Wald vor lauter Bäumen und so....

            Kann doch sein, daß schon jemand anderes ähnliches umgesetzt hat. Oder DIE Idee schlecht hin hat.... 🙂

            Bis jetzt sieht meine App so aus, (auch Responsive, Tablet View) aber ich würde ein "i"Button für weitere Informationen haben wollen, wo man dann eben alle geschaltete Vorgänge gelistet sieht.

            Screenshot_20190302-221021.jpg

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

              @assid

              Mhhhh, jo verstanden schon....sowas in der Art ?
              cafbeaf5-0961-4079-9d9f-fff66f831e3b-grafik.png

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

                @Segway
                Korrekt! Aber wenn dieses Log Skript, ein Jahr Daten aus den Logs picken muss. Und das für "jeden" Button. Glaub das wird übel.

                Außerdem weiß ich gar nicht wie lange der Log überhaupt in die Vergangenheit geht...

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

                  @assid

                  Das weiss ich jetzt nicht ob das so CPU-lastig wird. Wenn natürlich jede Sekunda eine Änderung geschrieben wird, dann ist das natürlich was anderes.
                  Aber aus der SQL DB meine PV-Daten für 14 Tage oder 4 Wochen auslesen eght ruckzuck und hat bestimmt mehr als 50.000 Datenbank Punkte.

                  Nicht desto trotz, das mal nur so am Rande, teste ich gerade verschiedene History Adapter aus und gerade was die Last angeht und Aufbereitung von Daten scheint wohl die die INFLUXDB als Time Series Database die bessere Wahl zu sein !

                  A 1 Reply Last reply Reply Quote 0
                  • I
                    I-Punkt last edited by

                    Vielleicht verstehe ich ja das Problem nicht so richtig - aber warum speicherst du nicht ein JSON in einen Datenpunkt und jedes mal wenn sich das Tor bewegt, wird ein neuer Eintrag ins JSON geschrieben und dafür der älteste gelöscht?

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      assid @I-Punkt last edited by

                      @I-Punkt
                      Naja, wenn das flüssig läuft. Gerne. Ich denke mal 400 Tage rückwirkend alle Schaltzustände von ca. 12 Datenpunkten sollte SQL geloggt werden.

                      I 1 Reply Last reply Reply Quote 0
                      • A
                        assid @Segway last edited by

                        @Segway

                        Hast du ein Skript für mich? "SQL DB meine PV-Daten für 14 Tage oder 4 Wochen auslesen" Wäre eventl. Ein Anfang.

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

                          @assid sagte in SQL History - (Garagentor) in iobroker.vis tabellarisch darstellen:

                          Hast du ein Skript für mich? "SQL DB meine PV-Daten für 14 Tage oder 4 Wochen auslesen" Wäre eventl. Ein Anfang.

                          Hilf mir mal - komme da gerade nicht mit. Was meinst du mit auslesen ?
                          Ich lass mir das in Flot oder Grafana anzeigen und lese die Daten aus meiner SQL DB aus (testweise Influx).
                          Das wars.
                          Zur Not kann ich direkt in der Datenbank auch eine csv erzeugen und zB in Excel einlesen und irgendwas machen.

                          Jetzt sag Du mal was du meinst.

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

                            @Segway
                            Wie gesagt komme ich mit den gegebenen Mitteln nicht wirklich weiter. Ich werde es selber Skripten müssen. Wie gesagt, brauche keinen Graphen sondern ein tabellarische Ausgabe. Letzter Eintrag oben.... (Statuswechsel)

                            1 Reply Last reply Reply Quote 0
                            • I
                              I-Punkt @assid last edited by

                              @assid
                              Dann habe ich es wohl wirklich falsch verstanden. Ich dachte, es ging nur um die Anzeige der letzten 10 Öffnungen/Schließungen. Da hätte ich mit SQL geloggt (für irgendwann mal zum Nachgucken oder so) und parallel dazu in einem JSON die letzten 10 Datensätze gehalten und dies dann im VIS angezeigt.

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                assid @I-Punkt last edited by

                                @I-Punkt
                                Naja, das ist eben die Frage, ob dies überhaupt sinnvoll ist, so lange zu Logn. Ich dachte, da ja eh ein komplettes Jahr in der SQL Datenbank ist, geht auch eine Abfrage direkt aus VIS heraus ohne datenpunkt. Denn so ein JSON String, würde ja extrem lang wird. Ich weiß nicht ob dies ein Problem sein könnte...

                                I 1 Reply Last reply Reply Quote 0
                                • I
                                  I-Punkt @assid last edited by

                                  @assid
                                  Irgendwie scheinen wir doch aneinander vorbei zu denken.😉 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 1 Reply Last reply Reply Quote 1
                                  • A
                                    assid @I-Punkt last edited by

                                    @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 Reply Quote 0
                                    • I
                                      I-Punkt @assid last edited by

                                      @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 Reply Quote 0
                                      • A
                                        assid last edited by assid

                                        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 Reply Quote 0
                                        • I
                                          I-Punkt last edited by

                                          Jetzt verwirrst du mich wieder. ☺ 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 Reply Quote 0
                                          • A
                                            assid @I-Punkt last edited by assid

                                            @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 Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            521
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            vis
                                            5
                                            25
                                            3369
                                            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