NEWS
Skript - Error Handling
-
@andreas-5 hast du mal nach dem cron 30 17 * * * gesucht?
da startet doch das Skript -
@paul53 sagte in Skript - Error Handling:
@andreas-5 sagte: bei der Suche nach Astro nur Sunrise und Sunset gefunden.
Dann wurde nicht richtig gesucht.
Na, im Scriptfenster oben auf die Lupe und dann den Suchtext eingeben, das war mein Versuch! Und mit "astro" wurde ja auch etwas gefunden, aber kein night oder nightEnd!
Ich habe ausschliesslich JS aktiv!Aber meine Ursprungsfrage war ja, wo ich noch suchen könnte!
Shuttercontrol habe ich nicht laufen.Hier auch die Liste der laufenden Adapter, vielleicht ist da je etwas dabei:
system.adapter.admin : admin - v5.3.8 system.adapter.alias-manager : alias-manager - v1.2.4 system.adapter.backitup : backitup - v2.4.9 system.adapter.discovery : discovery - v3.0.3 system.adapter.echarts : echarts - v1.0.7 system.adapter.email : email - v1.0.10 system.adapter.feiertage : feiertage - v1.1.0 system.adapter.firetv : firetv - v1.0.0 system.adapter.flot : flot - v1.10.7 system.adapter.heatingcontrol : heatingcontrol - v2.8.6 system.adapter.history : history - v1.11.1 system.adapter.hm-rega : hm-rega - v3.0.40 system.adapter.hm-rpc : hm-rpc - v1.15.12 system.adapter.icons-icons8 : icons-icons8 - v0.0.1 system.adapter.icons-mfd-svg : icons-mfd-svg - v1.1.0 system.adapter.icons-open-icon-library-png: icons-open-icon-library-png - v0.1.2 system.adapter.info : info - v1.9.19 system.adapter.javascript : javascript - v5.7.0 system.adapter.luftdaten : luftdaten - v2.2.4 system.adapter.meteoalarm : meteoalarm - v2.1.3 system.adapter.mqtt : mqtt - v3.0.6 system.adapter.net-tools : net-tools - v0.2.0 system.adapter.openweathermap : openweathermap - v0.2.4 system.adapter.pegelalarm : pegelalarm - v1.2.5 system.adapter.pi-hole : pi-hole - v1.3.4 system.adapter.radar2 : radar2 - v2.0.3 system.adapter.rpi2 : rpi2 - v1.3.2 system.adapter.samsung : samsung - v0.5.8 system.adapter.shelly : shelly - v5.3.2 system.adapter.socketio : socketio - v4.2.0 system.adapter.sql : sql - v1.16.2 system.adapter.squeezeboxrpc : squeezeboxrpc - v1.3.9 system.adapter.systeminfo : systeminfo - v0.3.1 system.adapter.tankerkoenig : tankerkoenig - v2.1.1 system.adapter.tr-064 : tr-064 - v4.2.16 system.adapter.vis : vis - v1.4.15 system.adapter.vis-bars : vis-bars - v0.1.4 system.adapter.vis-canvas-gauges : vis-canvas-gauges - v0.1.5 system.adapter.vis-hqwidgets : vis-hqwidgets - v1.2.0 system.adapter.vis-icontwo : vis-icontwo - v0.87.0 system.adapter.vis-inventwo : vis-inventwo - v3.3.1 system.adapter.vis-material-advanced : vis-material-advanced - v1.7.2 system.adapter.vis-players : vis-players - v0.1.6 system.adapter.vis-plumb : vis-plumb - v1.0.2 system.adapter.vis-timeandweather : vis-timeandweather - v1.1.7 system.adapter.vis-weather : vis-weather - v2.5.5 system.adapter.web : web - v4.3.0 system.adapter.whatsapp-cmb : whatsapp-cmb - v0.2.2
-
@andreas-5 sagte: Liste der laufenden Adapter, vielleicht ist da je etwas dabei
Das Log zeigt, dass es aus "javascript.0" kommt, genau um 17:30 Uhr.
-
@homoran sagte in Skript - Error Handling:
@andreas-5 hast du mal nach dem cron 30 17 * * * gesucht?
da startet doch das SkriptDie eine Stelle, ja, aber die letzten Meldungen sind jetzt:
javascript.0 2022-06-28 18:03:19.434 error Cannot get astro date for "night" javascript.0 2022-06-28 18:03:19.429 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:03:17.444 error Cannot get astro date for "night" javascript.0 2022-06-28 18:03:17.429 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:00:00.192 error Cannot get astro date for "night" javascript.0 2022-06-28 18:00:00.186 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:00:00.170 error Cannot get astro date for "night" javascript.0 2022-06-28 18:00:00.165 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:00:00.152 error Cannot get astro date for "night" javascript.0 2022-06-28 18:00:00.146 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:00:00.122 error Cannot get astro date for "night" javascript.0 2022-06-28 18:00:00.114 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:00:00.097 error Cannot get astro date for "night" javascript.0 2022-06-28 18:00:00.090 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:00:00.077 error Cannot get astro date for "night" javascript.0 2022-06-28 18:00:00.070 error Cannot get astro date for "nightEnd"
Zumindest die nächsten, die ich jetzt gesehen habe.
Kann ich irgendwie die alten Meldungen auch noch einmal herauskitzeln. Wenn ich die angesehen habe, sind sie aus dem Log verschwunden.
Muss ich dafür den Loglevel ändern?Edit: Ich habe alle Scripte noch einmal durchgeschaut, das sind nicht so viele. Ist mir bisher nichts unter gekommen.
-
@andreas-5 sagte in Skript - Error Handling:
Kann ich irgendwie die alten Meldungen auch noch einmal herauskitzeln.
herunterladen! im admin ist immer nur ein Ausschnitt zu sehen.
nimm current.log -
@andreas-5 sagte: alle Scripte noch einmal durchgeschaut
Anscheinend ist es ein Skript mit einem Schedule alle 30 Minuten.
-
@paul53 sagte:
Anscheinend ist es ein Skript mit einem Schedule alle 30 Minuten.
hatte ich auch gedacht, die 18:03 waren dann doch zu weit von einer halben Stunde entfernt
-
@homoran sagte: die 18:03 waren dann doch zu weit von einer halben Stunde entfernt
Das kann eine Verzögerung von ca. 3 Minuten innerhalb des Schedules sein.
-
@paul53 hatte ich auch im Blick, aber bei den anderen kam es nur Sekunden später nochmal
kann natürlich sein, dass @Andreas-5 nicht die kompletten logs gepostet hat
Vielleicht sieht er im Download das System des Auftretens besser
-
@homoran sagte in Skript - Error Handling:
@paul53 hatte ich auch im Blick, aber bei den anderen kam es nur Sekunden später nochmal
kann natürlich sein, dass @Andreas-5 nicht die kompletten logs gepostet hat
Vielleicht sieht er im Download das System des Auftretens besser
Ja, ein paar Erkenntnisse hat es mir gebracht, wenn auch noch nicht die richtigen zu meiner Frage.
Der Fehler tritt offensichtlich jede halbe und volle Stunde auf, was ich noch merkwürdiger finde, da ich (dummerweise!!!) einige Scripte laufen habe, die jede Minute ausgeführt werden. Das ändert sich dann auch gerade.
Aber erst einmal habe ich 3 Scripte abgeschaltet und bin gespannt, ob sich um 18:30 weniger Einträge finden.Aber zuerst einmal Beispielhaft ein Block von heute Morgen:
2022-06-28 07:30:00.008 - [32minfo[39m: javascript.0 (19112) script.js.Datentransfer.Zeiten_in_Datenpunkte_schreiben: Zeiten schreiben 2022-06-28 07:30:00.041 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "nightEnd" 2022-06-28 07:30:00.051 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "night" 2022-06-28 07:30:00.054 - [32minfo[39m: javascript.0 (19112) script.js.Datenerzeugung.Sonne_und_Mond: Astro: Gültige Zeiten: [aktueller Tag: 6] | [nächster Tag: 6] | [Aktualisiert: 2] | Aktuelle Tageszeit: später Vormittag | Kommende Tageszeit: Mittag 2022-06-28 07:30:00.074 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "nightEnd" 2022-06-28 07:30:00.082 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "night" 2022-06-28 07:30:00.085 - [32minfo[39m: javascript.0 (19112) script.js.Überwachung.Anwesenheit: Astro: Gültige Zeiten: [aktueller Tag: 6] | [nächster Tag: 6] | [Aktualisiert: 2] | Aktuelle Tageszeit: später Vormittag | Kommende Tageszeit: Mittag 2022-06-28 07:30:00.102 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "nightEnd" 2022-06-28 07:30:00.111 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "night" 2022-06-28 07:30:00.114 - [32minfo[39m: javascript.0 (19112) script.js.Datentransfer.Zeiten_in_Datenpunkte_schreiben: Astro: Gültige Zeiten: [aktueller Tag: 6] | [nächster Tag: 6] | [Aktualisiert: 2] | Aktuelle Tageszeit: später Vormittag | Kommende Tageszeit: Mittag 2022-06-28 07:30:00.125 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "nightEnd" 2022-06-28 07:30:00.129 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "night" 2022-06-28 07:30:00.131 - [32minfo[39m: javascript.0 (19112) script.js.Steuerung.Dachluke_und_Heizung: Astro: Gültige Zeiten: [aktueller Tag: 6] | [nächster Tag: 6] | [Aktualisiert: 2] | Aktuelle Tageszeit: später Vormittag | Kommende Tageszeit: Mittag 2022-06-28 07:30:00.133 - [32minfo[39m: host.galadriel instance system.adapter.pegelalarm.0 started with pid 2944 2022-06-28 07:30:00.146 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "nightEnd" 2022-06-28 07:30:00.153 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "night" 2022-06-28 07:30:00.155 - [32minfo[39m: javascript.0 (19112) script.js.Steuerung.Licht: Astro: Gültige Zeiten: [aktueller Tag: 6] | [nächster Tag: 6] | [Aktualisiert: 2] | Aktuelle Tageszeit: später Vormittag | Kommende Tageszeit: Mittag 2022-06-28 07:30:00.169 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "nightEnd" 2022-06-28 07:30:00.175 - [31merror[39m: javascript.0 (19112) Cannot get astro date for "night" 2022-06-28 07:30:00.177 - [32minfo[39m: javascript.0 (19112) script.js.Überwachung.Zustandsprüfung: Astro: Gültige Zeiten: [aktueller Tag: 6] | [nächster Tag: 6] | [Aktualisiert: 2] | Aktuelle Tageszeit: später Vormittag | Kommende Tageszeit: Mittag
Oh, das sieht nach dem Kopieren nicht mehr so schön aus, aber ist ja lesbar.
Also das Script Sonne_und_Mond z.B. schreibt mir die Werte Azimuth und Elevation und nutzt dazu die Funktion Date(), für aktuelles Datum und Uhrzeit. Wieso steht da etwas von Astro?Noch besser das Script Anwesenheit, das schaut nur auf dem tr-064, ob einer von uns Anwesend ist und schreibt das in einen Datenpunkt, damit ich nicht immer alle tr-064-Datenpunkte abfragen muss, reicht ja, wenn einer Anwesend ist. Da ist kein Zugriff auf irgendeine Zeit drin.
Naja, 18:30 ist vorbei, schaun wir einmal:
javascript.0 2022-06-28 18:30:00.067 info script.js.Überwachung.Zustandsprüfung: Astro: Gültige Zeiten: [aktueller Tag: 5] | [nächster Tag: 7] | [Aktualisiert: 2] | Aktuelle Tageszeit: Mittag | Kommende Tageszeit: früher Abend javascript.0 2022-06-28 18:30:00.065 error Cannot get astro date for "night" javascript.0 2022-06-28 18:30:00.059 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:30:00.048 info script.js.Steuerung.Licht: Astro: Gültige Zeiten: [aktueller Tag: 5] | [nächster Tag: 7] | [Aktualisiert: 2] | Aktuelle Tageszeit: Mittag | Kommende Tageszeit: früher Abend javascript.0 2022-06-28 18:30:00.046 error Cannot get astro date for "night" javascript.0 2022-06-28 18:30:00.040 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:30:00.027 info script.js.Steuerung.Dachluke_und_Heizung: Astro: Gültige Zeiten: [aktueller Tag: 5] | [nächster Tag: 7] | [Aktualisiert: 2] | Aktuelle Tageszeit: Mittag | Kommende Tageszeit: früher Abend javascript.0 2022-06-28 18:30:00.025 error Cannot get astro date for "night" javascript.0 2022-06-28 18:30:00.019 error Cannot get astro date for "nightEnd" javascript.0 2022-06-28 18:25:22.911 info Stop script script.js.Überwachung.Anwesenheit javascript.0 2022-06-28 18:24:51.493 info Stop script script.js.Datentransfer.Zeiten_in_Datenpunkte_schreiben javascript.0 2022-06-28 18:24:32.613 info Stop script script.js.Datenerzeugung.Sonne_und_Mond
Sind weniger geworden, allso kommt es tatsächlich aus den Scripten.
Also hier noch einmal ein Beispiel Zeiten_in_Datenpunkte_schreiben:schedule("* * * * *", async function () { console.log('Zeiten schreiben'); setState("0_userdata.0.Sunset"/*Sunset*/, formatDate(getAstroDate("sunset", undefined, 1), "TT.MM.JJJJ SS:mm:ss"), true); setState("0_userdata.0.Sunrise"/*Sunrise*/, formatDate(getAstroDate("sunrise", undefined, 1), "TT.MM.JJJJ SS:mm:ss"), true); });
Wenn dieses Script Schuld ist, müsste es dann nicht jede Minute auftreten?
-
@andreas-5 dann such doch mal nach schedule */30 * * * * oder schedule 0,30 * * * *
am besten nur den Anfangschedule("*/30
-
@andreas-5
Schau mal in folgende Skripte:- Steuerung.Dachluke_und_Heizung
- Steuerung.Licht
- Überwachung.Zustandsprüfung
Irgendwo muss das herkommen:
Astro: Gültige Zeiten: [aktueller Tag: 5] | [nächster Tag: 7] | [Aktualisiert: 2] | Aktuelle Tageszeit: Mittag | Kommende Tageszeit: früher Abend
wobei die letzten beiden Zeiten Astrozeiten sind.
Hast Du ein Skript unter der Gruppe "global" laufen (Expertenmodus aktivieren)?
-
@paul53 sagte in Skript - Error Handling:
@andreas-5
Schau mal in folgende Skripte:- Steuerung.Dachluke_und_Heizung
schedule("* * * * *"
Prüft gewisse Bedingungen und schliesst dann ggfs. die Dachluke, auch nichts mit Astro.
- Steuerung.Licht
schedule("* * * * *"
Macht aber nur zu gewissen, teilweise wechselnden, Zeiten etwas, die eben früher teilweise von SS und SR abhängig waren, aber inzwischen umgestellt auf den inzwischen vorhandenen Helligkeitssensor. (z.B. Haustürlicht, Terassenlicht)
- Überwachung.Zustandsprüfung
schedule("* * * * *"
Hast Du ein Skript unter der Gruppe "global" laufen (Expertenmodus aktivieren)?
Unter global gibt es nur das Astro-Script. - Steuerung.Dachluke_und_Heizung
-
@andreas-5 sagte: Unter global gibt es nur das Astro-Script.
Wie sieht das Skript aus?
-
@paul53 sagte in:
Irgendwo muss das herkommen:
das sieht etwas nach dem Tageszeiten Skript aus.
Das habe ich auch in Verdacht. Da kommt ja auch irgendwann die Nacht, wenn das nicht je nach geographischer Lage abgefangen wird -
@homoran sagte: das sieht etwas nach dem Tageszeiten Skript aus.
Ja, und zwar nach dem ursprünglichen, wenn um 18:30 Uhr noch Mittag ist und der Fehler mit "night" noch enthalten ist.
-
@paul53 https://forum.iobroker.net/post/275289
wenn ich das hier richtig deute wird die Existenz der Nacht im ersten Spoiler geprüft
-
@homoran sagte: wird die Existenz der Nacht im ersten Spoiler geprüft
Das ist schon das modifizierte Skript, das auch Vor- und Nachmittag kennt. Da es aber noch Schedule auf "night" enthält, erzeugt es Warnungen.
Auf keinen Fall darf das Skript unter der Gruppe "global" laufen!!
Wenn es unter "global" läuft, erklärt es, warum die Error-Meldungen 6 mal hintereinander erscheinen. -
@paul53 sagte in Skript - Error Handling:
@andreas-5 sagte: Unter global gibt es nur das Astro-Script.
Wie sieht das Skript aus?
/* * @copyright 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln> * * @author 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln> * * Dieses Skript dient zur freien Verwendung in ioBroker zur Verbrauchserfassung der Shelly Geräte. * Jegliche Verantwortung liegt beim Benutzer. Das Skript wurde unter Berücksichtigung der bestmöglichen Nutzung * und Performance entwickelt. * Der Entwickler versichert, das keine böswilligen Systemeingriffe im originalen Skript vorhanden sind. * * Sollte das Skript wider Erwarten nicht korrekt funktionieren, so hast Du jederzeit die Möglichkeit, Dich auf * https://www.kreyenborg.koeln * für Unterstützung zu melden. Jedes Skript besitzt seine eigene Kommentarseite, auf der, * nach zeitlicher Möglichkeit des Autors, Hilfe angeboten wird. Ein Anrecht hierauf besteht nicht! * * Ansprüche gegenüber Dritten bestehen nicht. * * Skript Name: Astro-Zeiten * Skript Version: 1.21 * Erstell-Datum: 13. Mai 2021 * */ // Datenpunkte neu erstellen var ueberschreiben = false; // Hauptdatenpunkt unterhalb javascript var datenpunkt = "Astro."; // Lesbare Zeiten var lesbare_zeiten = ["Früher Morgen", "Frühe Dämmerung", "Morgendämmerung", "Sonnenaufgang", "Vormittag", "später Vormittag", "Mittag", "früher Abend", "Abend", "Sonnenuntergang", "Abenddämmerung", "später Abend", "Nacht", "Mitternacht"]; // Objekte der Astro Zeiten var objekt = ["nightEnd", "nauticalDawn", "dawn", "sunrise", "sunriseEnd", "goldenHourEnd", "solarNoon", "goldenHour", "sunsetStart", "sunset", "dusk", "nauticalDusk", "night", "nadir", "tageszeitAstro", "naechsteTageszeitAstro", "tageszeitLesbar", "naechsteTageszeitLesbar", "aktuelleAstroZeit", "Tag", "sunriseUnix", "sunsetUnix"]; // Zustände der Astro-Zeiten var beschreibung = ["00 - Ende der Nacht", "01 - nautische Morgendämmerung", "02 - Morgendämmerung", "03 - Sonnenaufgang", "04 - Ende des Sonnenaufgangs", "05 - Ende der goldenen Stunde VM", "06 - Mittag", "07 - goldene Abendstunde", "08 - Start des Sonnenuntergangs", "09 - Sonnenuntergang", "10 - Dämmerung Abends", "11 - nautische Dämmerung abends", "12 - Start der Nacht", "13 - Mitternacht", "Aktuelle Tageszeit (Astro)", "Nächste Tageszeit (Astro)", "Aktuelle Tageszeit (lesbar)", "Nächste Tageszeit (lesbar)", "aktuelle Astrozeit", "Solange die Sonne scheint, ist Tag", "Sunrise Unix Zeitstempel", "Sunset Unix Zeitstempel"]; // Erstelle die benötigten Datenpunkte function datenpunkte_erstellen() { for (var i = 0; i < objekt.length; i++) { createState(datenpunkt + objekt[i], "", ueberschreiben, { name: beschreibung[i], desc: beschreibung[i], type: "string", role: "value", unit: "" }); } log("Astro: Datenpunkte erstellt!"); } // Datenpunkte mit erstem Inhalt füllen function datenpunkte_fuellen() { for (var i = 0; i < objekt.length - 8; i++) { var datum = new Date(); try { var astro_zeit = zeit_formatieren(getAstroDate(objekt[i], datum)); } catch (e) { // Fehler Kontrolle } if (astro_zeit == "Invalid Date") { astro_zeit = "00:00"; } setState(datenpunkt + objekt[i], astro_zeit); } log("Astro: Erste Datenpunkte gefüllt!"); } // Haupt-Skript function update_astro_zeiten() { var datum = new Date(); var uhrzeit = zeit_formatieren(datum); // Zustand der Daten var aktuell = 0; var aktualisiert = 0; var keine_aktualisierung = 0; var astro_index = 0; // Aktuellen Tagesabschnitt bestimmen var ergebnis = -1; var naechste_element = false; // Aktuelle & kommende Tageszeit var aktuelle_tageszeit = 0; var kommende_tageszeit = 0; // Tag var astroTag = "Nacht"; for (var i = 0; i < objekt.length - 8; i++) { // Temporäre Zahl var tmp_ergebnis = 0; // Hole Uhrzeit aus aktuellem Datenpunkt var dp_zeit = getState(datenpunkt + objekt[i]).val; // Hole Index aktuelle Tageszeit var tmp_time_uhr = Date.parse('1970-01-01 ' + uhrzeit + ':00'); var tmp_time_dp = Date.parse('1970-01-01 ' + dp_zeit + ':00'); // Aktuelle Zeit ist kleiner als DP if (tmp_time_uhr < tmp_time_dp) { tmp_ergebnis = tmp_time_dp - tmp_time_uhr; if (tmp_ergebnis <= ergebnis || ergebnis == -1) { ergebnis = tmp_ergebnis; astro_index = i; naechste_element = true; } // Aktuelle Zeit ist größer als DP } else { tmp_ergebnis = tmp_time_uhr - tmp_time_dp; if (tmp_ergebnis <= ergebnis || ergebnis == -1) { ergebnis = tmp_ergebnis; astro_index = i; naechste_element = false; } } // Datenpunkt ist kleiner als aktuelle Uhrzeit. Update! if (dp_zeit < uhrzeit) { // Neue Astro-Zeit für den nächsten Tag generieren let morgen = new Date(); morgen.setDate(morgen.getDate() + 1); try { var astro_zeit = zeit_formatieren(getAstroDate(objekt[i], morgen)); } catch (e) { // Fehler Kontrolle } // Datenpunkt und Astro Zeit sind gleich. Kein Update! if (dp_zeit == astro_zeit) { keine_aktualisierung++; } else { if (astro_zeit == "Invalid Date") { astro_zeit = "00:00"; } setState(datenpunkt + objekt[i], astro_zeit); aktualisiert++; } } else { // Zeit kommt noch! Kein Update! aktuell++; } } // Wenn wahr, ist der Abstand zum nächsten Zeitpunkt kleiner. Also -1 um aktuellen Index zu erhalten. if (naechste_element) { astro_index--; } // Navigiere zum richtigen Index if (astro_index > 12) { aktuelle_tageszeit = 13; kommende_tageszeit = 0; } else if (astro_index < 0) { aktuelle_tageszeit = 0; kommende_tageszeit = 1; } else { aktuelle_tageszeit = astro_index; kommende_tageszeit = astro_index + 1; } // Prüfe, ob aktuelle Uhrzeit zwischen Sonnenauf- und untergang liegt if (astro_index > 2 && astro_index < 10) { astroTag = "Tag"; } // Update aktuelle Tageszeit Astro (Text) setState(datenpunkt + objekt[14], text_formatieren(beschreibung[aktuelle_tageszeit])); // Update kommende Tageszeit Astro (Text) setState(datenpunkt + objekt[15], text_formatieren(beschreibung[kommende_tageszeit])); // Update aktuelle Tageszeit lesbar (Text) setState(datenpunkt + objekt[16], lesbare_zeiten[aktuelle_tageszeit]); // Update kommende Tageszeit lesbar (Text) setState(datenpunkt + objekt[17], lesbare_zeiten[kommende_tageszeit]); // Update aktuelle AstroZeit setState(datenpunkt + objekt[18], objekt[aktuelle_tageszeit]); // Setze die Variable "Tag" auf "Tag", wenn Uhrzeit zwischen Sonnenauf- und untergang setState(datenpunkt + objekt[19], astroTag); // Setze die Variable Sunrise Unix let tmp_morgen = new Date(); tmp_morgen.setDate(tmp_morgen.getDate() + 1); let unix_sunrise = getAstroDate("sunrise", tmp_morgen).getTime() * 1000; setState(datenpunkt + objekt[20], unix_sunrise.toString()); // Setze die Variable Sunset Unix let unix_sunset = getAstroDate("sunset", tmp_morgen).getTime() * 1000; setState(datenpunkt + objekt[21], unix_sunset.toString()); var ausgabe = "Astro: Gültige Zeiten: [aktueller Tag: " + aktuell + "] | [nächster Tag: " + keine_aktualisierung + "] | [Aktualisiert: " + aktualisiert + "] | Aktuelle Tageszeit: " + lesbare_zeiten[aktuelle_tageszeit] + " | Kommende Tageszeit: " + lesbare_zeiten[kommende_tageszeit]; log(ausgabe); } // Funktion, um die Zeit in HH:MM zu formatieren function zeit_formatieren(zeit) { return zeit.toLocaleTimeString('de-DE', { hour12: false, hour: '2-digit', minute: '2-digit' }); } // Funktion, um den Text zu formatieren. "Mittag" statt "6 - Mittag" function text_formatieren(text) { text = text.split("-")[1]; text = text.substr(1, text.length); return text; } // Erster Start des Skripts und anlegen der Datenpunkte function update_astro_zeiten_erster_start() { log("Astro: Erster Start des Skriptes!") // Datenpunkte werden erstellt datenpunkte_erstellen(); // erstes Füllen der Datenpunkte um 3 Sek. verzögert setTimeout(datenpunkte_fuellen, 3000); // Das Update der Zeiten ist um 5 Sek. verzögert setTimeout(update_astro_zeiten, 5000); } // Erster Start und Initialisierung update_astro_zeiten_erster_start(); // Alle 60 Minunten das Hauptskript ausführen schedule('*/30 * * * *', update_astro_zeiten);
Warum ich das in global geschoben habe, weiß ich nicht mehr. Ich würde davon ausgehen, dass ich das irgendwo gelesen habe.
Aber das war schon zu meinen ioBroker-Anfangszeiten, ...Ich habe es jetzt in common verschoben, mal sehen, was passiert.
-
@andreas-5 sagte: in common verschoben, mal sehen, was passiert.
Die Error-Logs werden nur noch einmal alle 30 Minuten erfolgen, denn es enthält "night" und "nightEnd".
Das Skript kannte ich noch nicht.