technikkram.net
  • Home
  • smartkram
  • Themenfelder
    • Smart Home
      • Homematic & Homematic IP
      • Smart Home Zentrale
      • Home Assistant
      • MQTT & Messaging
      • Zigbee & Thread
      • Shelly Geräte
      • KNX Gebäudeautomation
      • Matter & Thread
      • Apple HomeKit
    • Server & DevOps
      • Docker & Container
      • Proxmox VE
      • Linux Administration
      • Monitoring & Observability
      • Kubernetes & K3s
      • Raspberry Pi
    • Netzwerk
      • UniFi Netzwerk
      • Netzwerk Grundlagen
      • WLAN Optimierung
      • VLAN Konfiguration
      • Firewall & Security
      • Managed Switches
    • Sicherheit
      • Überwachungskameras
      • IT-Security
      • Videoüberwachung
      • Alarmanlagen
      • Zutrittskontrolle
    • Energie & Solar
      • Energiemanagement
      • Solar & Photovoltaik
    • NAS & Storage
      • NAS Systeme
      • Backup & Recovery
      • Synology NAS
      • Storage Lösungen
  • Archiv
  • Kontakt
    • Datenschutz
    • Impressum
  • KI-Transparenz
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
  • Link zu Facebook
  • Link zu X
  • Link zu Mail
  • Link zu Rss dieser Seite
Werner
CCU2, CCU3, Homematic, Homematic IP, Homematic IP wired, Raspberrymatic, Smart Home

Homematic – Erweiterung des Zeitmodules 02 – Berechnung der Jahreszeiten

Homematic – Erweiterung des Zeitmodules 02 – Berechnung der Jahreszeiten - Jahreszeit Top 03

Heute möchte ich euch den zweiten Teil der Kurzserie „Erweiterungen des Homematic Zeitmodules“ vorstellen. Im ersten Teil habe ich euch im Artikel „Homematic – Erweiterung des Zeitmodules 01 – Berechnung von Feiertagen“ die Berechnung von Feiertagen beschrieben. Heute möchte ich euch zeigen, wie ihr mit zwei kleinen Skripten die Jahreszeiten berechnen könnt. Wenn ihr die Jahreszeit berechnet und in eine Systemvariable schreibt, könnt ihr diese Information für diverse Steuerungen in eurem smarten Zuhause verwenden. So könnt ihr beispielsweise über die Jahreszeit Rollladen oder Lampen steuern. In dem Artikel beschreibe ich was die Unterschiede zwischen der Meteorologischen und der Astronomischen Jahreszeit ist und wie ihr diese berechnen könnt.

Allgemeines – wie sinnvoll ist die Unterscheidung?

Meteorologisch hat der Winter am 1. Dezember begonnen, astronomisch bzw. kalendarisch startet er erst am 22. Dezember. Diese unterschiedlichen Daten werden damit begründet, dass es deutlich einfacher ist, statistische Auswertungen zu erstellen, wenn die Berechnung auf vollen Monaten basiert. Ist das aktuell noch zeitgemäß?

Meteorologisch beginnen die Jahreszeiten so definiert, dass die entsprechende Jahreszeit immer am 1. eines Monats beginnt – der Frühling beginnt am 1. März, der Sommer am 1. Juni, der Herbst am 1. September und der Winter am 1. Dezember. Damit ist klar definiert, dass jede Jahreszeit immer drei vollständige Monate beinhaltet. Diese meteorologische Einteilung wurde eingeführt, um statistische Berechnungen zu vereinfachen. Das Argument der Vergleichbarkeit ist immer noch aktuell, dagegen ist die Berechnung von Zeiten mit modernster Technik überholt.

Im Gegensatz dazu variieren die astronomischen Jahreszeitenanfänge. Der Frühlingsanfang ist manchmal am 20. oder 21. März, der Sommeranfang am 20., 21. oder sogar am 22. Juni, der Herbstanfang ist manchmal am 22., oder am 23. September und der Winteranfang am 21. oder 22. Dezember. Das macht die Berechnung deutlich schwieriger und in Bezug auf Statistiken müssten diese jeweils mit Zusätzen versehen werden. Was das Ganze auch deutlich komplizierter macht.

Meteorologischen Jahreszeiten

Die sogenannten meteorologischen Jahreszeiten sind schlicht nach den Kalendermonaten eingeteilt und umfassen jeweils immer drei komplette Monate. Damit werden sie insgesamt etwa drei Wochen früher angesetzt als die astronomischen Jahreszeiten. Mit der meteorologischen Definition fallen die auf der Nordhalbkugel wie in Deutschland im Durchschnitt wärmsten Monate Juni, Juli und August in den (meteorologischen) Sommer, und die durchschnittlich kältesten Monate Dezember, Januar und Februar fallen in den (meteorologischen) Winter. Diese nach Beginn und Ende von Kalendermonaten bestimmten vierteljährlichen Zeitspannen erlauben oft eine einfachere statistische Erfassung meteorologischer Daten; sie sind nicht nach aktuellen Wetterveränderungen ausgerichtet.

  • Frühling: 1. März – 31. Mai
  • Sommer: 1. Juni – 31. August
  • Herbst: 1. September – 30. November
  • Winter: 1. Dezember – 28./ 29. Februar

Kalendarische bzw. Astronomische Jahreszeiten

Astronomisch werden die Jahreszeiten nach der scheinbaren geozentrischen Länge des Sonnenstandes bestimmt. Die astronomischen Jahreszeiten sind definiert als jene Zeitspannen, die während des Durchlaufens eines bestimmten der vier Abschnitte jeweils vergehen und dauern wegen der unterschiedlichen Winkelgeschwindigkeit nicht gleich lange. Aufgrund der geozentrischen, auf den Erdmittelpunkt bezogenen Definition beginnt oder endet eine astronomische Jahreszeit standortunabhängig weltweit zum selben Zeitpunkt (dem aber in verschiedenen Zeitzonen unterschiedliche Uhrzeiten entsprechen).

Beginn der Jahreszeiten

Die Tabelle listet die astronomischen Jahreszeitenanfänge bis 2025 für die Mitteleuropäische Zeitzone auf:

Systemvariable anlegen

Bevor ihr die Skripte durchführen könnt, müsst ihr noch die jeweilige Systemvariable anlegen (siehe Screenshot).

Skript – Berechnung meteorologische Jahreszeit

!
! ***   Meteorologische Jahreszeit berechnen
!
! ***   Monat und Tag ermitteln und an Systemvariable Monat.Tag uebergeben
dom.GetObject("Monat.Tag").State( (0.01 * system.Date("%d").ToInteger()) + system.Date("%m").ToInteger());
!
! ***   Fruehling (meteorologisch) Maerz,April,Mai
if ((dom.GetObject("Monat.Tag").State()<6.1) && (dom.GetObject("Monat.Tag").State()>3.0)) 
{ dom.GetObject("Jahreszeit meteorologisch").State(0); }
!
! ***   Sommer (meteorologisch) Juni,Juli,August
if ((dom.GetObject("Monat.Tag").State()<9.1) && (dom.GetObject("Monat.Tag").State()>6.0)) 
{ dom.GetObject("Jahreszeit meteorologisch").State(1); } 
!
! ***   Herbst (meteorologisch) September,Oktober,November 
if ((dom.GetObject("Monat.Tag").State()<12.1) && (dom.GetObject("Monat.Tag").State()>9.0)) 
{ dom.GetObject("Jahreszeit meteorologisch").State(2); 020 }
!
! ***   Winter (meteorologisch) Dezember,Januar,Februar 
if ((dom.GetObject("Monat.Tag").State()<3.1) || (dom.GetObject("Monat.Tag").State()>12.0)) 
{ dom.GetObject("Jahreszeit meteorologisch").State(3); }

Skript – Berechnung astronomische Jahreszeit

!
! ***   Astronomische Jahreszeit berechnen
!
! ***   Monat und Tag ermitteln und an Systemvariable Monat.Tag uebergeben
dom.GetObject("Monat.Tag").State( (0.01 * system.Date("%d").ToInteger()) + system.Date("%m").ToInteger());
!
! ***   Fruehling (astronomisch) 20. Maerz bis 19. Juni
if ((dom.GetObject("Monat.Tag").State()<6.20) && (dom.GetObject("Monat.Tag").State()>3.19)) 
{dom.GetObject("Jahreszeit astronomisch").State(0); }
!
! ***   Sommer (astronomisch) 20. Juni bis 21. September
if ((dom.GetObject("Monat.Tag").State()<9.22) && (dom.GetObject("Monat.Tag").State()>6.20)) 
{ dom.GetObject("Jahreszeit astronomisch").State(1); } 
!
! ***   Herbst (astronomisch) 22. September bis 20. Dezember 
if ((dom.GetObject("Monat.Tag").State()<12.21) && (dom.GetObject("Monat.Tag").State()>9.21)) 
{ dom.GetObject("Jahreszeit astronomisch").State(2); 020 }
!
! ***   Winter (astronomisch) 21. Dezember bis 19. Maerz 
if ((dom.GetObject("Monat.Tag").State()<3.20) || (dom.GetObject("Monat.Tag").State()>12.20)) 
{ dom.GetObject("Jahreszeit astronomisch").State(3); }

Skript über WebUI Programm ausrufen

Nachfolgend seht ihr ein Beispiel um das Skript zur Berechnung der meteorologischen Jahreszeit auszuführen. Diesen Programm habe ich für 00:05 Uhr geplant und es funktioniert so seit mehreren Monaten einwandfrei.

Inhalt der Systemvariablen

In dem folgenden Screenshot seht ihr den Inhalt der beiden Jahreszeit Systemvariablen. Da die Skripte beide am 28. Dezember durchgeführt worden sind, haben sie natürlich den gleichen Inhalt.

Fazit

Ich hoffe ihr könnt diese Skripte verwenden um bestimmte Aufgaben in eurem Smart Home umzusetzen. Viel Spass beim Ausprobieren und ich wünsche euch alles gute für das neue Jahr 2020, vor allem Gesundheit.

Das könnte dich auch interessieren

  • Licht per App steuern: Erste Schritte mit smarten Lampen – Person steuert smarte Philips Hue Lampen per Smartphone App vom Sofa aus
    Licht per App steuern: So verbindest du smarte…
    5. Juni 2026 Komfortable Lichtsteuerung: Mit der richtigen App steuerst du alle Lampen bequem vom Sofa aus Licht per App steuern ist einfacher…
  • Smart Home im Wohnzimmer mit Smartphone-App
    Smarte Lampen per App steuern – ohne Elektriker und…
    15. Juni 2026 Smarte Lampen lassen sich ohne Werkzeug und ohne Elektriker einrichten – alles läuft über die App. Smarte Lampen einbauen ist…
  • HomeKit Licht per iPhone steuern - Einfache Anleitung – iPhone mit Apple Home-App steuert HomeKit-kompatible Smart-Lampen von Philips Hue
    HomeKit Licht per iPhone steuern -…
    27. April 2026 Mit der iPhone Home-App steuerst du HomeKit-kompatible Lampen per Sprachbefehl oder Touch HomeKit Licht per iPhone steuern funktioniert nur mit…
  • Philips Hue ohne Bridge mit Home Assistant steuern – Philips Hue Lampen direkt mit Home Assistant SkyConnect verbunden ohne Bridge - Smart Home Setup
    Philips Hue ohne Bridge mit Home Assistant steuern —…
    7. April 2026 KI-generiert: Dieser Artikel und seine Abbildungen wurden von einem KI-System erstellt. Mehr dazu Philips Hue Lampen lassen sich direkt über…
  • Rolläden per App steuern als Mieter – Person auf der Couch steuert smarte Rolläden per Smartphone-App, Gurtwickler an der Wand montiert
    Rolläden per App steuern als Mieter – so geht's ohne…
    13. Juli 2026 Person auf der Couch steuert smarte Rolläden per Smartphone-App, Gurtwickler an der Wand montiert Als Mieter denkst du vielleicht, smarte…
  • Alexa Licht steuern ohne Elektriker - Einfache Anleitung – Alexa Smart Home Beleuchtung ohne Elektriker - Person steuert WLAN-Lampen per Sprachbefehl
    Alexa Licht steuern ohne Elektriker - Einfache…
    17. April 2026 Smart Home Beleuchtung einfach per Sprachbefehl steuern - ohne Elektriker und komplizierte Installation Alexa Licht steuern ohne Elektriker ist einfacher…
29. Dezember 2019/15 Kommentare/von Werner
Schlagworte: CCU2, CCU3, Homematic, Homematic IP, Jahreszeiten, piVCCU, RaspberryMatic, Skript
Eintrag teilen
  • Teilen auf Facebook
  • Teilen auf X
  • Teilen auf WhatsApp
  • Teilen auf Pinterest
  • Teilen auf LinkedIn
  • Per E-Mail teilen
https://technikkram.net/wp-content/uploads/2019/12/Jahreszeit-top-03.jpg 350 1000 Werner https://technikkram.net/wp-content/uploads/2019/05/technikkram_transparent.png Werner2019-12-29 08:00:002019-12-30 19:25:52Homematic – Erweiterung des Zeitmodules 02 – Berechnung der Jahreszeiten
15 Kommentare
  1. Rüdiger
    Rüdiger sagte:
    30. Juni 2021 um 19:00

    Hallo Werner,
    sehr hilfreiches Skript – vielen Dank dafür.
    Gruß Rüdiger

    Antworten
  2. Markus
    Markus sagte:
    21. August 2020 um 7:05

    Hat sich geklärt . . . . . Man sollte auch auf Groß- klein Schreibung achten :-)

    Antworten
  3. Markus
    Markus sagte:
    20. August 2020 um 18:43

    Hallo Werner,
    habe dein Script so in die RaspiMatic übernommen. Erhalte aber im Moment als Ausgabe Frühling statt Sommer.
    Finde den Fehler aber nicht? Woran könnte dies liegen.
    Vielen Dank Vorab
    Gruß
    Markus

    Antworten
  4. Christoph
    Christoph sagte:
    7. Mai 2020 um 15:59

    Hallo,

    ich suche sowas nur mit Sommerzeit.

    Also systemvariable „Sommerzeit“ = ist wahr

    Bin gerade dabei sowas selber zu machen, aber es klappt nicht, da ich nur zu 5% Programmieren kann.

    Gruß

    Antworten
  5. Klaus
    Klaus sagte:
    2. April 2020 um 22:14

    Hallo Werner,
    bin in der C-änlichen Programmierung der homematic unerfahren.
    Was bewirkt die „020“ am Ende in Zeile 17 der jeweiligen Skripts?
    Gruss
    Klaus

    Antworten
  6. Petr
    Petr sagte:
    4. Januar 2020 um 14:42

    Hi Werner,
    thanks a lot, it’s working both :-)

    I would like to ask, why the execution of the script in the HM program is delayed by 1 minute?

    Thanks Petr

    Antworten
    • Werner
      Werner sagte:
      4. Januar 2020 um 14:59

      Hello Petr,

      nice to hear that our blog is also read in the Czech Republic.
      Now to your question. The only reason for the delayed execution of the script is the fact that I have planned several programs/scripts at 00:05 a.m. and I would like to relieve the system a bit.
      Hope to have answered your question.

      greetings
      Werner

      Antworten
  7. Helmut Riethmeier
    Helmut Riethmeier sagte:
    29. Dezember 2019 um 14:39

    Hallo HomeMaticFreunde wenn ich den Script kopiere und einfüge und dann die Fehlerprüfung starte bekomme ich folgende Meldung:
    Error 1 at row 8 col 53 near ^;6.20) && (dom.GetObject(„Monat.Tag“).State()>3.19))
    { dom.GetObject(„J
    Parse following code failed:
    !
    ! *** Astronomische Jahreszeit berechnen
    !
    ! *** Monat und Tag ermitteln und an Systemvariable Monat.Tag uebergeben
    dom.GetObject(„Monat.Tag“).State( (0.01 * system.Date(„%d“).ToInteger()) + system.Date(„%m“).ToInteger());
    !
    ! *** Fruehling (astronomisch) 20. Maerz bis 19. Juni
    if ((dom.GetObject(„Monat.Tag“).State()<6.20) && (dom.GetObject(„Monat.Tag“).State()>3.19))
    { dom.GetObject(„Jahreszeit astronomisch“).State(0); }
    !
    ! *** Sommer (astronomisch) 20. Juni bis 21. September
    if ((dom.GetObject(„Monat.Tag“).State()<9.22) && (dom.GetObject(„Monat.Tag“).State()>6.20))
    { dom.GetObject(„Jahreszeit astronomisch“).State(1); }
    !
    ! *** Herbst (astronomisch) 22. September bis 20. Dezember
    if ((dom.GetObject(„Monat.Tag“).State()<12.21) && (dom.GetObject(„Monat.Tag“).State()>9.21))
    { dom.GetObject(„Jahreszeit astronomisch“).State(2); 020 }
    !
    ! *** Winter (astronomisch) 21. Dezember bis 19. Maerz
    if ((dom.GetObject(„Monat.Tag“).State()<3.20) || (dom.GetObject(„Monat.Tag“).State()>12.20))
    { dom.GetObject(„Jahreszeit astronomisch“).State(3); }

    Ich bedanke mich für deine Hilfe
    Gruß Helmut

    Antworten
    • Werner
      Werner sagte:
      29. Dezember 2019 um 16:55

      Hallo Helmut,

      ich habe gerade festgetellt, dass WordPress die Formatierung des Codes verändert. Im EDIT Modus wird der Code korrekt angezeigt. Wenn ich den Artikel mit einem Browser (unabhängig welcher) wird der Code verändert dargestellt. Du kannst das auch selbst im Artikel vergleichen.
      Im Screenshot des WebUI Programmes siehst du den korrekten code.

      Bin noch unterwegs und werde heute Abend versuchen das Problem zu beheben.

      Gruss
      Werner

      Antworten
    • Werner
      Werner sagte:
      29. Dezember 2019 um 17:41

      Hallo Helmut,

      der Code wird jetzt richtig formatiert angezeigt. Habe es getestet und es existiert kein Skript Fehler mehr.

      Gruss
      Werner

      Antworten
      • herby
        herby sagte:
        29. Dezember 2019 um 21:53

        Hallo Werner,
        der Fehler ist bei mir auch aufgetreten.
        Habe die Scripte neu eingefügt, dann sind sie auch ohne Fehler durchgelaufen.
        Nur zeigen beide Sys Variablen Frühling an, habe die Einstellungen im Zeitmodul mehrmals geändert.
        Sind auch zwei Programme für meteo und astro angelegt worden, es bleibt bei Frühling.
        mfg
        herby

        Antworten
        • Werner
          Werner sagte:
          29. Dezember 2019 um 22:57

          Hallo Herbert,

          mein erster Eindruck ist das die Namen der Sys Variablen nicht mit dem Namen im Skript übereinstimmen. Wenn du eine Sys Variable vom Typ Werteliste anlegst, steht automatisch nach dem Anlegen der erste Wert in der Sys Variablen.

          Wenn das nach dem Durchführen des Skriptes so bleibt, wird die angelegte Sys Variable nicht aktualisiert.

          Bitte mal die Namen überprüfen und evtl. via Mail ein paar Screenshots senden.

          Gruss
          Werner

          Antworten
          • herby
            herby sagte:
            8. Januar 2020 um 17:38

            Hallo Werner,
            kann man die LED-Kerzen für Advent auch als Notlicht benutzen, wenn der Strom ausfällt?
            Über eine Funkschaltsteckdose?
            Direkte Verknüpfung?
            Separates Relai, oder nicht möglich?
            Habe in den Foren nicht gefunden.
            mfg
            herby

        • Martin
          Martin sagte:
          12. August 2020 um 12:39

          Hallo Herby,
          ist das Problem mit dem Frühling bei Dir behoben ?

          Ich habe auch beide Sys Variablen:

          „Jahreszeit meteorologisch“
          „Jahreszeit astronomisch“

          angelegt und habe die Programme gerade Manuell an meiner CCU3 unter
          „Status und Bedienung“ gestartet. Es bleibt leider Frühling stehen ?
          Zusätzlich bleibt die Sys Variable „Monat,Tag“ auf 0.00 stehen ?

          Liebe Grüße

          Martin

          Antworten
          • herby
            herby sagte:
            12. August 2020 um 14:35

            Hallo Martin,
            bei mir läuft alles rund.
            Es lag an den Namen, die müssen im Programm und Variable gleich sein.
            Werner vom 29.12.19
            mfg
            herby

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

  •  
Smartkram Shop

Kategorien

Allgemein Apple Apps CCU2 CCU3 Charly debmatic EQ-3 Firmware Foto und Video Gadgets Gaming Geschenke Hardware Hausinstallation Haussicherheit HB-RF-USB Homematic Homematic IP Homematic IP Access Point Homematic IP wired iOS Kaufberatung KNX Media Center Mediola Mobile Multimedia Netzwerk Neuigkeiten Nützliches Online Services piVCCU piVCCU3 Provider Rabatte & Co Raspberrymatic Security Smart Home Software & Co Testberichte Tipps & Tricks Wearables Windows Zubehör
© Copyright - technikkram.net -
  • Link zu Facebook
  • Link zu X
  • Link zu Mail
  • Link zu Rss dieser Seite
Nach oben scrollen Nach oben scrollen Nach oben scrollen