piSchedule    Job Eigenschaften     vers.0.3 2015-03-10_1000


Schalten von Geräten mit piSchedule erfolgt mittels Kommandos -- genannt 'Jobs' -- die mit pilight zur Ausführung kommen, d.h. es wird bestimmt wann welches Gerät wie geschaltet wird. Für die 'Jobs' bieten sich die folgenden Einstellmöglichkeiten:

Datum/Zeit

Eine sehr flexible Handhabung von Datum/Zeit wird erreicht durch den Einsatz von python-dateutil. Hierdurch erlaubt piSchedule die Unterstützung verschiedenster Formate für Datum/Zeit.

Zeitdifferenz

Eine absolute Zeitangabe lässt sich durch eine Zeitdifferenz ändern. Die Zeitdifferenz kann zu der absoluten Zeitangabe addiert oder substrahiert werden. Außerdam kann ein Zufallszeitwert verwendet werden, hierdurch variiert der Ein/Aus Schaltzeitpukt von Tag zu Tag.

Sonnenauf-/untergang

Um eine Schaltzeit nach dem Sonnenauf- oder untergang zu variieren, wird lediglich das Schlüsselwort 'sunrise' bzw 'sunset' angegeben. Zusätzlich lassen sich auch diese Angaben wieder mit einer Zufallszeitdifferenz versehen. Hierzu müssen die Geo-Koordinaten vor dem Start gesetzt sein.

Zeitplan

Um anzugeben welche Geräte zu welchen Zeit Ein/Aus geschaltet werden sollen, werden die 'Jobs' in einer Einstellungsdatei (INI) zusammengefasst und beim Starten von piSchedule.py übergeben. Diese Einstellungsdatei ist ein einfaches Textformat.

Siehe unten Definitionen bzgl. der Syntax.

Tagesplan
Der Plan gilt jeweils für einen Tag. Beim Tageswechsel wird die INI Datei, die beim Starten übergeben wurde neu geladen. Zeiten, die vom Sonnenauf-/untergang abhängen und Zufallszeiten werden dabei neu berechnet.

Text/Kommentare im Tagesplan
Die INI Datei kann Kommentare in separaten Zeilen enthalten. Kommentarzeilen haben als erstes Nicht-Leerzeichen ein Sternchen. Leerzeilen sind erlaubt.

Definitionen eines Jobs


Ein 'state' ODER 'state_and_time' ist ERFORDERLICH, aber beide sind NICHT erlaubt für einen Gerätejob.

  state            = "on" | "off"

                     Dies führt ein unmittelbares Schalten aus in dem Moment, wenn 'piSchedule' aufgerufen wird.

  state_and_time   = switchDef *[;switchDef]


'switchDef' MUSS einmal und KANN mehrmals vorhanden sein.

  switchDef        = ( on|off,absoluteTime )
                    / ( on|off,[deltaTime][,vTime])
                     Ein Schaltzeitpunkt benötigt die Angabe 'on' ODER 'off'.
                     Zeitwerte können 'absolute' Datum/Zeitangaben oder eine Zeitdifferenz sein 
                     'off' Definitionen ohne Angabe von 'vTime' folgen einer vorherigen 'on' Zeit.
                     'deltaTime' und 'vTime' können in beliebiger Reihnfolge angegeben werden.


Zeit Formate

absoluteTime     = Formate entsprechen 'dateutil'

deltaTime        = '+|-|~|~-h:min'
                     Ein führendes Kontrollzeichen MUSS einmal angegeben werden.
                        führendes Plus  = addiere 'h:min' zu 'vTime'
                        führendes Minus = substrahiere 'h:min' von 'vTime'
                        führendes ~     = addiere eine Zufallszeit im Bereich von 'h:min' zu 'vTime' 
                        führende  ~-    = substrahiere eine Zufallszeit im Bereich von 'h:min' von 'vTime'

vTime            = OPTIONAL, wenn NICHT definiert wird 'vTime' als aktuelles Datum/Zeit angenommen
                     'vTime' ohne Datum wird für den aktuellen Tag bearbeitet

                     'vTime' KANN sein 'sunrise' ODER 'sunset' aber die Werte für 'Latitude' und
                     'Longitude' MÜSSEN in 'piSchedule.prefs.json' definiert sein

Beispiel

Siehe piSchedule.ini


© neandr     --     piSchedule ist ein freies Open Source Projekt     --     Feel free to use it.

Donate button     Spende was piSchedule Dir wert ist.
Kommentare, Fragen und Rückmeldungen im piSchedule Forum