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. Astrozeit spinnt - Lampen sind zu früh an

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    423

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    613

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Astrozeit spinnt - Lampen sind zu früh an

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
42 Beiträge 6 Kommentatoren 4.1k 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.
  • HomoranH Homoran

    @bielefelder81 sagte in Astrozeit spinnt - Lampen sind zu früh an:

    Nee ab 20:30 Uhr soll es "dunkler" beleuchtet sein.

    wie gesagt kann ich kein js.
    würde mit dem low passen

    i h finde da auch kein licht an

    B Offline
    B Offline
    Bielefelder81
    schrieb am zuletzt editiert von
    #22

    @homoran sagte in Astrozeit spinnt - Lampen sind zu früh an:

    i h finde da auch kein licht an

    setState(lampe1 + '.on', true)
                 setState(lampe2 + '.on', true)
    
    HomoranH 1 Antwort Letzte Antwort
    0
    • B Bielefelder81

      @homoran sagte in Astrozeit spinnt - Lampen sind zu früh an:

      i h finde da auch kein licht an

      setState(lampe1 + '.on', true)
                   setState(lampe2 + '.on', true)
      
      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #23

      @bielefelder81 aber wann??
      ich seh den Trigger nicht

      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 -

      B 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @bielefelder81 aber wann??
        ich seh den Trigger nicht

        B Offline
        B Offline
        Bielefelder81
        schrieb am zuletzt editiert von Bielefelder81
        #24

        @homoran Also ich weiß nur. Er checkt mit dem BWM im Flur, ob Bewegung da ist. Wenn Bewegung erkannt, checkt das Skript ob im Wohnzimmer das Licht an ist. Wenn das Licht an ist, dann bleibt der Flur aus. Wenn aber im Wohnzimmer das Licht aus ist, dann checkt er die Astrozeit und macht die Lampe an. Ab 20:30 Uhr dann halt nur mit 30%...

        Von Range Sonnenuntergang Bis Range Sonnenaufgang

        HomoranH 1 Antwort Letzte Antwort
        0
        • B Bielefelder81

          Das Skript hatte ich oben ja gepostet. Es ist unter Skripte > common > Astrozeit
          Dort zieht er sich ja anscheinend die Tageszeit und trägt sie dort in den Ordner ein. Vermute ich.

          /* 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
          18.02.2018 Sonnenaufgang und Sonnenuntergang wird nur noch neu geschrieben
                      wenn die bereits gesetzte Zeit sich von der neuen Unterscheidet
          11.12.2015 getAstroDate ermittelt nun auch Sonnenaufgang und Untergang
                     Astrotag (isAstroDay) eingebaut
          */
          
          /*Variablen erstellen*/
          createState('0_userdata.0.Allgemein.Astro.Tageszeit', {
              name: 'Tageszeit'
          });
          createState('0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenaufgang', {
              name: 'nächster Sonnenaufgang Uhrzeit',
              desc: 'sunrise (top edge of the sun appears on the horizon)'
          });
          createState('0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenuntergang', {
              name: 'nächster Sonnenuntergang Uhrzeit',
              desc: 'sunset (sun disappears below the horizon, evening civil twilight starts)'
          });
          createState('0_userdata.0.Allgemein.Astro.Tageszeit.Astrotag', false, {
              read: true,
              write: true,
              type: 'boolean',
              name: 'Astologischer Tag',
              desc: 'Zeit zwischen Sonnenauf- und untergang'
          });
          
          let idTageszeit = "0_userdata.0.Allgemein.Astro.Tageszeit",
              tageszeiten = ['Nacht',
                             'Morgendämmerung',
                             'Morgen',
                             'Vormittag',
                             'Mittag',
                             'Nachmittag',
                             'Abenddämmerung',
                             'Abend'],
              idAstrotag =        "0_userdata.0.Allgemein.Astro.Tageszeit.Astrotag",
              idSonnenaufgang =   "0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenaufgang",
              idSonnenuntergang = "0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenuntergang";
          
          
          function zeiten_speichern () {
              let astrotag = getState(idAstrotag).val,
                  sonnenaufgang,
                  sonnenuntergang;
              let today = new Date();
              let 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
              }
              if(getState(idSonnenaufgang).val != sonnenaufgang){
                  setState(idSonnenaufgang, sonnenaufgang.toLocaleTimeString('de-DE', { hour12: false }));
              }
              
              if(getState(idSonnenuntergang).val != sonnenuntergang){
                  setState(idSonnenuntergang, sonnenuntergang.toLocaleTimeString('de-DE', { hour12: false }));
              }
          }
          
          
          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();
          });
          
          bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #25

          @bielefelder81
          Ich stelle dir mal mein Script ein zum Vergleichen:

          // Tageszeiten Script
          
          
          function weiter() {
          
          // Variablen
              var vStunde = new Date().getHours();
              var vMinute = new Date().getMinutes();
              var sunset = getAstroDate("sunset");
              var sunrise = getAstroDate("sunrise");
          
              var akt_zeit = 0.01 * vMinute + vStunde;
              var i_tagesbeginn = 0.01 * parseInt(sunrise.toLocaleTimeString().substr(3,2)) + parseInt(sunrise.toLocaleTimeString().substr(0,2));
              var i_tagesende = 0.01 * parseInt(sunset.toLocaleTimeString().substr(3,2)) + parseInt(sunset.toLocaleTimeString().substr(0,2));
              var i_mittag = 13.00; // Mittagszeit
              var v_tageszeit = 'Nacht';
          
              if (akt_zeit < i_tagesende + 2) v_tageszeit = 'Abend'; 
              if (akt_zeit < i_tagesende + 1) v_tageszeit = 'Dämmerung';
              if (akt_zeit < i_tagesende) v_tageszeit = 'Nachmittag';
              if (akt_zeit < i_mittag + 1) v_tageszeit = 'Mittag';
              if (akt_zeit < i_mittag - 1) v_tageszeit = 'Vormittag';
              if (akt_zeit < i_tagesbeginn) v_tageszeit = 'Morgengrauen';
              if (akt_zeit < i_tagesbeginn - 1) v_tageszeit = 'Frühmorgens';
              if (akt_zeit < i_tagesbeginn - 2) v_tageszeit = 'Nacht';
          
              setState('javascript.0.System.System.Tageszeit', v_tageszeit);
          }
          
          schedule("*/10 * * * *", function () {
              weiter();
          });
          
          

          Überprüfe es mal mit deinem.
          Und du prüfst jede Minute; auch hier mal überlegen ob das Sinn bringt.


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          HomoranH 1 Antwort Letzte Antwort
          0
          • B Bielefelder81

            @homoran Also ich weiß nur. Er checkt mit dem BWM im Flur, ob Bewegung da ist. Wenn Bewegung erkannt, checkt das Skript ob im Wohnzimmer das Licht an ist. Wenn das Licht an ist, dann bleibt der Flur aus. Wenn aber im Wohnzimmer das Licht aus ist, dann checkt er die Astrozeit und macht die Lampe an. Ab 20:30 Uhr dann halt nur mit 30%...

            Von Range Sonnenuntergang Bis Range Sonnenaufgang

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

            @bielefelder81 ok, das passt zu dem was ich da gelesen habe.

            Also:
            welche "Lampen sind zu früh an"?

            und wieso spinnt die Astrozeit?
            bzw. wo kommt die Astrozeit bei den Lampen ins Spiel?

            ich sehe da keine Zusammenhänge

            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 -

            B 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @bielefelder81 ok, das passt zu dem was ich da gelesen habe.

              Also:
              welche "Lampen sind zu früh an"?

              und wieso spinnt die Astrozeit?
              bzw. wo kommt die Astrozeit bei den Lampen ins Spiel?

              ich sehe da keine Zusammenhänge

              B Offline
              B Offline
              Bielefelder81
              schrieb am zuletzt editiert von
              #27

              @homoran Die Lampe1 und Lampe2 im Flur geht zu früh an.
              Wie gesagt, ich habe die Skripts nur so bekommen und es funktionierte sonst immer. Ich steige da sowieso nicht durch. Dachte ihr seht das und wisst sofort "Aaah, ja. Das fehlt was..." - Fertig :)

              1 Antwort Letzte Antwort
              0
              • Jey CeeJ Online
                Jey CeeJ Online
                Jey Cee
                Developer
                schrieb am zuletzt editiert von
                #28

                Da fehlt ein Wesentlicher Teil im Skript, damit Zeit auch entsprechend Aktualisiert wird.

                
                //Bei Änderung der Zeiten Aktualisieren
                on({id: '0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenuntergang'},
                    () => {
                        von = getState('0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenuntergang').val;
                    })
                
                on({id: '0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenaufgang'},
                    () => {
                        bis = getState('0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenaufgang').val;
                    })
                

                Persönlicher Support
                Spenden -> paypal.me/J3YC33

                1 Antwort Letzte Antwort
                0
                • bahnuhrB bahnuhr

                  @bielefelder81
                  Ich stelle dir mal mein Script ein zum Vergleichen:

                  // Tageszeiten Script
                  
                  
                  function weiter() {
                  
                  // Variablen
                      var vStunde = new Date().getHours();
                      var vMinute = new Date().getMinutes();
                      var sunset = getAstroDate("sunset");
                      var sunrise = getAstroDate("sunrise");
                  
                      var akt_zeit = 0.01 * vMinute + vStunde;
                      var i_tagesbeginn = 0.01 * parseInt(sunrise.toLocaleTimeString().substr(3,2)) + parseInt(sunrise.toLocaleTimeString().substr(0,2));
                      var i_tagesende = 0.01 * parseInt(sunset.toLocaleTimeString().substr(3,2)) + parseInt(sunset.toLocaleTimeString().substr(0,2));
                      var i_mittag = 13.00; // Mittagszeit
                      var v_tageszeit = 'Nacht';
                  
                      if (akt_zeit < i_tagesende + 2) v_tageszeit = 'Abend'; 
                      if (akt_zeit < i_tagesende + 1) v_tageszeit = 'Dämmerung';
                      if (akt_zeit < i_tagesende) v_tageszeit = 'Nachmittag';
                      if (akt_zeit < i_mittag + 1) v_tageszeit = 'Mittag';
                      if (akt_zeit < i_mittag - 1) v_tageszeit = 'Vormittag';
                      if (akt_zeit < i_tagesbeginn) v_tageszeit = 'Morgengrauen';
                      if (akt_zeit < i_tagesbeginn - 1) v_tageszeit = 'Frühmorgens';
                      if (akt_zeit < i_tagesbeginn - 2) v_tageszeit = 'Nacht';
                  
                      setState('javascript.0.System.System.Tageszeit', v_tageszeit);
                  }
                  
                  schedule("*/10 * * * *", function () {
                      weiter();
                  });
                  
                  

                  Überprüfe es mal mit deinem.
                  Und du prüfst jede Minute; auch hier mal überlegen ob das Sinn bringt.

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

                  @bahnuhr sagte in Astrozeit spinnt - Lampen sind zu früh an:

                  Überprüfe es mal mit deinem.

                  wenn es nach dem Nachmittag (solarNoon+60') erst die Abenddämmerung gibt, läuft IMHO alles ok.

                  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
                  • B Offline
                    B Offline
                    Bielefelder81
                    schrieb am zuletzt editiert von
                    #30

                    Hi zusammen, ich habe heute mal wieder das Problem, dass mein Astro Flurlicht Script nicht korrekt funktioniert.
                    In den Objekten steht als aktuelle Tageszeit "Nachmittag" drin. Dann geht natürlich nicht die Lampe an...
                    131e41c2-1af1-4b45-a6c8-4c41046961c8-image.png

                    Ich bekomme die Warnung "Astrozeit cannot calculate night, nightend für die Koordinaten".

                    Thomas BraunT 1 Antwort Letzte Antwort
                    0
                    • B Bielefelder81

                      Hi zusammen, ich habe heute mal wieder das Problem, dass mein Astro Flurlicht Script nicht korrekt funktioniert.
                      In den Objekten steht als aktuelle Tageszeit "Nachmittag" drin. Dann geht natürlich nicht die Lampe an...
                      131e41c2-1af1-4b45-a6c8-4c41046961c8-image.png

                      Ich bekomme die Warnung "Astrozeit cannot calculate night, nightend für die Koordinaten".

                      Thomas BraunT Online
                      Thomas BraunT Online
                      Thomas Braun
                      Most Active
                      schrieb am zuletzt editiert von
                      #31

                      @bielefelder81

                      Das Thema Nacht wurde im (Beta)-Javascript-Adapter angepackt. Welche Version hast du da?

                      Linux-Werkzeugkasten:
                      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                      NodeJS Fixer Skript:
                      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                      B 1 Antwort Letzte Antwort
                      0
                      • Thomas BraunT Thomas Braun

                        @bielefelder81

                        Das Thema Nacht wurde im (Beta)-Javascript-Adapter angepackt. Welche Version hast du da?

                        B Offline
                        B Offline
                        Bielefelder81
                        schrieb am zuletzt editiert von Bielefelder81
                        #32

                        @thomas-braun Das kann ich dir leider nicht beantworten. Im Script steht aber sowas wie "Erstellt: 01.06.2015 von Pix" ;)
                        Der Javascript Adapter ist bei mir 8.3.1

                        Thomas BraunT 1 Antwort Letzte Antwort
                        0
                        • B Bielefelder81

                          @thomas-braun Das kann ich dir leider nicht beantworten. Im Script steht aber sowas wie "Erstellt: 01.06.2015 von Pix" ;)
                          Der Javascript Adapter ist bei mir 8.3.1

                          Thomas BraunT Online
                          Thomas BraunT Online
                          Thomas Braun
                          Most Active
                          schrieb am zuletzt editiert von
                          #33

                          @bielefelder81

                          Ich spreche aber auch von deinem iobroker.javascript-Adapter...

                          Linux-Werkzeugkasten:
                          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                          NodeJS Fixer Skript:
                          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                          B 1 Antwort Letzte Antwort
                          0
                          • Thomas BraunT Thomas Braun

                            @bielefelder81

                            Ich spreche aber auch von deinem iobroker.javascript-Adapter...

                            B Offline
                            B Offline
                            Bielefelder81
                            schrieb am zuletzt editiert von
                            #34

                            @thomas-braun Habe ich anschließend auch kapiert und oben editiert.

                            Thomas BraunT 1 Antwort Letzte Antwort
                            0
                            • B Bielefelder81

                              @thomas-braun Habe ich anschließend auch kapiert und oben editiert.

                              Thomas BraunT Online
                              Thomas BraunT Online
                              Thomas Braun
                              Most Active
                              schrieb am zuletzt editiert von
                              #35

                              @bielefelder81
                              Möglich das es in 8.3.1 noch nicht drin ist. Ist ganz frischer Code.

                              Linux-Werkzeugkasten:
                              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                              NodeJS Fixer Skript:
                              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                              B 1 Antwort Letzte Antwort
                              0
                              • Thomas BraunT Thomas Braun

                                @bielefelder81
                                Möglich das es in 8.3.1 noch nicht drin ist. Ist ganz frischer Code.

                                B Offline
                                B Offline
                                Bielefelder81
                                schrieb am zuletzt editiert von
                                #36

                                @thomas-braun Aber ich habe an dem Astroscript , dass ich seit ewigen Zeiten nicht geändert habe, nichts geändert...
                                Es funktionierte ja vorher mit der anderen Javascript Version auch.

                                Thomas BraunT 1 Antwort Letzte Antwort
                                0
                                • B Bielefelder81

                                  @thomas-braun Aber ich habe an dem Astroscript , dass ich seit ewigen Zeiten nicht geändert habe, nichts geändert...
                                  Es funktionierte ja vorher mit der anderen Javascript Version auch.

                                  Thomas BraunT Online
                                  Thomas BraunT Online
                                  Thomas Braun
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #37

                                  @bielefelder81

                                  8.4.2 (2024-05-28)

                                  (klein0r) Fixed createState (removed redundant native attributes)
                                  (winnyschuster) Fixed astro custom component
                                  

                                  Linux-Werkzeugkasten:
                                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                  NodeJS Fixer Skript:
                                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                  B 1 Antwort Letzte Antwort
                                  0
                                  • Thomas BraunT Thomas Braun

                                    @bielefelder81

                                    8.4.2 (2024-05-28)

                                    (klein0r) Fixed createState (removed redundant native attributes)
                                    (winnyschuster) Fixed astro custom component
                                    
                                    B Offline
                                    B Offline
                                    Bielefelder81
                                    schrieb am zuletzt editiert von
                                    #38

                                    @thomas-braun Das verstehe ich nicht... Aber ich benutzte bis dato auch nie die Astrofunktion vom Javascript Adapter, soweit ich weiß. Hab damals von jemandem ein Script bekommen und das erstellt unter 0_userdata eigene Datenpunkte für Astro.

                                    Thomas BraunT 1 Antwort Letzte Antwort
                                    0
                                    • B Offline
                                      B Offline
                                      Bielefelder81
                                      schrieb am zuletzt editiert von Bielefelder81
                                      #39
                                      /* System Tageszeiten
                                      
                                      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
                                      18.02.2018 Sonnenaufgang und Sonnenuntergang wird nur noch neu geschrieben
                                                  wenn die bereits gesetzte Zeit sich von der neuen Unterscheidet
                                      11.12.2015 getAstroDate ermittelt nun auch Sonnenaufgang und Untergang
                                                 Astrotag (isAstroDay) eingebaut
                                      */
                                      
                                      /*Variablen erstellen*/
                                      createState('0_userdata.0.Allgemein.Astro.Tageszeit', {
                                          name: 'Tageszeit'
                                      });
                                      createState('0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenaufgang', {
                                          name: 'nächster Sonnenaufgang Uhrzeit',
                                          desc: 'sunrise (top edge of the sun appears on the horizon)'
                                      });
                                      createState('0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenuntergang', {
                                          name: 'nächster Sonnenuntergang Uhrzeit',
                                          desc: 'sunset (sun disappears below the horizon, evening civil twilight starts)'
                                      });
                                      createState('0_userdata.0.Allgemein.Astro.Tageszeit.Astrotag', false, {
                                          read: true,
                                          write: true,
                                          type: 'boolean',
                                          name: 'Astologischer Tag',
                                          desc: 'Zeit zwischen Sonnenauf- und untergang'
                                      });
                                      
                                      let idTageszeit = "0_userdata.0.Allgemein.Astro.Tageszeit",
                                          tageszeiten = ['Nacht',
                                                         'Morgendämmerung',
                                                         'Morgen',
                                                         'Vormittag',
                                                         'Mittag',
                                                         'Nachmittag',
                                                         'Abenddämmerung',
                                                         'Abend'],
                                          idAstrotag =        "0_userdata.0.Allgemein.Astro.Tageszeit.Astrotag",
                                          idSonnenaufgang =   "0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenaufgang",
                                          idSonnenuntergang = "0_userdata.0.Allgemein.Astro.Tageszeit.Sonnenuntergang";
                                      
                                      function zeiten_speichern () {
                                          let astrotag = getState(idAstrotag).val,
                                              sonnenaufgang,
                                              sonnenuntergang;
                                          let today = new Date();
                                          let 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
                                          }
                                          if(getState(idSonnenaufgang).val != sonnenaufgang){
                                              setState(idSonnenaufgang, sonnenaufgang.toLocaleTimeString('de-DE', { hour12: false }));
                                          }
                                          
                                          if(getState(idSonnenuntergang).val != sonnenuntergang){
                                              setState(idSonnenuntergang, sonnenuntergang.toLocaleTimeString('de-DE', { hour12: false }));
                                          }
                                      }
                                      
                                      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();
                                      });
                                      

                                      Jetzt meldet das Script aber plötzlich, dass "new Date" da das Date nicht existiert.
                                      Unten im Script steht auch "setState(idTageszeit, tageszeiten[parseInt(abschnitt, 10)]);" und dort wird jetzt parseInt als Fehler angezeigt.

                                      1 Antwort Letzte Antwort
                                      0
                                      • B Bielefelder81

                                        @thomas-braun Das verstehe ich nicht... Aber ich benutzte bis dato auch nie die Astrofunktion vom Javascript Adapter, soweit ich weiß. Hab damals von jemandem ein Script bekommen und das erstellt unter 0_userdata eigene Datenpunkte für Astro.

                                        Thomas BraunT Online
                                        Thomas BraunT Online
                                        Thomas Braun
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #40

                                        @bielefelder81

                                        Dann muss der Code dort angeschaut werden. Dein Problem dürfte sein, dass es bei dir gerade nicht im astronomischen Sinne Nacht wird.

                                        Linux-Werkzeugkasten:
                                        https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                        NodeJS Fixer Skript:
                                        https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                        iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                        1 Antwort Letzte Antwort
                                        0
                                        • HomoranH Nicht stören
                                          HomoranH Nicht stören
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von
                                          #41

                                          ich könnte wetten, die Meldung kommt gegen 00:01 Uhr.
                                          und sie komnt vom js Adapter

                                          Da berechnet der Adapter seine aktuellen Astrozeiten, ob jemand sie nutzt oder nicht.
                                          Bielefeld liegt im Moment in der nachtlosen Zone, da kann der Adapter keine astronomische Nacht errechnen.

                                          Ab einer der nächsten Versionen wird die Meldung aber unterdrückt werden.

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          676

                                          Online

                                          32.6k

                                          Benutzer

                                          81.9k

                                          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