Weihnachtszeit / 1. Advent berechnen

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Roland M.
Beiträge: 10975
Registriert: 08.12.2012, 15:53
System: Alternative CCU (auf Basis OCCU)
Wohnort: Graz, Österreich
Hat sich bedankt: 314 Mal
Danksagung erhalten: 1758 Mal

Weihnachtszeit / 1. Advent berechnen

Beitrag von Roland M. » 06.01.2026, 13:05

Hallo!

Nach Weihnachten ist vor Weihnachten! ;)

Nachdem ich in der vergangenen Saison von drei Usern per PN angeschrieben wurde, möchte ich hier meine Umsetzung zur Berechnung des ersten Adventsonntages bzw. der Weihnachtszeit vorstellen - es gibt aber sicher verschiedene, gleich richtige Ansätze.

Grundgedanke:
Der späteste 4. Adventsonntag kann der 24.12. sein, der früheste 4. Adventsonntag dementsprechend 6 Tage zuvor. Der früheste 1. Adventsonntag logischerweise wiederum drei Wochen davor. Somit braucht man nur mehr ab dem [EDIT: Datum korrigiert!] 27.11. auf den Wochentag achten.

Umgesetzt mit einem Programm und einem kleinen Script:
Weihnachtszeit.png
Hier wird um 12 Uhr mit einem Serienmuster "jährlich, 6. Jänner" die Systemvariable Weihnachtszeit zurückgesetzt, bzw. täglich um 12 Uhr ein Script ausgeführt.
12 Uhr hab ich deswegen gewählt, damit am 1. Adventsonntag am Abend z.B. die Weihnachtsbeleuchtung eingeschaltet und am 6. Jänner in der Früh wieder ausgeschaltet werden kann. Würde man da Mitternacht nehmen, wären unmotivierte Schaltzeiten die Folge.

Das Script sieht so aus:

Code: Alles auswählen

! Weihnachtszeit (1. Adventsonntag - 6. Jänner) berechnen
! RM 10.11.2025

var o-wz = dom.GetObject("Weihnachtszeit");       ! Systemvariable (Objekt)
var wz = o-wz.Value();                            ! Systemvariable (Wert)
var dd = system.Date("%d").ToInteger();           ! aktuellen Tag ermitteln
var mm = system.Date("%m").ToInteger();           ! aktuellen Monat ermitteln
var day = system.Date("%u").ToInteger();          ! aktuellen Wochentag ermitteln, 1 = Montag ... 7 = Sonntag

var mmdd = dd + mm * 100;                         ! Monat und Tag in numerischen Wert umrechnen

if ((mmdd >= 1127) && (day == 7) && !wz)          ! WENN Datum mind. 27.11. UND Sonntag UND SV noch nicht gesetzt
   { 
     o-wz.State(true);                            ! DANN setze Weihnachtszeit = wahr
   }    
Hier wird zur leichteren Abfrage Monat und Tag in einen numerischen Wert umgerechnet. Dies wäre nicht unbedingt notwendig, dann müsste man nur auf ((Monat = 11 UND Tag >= 27) ODER (Monat = 12)) abfragen. So ist es einfach bequemer. ;)

Das wär's eigentlich gewesen, hat bei mir - ohne wirkliche Anwendung ;) - funktioniert und ich hoffe, dass es in den nächsten Weihnachtszeiten für manchen eine Anregung ist!


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (keine Artikelnummern)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. OpenCCU auf Proxmox-Server mit ~110 Geräten
2. OpenCCU auf "Charly" per VPN mit ~70 Geräten
3. OpenCCU auf CCU3 per VPN mit ~40 Geräten
CCU1, (mehrere) CCU2, Raspi 1 mit kleinem Funkmodul, OpenCCU als VM unter Proxmox, Access Point,...

Benutzeravatar
HM-Villa
Beiträge: 728
Registriert: 24.01.2022, 10:13
System: CCU
Hat sich bedankt: 55 Mal
Danksagung erhalten: 163 Mal

Re: Weihnachtszeit / 1. Advent berechnen

Beitrag von HM-Villa » 06.01.2026, 17:42

Hallo Roland,

gute Idee für User, die bspw. nicht das MEGA-Kalenderscript einsetzen (wollen). Allerdings müsste Zeile 12 korrekterweise lauten:

Code: Alles auswählen

if ((mmdd >= 1127) && (day == 7) && !wz)
weil der früheste 1. Advent bereits am 27.11. sein kann, bspw. im Jahre 2022.
______________________________________________________
1019 Kanäle in 238 Geräten und 42 CUxD-Kanäle in 6 CUxD-Geräten

Benutzeravatar
Roland M.
Beiträge: 10975
Registriert: 08.12.2012, 15:53
System: Alternative CCU (auf Basis OCCU)
Wohnort: Graz, Österreich
Hat sich bedankt: 314 Mal
Danksagung erhalten: 1758 Mal

Re: Weihnachtszeit / 1. Advent berechnen

Beitrag von Roland M. » 06.01.2026, 18:50

Hallo!
HM-Villa hat geschrieben:
06.01.2026, 17:42
weil der früheste 1. Advent bereits am 27.11. sein kann, bspw. im Jahre 2022.
Du hast völlig recht, vier Wochen und sechs Tage ergibt den 27.11. :roll:

Ich korrigiere es oben.


Danke für den Hinweis!


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (keine Artikelnummern)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. OpenCCU auf Proxmox-Server mit ~110 Geräten
2. OpenCCU auf "Charly" per VPN mit ~70 Geräten
3. OpenCCU auf CCU3 per VPN mit ~40 Geräten
CCU1, (mehrere) CCU2, Raspi 1 mit kleinem Funkmodul, OpenCCU als VM unter Proxmox, Access Point,...

Antworten

Zurück zu „Projektvorstellungen“