Ankündigung

Einklappen
Keine Ankündigung bisher.

Items mehrere Timer zuweisen?

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

    Items mehrere Timer zuweisen?

    Ich habe hier gerade das Problem, dass ich auf einfache Weise die Rasensprenger nacheinander starten wollte.
    Man kann aber offensichtlich nicht mehrere Zeiten einem Item zuweisen. Hat dafür jemand einen Lösungsansatz wie ich das sonst umsetzten könnte?
    Time.sleep wäre noch eine Möglichkeit. Würde ich aber ungern benutzen.

    Hier mein Code:
    Code:
            sh.AA.Raum0.Rasensprenger_Kreis1(1)
            sh.AA.Raum0.Rasensprenger_Kreis2.timer(600,1)
            sh.AA.Raum0.Rasensprenger_Kreis1.timer(600,0)
            sh.AA.Raum0.Rasensprenger_Kreis3.timer(1200,1)
            sh.AA.Raum0.Rasensprenger_Kreis2.timer(1200,0)
            sh.AA.Raum0.Rasensprenger_Kreis3.timer(1800,0)
    Grüße, Marc

    #2
    Hi,

    Hatte das bei mir mal in ähnlicher Form für 2 Funksteckdosen mit dem UZSU-Plugin und einer Logik realisiert.

    über die smartvisu hab ich die Startzeit vorgegeben, wann die Timer starten sollen,
    und dann mit einem basic.trigger die Logik getriggert.

    Die Logik hat mir dann die zusatzzeiten addiert und die UZSU gefüttert.

    logik:
    Code:
    #!/usr/bin/env python3
    # settimer.py
    
    from datetime import timedelta
    from random import randint
    import logging
    
    now = sh.now()
    timestart = sh.funk.startzeit() # Startzeit einlesen
    sth,stm,sts = timestart.split(':') # Startzeit zerlegen
    sb = int(sth) # Stunde
    sm = int(stm) # Minute
    #2018-02-12 19:34:33.250929+01:00
    time1 = datetime.datetime(now.year, now.month, now.day, sb, sm, 0, 0) # Startzeit im Unix Timeformat zusammenbauen
    time2 = time1 + timedelta(minutes=1) #Stop
    time3 = time2 + timedelta(minutes=1) #Start 1 Minute
    time4 = time3 + timedelta(minutes=1) #Stop
    time5 = time4 + timedelta(minutes=1) #Start 1 Minute
    time6 = time5 + timedelta(minutes=1) #Stop
    time7 = time6 + timedelta(minutes=1) #Start 1 Minute
    time8 = time7 + timedelta(minutes=1) #Stop
    time9 = time8 + timedelta(minutes=2) #Start 2 Minute
    time10 = time9 + timedelta(minutes=2) #Stop
    time11 = time10 + timedelta(minutes=2) #Start 2 Minute
    time12 = time11 + timedelta(minutes=2) #Stop
    time13 = time12 + timedelta(minutes=2) #Start 2 Minute
    time14 = time13 + timedelta(minutes=2) #Stop
    time15 = time14 + timedelta(minutes=2) #Start 2 Minute
    time16 = time15 + timedelta(minutes=2) #Stop
    time17 = time16 + timedelta(minutes=5) #Start 5 Minute
    time18 = time17 + timedelta(minutes=5) #Stop
    #
    time21 = time1 + timedelta(minutes=-10) #Start in 20 Minuten Steckd. 2
    time22 = time18 + timedelta(minutes=randint(0,15)) #Stop nach 0-15 Min. nach Steckd. 1
    
    value = sh.funk.steckd2.uzsu()
    
    if value['active'] == True:
        sh.funk.steckd2.uzsu({'active':False, 'list':[]})
        sh.funk.steckd4.uzsu({'active':False, 'list':[]})
    else:
        sh.funk.steckd2.uzsu({'active':True, 'list':[
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time1.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time2.strftime('%H:%M')},
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time3.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time4.strftime('%H:%M')},
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time5.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time6.strftime('%H:%M')},
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time7.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time8.strftime('%H:%M')},
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time9.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time10.strftime('%H:%M')},
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time11.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time12.strftime('%H:%M')},
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time13.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time14.strftime('%H:%M')},
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time15.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time16.strftime('%H:%M')},
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time17.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time18.strftime('%H:%M')}
        ]})
        sh.funk.steckd4.uzsu({'active':True, 'list':[
        {'value':1, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time21.strftime('%H:%M')},
        {'value':0, 'active':True, 'rrule':'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'event': 'time', 'time': time22.strftime('%H:%M')}
        ]})

    Gruß, Mike
    Angehängte Dateien

    Kommentar


      #3
      Hallo Mike01.
      Vielen Dank für Deinen Ansatz.
      Aber das ist mir dann doch zu komplex für dreimal Regner an/aus machen.
      Da muss es doch noch eine andere Lösung geben.

      Kommentar


        #4
        Ich habe es jetzt über ein zweites Item mit der gleichen GA zum Ausschalten gelöst.
        Funktioniert soweit...

        Code:
                sh.AA.Raum0.Rasensprenger_Kreis1(1)
                sh.AA.Raum0.Rasensprenger_Kreis2.timer(600,1)
                sh.AA.Raum0.Rasensprenger_Kreis1.ausschalten.timer(600,0)
                sh.AA.Raum0.Rasensprenger_Kreis3.timer(1200,1)
                sh.AA.Raum0.Rasensprenger_Kreis2.ausschalten.timer(1200,0)
                sh.AA.Raum0.Rasensprenger_Kreis3.ausschalten.timer(1800,0)

        Kommentar

        Lädt...
        X