Ankündigung

Einklappen
Keine Ankündigung bisher.

Manuell getriggerte Logik nicht über return_next() ermittelbar?

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

  • mode
    antwortet
    Zusatzfrage.

    Bisher dachte ich immer ein mit dt terminierter Aufruf einer Logik, wird durch einen Aufruf der vor dt liegt "überschrieben". Dies scheint nicht so zu sein:

    Code:
    >>> sh.trigger(name= 'Logi_Wecker_Hoch_Wenn_Hell', dest = 'Logi_Wecker_Hoch_Wenn_Hell', value = True, dt=sh.now() + datetime.timedelta(seconds=10))
    >>> sh.trigger(name= 'Logi_Wecker_Hoch_Wenn_Hell', dest = 'Logi_Wecker_Hoch_Wenn_Hell', value = False)
    Log:
    Code:
    2013-11-03 15:58:17,511 DEBUG    Main         Triggering Logi_Wecker_Hoch_Wenn_Hell - by: Logic source: None dest: Logi_Wecker_Hoch_Wenn_Hell value: True at: 2013-11-03 15:58:27.511285+01:00 -- scheduler.py:trigger:174
    2013-11-03 15:58:19,319 DEBUG    Main         Triggering Logi_Wecker_Hoch_Wenn_Hell - by: Logic source: None dest: Logi_Wecker_Hoch_Wenn_Hell value: False -- scheduler.py:trigger:162
    2013-11-03 15:58:19,320 DEBUG    Logi_Wecker_Hoch_Wenn_Hell Trigger {'dest': 'Logi_Wecker_Hoch_Wenn_Hell', 'source': None, 'by': 'Logic', 'value': False} -- logi_wecker.py:<module>:7
    2013-11-03 15:58:27,756 DEBUG    Logi_Wecker_Hoch_Wenn_Hell Trigger {'dest': 'Logi_Wecker_Hoch_Wenn_Hell', 'source': None, 'by': 'Logic', 'value': True} -- logi_wecker.py:<module>:7
    Warum ist das so?

    Edit: So stehts auch im manual:
    dt timezone aware datetime object, which specifies the triggering time But watch out, if something else triggers that logic before the given datetime, it will not be triggered at the specified time!
    LG

    Mode

    Einen Kommentar schreiben:


  • Manuell getriggerte Logik nicht über return_next() ermittelbar?

    Hallo,

    ich triggere eine Logik Manuell:
    Code:
    >>> sh.trigger(name= 'Logi_Wecker_Hoch_Wenn_Hell', dt=(sh.now()+datetime.timedelta(seconds=10)))
    Ein return_next() gibt mir aber nichts zurück
    Code:
    >>> sh.scheduler.return_next('Logi_Wecker_Hoch_Wenn_Hell')
    weil _next nicht befüllt ist
    Code:
    >>> sh.scheduler._scheduler['Logi_Wecker_Hoch_Wenn_Hell']
    {'obj': <lib.logic.Logic object at 0x7f693804cb90>, 'prio': 3, 'value': None, 'next': None, 'cron': None, 'active': True, 'cycle': None}
    Logik wird dennoch wie erwartet nach 10 sek ausgeführt:
    Code:
    2013-11-03 15:41:45,390 DEBUG    Main         Triggering Logi_Wecker_Hoch_Wenn_Hell - by: Logic source: None dest: None value: None at: 2013-11-03 15:41:55.389881+01:00 -- scheduler.py:trigger:174
    2013-11-03 15:41:55,453 DEBUG    Logi_Wecker_Hoch_Wenn_Hell Trigger {'dest': None, 'source': None, 'by': 'Logic', 'value': None} -- logi_wecker.py:<module>:7
    Wie kann ich herrausfinden ob eine Logik für einen späteren Zeitpunkt (dt) eingeplant ist?

    Ist ein
    Code:
    sh.scheduler.change('Logi_Wecker_Hoch_Wenn_Hell', active=False)
    geeignet um dieses geplante Ausführen zu unterbinden?

    LG

    Mode
Lädt...
X