Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Datenpunkte Astro Zeiten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    SOLVED Datenpunkte Astro Zeiten

    This topic has been deleted. Only users with topic management privileges can see it.
    • eule66
      eule66 last edited by eule66

      Hallo zusammen

      Ich habe schon diverse skripte gefunden aber alle erzeugen bei mir Fehler im log, gibt es ein aktuelles Skript oder soll ich das nehmen von pix?

      https://forum.iobroker.net/post/42076

      Dabei bekomme ich sehr viele Fehlermeldungen im log

      Edit habe es jetzt nochmal unter global eingefügt, bekomme jedoch keine Fehlermeldung im log aber auch keine Datenpunkte

      objekte.png log.png

      Grüße

      paul53 1 Reply Last reply Reply Quote 0
      • D
        dna909 last edited by

        @eule66 said in Datenpunkte Astro Zeiten:

        error: javascript.0 script.js.common.Astro: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.

        Da steht doch schon die Ursache. Schalte das in den Adaptereinstellungen ab und gut ist.
        Einfach in die Javascript-Instanz im Admin und das Häkchen bei "Nicht alle Zustände beim Start abbonieren" entfernen.

        Gruß

        dna909

        1 Reply Last reply Reply Quote 0
        • D
          dna909 last edited by

          Dann häng doch auch mal das logfile mit an. Was kommen denn für Fehlermeldungen???

          Ohne Logfile ist das Rätselraten. Wie sieht dein Script aus?? Ist es gestartet??

          Gruß

          dna909

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

            @eule66 sagte:

            habe es jetzt nochmal unter global eingefügt

            Das ist ein Fehler !! Die Gruppe global ist nur für in anderen (nicht globalen) Skripten häufig verwendete eigene Funktionen zu verwenden.

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

              @paul53 Davon mal ganz abgesehen 🙂

              1 Reply Last reply Reply Quote 0
              • eule66
                eule66 last edited by

                So also folgendes Skript habe ich jetzt unter common abgespeichert und gestartet

                /* System Tageszeoten
                Skript meldet Tageszeiten
                Nacht;Frühmorgens;Morgengrauen;Vormittag;Mittag;Nachmittag;Dämmerung;Abend;
                Basis: http://www.homematic-inside.de/tecbase/homematic/scriptlibrary/item/tageszeit-in-abschnitte-unterteilen
                oder hier: https://github.com/ioBroker/ioBroker.javascript#astro--funktion
                https://github.com/iobroker/ioBroker.javascript/blob/master/README.md#getastrodate
                erstellt: 01.06.2015 von Pix
                11.12.2015 getAstroDate ermittelt nun auch Sonnenaufgang und Untergang
                          Astrotag (isAstroDay) eingebaut
                */
                // Variablen erstellen
                createState('Tageszeit', {
                   name: 'Tageszeit'
                });
                createState('Tageszeit.Sonnenaufgang', {
                   name: 'nächster Sonnenaufgang Uhrzeit',
                   desc: 'sunrise (top edge of the sun appears on the horizon)'
                });
                createState('Tageszeit.Sonnenuntergang', {
                   name: 'nächster Sonnenuntergang Uhrzeit',
                   desc: 'sunset (sun disappears below the horizon, evening civil twilight starts)'
                });
                createState('Tageszeit.Astrotag', false, {
                   read: true,
                   write: true,
                   type: 'boolean',
                   name: 'Astologischer Tag',
                   desc: 'Zeit zwischen Sonnenauf- und untergang'
                });
                var idTageszeit = "Tageszeit",
                   tageszeiten = ['Nacht',
                                  'Morgendämmerung',
                                  'Morgen',
                                  'Vormittag',
                                  'Mittag',
                                  'Nachmittag',
                                  'Abenddämmerung',
                                  'Abend'],
                   idAstrotag =        "Tageszeit.Astrotag",
                   idSonnenaufgang =   "Tageszeit.Sonnenaufgang",
                   idSonnenuntergang = "Tageszeit.Sonnenuntergang";
                function zeiten_speichern () {
                   var astrotag = getState(idAstrotag).val,
                       sonnenaufgang,
                       sonnenuntergang;
                   var today = new Date();
                   var tomorrow = today.setDate(today.getDate()+1);
                   if (astrotag) { // Wenn Tag (Aufgang vorbei (erst wieder morgen, Untergang kommt noch heute)
                       sonnenuntergang = getAstroDate('sunset', today),
                       sonnenaufgang = getAstroDate('sunrise', tomorrow);
                   } else { // nach Nacht (Untergang vorbei (erst wieder morgen, Aufgang kommt heute oder morgen)
                       sonnenuntergang = getAstroDate('sunset', tomorrow);
                       sonnenaufgang = (today.getHours() > 12 && today.getHours() <= 23) ? getAstroDate('sunrise', tomorrow) :  getAstroDate('sunrise', today); // es ist vor Mitternacht (bzw. vor 23:XXUhr), dann morgen, sonst heute
                   }
                   setState(idSonnenaufgang, sonnenaufgang.toLocaleTimeString());
                   setState(idSonnenuntergang, sonnenuntergang.toLocaleTimeString());
                }
                function neue_tageszeit(abschnitt) {
                   setState(idTageszeit, tageszeiten[parseInt(abschnitt, 10)]);
                   log('neue Tagezeit: ' + tageszeiten[parseInt(abschnitt, 10)], 'info');
                   zeiten_speichern();
                }
                // Nacht
                schedule({astro: "night", shift: 120}, function () { neue_tageszeit(0) });
                // Morgengdämmerung
                schedule({astro: "nightEnd"}, function () { neue_tageszeit(1) });
                // Morgen
                schedule({astro: "sunrise"}, function () { neue_tageszeit(2) });
                // Vormittag (beginnt 120min vor Sonnenhöchststand)
                schedule({astro: "solarNoon", shift: -120}, function () { neue_tageszeit(3) });
                // Mittag
                schedule({astro: "solarNoon"}, function () { neue_tageszeit(4) });
                // Nachmittag
                schedule({astro: "solarNoon", shift: 60}, function () { neue_tageszeit(5) });
                // Abenddämmerung (nach Sonnenuntergang)
                schedule({astro: "dusk"}, function () { neue_tageszeit(6) });
                // Abend
                schedule({astro: "night"}, function () { neue_tageszeit(7) });
                // Astrotag checken
                schedule("*/1 * * * *", function () {
                  if (isAstroDay) setState(idAstrotag, true);
                  if (!isAstroDay) setState(idAstrotag, false);
                  zeiten_speichern();
                });
                

                dazu kommen folgende Fehlermeldungen im log

                2019-04-16 12:52:53.464 - info: javascript.0 Start javascript script.js.common.Astro
                2019-04-16 12:52:53.570 - info: javascript.0 script.js.common.Astro: registered 0 subscriptions and 18 schedules
                2019-04-16 12:53:00.034 - error: javascript.0 script.js.common.Astro: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
                2019-04-16 12:53:00.035 - error: javascript.0 script.js.common.Astro: Please disable that setting or use "getState" with a callback, e.g.: getState("Tageszeit.Astrotag", (err, state) => { ... });
                2019-04-16 12:53:00.048 - error: javascript.0 Error in callback: TypeError: Cannot read property 'val' of undefined
                2019-04-16 12:53:00.049 - error: javascript.0 at zeiten_speichern (script.js.common.Astro:43:39)
                2019-04-16 12:53:00.050 - error: javascript.0 at Object. (script.js.common.Astro:83:3)
                2019-04-16 12:53:00.050 - error: javascript.0 at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1181:34)
                2019-04-16 12:53:00.051 - error: javascript.0 at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                2019-04-16 12:53:00.051 - error: javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                2019-04-16 12:53:00.051 - error: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                2019-04-16 12:53:00.052 - error: javascript.0 at ontimeout (timers.js:498:11)
                2019-04-16 12:53:00.052 - error: javascript.0 at tryOnTimeout (timers.js:323:5)
                2019-04-16 12:53:00.052 - error: javascript.0 at Timer.listOnTimeout (timers.js:290:5)
                2019-04-16 12:53:00.076 - error: javascript.0 script.js.common.Astro: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
                2019-04-16 12:53:00.076 - error: javascript.0 script.js.common.Astro: Please disable that setting or use "getState" with a callback, e.g.: getState("Tageszeit.Astrotag", (err, state) => { ... });
                2019-04-16 12:53:00.077 - error: javascript.0 Error in callback: TypeError: Cannot read property 'val' of undefined
                2019-04-16 12:53:00.078 - error: javascript.0 at zeiten_speichern (script.js.common.Astro:43:39)
                2019-04-16 12:53:00.078 - error: javascript.0 at Object. (script.js.common.Astro:83:3)
                2019-04-16 12:53:00.078 - error: javascript.0 at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1181:34)
                2019-04-16 12:53:00.078 - error: javascript.0 at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                2019-04-16 12:53:00.078 - error: javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                2019-04-16 12:53:00.079 - error: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                2019-04-16 12:53:00.079 - error: javascript.0 at ontimeout (timers.js:498:11)
                2019-04-16 12:53:00.079 - error: javascript.0 at tryOnTimeout (timers.js:323:5)
                2019-04-16 12:53:00.082 - error: javascript.0 at Timer.listOnTimeout (timers.js:290:5)
                

                Grüße

                1 Reply Last reply Reply Quote 0
                • D
                  dna909 last edited by

                  @eule66 said in Datenpunkte Astro Zeiten:

                  error: javascript.0 script.js.common.Astro: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.

                  Da steht doch schon die Ursache. Schalte das in den Adaptereinstellungen ab und gut ist.
                  Einfach in die Javascript-Instanz im Admin und das Häkchen bei "Nicht alle Zustände beim Start abbonieren" entfernen.

                  Gruß

                  dna909

                  1 Reply Last reply Reply Quote 0
                  • eule66
                    eule66 last edited by

                    ok danke das wars schon, keine Fehlermeldungen im log mehr 🙂

                    bekomme aber nur Sonnenaufgang und Sonnenuntergang angezeigt, die restlichen Zeiten nicht,an was könnte das noch liegen?

                    astro neu.png

                    danke für eure hilfe

                    Gruß Ronny

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    827
                    Online

                    31.9k
                    Users

                    80.1k
                    Topics

                    1.3m
                    Posts

                    3
                    7
                    1972
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo