Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Skript für Sonnenwenden, Tagundnachtgleiche und Jahreszeiten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    936

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Skript für Sonnenwenden, Tagundnachtgleiche und Jahreszeiten

Geplant Angeheftet Gesperrt Verschoben JavaScript
1 Beiträge 1 Kommentatoren 314 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    stenmic
    schrieb am zuletzt editiert von stenmic
    #1

    Ich konnte keine Fuktion in Blockly dafür finden, deshalb dieses Skript.
    Was kann es...

    • Datum der Sonnenwenden und Tagundnachtgleiche anzeigen
    • Tage bis zum nächsten Ereignis anzeigen
    • Astronomische Jahreszeiten anzeigen
    • Kalendarische Jahreszeiten anzeigen

    2024-11-20 17 35 20.jpg

    2024-11-20 17 36 07.jpg

    Alles nicht selbst erfunden sonder von hier (excel) übernommen.

    https://www.herber.de/forum/archiv/1104to1108/1105081_Formel_fuer_Jahreszeitenberechnung.html

    Der Pfad kann am Anfang gewählt werden.
    Das Skript initalisiert sich beim Start und dann jeden Tag um 0:0 und 30 Sekunden.

    // #########################################
    var PFAD = '0_userdata.0.Sonnenwenden';
    // #########################################
    
    if ( !existsState(''+PFAD+'.01_Fruehlings-Tagundnachtgleiche')) {
     createState(''+PFAD+'.01_Fruehlings-Tagundnachtgleiche','Datum',{name: '01_Fruehlings-Tagundnachtgleiche',role: 'value',type: 'string'});
     createState(''+PFAD+'.02_Sommersonnenwende','Datum',{name: '02_Sommersonnenwende',role: 'value',type: 'string'});
     createState(''+PFAD+'.03_Herbst-Tagundnachtgleiche','Datum',{name: '03_Herbst-Tagundnachtgleiche',role: 'value',type: 'string'});
     createState(''+PFAD+'.04_Wintersonnenwende','Datum',{name: '04_Wintersonnenwende',role: 'value',type: 'string'});
     createState(''+PFAD+'.Astronomische_Jahreszeiten','Datum',{name: 'Astronomische_Jahreszeiten',role: 'value',type: 'string'});
     createState(''+PFAD+'.Kalendarische_Jahreszeiten','Datum',{name: 'Kalendarische_Jahreszeiten',role: 'value',type: 'string'});
     createState(''+PFAD+'.naechstes_Ereignis','naechstes_Ereignis',{name: 'Sonnenwende',role: 'value',type: 'string'});
     await wait(2000);
    }
    
    // #########################################
    // Check um 0:0:30
    // #########################################
    schedule("30 0 0 * * *", async () => {
    await Berechnung();
    });
    
    await Berechnung();
    
    async function Berechnung() {
     var Jahr = parseFloat(formatDate(new Date(), 'JJJJ'));
     var HeuteNullUhr = Math.floor(((new Date().getTime()) + 7200000) / 86400000) * 86400000;
     var FruehlingsTagundnachtgleiche = Math.floor(((36605.319 + (Jahr - 2000) * 365.24 + 1 / 24) * 86400000 - 2209165245600) / 86400000) * 86400000 + 43200000;
     var Sommersonnenwende = Math.floor(((36605.319 + (Jahr - 2000) * 365.24 + 92.76 + 2 / 24 + Math.floor((Jahr - 2000) / 12) * 0.01) * 86400000 - 2209165245600) / 86400000) * 86400000 + 43200000;
     var HerbstTagundnachtgleiche = Math.floor(((36605.319 + (Jahr - 2000) * 365.24 + 186.41 + 2 / 24 + Math.floor((Jahr - 2000) / 12) * 0.02) * 86400000 - 2209165245600) / 86400000) * 86400000 + 43200000;
     var Wintersonnenwende = Math.floor(((36605.319 + (Jahr - 2000) * 365.24 + 276.26 + 1 / 24 + Math.floor((Jahr - 2000) / 12) * 0.02) * 86400000 - 2209165245600) / 86400000) * 86400000 + 43200000;
     var FruehlingsTagundnachtgleicheNextYear = Math.floor(((36605.319 + ((Jahr + 1) - 2000) * 365.24 + 1 / 24) * 86400000 - 2209165245600) / 86400000) * 86400000 + 43200000;
     if (getState(''+PFAD+'.01_Fruehlings-Tagundnachtgleiche').val != formatDate(getDateObject(FruehlingsTagundnachtgleiche), 'T.M.JJJJ')) {
       setState(''+PFAD+'.01_Fruehlings-Tagundnachtgleiche', formatDate(getDateObject(FruehlingsTagundnachtgleiche), 'T.M.JJJJ'), true);
     }
     if (getState(''+PFAD+'.02_Sommersonnenwende').val != formatDate(getDateObject(Sommersonnenwende), 'T.M.JJJJ')) {
       setState(''+PFAD+'.02_Sommersonnenwende', formatDate(getDateObject(Sommersonnenwende), 'T.M.JJJJ'), true);
     }
     if (getState(''+PFAD+'.03_Herbst-Tagundnachtgleiche').val != formatDate(getDateObject(HerbstTagundnachtgleiche), 'T.M.JJJJ')) {
       setState(''+PFAD+'.03_Herbst-Tagundnachtgleiche', formatDate(getDateObject(HerbstTagundnachtgleiche), 'T.M.JJJJ'), true);
     }
     if (getState(''+PFAD+'.04_Wintersonnenwende').val != formatDate(getDateObject(Wintersonnenwende), 'T.M.JJJJ')) {
       setState(''+PFAD+'.04_Wintersonnenwende', formatDate(getDateObject(Wintersonnenwende), 'T.M.JJJJ'), true);
     }
     if (Math.floor((FruehlingsTagundnachtgleiche - HeuteNullUhr) / 86400000) > 1) {
       setState(''+PFAD+'.naechstes_Ereignis', (['Die nächste Tag/Nacht Gleichheit ist in ',Math.floor((FruehlingsTagundnachtgleiche - HeuteNullUhr) / 86400000),' Tagen, am ',formatDate(getDateObject(FruehlingsTagundnachtgleiche), 'T.M.JJJJ')].join('')), true);
       if (getState(''+PFAD+'.Astronomische_Jahreszeiten').val != 'Winter') {
         setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Winter', true);
       }
     } else if (Math.floor((FruehlingsTagundnachtgleiche - HeuteNullUhr) / 86400000) == 1) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Die nächste Tag/Nacht Gleichheit ist Morgen', true);
     } else if (Math.floor((FruehlingsTagundnachtgleiche - HeuteNullUhr) / 86400000) == 0) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Heute ist Tag/Nacht Gleichheit', true);
       setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Heute ist Frühlingsanfang', true);
     } else if (Math.floor((Sommersonnenwende - HeuteNullUhr) / 86400000) > 1) {
       setState(''+PFAD+'.naechstes_Ereignis', (['Die nächste Sonnenwende ist in ',Math.floor((Sommersonnenwende - HeuteNullUhr) / 86400000),' Tagen, am ',formatDate(getDateObject(Sommersonnenwende), 'T.M.JJJJ')].join('')), true);
       if (getState(''+PFAD+'.Astronomische_Jahreszeiten').val != 'Frühling') {
         setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Frühling', true);
       }
     } else if (Math.floor((Sommersonnenwende - HeuteNullUhr) / 86400000) == 1) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Die nächste Sonnenwende ist Morgen', true);
     } else if (Math.floor((Sommersonnenwende - HeuteNullUhr) / 86400000) == 0) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Heute ist Sonnenwende ', true);
       setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Heute ist Sommeranfang', true);
     } else if (Math.floor((HerbstTagundnachtgleiche - HeuteNullUhr) / 86400000) > 1) {
       setState(''+PFAD+'.naechstes_Ereignis', (['Die nächste Tag/Nacht Gleichheit ist in ',Math.floor((HerbstTagundnachtgleiche - HeuteNullUhr) / 86400000),' Tagen, am ',formatDate(getDateObject(HerbstTagundnachtgleiche), 'T.M.JJJJ')].join('')), true);
       if (getState(''+PFAD+'.Astronomische_Jahreszeiten').val != 'Sommer') {
         setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Sommer', true);
       }
     } else if (Math.floor((HerbstTagundnachtgleiche - HeuteNullUhr) / 86400000) == 1) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Die nächste Tag/Nacht Gleichheit ist Morgen', true);
     } else if (Math.floor((HerbstTagundnachtgleiche - HeuteNullUhr) / 86400000) == 0) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Heute ist Tag/Nacht Gleichheit', true);
       setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Heute ist Herbstanfang', true);
     } else if (Math.floor((Wintersonnenwende - HeuteNullUhr) / 86400000) > 1) {
       setState(''+PFAD+'.naechstes_Ereignis', (['Die nächste Sonnenwende ist in ',Math.floor((Wintersonnenwende - HeuteNullUhr) / 86400000),' Tagen, am ',formatDate(getDateObject(Wintersonnenwende), 'T.M.JJJJ')].join('')), true);
       if (getState(''+PFAD+'.Astronomische_Jahreszeiten').val != 'Herbst') {
         setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Herbst', true);
       }
     } else if (Math.floor((Wintersonnenwende - HeuteNullUhr) / 86400000) == 1) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Die nächste Sonnenwende ist Morgen', true);
     } else if (Math.floor((Wintersonnenwende - HeuteNullUhr) / 86400000) == 0) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Heute ist Sonnenwende ', true);
       setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Heute ist Winteranfang', true);
     } else if (Math.floor((FruehlingsTagundnachtgleicheNextYear - HeuteNullUhr) / 86400000) > 1) {
       setState(''+PFAD+'.naechstes_Ereignis', (['Die nächste Tag/Nacht Gleichheit ist in ',Math.floor((FruehlingsTagundnachtgleicheNextYear - HeuteNullUhr) / 86400000),' Tagen, am ',formatDate(getDateObject(FruehlingsTagundnachtgleicheNextYear), 'T.M.JJJJ')].join('')), true);
       if (getState(''+PFAD+'.Astronomische_Jahreszeiten').val != 'Winter') {
         setState(''+PFAD+'.Astronomische_Jahreszeiten', 'Winter', true);
       }
     } else if (Math.floor((FruehlingsTagundnachtgleicheNextYear - HeuteNullUhr) / 86400000) == 1) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Die nächste Tag/Nacht Gleichheit ist Morgen', true);
     } else if (Math.floor((FruehlingsTagundnachtgleicheNextYear - HeuteNullUhr) / 86400000) == 0) {
       setState(''+PFAD+'.naechstes_Ereignis', 'Heute ist Tag/Nacht Gleichheit', true);
     }
     if (3 <= parseFloat(formatDate(new Date(), 'M')) && parseFloat(formatDate(new Date(), 'M')) < 6) {
       if (getState(''+PFAD+'.Kalendarische_Jahreszeiten').val != 'Frühling') {
         setState(''+PFAD+'.Kalendarische_Jahreszeiten', 'Frühling', true);
       }
     } else if (6 <= parseFloat(formatDate(new Date(), 'M')) && parseFloat(formatDate(new Date(), 'M')) < 9) {
       if (getState(''+PFAD+'.Kalendarische_Jahreszeiten').val != 'Sommer') {
         setState(''+PFAD+'.Kalendarische_Jahreszeiten', 'Sommer', true);
       }
     } else if (9 <= parseFloat(formatDate(new Date(), 'M')) && parseFloat(formatDate(new Date(), 'M')) < 12) {
       if (getState(''+PFAD+'.Kalendarische_Jahreszeiten').val != 'Herbst') {
         setState(''+PFAD+'.Kalendarische_Jahreszeiten', 'Herbst', true);
       }
     } else {
       if (getState(''+PFAD+'.Kalendarische_Jahreszeiten').val != 'Winter') {
         setState(''+PFAD+'.Kalendarische_Jahreszeiten', 'Winter', true);
       }
     }
    }
    

    1 Antwort Letzte Antwort
    3
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    511

    Online

    32.6k

    Benutzer

    82.2k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe