Ankündigung

Einklappen

Aufruf

Bitte helft bei unserer Spendenaktion: Spendenaktion Helmut Lintschinger
Mehr anzeigen
Weniger anzeigen

sleep in logic?

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

    sleep in logic?

    Hallo,

    ich würde gerne eine GA in einer Logik für eine (von der Logik zu berechnenden) Dauer auf 1 und danach wieder auf 0 setzen.

    Darf ich dafür sleep verwenden, oder hängt sh.py dann solange (bis zu 20 min)?
    Oder soll ich dafür logic.trigger() verwenden?


    Gruß,
    Hendrik

    #2
    Hi Hendrik,

    Du darfst schon. Allerdings wird dadurch einer der Worker-Threads, die die Logiken abarbeiten, außer Gefecht gesetzt. Wenn jetzt dieses Telegramm häufig aufeinander folgt, dann könnten alle Worker-Threads mit warten beschäftigt sein und die Abarbeiten der Logiken verzögert sich.

    Eher eine rhetorische Frage: Was hälst Du von einem Treppenhausautomaten-Feature für Items?
    Code:
    tha = 20m = 0
    Das bedeutet setze 20 Minuten nach der letzten Änderung das Item auf 0.

    Ja, logic.trigger ist hier momentan besser.

    Bis bald

    Marcus

    Kommentar


      #3
      Hallo,
      Zitat von mknx Beitrag anzeigen
      Eher eine rhetorische Frage: Was hälst Du von einem Treppenhausautomaten-Feature für Items?
      Code:
      tha = 20m = 0
      Gibt es das schon? Wenn nein, gute Idee! (wenn ja auch ;-)
      Aber ich glaube, das würde mir nicht helfen, denn die Dauer soll ja von der Logik bestimmt werden.

      Kannst du mir ein Beispiel geben für einen logic.trigger() Aufruf für in 10 minuten?
      Wo ich aber v.a. hänge ist das datetime Objekt. Funktioniert da ein when=timedelta(minutes=5)
      logic.trigger(timedelta)?

      In der Doku steht "logic.trigger ist wie sh.trigger". Sh.trigger braucht einen namen, welche logik getriggert werden soll. Das ist bei logic.trigger sicher nicht nötig.
      Die anderen Parameter sind optional. Erkennt Sh.py automatisch, welche optionalen Parameter ich weggelassen habe? Wie? Source und Value kann es ja nicht unterscheiden?!
      Also: Wenn ein optionaler Parameter, dann alle?


      Gruß,
      Hendrik

      Kommentar


        #4
        Hi Hendrik,

        optionale Parameter, die nicht unmittelbar an verpflichtende anschließen, können über den Namen zuegewiesen werden.

        In Deinem Fall z.B.

        Code:
        logic.trigger(dt=sh.now() + datetime.timedelta(seconds=300))
        Bis bald

        Marcus

        Kommentar


          #5
          Danke!

          Kommentar

          Lädt...
          X