Ankündigung

Einklappen
Keine Ankündigung bisher.

An/Abwesenheit: Alarm verzögert ausführen

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

    #16
    Hi fuxl,

    die Logik wird nach 30sec erneut gestartet und neu durchlaufen...
    "Warten" würdest du mit "time.sleep" die ist aber "böse" siehe oben #2 ;-)

    Gruß

    Kommentar


      #17
      Ok. Dacht ich mir schon.
      wenn ich aber nun eine logik nur einmal mit einer zeitverzögerung ausführen will, bleibt doch nur time.sleep.
      mit item.age() klappt das doch auch nicht wenn die logik zb durch den einbruch der Nacht ausgelöst wird.
      Seh ich das falsch?

      Kommentar


        #18
        evtl blickst du es so:



        Code:
        logger.info("Logic Test start")
        
        
        if trigger['value'] == "jetztwirdverzoegert":
        	logger.info("Logic Test ist jetzt um 10sec verzoegert worden")
        	sh.Test.Lampe1Schalten(1)
        else:
        	logger.info("Logic Test wird um 10sec verzoegert")
        	logic.trigger(dt=sh.now() + datetime.timedelta(seconds=10), value='jetztwirdverzoegert')

        Kommentar


          #19
          Hallo,

          probiere gerade mit dem Triggern von Logiken herum. Bitte mal Brett vor meinem Kopf entfernen:

          Es scheint, als würde jede Instanz der Logik einen eigenen Satz an Variablen benutzen (was auch irgendwie schlüssig ist). Das heisst, dass die nach xx Sekunden getriggerte Logik nicht auf Python-Variablen der ursprünglichen Logik zugreifen kann (z.B. Status, Messwert, Ausgangswert ...) .

          Gibt es außer dem item_value noch irgendeine andere Möglichkeit, Informationen zwischen den einzelnen Instanzen auszutauschen (sozusagen "globale Variablen" für alle Logikinstanzen)? Wahrscheinlich stehe ich nur mal wieder auf dem Schlauch ...

          Am Rande: trigger['source'] bei der getriggerten Logik ist auch leer. Tut dat Not bzw soll dat so? [Meister Röhrricht off]

          /tom

          Edit: nvm, hab es über ein weiteres dummy-Item gelöst, das ist vermutlich der dafür vorgesehene Weg. Vor lauter Python-lernen denkt man gar nicht daran, dass da hinten ja noch eine "kleine" Automation sitzt:

          Code:
          [FONT=Courier New][[booster_mode]]           
           type = bool
           helios_var = boost_active 
           visu_acl = rw[/FONT]
            
           [FONT=Courier New]  [[[switch]]]
             type = bool
             visu_acl = rw
             
             [[[value_before_switch]]]
             type = num
             cache = True[/FONT]

          Kommentar


            #20
            Hallo,

            wenn Du dem Trigger keine Source mitgibst, steht auch nichts drin.
            In 'by' steht per Default 'Logic'.

            Du kannst auch logic.meine_variable = 'mein_wert' verwenden.

            Bis bald

            Marcus

            Kommentar


              #21
              Ufff, nach 2 Stunden "Männer, die auf Sprüche starren" und den daraus zündenden Gedanken funzt es jetzt, danke Marcus!

              /tom

              Kommentar

              Lädt...
              X