Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Skript für Sonnenwenden, Tagundnachtgleiche und Jahreszeiten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Skript für Sonnenwenden, Tagundnachtgleiche und Jahreszeiten

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      stenmic last edited by stenmic

      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 Reply Quote 3
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      927
      Online

      31.7k
      Users

      79.9k
      Topics

      1.3m
      Posts

      1
      1
      164
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo