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 - Error Handling

    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 - Error Handling

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @Andreios last edited by

      @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

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Andreios last edited by

        @andreas-5 sagte: alle Scripte noch einmal durchgeschaut

        Anscheinend ist es ein Skript mit einem Schedule alle 30 Minuten.

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @paul53 last edited by

          @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

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Homoran last edited by paul53

            @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.

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @paul53 last edited by

              @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

              Andreios 1 Reply Last reply Reply Quote 0
              • Andreios
                Andreios Forum Testing @Homoran last edited by

                @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  - info: javascript.0 (19112) script.js.Datentransfer.Zeiten_in_Datenpunkte_schreiben: Zeiten schreiben
                2022-06-28 07:30:00.041  - error: javascript.0 (19112) Cannot get astro date for "nightEnd"
                2022-06-28 07:30:00.051  - error: javascript.0 (19112) Cannot get astro date for "night"
                2022-06-28 07:30:00.054  - info: 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  - error: javascript.0 (19112) Cannot get astro date for "nightEnd"
                2022-06-28 07:30:00.082  - error: javascript.0 (19112) Cannot get astro date for "night"
                2022-06-28 07:30:00.085  - info: 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  - error: javascript.0 (19112) Cannot get astro date for "nightEnd"
                2022-06-28 07:30:00.111  - error: javascript.0 (19112) Cannot get astro date for "night"
                2022-06-28 07:30:00.114  - info: 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  - error: javascript.0 (19112) Cannot get astro date for "nightEnd"
                2022-06-28 07:30:00.129  - error: javascript.0 (19112) Cannot get astro date for "night"
                2022-06-28 07:30:00.131  - info: 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  - info: host.galadriel instance system.adapter.pegelalarm.0 started with pid 2944
                2022-06-28 07:30:00.146  - error: javascript.0 (19112) Cannot get astro date for "nightEnd"
                2022-06-28 07:30:00.153  - error: javascript.0 (19112) Cannot get astro date for "night"
                2022-06-28 07:30:00.155  - info: 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  - error: javascript.0 (19112) Cannot get astro date for "nightEnd"
                2022-06-28 07:30:00.175  - error: javascript.0 (19112) Cannot get astro date for "night"
                2022-06-28 07:30:00.177  - info: 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?

                Homoran paul53 2 Replies Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Andreios last edited by

                  @andreas-5 dann such doch mal nach schedule */30 * * * * oder schedule 0,30 * * * *
                  am besten nur den Anfang schedule("*/30

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Andreios last edited by paul53

                    @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)?

                    Andreios Homoran 2 Replies Last reply Reply Quote 0
                    • Andreios
                      Andreios Forum Testing @paul53 last edited by

                      @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.

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Andreios last edited by

                        @andreas-5 sagte: Unter global gibt es nur das Astro-Script.

                        Wie sieht das Skript aus?

                        Andreios 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @paul53 last edited by

                          @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

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Homoran last edited by

                            @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.

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @paul53 last edited by Homoran

                              @paul53 https://forum.iobroker.net/post/275289

                              wenn ich das hier richtig deute wird die Existenz der Nacht im ersten Spoiler geprüft

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @Homoran last edited by paul53

                                @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.

                                1 Reply Last reply Reply Quote 0
                                • Andreios
                                  Andreios Forum Testing @paul53 last edited by

                                  @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.

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @Andreios last edited by

                                    @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.

                                    Andreios 1 Reply Last reply Reply Quote 0
                                    • Andreios
                                      Andreios Forum Testing @paul53 last edited by

                                      @paul53 sagte in Skript - Error Handling:

                                      @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.

                                      Genau, die kommen also, wie bisher auch, alle 30 Minuten!
                                      Und jetzt habe ich es überhaupt erst kapiert, dass es das Script selber ist. Das war das einzige Script, was ich mir noch nicht angesehen hatte, halt weil es auch noch versteckt war, da ich den Expertenmodus bisher fast nie genutzt habe. Auch gestern habe ich es nur "blind" rüber kopiert.
                                      Wie schon gesagt, hatte ich mir das ganz zu Anfang gesucht und ich war immer davon ausgegangen, dass das bei Bedarf von den anderen Scripten aufgerufen wird, habe aber nicht wirklich darüber nachgedacht, dass da ja nur Datenpunkte genutzt werden. Das schedue am Ende war mir nicht bewusst.

                                      Nun werde ich mir das Script in Ruhe ansehen und erst einmal alles auskommentieren, was nicht mit SR und SS zu tun hat. Bleibt wahrscheinlich nicht viel übrig.

                                      Danke Euch für die Unterstützung und ich folgere aus dem Ganzen, dass ich mich viel öfter und intensiver mit dem ioBroker beschäftigen muss!

                                      Homoran 1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @Andreios last edited by

                                        @andreas-5 sagte in Skript - Error Handling:

                                        ich war immer davon ausgegangen, dass das bei Bedarf von den anderen Scripten aufgerufen wird

                                        globale Skripte werden vor jedem Skript ausgeführt, nich bei "Bedarf" aufgerufen

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        866
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

                                        6
                                        42
                                        1792
                                        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