Seite 1 von 1

Klammersetzung in Rules bei "Time cron ..." ?

Verfasst: 9. Feb 2020 17:41
von Steinspiel
Moin,

Ich kann irgendwie kein passendes Beispiel für die Syntax (genauer:Klammersetzung) bei Verwendung von "Time cron ..." finden

Ich will das die Regel nicht nur von einem bestimmten Ereigniss ausgelöst wird sondern dieses muss auch in einem bestimmten Zeitrahmen passen. Oder muss "Time cron ..." in die "when Bedingung" ?

Code: Alles auswählen

rule "test_cron"
when   
    Item Lampe_1 changed to ON                                        	// wenn Lampe_1 ausgeschaltet wird
then  
    if (Time cron "0 0 14,15,16,17 ? * MON,TUE,WED,THU,FRI") 	// und es ist Wochentags zwischen 14:00 und 17:59
    {        
                        Lampe_2.sendCommand("ON")                                //  wird Lampe_2 eingeschaltet
}
end
Hätte jemand ein kurzes Beispiel für mich?

Danke und einen schönen Restsonntag noch...

Re: Klammersetzung in Rules bei "Time cron ..." ?

Verfasst: 9. Feb 2020 18:17
von udo1toni
Da liegt ein Missverständnis vor. Time cron ist ein Trgger. Was Du möchtest, ist eine Eingrenzung auf bestimmte Zeitbereiche, also hier von 14 Uhr bis 18 Uhr, Montags bis Freitags. Das geht so:

Code: Alles auswählen

rule "test_cron"
when
    Item Lampe_1 changed to ON                                                   // wenn Lampe_1 eingeschaltet wird
then
    if(now.getDayOfWeek < 6 && now.getHourOfDay > 13 && now.getHourOfDay < 18) { // und es ist werktags zwischen 14:00 und 18:00 Uhr
        Lampe_2.sendCommand("ON")                                                // wird Lampe_2 eingeschaltet
    }
end
.getDayOfWeek liefert den Wochentag als Integerwert von 1 bis 7, 1 ist Montag und 7 ist Sonntag. .getHourOfDay liefert die aktuelle volle Stunde des Tags, Wertbereich Integer 0 bis 23, also 0:00:00 Uhr -> 0; 23:59:59 -> 23.

[gelöst] Re: Klammersetzung in Rules bei "Time cron ..." ?

Verfasst: 9. Feb 2020 19:55
von Steinspiel
Moin,
udo1toni hat geschrieben: 9. Feb 2020 18:17 Da liegt ein Missverständnis vor. Time cron ist ein Trgger. Was Du möchtest, ist eine Eingrenzung auf bestimmte Zeitbereiche,
[...]
Na das war doch mal hilfreich! Du hattest vor einiger Zeit ähnliches bei mir korrigiert, allerdings ohne "DayOfWeek". Ich konnte überhaupt nichts dazu finden deshalb habe ich es wieder mit Cron Jobs versucht, denn dafür gibt es ja Generatoren... ;-)

Danke auch noch mal für die Erklärung, es geht voran... ;) !

Re: Klammersetzung in Rules bei "Time cron ..." ?

Verfasst: 9. Feb 2020 20:19
von udo1toni
Time cron ist übrigens immer ein Zeitpunkt, niemals ein Zeitraum (auch wenn man einen Time cron Ausdruck so definieren kann, dass er auf mehrere Zeitpunkte matcht, es bleiben Zeitpunkte.) ;)