Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    229

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    222

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    896

Skript für Sonnenwenden, Tagundnachtgleiche und Jahreszeiten

Scheduled Pinned Locked Moved JavaScript
1 Posts 1 Posters 350 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    stenmic
    wrote on last edited by 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 Reply Last reply
    3

    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

    With your input, this post could be even better 💗

    Register Login
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    Support us

    ioBroker
    Community Adapters
    Donate

    628

    Online

    32.8k

    Users

    82.8k

    Topics

    1.3m

    Posts
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Home
    • Recent
    • Tags
    • Unread 0
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe