- Home
- Deutsch
- Skripten / Logik
- JavaScript
- Skript für Sonnenwenden, Tagundnachtgleiche und Jahreszeiten
Skript für Sonnenwenden, Tagundnachtgleiche und Jahreszeiten
This topic has been deleted. Only users with topic management privileges can see it.
-
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
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); } } }