//18.10.2021 8:11 /* ------------------------------------------------- Verwendete Variable ----------------------------------------------- cronSekunde wird jede Sekunde aufgerufen cronMinute wird jede Minute aufgerufen cronUhrText wird alle 5 Minuten aufgerufen farbeMinuteAus Farbe LED-Minuten inaktive farbeMinuteAn Farbe LED-Minuten aktive farbeStundeAus Farbe Stunde Text inaktiv zb NEUN, Zehn farbeStundeAn Farbe Stunde Text aktiv farbeTextAus Farbe Text inaktiv zb. NACH, VOR farbeTextAn Farbe Text aktiv farbeEsIstAn Farbe Text ES IST aktiv farbeFuellText Farbe aller andernen Buchstaben dp Erster Teil des Datenpunktes wettersymbol Erster Teil zum Datenpunkt des Wettersymbol altStunde Vergleich mit aktueller Stunde minute aktuelle Minute stunde aktuelle Stunde minuteRest Ergebnis von minute mod 5; 0 = alle Led's aus, 1 = 1 Led, 2 = 1+2 Led, usw bis 4 ----------------------------------------------------- Funktionen ------------------------------------------------------------ initUhr Anzeige wird initialisiert saveSekunden Aktuelle Sekunde wird gespeichert showMinute Aktuelle Minute in Form von LED's anzeigen showText Aktuelle Uhrzeit als Text anzeigen clearMinuten alle 4 Led's werden inaktive gesetzt clearUhrText die komplette Schriftanzeige wird inaktive gesetzt ----------------------------------------------------------------------------------------------------------------------------- */ let cronSekunde = '* * * * * *'; let cronMinute = "*/1 * * * *"; let cronUhrText = "*/5 * * * *"; let farbeMinuteAus = '2e2e2e'; let farbeMinuteAn = 'green'; let farbeStundeAus = '#2e2e2e'; let farbeStundeAn = 'white'; let farbeTextAus = '#2e2e2e'; let farbeTextAn = 'cyan'; let farbeEsIstAn = 'cyan' let farbeFuellText = '#2e2e2e'; let dp = "0_userdata.0.vis.Uhr."; let wettersymbol = 'daswetter.0.NextHours.Location_1.Day_1.Hour_'; let altStunde = 0; let minute; let stunde; let minuteRest; initUhr(); saveSekunden(); showMinute(); showText(); async function initUhr() { clearMinuten(); clearUhrText(); setState(dp + 'Farbe.stundeAus' , farbeStundeAus); setState(dp + 'Farbe.stundeAn' , farbeStundeAn); setState(dp + 'Farbe.textAus' , farbeTextAus); setState(dp + 'Farbe.textAn' , farbeTextAn); setState(dp + 'Farbe.esIstAn' , farbeEsIstAn); setState(dp + 'Farbe.fuelltext' , farbeFuellText); }; async function saveSekunden() { setState(dp + 'Zeit.Sekunde', new Date().getSeconds()); }; async function showMinute() { minute = new Date().getMinutes(); minuteRest = minute % 5; if (minuteRest == 0) { clearMinuten(); } else if (minuteRest == 1) { setState(dp + 'Minuten.Minute_1', farbeMinuteAn); } else if (minuteRest == 2) { setState(dp + 'Minuten.Minute_1', farbeMinuteAn); setState(dp + 'Minuten.Minute_2', farbeMinuteAn); } else if (minuteRest == 3) { setState(dp + 'Minuten.Minute_1', farbeMinuteAn); setState(dp + 'Minuten.Minute_2', farbeMinuteAn); setState(dp + 'Minuten.Minute_3', farbeMinuteAn); } else if (minuteRest == 4) { setState(dp + 'Minuten.Minute_1', farbeMinuteAn); setState(dp + 'Minuten.Minute_2', farbeMinuteAn); setState(dp + 'Minuten.Minute_3', farbeMinuteAn); setState(dp + 'Minuten.Minute_4', farbeMinuteAn); }; }; async function showText() { minute = new Date().getMinutes(); stunde = new Date().getHours(); //dp zusammen setzten und aktuelles Wettersymbol holen und speichern if (stunde != altStunde) { setState('0_userdata.0.vis.Uhr.Wettersymbol', getState(wettersymbol + stunde + '.symbol_value'), true); altStunde = stunde; }; clearUhrText(); setState(dp + 'Text.Es_Ist', true, true); if (minute >= 5 && minute <= 9) { setState(dp + 'Text.fuenf_Minuten', true); setState(dp + 'Text.nach', true); } else if (minute >= 10 && minute <= 14) { setState(dp + 'Text.zehn_Minuten', true); setState(dp + 'Text.nach', true); } else if (minute >= 15 && minute <= 19) { setState(dp + 'Text.viertel', true); setState(dp + 'Text.nach', true); } else if (minute >= 20 && minute <= 24) { setState(dp + 'Text.zwanzig', true); setState(dp + 'Text.nach', true); } else if (minute >= 25 && minute <= 29) { setState(dp + 'Text.fuenf_Minuten', true); setState(dp + 'Text.vor', true); setState(dp + 'Text.halb', true); } else if (minute >= 30 && minute <= 34) { setState(dp + 'Text.halb', true); } else if (minute >= 35 && minute <= 39) { setState(dp + 'Text.fuenf_Minuten', true); setState(dp + 'Text.nach', true); setState(dp + 'Text.halb', true); } else if (minute >= 40 && minute <= 44) { setState(dp + 'Text.zwanzig', true); setState(dp + 'Text.vor', true); } else if (minute >= 45 && minute <= 49) { setState(dp + 'Text.viertel', true); setState(dp + 'Text.vor', true); } else if (minute >= 50 && minute <= 54) { setState(dp + 'Text.zehn_Minuten', true); setState(dp + 'Text.vor', true); } else if (minute >= 55 && minute <= 59) { setState(dp + 'Text.fuenf_Minuten', true); setState(dp + 'Text.vor', true); }; if (stunde > 12 && stunde < 24) { //Wenn Stunde > 12 und kleiner 24 ist stunde -= 12; //12 abziehen. Nur 12 Stunden anzeige }; if (minute > 24) { //Von 0 - 24 Text nach stunde stunde += 1; //Von 25 - 59 Text vor stunde }; if (minute >= 0 && minute <= 4) { //Ist Minute 0 - 4 dann stunde + uhr setState(dp + 'Text.uhr', true); }; if ((stunde == 1 || stunde == 13) && minute == 0) { //Uhr Texte Stunde erstellen Start setState(dp + 'Text.ein', true); } else if ((stunde == 1 || stunde == 13) && minute > 0) { setState(dp + 'Text.ein', true); setState(dp + 'Text.s', true); } else if (stunde == 2) { setState(dp + 'Text.zwei', true); } else if (stunde == 3) { setState(dp + 'Text.drei', true); } else if (stunde == 4) { setState(dp + 'Text.vier', true); } else if (stunde == 5) { setState(dp + 'Text.f', true); setState(dp + 'Text.fuenf_Stunde', true); } else if (stunde == 6) { setState(dp + 'Text.sechs', true); } else if (stunde == 7) { setState(dp + 'Text.sieben', true); } else if (stunde == 8) { setState(dp + 'Text.acht', true); } else if (stunde == 9) { setState(dp + 'Text.n', true); setState(dp + 'Text.neun', true); } else if (stunde == 10) { setState(dp + 'Text.zehn_Stunde', true); setState(dp + 'Text.n', true); } else if (stunde == 11) { setState(dp + 'Text.f', true); setState(dp + 'Text.elf', true); } else if (stunde == 12 || stunde == 0) { setState(dp + 'Text.zwoelf', true); //Uhr Texte Stunde erstellen Ende }; }; function clearMinuten() { let minutenSelector = $(dp + "Minuten.*"); minutenSelector.each(function(id, i) { setState(id, farbeMinuteAus); }); }; function clearUhrText() { let textSelector = $(dp + "Text.*"); textSelector.each(function(id, i) { setState(id, false); }); }; schedule(cronSekunde, function () {saveSekunden();}); schedule(cronMinute, function () {showMinute();}); schedule(cronUhrText, function () {showText();});