Ankündigung

Einklappen
Keine Ankündigung bisher.

Dauer innerhalb eines Zeitraumes in items zählen

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

    #16
    Ich bin gegen solche Interpretationsversuche, nur weil ein falscher yaml Syntax verwendet wurde. Besser ist es darauf hinzuweisen, dass der Syntax korrigiert werden muss.
    Viele Grüße
    Martin

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

    Kommentar


      #17
      Zitat von Onkelandy Beitrag anzeigen
      Die db Abfrage müsste schon passen. Probier mal
      sh.Zentral.Wetter.Wetterstation.Regen.db('on', '3i') Dann findest du heraus, ob das Ergebnis 0 oder none ist. Am besten mal das Regenitem an und aus schalten, dann wieder an. Und nur wie in meiner Zeile die letzten 3 Minuten abfragen. Im WebIF auch konkret checken, was in den letzten 3 Minuten passiert ist.
      Geht irgendwie auch nicht. :-(

      Datenbank:

      Code:
      Item ID     Zeit     Dauer     Geändert     VAL_NUM     VAL_BOOL     VAL_STR
      3     04.06.2019 18:42:43     None     04.06.2019 18:43:09     1.0     1     None     
      3     04.06.2019 18:42:42     1598     04.06.2019 18:43:09     0.0     0     None     
      3     04.06.2019 18:42:23     18229     04.06.2019 18:43:09     1.0     1     None
      Logging:

      Code:
      logics.Bewaesserung Regendauer: 24h:0, 12h:0, 6h:0, 3h:0, 3min:0.0

      Kommentar


        #18
        Zitat von Onkelandy Beitrag anzeigen
        Die db Abfrage müsste schon passen. Probier mal
        sh.Zentral.Wetter.Wetterstation.Regen.db('on', '3i') Dann findest du heraus, ob das Ergebnis 0 oder none ist. Am besten mal das Regenitem an und aus schalten, dann wieder an. Und nur wie in meiner Zeile die letzten 3 Minuten abfragen. Im WebIF auch konkret checken, was in den letzten 3 Minuten passiert ist.
        Ich habs probiert - regnet ja auch gerade. ;-)

        Aber scheint nicht wie erwartet zu funktionieren. Denn zum einen gibt es in der Datenbank eine Dauer von NONE, wenn das item auf 1 steht, aber auch auf 1 stehen bleibt. Die Dauer wird also erst dann eingetragen, wenn das Item wechselt. Zum anderen bin ich auch nicht sicher, dass die Funktion "on" sich auf alle Datenbankeinträge des items bezieht. Es scheint nicht so funktionieren.

        Aktuell ist das item 1 und die 3i zeigen ein 1.0 an. Die Stunden immer 0 oder 0.0, wenn ich die Formeln drumherum weglasse. Hie rmal ein Snapshot der Daten:

        Code:
         [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 630"]
         	 		[TR]
         			[TD="class: xl65, width: 120"]time[/TD]
         			[TD="class: xl65, width: 120"]item_id[/TD]
         			[TD="class: xl65, width: 120"]duration[/TD]
         			[TD="class: xl65, width: 120"]val_str[/TD]
         			[TD="class: xl65, width: 120"]val_num[/TD]
         			[TD="class: xl65, width: 120"]val_bool[/TD]
         			[TD="class: xl65, width: 120"]changed[/TD]
         		[/TR]
         		[TR]
         			[TD="class: xl65"]1559845878381[/TD]
         			[TD="class: xl65"]3[/TD]
         			[TD] [/TD]
         			[TD] [/TD]
         			[TD="class: xl65"]1.0[/TD]
         			[TD="class: xl65"]1[/TD]
         			[TD="class: xl65"]1559845879286[/TD]
         		[/TR]
         		[TR]
         			[TD="class: xl65"]1559841981318[/TD]
         			[TD="class: xl65"]3[/TD]
         			[TD="class: xl65"]3897063[/TD]
         			[TD] [/TD]
         			[TD="class: xl65"]0.0[/TD]
         			[TD="class: xl65"]0[/TD]
         			[TD="class: xl65"]1559845879286[/TD]
         		[/TR]
         		[TR]
         			[TD="class: xl65"]1559841378051[/TD]
         			[TD="class: xl65"]3[/TD]
         			[TD="class: xl65"]603267[/TD]
         			[TD] [/TD]
         			[TD="class: xl65"]1.0[/TD]
         			[TD="class: xl65"]1[/TD]
         			[TD="class: xl65"]1559842039038[/TD]
         		[/TR]
         		[TR]
         			[TD="class: xl65"]1559841255018[/TD]
         			[TD="class: xl65"]3[/TD]
         			[TD="class: xl65"]123033[/TD]
         			[TD] [/TD]
         			[TD="class: xl65"]0.0[/TD]
         			[TD="class: xl65"]0[/TD]
         			[TD="class: xl65"]1559841379237[/TD]
         		[/TR]
         		[TR]
         			[TD="class: xl65"]1559840104799[/TD]
         			[TD="class: xl65"]3[/TD]
         			[TD="class: xl65"]1150219[/TD]
         			[TD] [/TD]
         			[TD="class: xl65"]1.0[/TD]
         			[TD="class: xl65"]1[/TD]
         			[TD="class: xl65"]1559841259025[/TD]
         		[/TR]
         		[TR]
         			[TD="class: xl65"]1559839914716[/TD]
         			[TD="class: xl65"]3[/TD]
         			[TD="class: xl65"]190083[/TD]
         			[TD] [/TD]
         			[TD="class: xl65"]0.0[/TD]
         			[TD="class: xl65"]0[/TD]
         			[TD="class: xl65"]1559840119366[/TD]
         		[/TR]
         		[TR]
         			[TD="class: xl65"]1559833759185[/TD]
         			[TD="class: xl65"]3[/TD]
         			[TD="class: xl65"]6155531[/TD]
         			[TD] [/TD]
         			[TD="class: xl65"]1.0[/TD]
         			[TD="class: xl65"]1[/TD]
         			[TD="class: xl65"]1559839939332[/TD]
         		[/TR]
         		[TR]
         			[TD="class: xl65"]1559833755830[/TD]
         			[TD="class: xl65"]3[/TD]
         			[TD="class: xl65"]3355[/TD]
         			[TD] [/TD]
         			[TD="class: xl65"]0.0[/TD]
         			[TD="class: xl65"]0[/TD]
         			[TD="class: xl65"]1559833818415[/TD]
         		[/TR]
         	 [/TABLE]

        Kommentar


          #19
          Ja, die Dauer wird erst geschrieben, wenn sich der Wert ändert. Das "on" fragt imho val_bool ab. Du kannst bei der Abfrage ja auch ein "2h, "1h" machen. Ich würde mal explizit die Zeit zwischen 19.30 und 20.30 checken - da müsste 0.0 zurück kommen. Dann zwischen 20.30 und 21.30 - vermutlich 1.0
          Dann zwischen 20 und 21 Uhr sollte ca. 0.5 raus kommen.

          Also wenn du um 22.00 Uhr abfragst, nutze die oben erwähnten "2h", "1h"

          Kommentar


            #20
            Wäre es nicht leichter alle Datensätze innerhalb eines Zeitraumes abzufragen und das dann selbst auszurechnen? Nach der einfachen Methode geht es ja irgendwie nicht so recht.

            Kommentar


              #21
              Eine Alternative wäre das direkt in Items zu machen. Aber auch das läuft nicht.

              Code:
                          Regen:
                              type: bool
                              knx_dpt: 1
                              knx_cache: 4/3/0
                              visu_acl: rw
                              database: yes
                              on_change:
                                  - .innerhalb_3h = True
                                  - .innerhalb_6h = True
                                  - .innerhalb_9h = True
                                  - .innerhalb_12h = True
                              innerhalb_3h:
                                  type: bool
                                  autotimer: 180m = False
                              innerhalb_6h:
                                  type: bool
                                  autotimer: 360m = False
                              innerhalb_9h:
                                  type: bool
                                  autotimer: 540m = False
                              innerhalb_12h:
                                  type: bool
                                  autotimer: 720m = False
                              Dauer_3h:
                                  type: num
                                  eval: sh..self() + sh...self.prev_age() if not sh...self() else None
                                  eval_trigger: ..self
              "innerhalb_3h" und auch die anderen Zeiten werden nicht True. Wieso nicht? Mit on_change setze ich doch das item auf True. Es bleibt aber False. Übersehe ich was?

              Kommentar


                #22
                Geht doch! Wird aber erst geupdated, wenn Regen beendet ist. :-)

                Kommentar

                Lädt...
                X