Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

    Hallo,

    wäre es denkbar in das Plugin weitere Abfragen für "timeframes" zu implementieren?
    Bspw. eine today, yesterday etc. würde die Abfrage von Verbrauchswerten deutlich vereinfachen.

    Zitat von Bonze Beitrag anzeigen
    hab mal nachgesehen, eigentlich könnte man noch mehrere kennbuchstaben im Sql plugin implementieren z.B.
    t = today (0uhr bis ende(jetzt) oder y = yesterday
    man muss nur die dazu nur die Timestamps an diesen Daten berechnen
    Was meint ihr?

    Kommentar


      +1

      Kommentar


        Kann das eigtl. jemand replizieren und auch das Problem sehen oder denk ich falsch?
        https://knx-user-forum.de/forum/supp...51#post1163951

        Kommentar


          Onkelandy

          Ich kann mir das die Tage mal anschauen. Hab noch andere Sachen mit der DB zu testen. Kannst Du mir Deine ItemDefinition senden?

          Kommentar


            Hallo,
            Ich hätte noch eine Frage zur Item Config

            Hier zwei Beispiel items von mir

            Code:
                E_Plus:
                    type: num
                    knx_dpt: 13
                    knx_listen: 9/0/11
                    visu_acl: rw
                    sqlite: yes
                    cache: yes
            
                    Heute:
                        type: num
                        eval: sh.EZ.E_Plus() - sh.EZ.E_Plus.db('max', sh.minute.since.midnight.dbstr(), sh.minute.since.midnight.dbstr())
                        crontab: 0,30 * * * = 1
                        sqlite: yes
                        cache: yes
            Ich hatte bis dato sqlite UND cache in Verwendung. Denke das ist nicht notwendig.
            Sollte ich beim E_Plus item nun nur database: init und beim Heute item nur den cache verwenden?
            Macht es Sinn diesen Wert in die Database zu schreiben? Reicht doch Cache oder?

            Code:
               E_Plus:
                    type: num
                    knx_dpt: 13
                    knx_listen: 9/0/11
                    visu_acl: rw
                    database: init
            
                    Heute:
                        type: num
                        eval: sh.EZ.E_Plus() - sh.EZ.E_Plus.db('max', sh.minute.since.midnight.dbstr(), sh.minute.since.midnight.dbstr())
                        crontab: 0,30 * * * = 1
                        cache: yes

            Kommentar


              Sisamiwe Ich hab das zum einen mit einem ganz normalen boolean, zum anderen einem num Item probiert.. zB so:
              Code:
                          SA:
                              knx_send: 3/0/3
                              knx_dpt: 1
                              visu_acl: 'no'
                              type: bool
                              knx_cache: 3/0/27
                              cache: 'False'
              
                          dimmen:
                              knx_send: 3/0/5
                              knx_dpt: 5
                              visu_acl: 'no'
                              type: num
                              knx_cache: 3/0/19
                              cache: 'False'

              Kommentar


                fuxl66 dein zweites Beispiel scheint mir sinnvoller, wobei wohl beides funktioniert..

                Kommentar


                  Zitat von Sisamiwe Beitrag anzeigen
                  Onkelandy

                  Ich kann mir das die Tage mal anschauen. Hab noch andere Sachen mit der DB zu testen. Kannst Du mir Deine ItemDefinition senden?
                  Sisamiwe Konntest du dir das inzwischen mal angucken?

                  Kommentar


                    Kleines Update: ich werde langsam mehr und mehr "firm" mit dem Plugin. Im nächsten Release wird man schon mal einen CSV Export der Log Tabelle machen können und kann diese auch per Knopfdruck leeren.

                    smai ich finde es nicht mehr, was war die Idee neulich, um in eine Web GUI zu integrieren?

                    Bzgl neuer Features im Kern des Plugins sollte ich mich aber nach wie vor mit dem Autor abstimmen.

                    Anbei ein kleiner Blick in die aktuelle GUI:
                    hh.PNG
                    Zuletzt geändert von psilo; 11.02.2018, 16:52.

                    Kommentar


                      Die Idee war in einem Thread zum Thema Daten löschen und umschloss etwa folgende Funktionen:
                      • Daten eines Items anzeigen
                      • Einzelne Zeilen löschen (z.B. nützlich bei falschen Ausschlägen aufgrund Geräteneustart)
                      • Alle Daten eines Items löschen

                      Kommentar


                        Ich habe noch zwei Featurewünsche für das Plugin, um zu viele unsinnige Einträge zu verhindern.

                        1. Mindeständerung
                        Der Wert soll nur gespeichert werden, wenn die Änderung seit dem letzten gespeicherten Wert grösser ist. Idealerweise anzugeben als absoluter Wert und in %.

                        2. Datenratenbeschränkung
                        Der Wert wird nur gespeichert, wenn seit der letzten Speicherung eine definierte Zeitspanne verstrichen ist.

                        Anwendungsbeispiele:
                        Meine Wärmepumpe springt bei den Temperaturen gerne hin und her, so dass z.B. regelmässig von 26.1 auf 26.2 gewechselt wird und kurz darauf wieder zurück.
                        Und ich habe noch andere Temperatursensoren, welche unsinnigerweise den Wert bei einer gemessenen Änderung von 0.01K senden, also alle paar Sekunden.

                        Die Datenratenbeschränkung könnte bei einem Zähler nützlich sein, wenn z.B. Geduscht wird, muss der Wasserzählerstand nicht alle paar Sekunden bei jedem Liter in die DB geschrieben werden.

                        Was denkt ihr dazu?

                        Kommentar


                          Ja, das wäre ein sehr schönes Feature! Wobei mir wichtiger wäre, dass die Abfragen über einen bestimmten Zeitraum korrekt sind - was derzeit noch nicht der Fall zu sein scheint.

                          Obige Sachen könntest du ja auch über Logiken oder evals, etc. abfangen, oder nicht? Hilfsitem wird nur upgedatet, wenn item.previous_value +/- 0.5 und/oder item.age > 10s

                          Kommentar


                            Hallo,
                            ich habe noch 3 Fragen zur Nutzung des DB-Plugins:

                            1) Zugriff auf DB von einer zweiten shNG Instanz
                            Ich habe eine MariaDB meinen produktiven shNG RPi3 laufen. Darin werden die entsprechenden Events mitgelogged.
                            Kann man auch von einer zweiten shNG Instanz (Testumgebung) auf diese DB lesend zugreifen, ohne die erste Instanz zu stören?

                            2) Abfrage von heute, gestern bspw bei Betriebsstunden
                            Wie habt ihr die Abfragen von heute, gestern etc bspw. für Betriebsstunden gelöst? Es wurde ja das diff:max implementiert. Wie nutzt ihr das?

                            3) Bedeutung von i, h, d, w
                            In der Doku zum Plugin steht.
                            Code:
                            sh.outside.temperature.db('min', '1d') # returns the minimum temperature within the last day
                            Bedeudet 1d, dass die min Temp von gestern also zwischen 0 und 24 Uhr ausgegeben wird oder im Zeitraum von 24h vom Abfragezeitpunkt rückwärts gerechnet?

                            Danke für die Rückmeldungen.

                            Michael
                            Zuletzt geändert von Sisamiwe; 02.03.2018, 20:17.

                            Kommentar


                              Ich antworte mir mal (zumindest teilweise selbst).

                              2) heute errechne ich ab, indem ich vom letzten Wert in der DB den Wert von den aktuellen Minuten seit Mitternacht abziehe

                              3) Es wird immer die Zeit vom Abfragezeitpunkt aus verwendet, d.h. 1d bedeutet 1 Tag vom Abfragezeitpunkt zurück.

                              Was noch offen ist, war meine Frage 1:
                              1) Zugriff auf DB von einer zweiten shNG Instanz
                              Ich habe eine MariaDB meinen produktiven shNG RPi3 laufen. Darin werden die entsprechenden Events mitgelogged.
                              Kann man auch von einer zweiten shNG Instanz (Testumgebung) auf diese DB lesend zugreifen, ohne die erste Instanz zu stören?

                              Kann dazu jemand was sagen?

                              Kommentar


                                Zu 1) kann ich zwar nichts direkt zu SHNG sagen, aber grundsätzlich ist MariaDB ein RDBMS und regelt damit parallele Zugriffe über Transactions.

                                Kommentar

                                Lädt...
                                X