Ankündigung

Einklappen
Keine Ankündigung bisher.

kann man den Wert vor eine Stunde vor einem Tag rausbekommen?

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

    [callidomus] kann man den Wert vor eine Stunde vor einem Tag rausbekommen?

    Hi,
    bei Items die Aufgezeichnet werden kann man den Wert vor 24h rausbekommen oder den Wert um 0 Uhr? Oder den Wert vor einer Stunde?

    Ich hätte gerne einen Anzeige mit Werten die sich auf ein Bestimmten Zeit beziehen. z.b. den Stromverbrauche, Eigenverbrauch gestern.

    Viele Grüsse
    Jürgen

    #2
    Fände ich auch sehr interessant

    Kommentar


      #3
      Hat da schon jemand was raus bekommen ?

      Ich mache das aktuell noch mit einer Logik und einem "hilfs Item" Die Logik wird auf eine bestimmte Zeit getigert und schreibt den aktuellen Wert in ein Item welches ich dann wieder zu einer anderen Zeit hernehme und von der Summe abziehe.

      Ist ziemlich umständlich und führ zu vielen Logiken...

      Kommentar


        #4
        Hallo,

        sorry für die späte Antwort.

        Bei Items, die aufgezeichnet werden, gibt es eine Methode 'db'. Die kann man mit cd.item.db(func, start, end='now') aufrufen.
        func ist dabei eines aus avg, min, max, on
        start und end definiert einen Zeitpunkt für den Anfang und Ende des Zeitraums. Diese kann man, wie bei den Diagrammen, mit i für Minuten, h für Stunden, d für Tage, w für Wochen und y für Jahre angeben. Normalerweise wird dann der Wert für den Zeitraum berechnet/ausgegeben.

        Man kann aber auch den Start und das Ende mit einem Zeitpunkt angeben, dann wird der entsprechende Wert aus der DB gezogen.

        Beispiel:

        Code:
        cd.meinitem.db('avg', '1d', '1d')
        liefert den Wert von gestern (24 Stunden vorher) zurück.

        Verständlich?

        Bis bald

        Marcus

        Kommentar


          #5
          Was sind den die möglichen Eingabewerte für Start und Ende?

          "avg" und 1d gehen ja sind mir aber nicht klar da es ja eigentlich Bereiche und keine Zeitpunkte sind.

          Was muss ich machen um z.b. den Wert um Mitternacht zu bekommen.

          VG
          Jürgen
          Zuletzt geändert von heckmannju; 13.09.2016, 15:22.

          Kommentar


            #6
            Ich glaube, das musst du dir selber basteln. Du weisst ja wie spät es bereits ist - z.B. jetzt 9:34 Uhr --> 9h34i .
            Wenn ich Callidomus verstanden habe, probier mal mit:

            cd.meinitem.db('avg', '9h34i', '9h34i')
            wobei "9h34i" generiert werden müsste. Da ich mich mit Callidomus nicht vertraut bin kann ich dir keine konkrete Lösung geben wie "9h34i" generiert werden kann. Aber vielleicht hast du ja jetzt eine Idee ;-)

            Kommentar


              #7
              okay wenn eine führende 0 erlaubt ist wäre das einfach.

              Code:
              from time import strftime, localtime
              strftime("%Hh%Mi", localtime())
              VG & Danke
              Jürgen

              Kommentar


                #8
                Mit Phyton kenne ich mich nicht aus - aber mit Bash. Da Bash wie auch Phyton auf C++ Bibiliotheken zugreifen gehe ich davon aus, dass "-" (minus) in deinem Fall die Lösung sein könnte.

                Unter Bash:
                Code:
                date +'%-Hh%-Mi'
                Mit Python wäre vermutlich
                Code:
                strftime("%-Hh%-Mi", localtime())
                Einfach mal ausprobieren ;-)

                Kommentar


                  #9
                  past!

                  Kommentar


                    #10
                    Hi,

                    was ist da falsch? Im Item aussen.AvgAT3Days vom Type num steht im Codeblock

                    cd.aussen.temp.db('avg', '3d', end='now')
                    Der wert sollte upgedatet werden wenn sich die aussentemperatur ändert also als abhängigkeit ist aussen.temp definiert. Bei aussen.temp wurde aufzeichnen angekreuzt.

                    Das führt zu folgender Warnung und das Ergebniss ist immer 0.0

                    Code:
                    2016-09-28 14:25:06 DEBUG    Main         Item aussen.garten.temp = 20.73 via CLI 127.0.0.1:25800 None
                    2016-09-28 14:25:06 DEBUG    Main         Item aussen.temp = 20.73 via Item aussen.garten.temp None
                    2016-09-28 14:25:06 DEBUG    Main         Triggering aussen.AvgAT3Days-code - caller: Item source: aussen.temp dest: None value: {'source': 'aussen.temp', 'caller': 'Ite
                    2016-09-28 14:25:06 WARNING  aussen.AvgAT3Days-code Item aussen.AvgAT3Days: problem evaluating cd.aussen.temp.db('avg', '3d', end='now'): frame() takes 2 positional arguments but 3 were given
                    Code:
                    > ls aussen
                    Items:
                    ======
                    aussen
                    aussen.AvgAT3Days = 0.0
                    aussen.eingangsbereich
                    aussen.eingangsbereich.temp = 26.24
                    aussen.garten
                    aussen.garten.temp = 21.0
                    aussen.geraeteraum
                    aussen.geraeteraum.temp = 18.25
                    aussen.temp = 21.0
                    aussen.wetter
                    aussen.wetter.temp = 24.4
                    aussem.temp ist das minium von aussen.garten.temp, aussen.eingangsbereich.temp, aussen.wetter.temp

                    Vg
                    Jürgen

                    Kommentar


                      #11
                      Hi,
                      hat das schon mal jemand anders diese feature in callidomus am laufen?
                      VG
                      Jürgen

                      Kommentar


                        #12
                        Hi Markus,

                        Hast du das schon bemerkt das diese Feature nicht mehr zu funktionieren scheint? Bei mir kommt jedenfalls nur eine Warnung zurück.

                        VG Jürgen

                        Kommentar


                          #13
                          Hallo,

                          ich habe das in testing gefixt.

                          Bis bald

                          Marcus

                          Kommentar


                            #14
                            Zitat von heckmannju Beitrag anzeigen
                            Was muss ich machen um z.b. den Wert um Mitternacht zu bekommen.
                            Hallo Jürgen,

                            hast du das eigentlich hinbekommen? Wie lautet denn die Funktion für die Abfrage des Werts um Mitternacht?
                            Code:
                            cd.item.db('avg', '0h0i', '0h0i')
                            funktioniert bei mir nicht.

                            Gruß
                            Thomas


                            Kommentar


                              #15
                              Hallo Thomas,

                              die Zeit-Angabe ist relativ. In Deinem Fall entspricht das 'jetzt'.
                              Was ist das für ein gewünschter Wert? Ein stetig steigender Wert, oder sinkt der auch?

                              Bis bald

                              Marcus

                              Kommentar

                              Lädt...
                              X