Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Astrozeit spinnt - Lampen sind zu früh an

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Astrozeit spinnt - Lampen sind zu früh an

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

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

      Wo kommt der Inhalt von

      @Bielefelder81
      und wieso steht im Ordner ein Wert?
      ...weil der Ordner in Wirklichkeit ein State ist... zählt nicht als Antwort.

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

        @homoran Sry, aber ich bin da nicht so firms. Mir hatte man mal die beiden Skripte vor x Jahren mal gegeben und bis vor einigen Wochen funktionierte auch alles.
        Laut kleinem Info Fenster wurde heute um 14:25 Uhr der Wert zuletzt aktualisiert.

        B 1 Reply Last reply Reply Quote 0
        • B
          Bielefelder81 @Bielefelder81 last edited by

          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();
          });
          
          Homoran bahnuhr 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Bielefelder81 last edited by

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

            Vermute ich.

            ich auch, ich kann aber kein js 😞

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

              @homoran Hast du eine andere Möglichkeit für mich? 😉 Dann nehme ich die gern, damit die Lampe endlich nur im Dunkeln angeht 😉

              Thomas Braun Homoran 2 Replies Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @Bielefelder81 last edited by

                @bielefelder81

                Ich nutze dafür den 'followthesun'-Adapter.
                Und einen user-Account, nicht den root.

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

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

                  Hast du eine andere Möglichkeit für mich

                  nee, Systemzeit ist die häufigste Ursache, aber die passt ja.

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

                  heute um 14:25 Uhr der Wert zuletzt aktualisiert.

                  auf nachmittag.
                  das passt ja.

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

                  astro: "solarNoon", shift: 60

                  das nächste wäre

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

                  Abenddämmerung (nach Sonnenuntergang)

                  das kommt in Bielefeld ungefähr jetzt

                  der Fehler mit dem Licht muss also woanders liegen

                  edit: Sonnenuntergang in Bielefeld heute ca. 21:40

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

                    @homoran Oh 😞 Dann weiß ich nicht. Wann exakt die Lampen angehen weiß ich nicht. Glaube aber, dass es schon bereits vor 18 Uhr angeht, obwohl es deutlich zu hell für Licht im Flur ist. "Früher" funktionierte das.

                    Homoran 1 Reply Last reply Reply Quote 0
                    • B
                      Bielefelder81 @Thomas Braun last edited by

                      @thomas-braun Den Root hatte ich eben nur in der Konsole auf Proxmox angemeldet, um nach der Uhrzeit zu schauen.

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

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

                        Wann exakt die Lampen angehen weiß ich nicht.

                        laut Skript fix um

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

                        let von, bis, low_von = '20:30:00';

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

                          @homoran Nee ab 20:30 Uhr soll es "dunkler" beleuchtet sein... Denn das Licht im Flur sieht man im Kinderzimmer. Vor 20:30 Uhr kann das Flurlicht ruhig auf 100% sein. So war es eigentlich geplant.
                          Das Skript checkt: Licht im Wohnzimmer an, ja nein? Wenn ja, dann kein Licht an. Wenn nein, dann geht das Flurlicht an (Wenn nach 20:30 Uhr dann nur 30% oder so)

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

                            @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 1 Reply Last reply Reply Quote 0
                            • B
                              Bielefelder81 @Homoran last edited by

                              @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)
                              
                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @Bielefelder81 last edited by

                                @bielefelder81 aber wann??
                                ich seh den Trigger nicht

                                B 1 Reply Last reply Reply Quote 0
                                • B
                                  Bielefelder81 @Homoran last edited by 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

                                  Homoran 1 Reply Last reply Reply Quote 0
                                  • bahnuhr
                                    bahnuhr Forum Testing Most Active @Bielefelder81 last edited by

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

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

                                      @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 1 Reply Last reply Reply Quote 0
                                      • B
                                        Bielefelder81 @Homoran last edited by

                                        @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 Reply Last reply Reply Quote 0
                                        • Jey Cee
                                          Jey Cee Developer last edited by

                                          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;
                                              })
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @bahnuhr last edited by

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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            839
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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