Ankündigung

Einklappen
Keine Ankündigung bisher.

Crontab mit "if" Bedingung?

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

    Crontab mit "if" Bedingung?

    Hallo zusammen,

    seit längerer Zeit habe versuche ich eine Lösung zu finden - diverse Suchen im Netz brachten leider nicht den gewünschen Durchblick.

    Ausprobiert habe ich noch nichts, da ich noch immer den passenden Lösungsweg suche. Ich muss allerdings auch dazu sagen, dass ich noch komplett junfräulich bin, wenn es um Crontabs geht.. nun zum eigentlichen Problem:

    Ich habe eine Wetterstation von MDT auf dem Dach, welche beim unterschreiten eines Wertes von 80 LUX einen Dämmerungswert sendet. Beim senden des "Nachtmodus" werden unter anderem die Lampen in den Dachkästen eingeschaltet. Beim erreichen eines Wertes von 105 LUX wird der Nachtmodus wieder beendet.

    Ich stehe jetzt vor folgendem Problem: Ich möchte, dass zb. das Licht im Dachkasten um 0 Uhr abgeschaltet wird und zb morgens um 6 Uhr wieder eingeschaltet wird. Allerdings nur, wenn der "Nachtmodus" noch aktiv ist. Dies hat natürlich den Hintergrund, dass es im Sommer morgens um diese Zeit schon hell ist und das Licht dann selbstverständlich nicht mehr eingeschaltet werden muss.

    Hat jemand eine Idee? Vermutlich ist es ganz simpel, aber ich habe zu Crontabs mit Abfragen nichts vergleichbares gefunden.

    Viele Grüße und eine besinnliche Weihnachtszeit.

    Miguel

    #2
    Hallo Miguel,

    crontab kann das auch nicht. Ich sehe drei Lösungsmöglichkeiten:

    1. In der Wetterstation umsetzen, die können z.T. auch kleine Logiken
    2. Aktor zwischen 0:00 und 6:00 sperren (und per Crontab setzen)
    3. Eine Logik schreiben

    Bis bald

    Marcus

    Kommentar


      #3
      Eine Logik dafür ist ziemlich simpel. Ich hab' das so gelöst:

      Code:
      [aussenbeleuchtung_ein]
      	filename = aussenbeleuchtung_ein.py
      	crontab = sunset | 30 6 * 0,1,2,3,4	
      	
      [aussenbeleuchtung_aus]
      	filename = aussenbeleuchtung_aus.py
      	crontab = 0 23 * * | sunrise
      Die Aussenbeleuchtung wird eingeschaltet, wenn die Dämmerung beginnt und wochentags zusätzlich morgens um 6:30h. Die Beleuchtung wird ausgeschaltet, wenn die Sonne aufgeht oder nachts um 23:00h. Sonnenaufgang vor 6:30h würde ich nicht abfangen, d.h. da würde das licht dann unmotiviert brennen - ich warte mal den nächsten Sommer ab, ob das ein Problem ist :-)

      Die Logiken sind derzeit noch maximal simpel (da kommt auf die Dauer mehr) und schalten nur ein paar Lampen an bzw. aus:

      Code:
      #!/usr/bin/env python
      
      sh.aussen.garten.licht_haustuer('on')
      sh.aussen.garten.licht_garagentor('on')
      Und analog zum ausschalten:

      Code:
      #!/usr/bin/env python
      
      sh.aussen.garten.licht_haustuer('off')
      sh.aussen.garten.licht_garagentor('off')

      Kommentar


        #4
        Hallo Marcus,

        vielen Dank für den Hinweis. Zumindest weiß ich jetzt, wo ich ansetzen muss.

        @DiMa

        Danke für den tollen Tipp. Das geht schon so in die Richtung die ich brauche. Allerdings habe ich ein Problem beim abfragen der Werte für den Sonnenauf/untergang.

        Du benutzt ja die interne Funktion dafür - ich hätte es gerne so, dass er die Daten der Wetterstation abfragt. Sprich: Bevor das Licht morgens wieder eingeschaltet wird, soll die Wetterstation abgefragt werden, ob der Dämmerungswert noch unter 110 LUX liegt. Wenn ja, dann einschalten und wenn nicht, dann nichts tun.

        Hast Du da zufällig eine Idee?

        Liebe Grüße

        Miguel

        Kommentar


          #5
          Zitat von BlackCrow Beitrag anzeigen
          Hast Du da zufällig eine Idee?
          Ja, aber die entspricht dann Marcus Tip 3.) - if-Abfrage in eine Logik packen.

          Kommentar

          Lädt...
          X