Ankündigung

Einklappen
Keine Ankündigung bisher.

Kann man den Ausführungsinterfall Tags und Nachts anderst einstellen?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Kann man den Ausführungsinterfall Tags und Nachts anderst einstellen?

    Hallo,

    ich überlege mir gerade wie ich den Intervall nachts unterbrechen kann, so das ein Plugin zwischen 23:00 und 6:00 Uhr nicht ausgeführt wird.

    Ich habe das ganze in einer "if else" Abfrage versucht zu realisiert.
    Ist das so ideal, oder gibt es da was besseres?

    Code:
    #Tagsüber alle 5 Minuten
    #zwischen 23:00 und 6 Uhr pausieren
    my ($secs,$mins,$hours,$mdays,$mons,$years,$wdays,$ydays,$isdsts) = localtime();
    if ($hours > 22) {
     if ($hours < 6 ) {
     #print "es ist zwischen 23 und 6 Uhr" ;
     $plugin_info{$plugname.'_cycle'} = 28800;
     }
    } else {
     # print "alle 5 Minuten\n" ;
     $plugin_info{$plugname.'_cycle'} = 300;
    }
    Zuletzt geändert von lo4dro; 15.03.2015, 10:42.
    --
    Gruß
    Lothar

    #2
    Lass doch die Cycle-Time gleich und beende das Plugin bei den unpassenden Zeiten einfach per return; vorzeitig. Das ist ganz simpel und robust.

    Aber zur Antwort zur Frage in der Überschrift: ja, kann man.
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Sehe ich genauso, passt doch so!

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #4
        Seid Ihr sicher, dass das passt? Der erste if-block greift doch nur bei $hour>22... d.h. nur bei hour=23. Der zweite if-block kommt doch ab $hours=0 nicht mehr zum tragen, weil der dann direkt in else springt! Das Plugin würde also von 00:00 bis 22:59 Uhr ausgeführt werden. Hab's jetzt aber selbst nicht ausprobiert.

        Imho müsste das eher so aussehen (in kurz mit return):

        Code:
        #Tagsüber alle 5 Minuten
        #zwischen 23:00 und 6 Uhr pausieren
        my ($secs,$mins,$hours,$mdays,$mons,$years,$wdays,$ydays,$isdsts) = localtime();
        return if (($hours >= 23) or ($hours < 6));

        Kommentar


          #5
          Zitat von XueSheng Beitrag anzeigen
          Seid Ihr sicher, dass das passt? Der erste if-block greift doch nur [...]
          Du hast vollkommen recht.

          Ich hatte aber nicht auf den Code sondern auf die Überschrift geantwortet - aber ich sehe, dass man das leicht falsch verstehen kann.

          => Der Code von XueSheng ist der passende
          TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

          Kommentar


            #6
            Zitat von Chris M. Beitrag anzeigen
            => Der Code von XueSheng ist der passende
            Hmm, ja, aber warum macht ihr die Frage auch immer so kompliziert (den cycle ändern statt einfach return kommt ausführungs-technisch eh
            fast auf dasselbe raus

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #7
              Zitat von makki Beitrag anzeigen

              Hmm, ja, aber warum macht ihr die Frage auch immer so kompliziert (den cycle ändern statt einfach return kommt ausführungs-technisch eh
              fast auf dasselbe raus

              Makki
              Tja, vielleicht denke ich einfach zu kompliziert und komme nicht auf die einfache Lösung.
              Danke an XueSheng.
              Zuletzt geändert von lo4dro; 02.04.2015, 18:52.
              --
              Gruß
              Lothar

              Kommentar

              Lädt...
              X