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
    16
    1
    937

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

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

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

    @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 Antwort Letzte Antwort
    0
    • B 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 Offline
      B Offline
      Bielefelder81
      schrieb am zuletzt editiert von
      #12

      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();
      });
      
      HomoranH bahnuhrB 2 Antworten 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();
        });
        
        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #13

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

        Vermute ich.

        ich auch, ich kann aber kein js :-(

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

          Vermute ich.

          ich auch, ich kann aber kein js :-(

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

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

          Thomas BraunT HomoranH 2 Antworten Letzte Antwort
          0
          • B Bielefelder81

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

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

            @bielefelder81

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

            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
            • B Bielefelder81

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

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

              @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

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

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

                HomoranH 1 Antwort Letzte Antwort
                0
                • Thomas BraunT Thomas Braun

                  @bielefelder81

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

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

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

                  1 Antwort Letzte Antwort
                  0
                  • B Bielefelder81

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

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

                    @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';

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

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

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • B 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)

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

                        @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

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          893

                                          Online

                                          32.6k

                                          Benutzer

                                          82.0k

                                          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