Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Skript - Error Handling

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    476

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Skript - Error Handling

Geplant Angeheftet Gesperrt Verschoben JavaScript
42 Beiträge 6 Kommentatoren 3.0k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AndreiosA Andreios

    @paul53 sagte in Skript - Error Handling:

    getAstroDate("night")

    Ich habe jetzt extra noch einmal in den Scripten nach getAstroDate, ohne die Klammer, gesucht und gefunden wurde ein einziges Script für SR und SS:

    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);
    
    });
    

    Aber ganz gut, dass ich da noch eimal vorbei geschaut habe! Das war eins meiner ersten Scripte und ist so einfach, dass ich es auch nicht mehr angeschaut habe. Aber jetzt stelle ich fest, ich habe das noch immer jede Minute laufen. :-( Das wird sich jetzt ändern!
    Das andere erwähnte Script hatte zwar astro im Text, war aber auch inaktiv und hat nur einen Datenpunkt genutzt.

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #21

    @andreas-5 hast du mal nach dem cron 30 17 * * * gesucht?
    da startet doch das Skript

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    AndreiosA 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @andreas-5 sagte: bei der Suche nach Astro nur Sunrise und Sunset gefunden.

      Dann wurde nicht richtig gesucht.

      AndreiosA Offline
      AndreiosA Offline
      Andreios
      Forum Testing
      schrieb am zuletzt editiert von
      #22

      @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
      
      

      Schöne Grüße
      Andreas

      ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

      Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

      paul53P 1 Antwort Letzte Antwort
      0
      • AndreiosA Andreios

        @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
        
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #23

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

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @andreas-5 hast du mal nach dem cron 30 17 * * * gesucht?
          da startet doch das Skript

          AndreiosA Offline
          AndreiosA Offline
          Andreios
          Forum Testing
          schrieb am zuletzt editiert von Andreios
          #24

          @homoran sagte in Skript - Error Handling:

          @andreas-5 hast du mal nach dem cron 30 17 * * * gesucht?
          da startet doch das Skript

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

          Schöne Grüße
          Andreas

          ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

          Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

          HomoranH paul53P 2 Antworten Letzte Antwort
          0
          • AndreiosA Andreios

            @homoran sagte in Skript - Error Handling:

            @andreas-5 hast du mal nach dem cron 30 17 * * * gesucht?
            da startet doch das Skript

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

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #25

            @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

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • AndreiosA Andreios

              @homoran sagte in Skript - Error Handling:

              @andreas-5 hast du mal nach dem cron 30 17 * * * gesucht?
              da startet doch das Skript

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

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #26

              @andreas-5 sagte: alle Scripte noch einmal durchgeschaut

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

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              HomoranH 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @andreas-5 sagte: alle Scripte noch einmal durchgeschaut

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

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #27

                @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

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                paul53P 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @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

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #28

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

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • paul53P 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.

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #29

                    @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

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    AndreiosA 1 Antwort Letzte Antwort
                    0
                    • HomoranH Homoran

                      @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

                      AndreiosA Offline
                      AndreiosA Offline
                      Andreios
                      Forum Testing
                      schrieb am zuletzt editiert von
                      #30

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

                      Schöne Grüße
                      Andreas

                      ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

                      Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

                      HomoranH paul53P 2 Antworten Letzte Antwort
                      0
                      • AndreiosA Andreios

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

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #31

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

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        1 Antwort Letzte Antwort
                        0
                        • AndreiosA Andreios

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

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #32

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

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          AndreiosA HomoranH 2 Antworten Letzte Antwort
                          0
                          • paul53P 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)?

                            AndreiosA Offline
                            AndreiosA Offline
                            Andreios
                            Forum Testing
                            schrieb am zuletzt editiert von
                            #33

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

                            Schöne Grüße
                            Andreas

                            ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

                            Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • AndreiosA Andreios

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

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #34

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

                              Wie sieht das Skript aus?

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              AndreiosA 1 Antwort Letzte Antwort
                              0
                              • paul53P 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)?

                                HomoranH Nicht stören
                                HomoranH Nicht stören
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #35

                                @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

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • HomoranH Homoran

                                  @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

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von
                                  #36

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

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  HomoranH 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

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

                                    HomoranH Nicht stören
                                    HomoranH Nicht stören
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von Homoran
                                    #37

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

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

                                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Homoran

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

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

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von paul53
                                      #38

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

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Antwort Letzte Antwort
                                      0
                                      • paul53P paul53

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

                                        Wie sieht das Skript aus?

                                        AndreiosA Offline
                                        AndreiosA Offline
                                        Andreios
                                        Forum Testing
                                        schrieb am zuletzt editiert von
                                        #39

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

                                        Schöne Grüße
                                        Andreas

                                        ioBroker auf Raspberry 4 mit SSD. Homematik IP mit CCU 3. Shelly. MySQL. Arduino. ...

                                        Meine Posts sind subjektiv und manipulativ, erheben Anspruch auf Allwissenheit und können Spuren von Ironie oder Sarkasmus enthalten. ;-)

                                        paul53P 1 Antwort Letzte Antwort
                                        0
                                        • AndreiosA Andreios

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

                                          paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von
                                          #40

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

                                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                          AndreiosA 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          599

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe