Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

    Kannst du Konvertierungsfehler komplett ausschließen? Wie sehen denn die tatsächlichen Rückgabewerte (0-1) vom Database Plugin aus? Welche Präzision hast du nun aktiv, 4 Stellen?

    Kommentar


      Zitat von Onkelandy Beitrag anzeigen
      Kannst du Konvertierungsfehler komplett ausschließen? Wie sehen denn die tatsächlichen Rückgabewerte (0-1) vom Database Plugin aus? Welche Präzision hast du nun aktiv, 4 Stellen?
      Die Prezision habe ich auf 6 Stellen eingestellt. Das ergab hier beim Test genauere Ergebnisse. Konvertierungsfehler würde ich deshalb ausschließen, weil die Unterschiede fast 50% betragen und das wäre kein Konvertierungsfehler mehr. Ich werde aber die tatsächlichen Werte ermitteln, wenn es wieder Werte zu messen gibt - sprich, wenn es mal wieder irgendwann regnet. Vielleicht kommen wir dem Phänomen dann auf der Spur.

      Kommentar


        So nun regnete es wieder und es passt wieder was nicht, vielleicht kann jemand was mit den Werten anfangen. Das sind alle Werte vom 15.9. bis 17.9. (Stand jetzt). Am 16.9. regnete es nicht.

        Code:
        Item ID     Zeit     Dauer     Geändert     VAL_BOOL
        3     17.09.2019 19:56:37     None     17.09.2019 19:57:20     0
        3     17.09.2019 19:37:07     1169620     17.09.2019 19:57:20     1
        3     17.09.2019 18:59:19     2267490     17.09.2019 19:37:20     0
        3     17.09.2019 18:27:00     1939654     17.09.2019 19:00:00     1
        3     17.09.2019 17:29:14     3466097     17.09.2019 18:27:19     0
        3     17.09.2019 17:18:47     626256     17.09.2019 17:29:19     1
        3     17.09.2019 17:11:13     454406     17.09.2019 17:19:19     0
        3     17.09.2019 16:55:25     948153     17.09.2019 17:11:19     1
        3     17.09.2019 16:52:31     173972     17.09.2019 16:56:19     0
        3     17.09.2019 16:21:07     1884228     17.09.2019 16:53:19     1
        3     17.09.2019 15:51:54     1752169     17.09.2019 16:21:19     0
        3     17.09.2019 15:04:22     2852069     17.09.2019 15:52:19     1
        3     17.09.2019 14:50:18     844144     17.09.2019 15:05:18     0
        3     17.09.2019 14:13:33     2205398     17.09.2019 14:51:18     1
        3     17.09.2019 14:06:58     394643     17.09.2019 14:14:18     0
        3     17.09.2019 13:39:25     1653361     17.09.2019 14:07:18     1
        3     17.09.2019 13:14:03     1521653     17.09.2019 13:40:18     0
        3     17.09.2019 12:18:20     3343458     17.09.2019 13:14:18     1
        3     17.09.2019 09:37:12     9667759     17.09.2019 12:19:18     0
        
        3     15.09.2019 22:37:17     None     15.09.2019 22:38:10     0
        3     15.09.2019 22:27:11     605880     15.09.2019 22:38:10     1
        3     15.09.2019 12:07:03     37207535     15.09.2019 22:28:10     0
        Precision, wie gesagt auf 6 Stellen. Hier die Werte aus dem Log:

        Code:
        2019-09-17  20:00:00 INFO     logics.Bewaesserung Regendauer im Zeitraum von: 48h: 0.081973, 24h: 0.082808, 12h: 0.082808, 6h: 0.557582.
        2019-09-17  20:00:00 INFO     logics.Bewaesserung Regendauer im Zeitraum von: 48h: 236, 24h: 119, 12h: 60, 6h: 201 Minuten.
        Und hier der Code dazu:

        Code:
        regendauer_48h = sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '48h')
        regendauer_24h = sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '24h')
        regendauer_12h = sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '12h')
        regendauer_6h = sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '6h')
        logger.info('Regendauer im Zeitraum von: 48h: {}, 24h: {}, 12h: {}, 6h: {}.'.format(regendauer_48h, regendauer_24h, regendauer_12h, regendauer_6h))
        
        regendauer_48h = round((sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '48h') or 0) * 2880)
        regendauer_24h = round((sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '24h') or 0) * 1440)
        regendauer_12h = round((sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '12h') or 0) * 720)
        regendauer_6h = round((sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '6h') or 0) * 360)
        logger.info('Regendauer im Zeitraum von: 48h: {}, 24h: {}, 12h: {}, 6h: {} Minuten.'.format(regendauer_48h, regendauer_24h, regendauer_12h, regendauer_6h))

        Kommentar


          Was steht denn da dazwischen in der Datenbank:
          3 17.09.2019 09:37:12 9667759 17.09.2019 12:19:18 0
          3 15.09.2019 22:37:17 None 15.09.2019 22:38:10 0

          Kommentar


            Zitat von Onkelandy Beitrag anzeigen
            Was steht denn da dazwischen in der Datenbank:
            Das ist immer der oberste Eintrag einer Datenbankzeile. Wenn ich das richtig verstehe ist das der gestartete, aber noch nicht beendete Zeitraum oder? Kann ich aber nicht beurteilen, was das nun bedeutet.

            Kommentar


              Da müsste doch noch ein Eintrag zwischen 15.09.2019 22:38:10 und 17.09.2019 09:37:12 sein?
              Solang da nicht der Wert 0 zwischen diesen 2 Zeiten geschrieben wird, ist der ganze regenlose Tag nicht in der Berechnung mit drin und die Ergebnisse "stimmen"

              Kommentar


                Zitat von Onkelandy Beitrag anzeigen
                Da müsste doch noch ein Eintrag zwischen 15.09.2019 22:38:10 und 17.09.2019 09:37:12 sein?
                Der Tag hat keine Einträge. Da ist nichts drin. Wenn sich nichts ändern, wird ja wahrscheinlich auch nichts in die Datenbank geschrieben ....

                Kommentar


                  Es braucht einen Eintrag mit 35 Stunden Wert 0

                  Kommentar


                    Zitat von Onkelandy Beitrag anzeigen
                    Es braucht einen Eintrag mit 35 Stunden Wert 0
                    Ist aber nicht vorhanden. Es gibt daher aus meiner Sicht 2 Ansätze. Entweder muss das item immer wieder in einem definierten Intervall Daten in die Datenbank schreiben, was ich persönlich für nicht sinnig halt. Oder das plugin database hat einen Fehler und man sollte den fixen.

                    Vielleicht sehe ich das auch völlig falsch. Aber die Alternative die Daten händisch einzutragen, ist ja nicht die Lösung.

                    Kommentar


                      Ja da gibts dann wohl einen Fehler beim Schreiben. Das Logfile sagt nix? Vielleicht mal debug log aktivieren und ähnliche Situation hier nochmals posten. Ich schau mal bei mir in die Daten ob ich was Ähnliches erkenne

                      Kommentar


                        Hallo zusammen,

                        kennt ihr das Verhalten, dass die Duration im Database plugin negativ sein kann? Hier ein Auszug aus dem WebIf des DB plugins:
                        ID Zeit Duration Geändert Wert
                        23 Date1 14:24:33 -6562430 21.04.2020 14:56:08 0.0
                        23 Date1 14:22:14 -6424154 21.04.2020 14:46:04 0.0
                        23 Date1 14:04:37 None 21.04.2020 14:04:38 0.0
                        23 Date1 13:58:42 -5011784 21.04.2020 14:15:52 0.0
                        23 Date1 13:16:22 None 21.04.2020 13:16:23 0.0
                        23 Date1 12:35:10 10729243 21.04.2020 15:34:00 0.0
                        23 Date1 12:33:00 129799 21.04.2020 13:15:27 121.0
                        23 Date1 12:32:09 51118 21.04.2020 12:33:01 132.0
                        Ich habe die Vermutung, dass bei einem smarthomeNG Neustart die Duration unter gewissen Umständen nicht berechnet werden kann. Hat jemand mal Ähnliches beobachtet?

                        Kommentar


                          Ein, das Verhalten kenne ich nicht. Hast Du die Items mit database: yes oder mit database: init konfiguriert?
                          Viele Grüße
                          Martin

                          There is no cloud. It's only someone else's computer.

                          Kommentar


                            Die Items sind mit database: init konfiguriert.

                            Kommentar


                              Ich habe mal eine debug Ausgabe in das Database plugin eingefügt, die auslöst, wenn (end-start) negativ wird:

                              Code:
                              9:00 WARNING plugins.database Debug timestamp 2020-04-25 17:15:07.802000+02:00, val 1587827707802, timetouple 1587827707.0, micrsec 802000
                              2020-04-25 20:49:00 WARNING plugins.database Debug timestamp 2020-04-25 17:07:47.598000+02:00, val 1587827267598, timetouple 1587827267.0, micrsec 598000
                              
                              
                              2020-04-25 20:49:00 WARNING plugins.database Negative duration: start: 1587827707802, end 1587827267598,
                              
                              prevChange: 2020-04-25 17:15:07.802000+02:00,
                              
                              lastChange: 2020-04-25 17:07:47.598000+02:00
                              Es ist wirklich so, dass in dem Fall lastChange älter als prevChange ist.

                              Kommentar


                                Kannst du das mal mit einer Logik abfragen, also unabhängig vom db Plugin? Items haben ja auch die Properties für last und prev change.

                                Kommentar

                                Lädt...
                                X