Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Eine andere Frage ist, wozu dieser Zeitraum.
Ich habe bei mir die Adventszeit so abgebildet:
Code:
// globale Variablen zu Beginn der Datei definieren! var long intStAdvent
rule "Feiertage" when
Time cron "5 0 0 * * ?" or
System started
then
intStAdvent = parse(now.getYear + "-12-25").minusDays(((parse(now.getYear + "-12-25").getDayOfWeek) + 28)).getDayOfYear + 1 // Montag vor 1. Advent
end
rule "Weihnachtslicht ein"
when
Time cron "0 0 6 * * ?" or
Time cron "0 30 16 * * ?"
then
if (now.getDayOfYear < 7 || now.getDayOfYear > intStAdvent) {
logDebug("x-mas","Weihnachtsbeleuchtung ein.")
SchaltGruppe3_Ch4.sendCommand(ON)
}
end
rule "Weihnachtslicht aus"
when
Time cron "0 0 9 * * ?" or
Time cron "0 30 22 * * ?"
then
if (now.getDayOfYear < 7 || now.getDayOfYear > intStAdvent) {
logDebug("x-mas","Weihnachtsbeleuchtung aus.")
SchaltGruppe3_Ch4.sendCommand(OFF)
}
end
vielen lieben Dank für die ausführliche Erklärung.
Darf ich fragen, was bei dem zweiten Skript zeitlich gemacht wird?
Berechnet der immer den Zeitraum neu oder was macht das Skript`?
Hi
intStAdvent wird jede Nacht oder bei Sytemstart berechnet und sollte das Datum des Montags vor dem 1. Advent ergaben. dies wird dann im zweiten Teil genutzt und das aktuelle Datum zu vergleichen und dann eben die Weihnachtsbeleuchtung, bzw verschiedene Stevkdosen dann zu schalten Schau doch mal den Threat https://knx-user-forum.de/forum/supp...eiertage/page2 an, dort haben wir ein Script geschrieben, mit dem alle Feiertage (auch Adventstage) berechnet werden, so schalte ich z.B. Am Totensonntag keine Weihnachts/Adventsbeleuchtung ein.
Der Totensonntag ist der Sonntag vor dem Montag vor dem 1. Advent Die Adventszeit beginnt mit dem Montag vor dem 1. Advent, vorher sollte auch keine Weihnachtsbeleuchtung aktiv sein (auch wenn Kaufhausketten und Lebensmittelmärkte da anderer Ansicht sind).
Der Totensonntag ist der Sonntag vor dem Montag vor dem 1. Advent Die Adventszeit beginnt mit dem Montag vor dem 1. Advent, vorher sollte auch keine Weihnachtsbeleuchtung aktiv sein (auch wenn Kaufhausketten und Lebensmittelmärkte da anderer Ansicht sind).
Ich starte mit der Beleuchtung mit den Weihnachtsmärkten ;-)
now.getDayOfYear < 7 || now.getDayOfYear > intStAdvent) der erste Teil sagt kleiner 7 also täglich (wenn ich nicht irre) da Sonntag 0 und Samstag 6 ist der zweite Teil sagt größer dem Wert der Variable (als Datum) also bis 31.12. denn der 01.01. ist dann kleiner als intStAdvebt. viele Grüsse, Jörg
Meine Beleuchtung springt das erste Mal am Montag nach dem Totensonntag an (also dem Montag vor dem 1. Advent) und zuletzt am 6. Januar (if(now.getDayOfYear < 7)), also Heilige 3 Könige. Man könnte auch Mariä Lichtmeß nehmen, das wäre der 2. Februar. Die Bräuche sind wohl regional etwas unterschiedlich.
Gerade lese ich in Wikipedia, dass die Adventszeit erst am Vorabend des 1. Advent beginnt, also Samstag Abend. Hei, da muss ich wohl flugs die Regeln anpassen...
Gerade lese ich in Wikipedia, dass die Adventszeit erst am Vorabend des 1. Advent beginnt, also Samstag Abend.
Gerade dank Googlr gefunden
Beginn der Adventszeit
Die Adventszeit beginnt mit der ersten Vesper des ersten Adventssonntags und endet am Heiligen Abend mit der ersten Vesper von Weihnachten. Die westliche christliche Adventszeit dauert 22 bis 28 Tage und hat immer vier Sonntage, mit Ausnahme der Bistümer, die am Ambrosianischen Ritus festhalten.
Der Grund für die unterschiedliche Länge der Adventszeit liegt in der Tatsache, dass der Beginn an einen Sonntag gebunden ist, das Ende aber einen Monatstag, den 24. bzw. 25. Dezember. Der letzte Adventssonntag ist dabei der Sonntag vor dem 25. Dezember, womit sich als frühestmögliches Datum der 18. und als spätestmögliches der 24. Dezember ergibt. Daraus folgt: die Adventszeit beginnt am Sonntag zwischen dem 27. November und dem 3. Dezember.
Der 1. Adventssonntag ist der viertletzte Sonntag vor dem 25. Dezember, die Adventszeit endet am Weihnachtstag. Früher galt die Adventszeit als Fasten- und Bußzeit, in der nicht getanzt und nicht geheiratet werden durfte.
Nein, denn diese Bedingung ist ausschließlich am ersten bzw. letzten Tag erfüllt, nicht aber in der Zwischenzeit. Einfacher geht es mit .getDayOfYear. Entweder kleiner als 17 (= 16. Januar als Maximum) oder größer als 331 (26.11., aber Achtung! im Schaltjahr wäre es dann 332)
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar