Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Neues Database Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Onkelandy vielleicht solltest Du kurz schreiben wie man das feststellen kann bzw. wie Du das gemessen hast...

    Kommentar


      Hi Onkelandy, ich nutze das DB plugin auch mit SQL Datenbank auf einer Synology (Maria B). Mir ist das Problem noch nicht aufgefallen und meine Datenbank ist auch nicht klein. Wie misst Du die ca. 8 Einträge pro Sekunde? Über das Plugin Logfile?

      Kommentar


        Hab beim Beenden ins Debuglog geguckt
        das Loggen selbst scheint nicht wirklich was am Speed zu ändern

        Kommentar


          Hallo Onkelandy ,

          ich habe bei mir analog ein Logging ins DB plugin aufgenommen, um die Ausführungszeit der Funktion dump() in der stop() Funktion des plugins über einen längeren Zeitraum und in verschiedenen Situationen zu beobachten. Der DB dump hat bei mir bisher nie länger als 2 Sekunden (gemäß plugin log) gedauert. Im Regelfall liegt die benötigte Zeit unter 1 Sekunde. Die DB läuft bei mir auch extern auf einer Synology (Maria DB). Ich kann Dein Verhalten bei mir also nicht nachstellen.

          VG

          Kommentar


            Und wie viele Einträge sind das innerhalb dieser 2 Sekunden?

            Kommentar


              Hallo,

              Ich habe eine Frage zu Möglichen Funktionen des database-Plugins: Ich suche eine Möglichkeit, über die kontinuierlich geloggten Werte (bspw. Außentemperatur) eine Abfrage zu machen, die mir bspw. die Minimaltemperaturen einer jeden Woche ausgibt.

              Bspw. Ermittlung der MinTemperature innerhalb einer Woche für die vergangenen 10 Wochen.
              Lässt sich das mit Bordmitteln lösen?

              Bin für jeden Hinweis dankbar.

              Kommentar


                Zitat von Sisamiwe Beitrag anzeigen
                Bspw. Ermittlung der MinTemperature innerhalb einer Woche für die vergangenen 10 Wochen.
                Lässt sich das mit Bordmitteln lösen?
                .

                Ich stell dir morgen den Code ein,

                Kommentar


                  Hier der Link.

                  https://knx-user-forum.de/forum/supp...71#post1700271

                  Kommentar


                    Zitat von Maexle Beitrag anzeigen
                    Hier der Link.
                    Danke.

                    Allerdings trifft es meine Anforderung nicht gesamt. Diese Funktion ermittelt den minimalen Wert im Zeitfenster Abfragezeitpunkt bis genau 7Tage davor.
                    Ich suche ein Funktion, die die den mininmalen Wert innerhalb eines Zeitfensters für einen Zeitraum x liefert.
                    Sowas wie: Minimale Tagestemperatur der letzten 10 Tage.

                    Kommentar


                      Ich glaube ich verstehe dich nicht richtig.... weil die 7d durch 10d zu ersetzen kann das Problem ja nicht sein.

                      Möchtest du flexibel z.B. 20 Tage eintippen --> Ergebnis --> 3 Tage später möchtest du die letzen 15 Tage wissen?

                      Kommentar


                        Zitat von Maexle Beitrag anzeigen
                        Ich glaube ich verstehe dich nicht richtig
                        Ich versuche es nochmal:
                        • Ich logge (wie du auch) diverse Temperaturen laufend mit.
                        • Aus diesen Daten, möchte ich ein Darstellung als Plot/Säule generieren, die mir bspw. die jeweilige minimale Temperatur eines Tages für den angegebenen Zeitraum (bspw. die letzten 3 Tage).
                        • Das erwartete Ergebnis wäre eine Liste mit den minimalen Temperaturen eines Tages für den Abfragezeitraum (hier bspw. heute, gestern, vorgestern) [0.1, 2.0, 3.0]
                        oder anders:
                        • die Erweiterung der Funktion
                          sh.item.db(function, start, end=‘now‘)
                          so dass bspw. die Abfrage hier nachfolgend gemseinsam ausgeführt werden kann.
                        • Code:
                          	sh.item.db('min', 1d)
                          	sh.item.db('min', 2d, 1d)
                          	sh.item.db('min', 3d, 2d)
                        Ist das verständlicher?

                        Kommentar


                          Ich glaube dich verstanden zu haben - vorweg weiterhelfen kann ich nicht...

                          Du möchtest "Min-Temp-der-letzen-Woche"
                          Mo. 5°
                          Di 7°
                          Mi 10°
                          Do 32°
                          Fr 17°
                          Sa 17°
                          So 18°

                          oder auch des letzten Montas, Quaratal.....

                          Kommentar


                            Zitat von Maexle Beitrag anzeigen
                            Du möchtest "Min-Temp-der-letzen-Woche"
                            Genau!

                            Kommentar


                              So,
                              ich habe mal etwas geforscht und die sql-Abfrage dafür ermittelt.

                              Code:
                              SELECT CONCAT(YEAR(FROM_UNIXTIME(time/1000)), '/', WEEK(FROM_UNIXTIME(time/1000))) AS ForDate,
                                  MAX(val_num), MIN(val_num)
                              FROM  log_1
                              WHERE item_id = 117 AND YEAR(FROM_UNIXTIME(time/1000)) = 2020
                              GROUP BY CONCAT(YEAR(FROM_UNIXTIME(time/1000)), '/', WEEK(FROM_UNIXTIME(time/1000)))
                              ORDER BY ForDate DESC;
                              Dabei ist die Tabelle "log_1" und das Item trägt die ID = 117.
                              Die Abfrage ermittelt den Min und Max Wert der Tabellenspalte "val_num" aus der Tabelle "log_1" (Bei mir eine Arbeitskopie der Tabelle, in der alle Werte geloggt werden), wenn die item_id 117 ist, das Jahr des Eintrags 2020 und gruppiert nach Jahr/Woche des Eintrags.

                              Ähnliches geht für Tage, Monate, Jahre etc.

                              Die Datenbank (zumindest mysql) gibt es also her.

                              Wäre es denkbar, das Plugin entsprechend zu erweitern?

                              Kommentar


                                Ich hätte schon des Öfteren natives SQL aus Logiken heraus brauchen können (z.B. im Zusammenhang mit dem hier, dem hier, dem hier und dem hier) und kann mich dunkel daran erinnern, dass es immer daran scheiterte, dass man kein echtes SQL-Statement über das dB-Plugin an die Datenbank übergeben kann.

                                Eine eigene dB-Anbindung wollte ich auch nicht extra schreiben, und für eigenständige Erweiterungen des dB-Plugins (so sie denn überhaupt abgenickt werden - gerade beim dB-Plugin werden für jede vorgeschlagene einfache Lösung immer ganz schnell ganz viele komplizierte Probleme gefunden) fehlt mir einfach die Zeit und der Nerv.

                                Zumindest habe ich nach diversen Tüfteleien für mich keinen gangbaren Weg gefunden und es dann immer aufgegeben ...

                                /tom

                                Kommentar

                                Lädt...
                                X