crontab Update neu
Es gibt drei verschiedene Parametersätze für ein crontab Attribut:
Das Item wird zum Start von SmarthomeNG aktualisiert und triggert dadurch unter Umständen eine zugewiesene Logik:
crontab: 'init'
Hier kann auch zusätzlich ein Offset angegeben werden um den tatsächlichen Zeitpunkt zu verschieben:
crontab: 'init+10' # 10 Sekunden nach Start
Das Item soll zu bestimmten Zeitpunkten aktualisiert werden. Die Schreibweise ist an Linux Crontab angelehnt, entspricht diesem aber nicht genau. Es gibt je nach Parameteranzahl 3 Varianten:
crontab: '<Minute> <Stunde> <Tag> <Wochentag>'crontab: '<Minute> <Stunde> <Tag> <Monat> <Wochentag>'crontab: '<Sekunde> <Minute> <Stunde> <Tag> <Monat> <Wochentag>'
Dabei sind je nach Variante folgende Werte zulässig:
Sekunde:
0bis59Minute:
0bis59Stunde:
0bis23Tag:
1bis31Monat: 1 bis 12 oder
janbisdecWochentag
0bis6odermon,tue,wed,thu,fri,sat,sun
Alle Parameter müssen durch ein Leerzeichen getrennt sein und innerhalb eines Parameters darf kein zusätzliches Leerzeichen vorhanden sein, sonst kann der Parametersatz nicht ausgewertet werden.
Im folgenden Beispiel wird jeden Tag um 23:59 ein Trigger erzeugt und der Wert 70 gesetzt.
crontab: '59 23 * * = 70'
Für jede dieser Zeiteinheiten (Minuten, Stunde, Tag, Wochentag) werden folgende Muster unterstützt (Beispiel jeweils ohne Anführungszeichen verwenden):
eine einzelne Zahl, z.B.
8→ immer zur/zum 8. Sekunde/Minute/Stunde/Tag/Wochentageine Liste von Zahlen, z.B.
2,8,16→ immer zur/zum 2., 8. und 16. Sekunde/Minute/Stunde/Tag/Monat/Wochentagein Wertebereich, z.B.
1-5→ immer zwischen dem/der 1. und 5. Sekunde/Minute/Stunde/Tag/Monat/Wochentageinen Interval, z.B.
*/4→ immer alle 4 Sekunden/Minuten/Stunden/Tage/Wochentageeinen Stern, z.B.
*→ jede Sekunde/Minute/Stunde/Tag/Monat/Wochentag
Nach dem Muster [H:M<](sunrise|sunset|moonrise|moonset)[+|-][offset][<H:M] (<day> <month> <weekday>) kann ein Triggerpunkt bezogen
auf Sonne oder Mond berechnet werden:
sunrise→ immer zum Sonnenaufgangsunset→ immer zum Sonnenuntergangsunriseund untere Begrenzung →06:00<sunrisezum Sonnenaufgang, frühestens um 6 Uhrsunriseund obere Begrenzung →sunrise<09:00zum Sonnenaufgang, spätestens um 6 Uhrsunsetund obere und untere Begrenzung →17:00<sunset<20:00zum Sonnenuntergang, frühestens um 17:00 und spätestens um 20:00 Uhrsunriseund Minuten-Offset →sunrise+10m10 Minuten nach Sonnenaufgangsunsetund Minuten-Offset →sunset-10m10 Minuten vor Sonnenuntergangsunsetund Grad-Offset →sunset+6Sonnenuntergang wenn Sonne 6 Grad am Horizont erreicht
Soll die erweiterte Variante mit Angabe von Tag, Monat und Wochentag genutzt werden, so müssen immer alle Parameter angegeben werden. Die Zusatzangaben müssen dann durch einen Leerschritt getrennt werden. Sofern Zusatzangaben vorhanden sind, werden sie UND verknüpft. Das folgende Beispiel würde einen Triggerzeitpunkt festlegen für den nächsten Sonnenuntergang der an einem 24. Dezember stattfindet und ein Sonntag ist. (das wäre am 24.Dezember 2023)
crontab: 'sunset 24 12 sun'
Das Item soll zu einem bestimmten Sonnenstand aktualisiert werden:
crontab: 'sunrise-10m'
crontab: 'sunset+6'
crontab: 'sunset'
Sämtliche Optionen können in einer *.yaml durch Listenbildung erstellt werden.
Im Admin Interface können die einzelnen Parametersätze durch | getrennt werden.
Durch Anhängen eines = value wird der entsprechende Wert value mitgesendet.
Das Beispiel setzt den Wert des Items täglich um Mitternacht auf 20:
Ab SmartHomeNG v1.11 werden die Konfigurationsmöglichkeiten erweitert: neu
Für den Wert kann nun ein eval Ausdruck angegeben werden, der zur Laufzeit entsprechend neu evaluiert wird. Dabei können auch Item Properties genutzt werden.
crontab:
- '0 0 * * = 20'
- sunrise
crontab: '0 0 * * = sh.pfad.zum.item1() * 4 + sh.pfad.zum.item2.property.last_value'
Möchte man einen Wert im Minutentakt aktualisieren, ist es notwendig den Ausdruck * * * * unter Anführungszeichen zu setzen.
crontab: '* * * * = 1'
Folgendes Beispiel zeigt wie alle 15 Sekunden der Wert 42 gesendet wird:
crontab: '*/15 * * * * * = 42'