Ankündigung

Einklappen
Keine Ankündigung bisher.

sh.Item.timer(0,0) funktioniert nicht?!?!

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

    sh.Item.timer(0,0) funktioniert nicht?!?!

    Hallo, ich bin im Moment einigermaßen ratlos.
    Hintergrund, ich wollte mir einen Wecker bauen, der mir das Licht morgens langsam hochdimmt.
    Das eigentlich Problem habe ich inzwischen mit ein paar Zusatzitems gelöst.

    Ich hatte das aus einer Logik versucht, die von einem Item: sh.EG.Raum4.Licht getriggert wird.
    Und habe dann aus der gleichen Logik mit sh.EG.Raum4.Licht.timer(29,1) die gleiche Logik wieder getriggert.
    Nun wollte ich den Timer nach 10 Sekunden beenden.

    Anstatt das der Scheduler aber gelöscht wurde, wurde nun die Logik jede Sekunde oder öfter getriggert.

    Bleibt jetzt die Frage, ob man einen Item.timer(29,1) mit Item.timer(0,0) auch deaktivieren kann?
    Also Scheduler löschen.
    Oder liegt das Problem an dem Aufruf der Logik durch den Timer aus der selben Logik?

    Kann mir hier jemand von den Experten hier helfen?
    Zuletzt geändert von schuma; 21.10.2019, 20:15.

    #2
    Es gibt auch die Item Funktion remove_timer, damit sollte es klappen.

    Ich hab bei mir folgende Logik für einen Fade am Laufen ohne Timer, wobei ich das demnächst mit dem item.fade ersetzen will:
    Code:
    vol = sh.squeezebox_eg.volume()
    stepping = 2
    timedec = 17000
    item = sh.return_item(trigger['source'])
    goal = trigger['value']
    
    try:
        if goal > 0:
            logger.info("run fade in. item: {}, goal: {}".format(item, goal))
            vol += stepping
            sh.squeezebox_eg.volume(vol)
            if (vol + stepping) > goal:
                logger.debug("ende fade in. stop")
                sh.squeezebox_eg.volume(goal)
    
            else:
                next_time = sh.now() + dateutil.relativedelta.relativedelta(microseconds=timedec)
                sh.scheduler.change('logics.fade', next=next_time, value=goal)
    
        if goal == 0:
            logger.info("run fade out")
            vol -= stepping
            sh.squeezebox_eg.volume(vol)
            if (vol - stepping) <= goal+1:
                logger.debug("ende fade out. status aus")
    
            else:
                next_time = sh.now() + dateutil.relativedelta.relativedelta(microseconds=timedec)
                sh.scheduler.change('logics.fade', next=next_time, value=goal)
                
    except Exception as err:
        logger.warning("problems with fade: {}".format(err))

    Kommentar

    Lädt...
    X