Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Gelöst] Astro-Zeiten unterschiedlich

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

[Gelöst] Astro-Zeiten unterschiedlich

Scheduled Pinned Locked Moved JavaScript
22 Posts 4 Posters 2.0k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    diwoma
    wrote on last edited by diwoma
    #1

    Hi,
    ich habe Probleme, die Astro-Zeiten 'sunrise' und 'sunset' richtig zu interpretieren 😞

    Ich habe nach einem Skript im Forum die Zeiten auf mehrere Datenpunkte geschrieben:

    /* System Tageszeiten
       ------------------
    */
    
    // Variablen erstellen
    var folder = '0_userdata.0.Zeiten';
    var idSunriseToday = folder+'.SunriseToday';
    var idSunsetToday = folder+'.SunsetToday';
    var idSunriseTomorrow = folder+'.SunriseTomorrow';
    var idSunsetTomorrow = folder+'.SunsetTomorrow';
    
    createState(idSunriseToday, { name: 'Sonnenaufgang heute', desc: 'sunrise today'});
    createState(idSunsetToday, { name: 'Sonnenuntergang heute', desc: 'sunset today'});
    
    createState(idSunriseTomorrow, { name: 'Sonnenaufgang morgen', desc: 'sunrise tomorrow'});
    createState(idSunsetTomorrow, { name: 'Sonnenuntergang morgen', desc: 'sunset tomorrow'});
    
    
    function zeiten_speichern () {
    
        var timestamp;
        var date = new Date();
        var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getDate();
        var tomorrow = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1).getDate();
    
        log('date    :' + date.toString());
        log('today   :' + today.toString());
        log('tomorrow:' + tomorrow.toString());
        
        timestamp = getAstroDate('sunrise', today);
        setState(idSunriseToday, timestamp.toLocaleTimeString());
        timestamp = getAstroDate('sunset', today);
        setState(idSunsetToday, timestamp.toLocaleTimeString());
    
        timestamp = getAstroDate('sunrise', tomorrow);
        setState(idSunriseTomorrow, timestamp.toLocaleTimeString());
        timestamp = getAstroDate('sunset', tomorrow);
        setState(idSunsetTomorrow, timestamp.toLocaleTimeString());
    }
    zeiten_speichern();
    
    // Check Every Day
    schedule("1 0 * * *", function () { zeiten_speichern();});
    
    

    Das ergab eine Ausgabe von:
    SunriseToday: 7:44:42 AM

    Dann habe ich ein Blockly-Script, dass ein Licht bei Sunrise ausschaltet:

    // Nachtlicht ausschalten
    schedule({astro: "sunrise", shift: 0}, async function () {
      setState("linkeddevices.0.Vorzimmer.Nachtlicht.POWER"/*Vorzimmer Nachtlicht POWER*/, 0);
      console.log('Nachtlicht ausgeschaltet');
    });
    
    

    Das hat aber heute schon um 2021-11-19 07:08:13.054 geschaltet

    Abgesehen von der amerikanischen Stringausgabe (wobei ich noch nicht sagen kann, warum das nicht lokalisiert ist) sind die Zeiten doch einigermaßen unterschiedlich.
    Ist die Abfrage des 'sunrise' im Skrpt falsch oder verwendet der Trigger ein anderes 'sunrise'?
    Geo-Koordinaten sind von System aus richtig eingestellt und werden vom Javascript-Adapter übernommen. Selbst bei direkter Zuordnung der Koordinaten im Adapter bleiben die Werte gleich.
    System-Zeit ist auch korrekt (MEZ)

    Und was mir auch noch etwas komisch vorkommt, die Funktion getAstroDate('sunrise', today) erwartet einen numerischen Wert als Parameter, das ist in diesem Fall der Tag (heute eben 19). Warum nicht das Datum?

    Wo liegt da mein Fehler?

    -- diwoma

    ioBroker in LX-Container in Proxmox
    Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

    mickymM 2 Replies Last reply
    0
    • D diwoma

      Hi,
      ich habe Probleme, die Astro-Zeiten 'sunrise' und 'sunset' richtig zu interpretieren 😞

      Ich habe nach einem Skript im Forum die Zeiten auf mehrere Datenpunkte geschrieben:

      /* System Tageszeiten
         ------------------
      */
      
      // Variablen erstellen
      var folder = '0_userdata.0.Zeiten';
      var idSunriseToday = folder+'.SunriseToday';
      var idSunsetToday = folder+'.SunsetToday';
      var idSunriseTomorrow = folder+'.SunriseTomorrow';
      var idSunsetTomorrow = folder+'.SunsetTomorrow';
      
      createState(idSunriseToday, { name: 'Sonnenaufgang heute', desc: 'sunrise today'});
      createState(idSunsetToday, { name: 'Sonnenuntergang heute', desc: 'sunset today'});
      
      createState(idSunriseTomorrow, { name: 'Sonnenaufgang morgen', desc: 'sunrise tomorrow'});
      createState(idSunsetTomorrow, { name: 'Sonnenuntergang morgen', desc: 'sunset tomorrow'});
      
      
      function zeiten_speichern () {
      
          var timestamp;
          var date = new Date();
          var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getDate();
          var tomorrow = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1).getDate();
      
          log('date    :' + date.toString());
          log('today   :' + today.toString());
          log('tomorrow:' + tomorrow.toString());
          
          timestamp = getAstroDate('sunrise', today);
          setState(idSunriseToday, timestamp.toLocaleTimeString());
          timestamp = getAstroDate('sunset', today);
          setState(idSunsetToday, timestamp.toLocaleTimeString());
      
          timestamp = getAstroDate('sunrise', tomorrow);
          setState(idSunriseTomorrow, timestamp.toLocaleTimeString());
          timestamp = getAstroDate('sunset', tomorrow);
          setState(idSunsetTomorrow, timestamp.toLocaleTimeString());
      }
      zeiten_speichern();
      
      // Check Every Day
      schedule("1 0 * * *", function () { zeiten_speichern();});
      
      

      Das ergab eine Ausgabe von:
      SunriseToday: 7:44:42 AM

      Dann habe ich ein Blockly-Script, dass ein Licht bei Sunrise ausschaltet:

      // Nachtlicht ausschalten
      schedule({astro: "sunrise", shift: 0}, async function () {
        setState("linkeddevices.0.Vorzimmer.Nachtlicht.POWER"/*Vorzimmer Nachtlicht POWER*/, 0);
        console.log('Nachtlicht ausgeschaltet');
      });
      
      

      Das hat aber heute schon um 2021-11-19 07:08:13.054 geschaltet

      Abgesehen von der amerikanischen Stringausgabe (wobei ich noch nicht sagen kann, warum das nicht lokalisiert ist) sind die Zeiten doch einigermaßen unterschiedlich.
      Ist die Abfrage des 'sunrise' im Skrpt falsch oder verwendet der Trigger ein anderes 'sunrise'?
      Geo-Koordinaten sind von System aus richtig eingestellt und werden vom Javascript-Adapter übernommen. Selbst bei direkter Zuordnung der Koordinaten im Adapter bleiben die Werte gleich.
      System-Zeit ist auch korrekt (MEZ)

      Und was mir auch noch etwas komisch vorkommt, die Funktion getAstroDate('sunrise', today) erwartet einen numerischen Wert als Parameter, das ist in diesem Fall der Tag (heute eben 19). Warum nicht das Datum?

      Wo liegt da mein Fehler?

      mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by
      #2

      @diwoma Eventuell musst Du im Javascript Adapter - trotz Übernahme der Systemeinstellungen noch was bei den Astroeinstellungen eintragen.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      D 1 Reply Last reply
      0
      • mickymM mickym

        @diwoma Eventuell musst Du im Javascript Adapter - trotz Übernahme der Systemeinstellungen noch was bei den Astroeinstellungen eintragen.

        D Offline
        D Offline
        diwoma
        wrote on last edited by diwoma
        #3

        @mickym
        Nein, das bringt das gleiche Ergebnis, habe es eben wieder probiert.
        Die Koordinaten direkt eingegeben und keine Änderung.
        Was mich aber verwundert, in der Konfiguration wird next sunrise ausgegeben, und dort ist der Wert gleich wie es der Trigger ausführt. Also muss bei der Funktion was schief laufen.

        -- diwoma

        ioBroker in LX-Container in Proxmox
        Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

        mickymM HomoranH 2 Replies Last reply
        0
        • D diwoma

          @mickym
          Nein, das bringt das gleiche Ergebnis, habe es eben wieder probiert.
          Die Koordinaten direkt eingegeben und keine Änderung.
          Was mich aber verwundert, in der Konfiguration wird next sunrise ausgegeben, und dort ist der Wert gleich wie es der Trigger ausführt. Also muss bei der Funktion was schief laufen.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by mickym
          #4

          @diwoma 37f2cc62-6c47-45d2-8a31-03d8b3e8b0c5-image.png

          Bei mir steht da nichts drin und wenn man da nicht explizit sch_astro_sunrise eingibt - dann nimmt der irgendwas anders. Und ich meinte halt mal gelesen zu haben, dass die Systemeinstellungen in dem Adapter nicht korrekt übernommen werden das ist aber schon eine Zeit her - seitdem gabs sicher Dutzend neue Versionen von dem Adapter.

          Nur so - stimmt es einigermassen mit der offiziellen Zeit:

          88642057-df32-434c-a890-aaafa27d6c00-image.png

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Reply Last reply
          0
          • D Offline
            D Offline
            diwoma
            wrote on last edited by
            #5

            @mickym
            Ich habe jetzt verschiedene Einstellung in der Konfiguration durchprobiert, um zu schauen was das für Ergebnisse liefert. Ich habe sch_astro_sunrise eingestellt, und das ist der Wert, auf den anscheinend getriggert wird.

            Aber die Funktion gibt es falsch aus.
            Was für String-Werte für andere Zeiten kann ich noch eingeben? Kann man das wo nachlesen?

            -- diwoma

            ioBroker in LX-Container in Proxmox
            Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

            mickymM 1 Reply Last reply
            0
            • D diwoma

              @mickym
              Ich habe jetzt verschiedene Einstellung in der Konfiguration durchprobiert, um zu schauen was das für Ergebnisse liefert. Ich habe sch_astro_sunrise eingestellt, und das ist der Wert, auf den anscheinend getriggert wird.

              Aber die Funktion gibt es falsch aus.
              Was für String-Werte für andere Zeiten kann ich noch eingeben? Kann man das wo nachlesen?

              mickymM Online
              mickymM Online
              mickym
              Most Active
              wrote on last edited by mickym
              #6

              @diwoma Na Du hast doch diese dropdown Liste - als bei mir stimmt das mit sch_astro_sunrise.

              c5b50969-23f9-4962-97ad-86f60125e76e-image.png

              Ah ich seh schon - bei mir war das erst leer und nun muss wenn man da was auswählt der JS Adapter neu gestartet werden, damit die Einstellungen übernommen werden.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              D 1 Reply Last reply
              0
              • mickymM mickym

                @diwoma Na Du hast doch diese dropdown Liste - als bei mir stimmt das mit sch_astro_sunrise.

                c5b50969-23f9-4962-97ad-86f60125e76e-image.png

                Ah ich seh schon - bei mir war das erst leer und nun muss wenn man da was auswählt der JS Adapter neu gestartet werden, damit die Einstellungen übernommen werden.

                D Offline
                D Offline
                diwoma
                wrote on last edited by
                #7

                @mickym
                Der Trigger funktioniert ja mit dieser Einstellung, die Funktion getAstroDate aber nicht.

                Kann man was über die Funktion nachlesen?
                Mich irritiert, dass der 2 Parameter ein numerischer Wert ist und nicht ein DateTime.
                Was sollte denn da für ein numerischer Wert angegeben werden?
                Wenn ich die Skripts im Forum nachbaue stimmt es nicht, in einem Blog woanders wird ein Datum eingegeben.
                Deshalb hätte ich gerne von irgendwo eine Beschreibung, was die Funktion für Übergabe-Parameter braucht.

                -- diwoma

                ioBroker in LX-Container in Proxmox
                Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                1 Reply Last reply
                0
                • mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  wrote on last edited by mickym
                  #8

                  @diwoma sagte in Astro-Zeiten unterschiedlich:

                  Mich irritiert, dass der 2 Parameter ein numerischer Wert ist und nicht ein DateTime.
                  Was sollte denn da für ein numerischer Wert angegeben werden?

                  Nun wenn ich die Threads hier lese "https://forum.iobroker.net/topic/8720/probleme-mit-astro-funktion" ist zwar schon alt, dann ist der

                  1. Parameter ein String mit den üblichen wahrscheinlich aus der Bibliothek üblichen Bezeichnung (z. Bsp. wie in dem Thread "nightEnd")
                  2. Parameter ist ein nummerischer Wert mit dem Du ein offset eintragen kannst, der addiert wird (oder bei negativen Werten subtrahiert wird).

                  Der 2. Parameter scheint aber optional zu sein.

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  D 1 Reply Last reply
                  0
                  • mickymM mickym

                    @diwoma sagte in Astro-Zeiten unterschiedlich:

                    Mich irritiert, dass der 2 Parameter ein numerischer Wert ist und nicht ein DateTime.
                    Was sollte denn da für ein numerischer Wert angegeben werden?

                    Nun wenn ich die Threads hier lese "https://forum.iobroker.net/topic/8720/probleme-mit-astro-funktion" ist zwar schon alt, dann ist der

                    1. Parameter ein String mit den üblichen wahrscheinlich aus der Bibliothek üblichen Bezeichnung (z. Bsp. wie in dem Thread "nightEnd")
                    2. Parameter ist ein nummerischer Wert mit dem Du ein offset eintragen kannst, der addiert wird (oder bei negativen Werten subtrahiert wird).

                    Der 2. Parameter scheint aber optional zu sein.

                    D Offline
                    D Offline
                    diwoma
                    wrote on last edited by
                    #9

                    @mickym
                    OK, das macht dann Sinn, wenn der zweite Parameter weggelassen wird, dann stimmt die Zeit.
                    Das das nur ein Offset ist habe ich nicht gewusst. Komischerweise habe ich den Thread sogar durchgeblättert, aber das habe ich wahrscheinlich überlesen.

                    Aber auf was ein Offset? Stunden, Tage ??
                    wenn ich 1 angebe (für +1 Tag) ist es falsch.

                    -- diwoma

                    ioBroker in LX-Container in Proxmox
                    Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                    mickymM 1 Reply Last reply
                    0
                    • D diwoma

                      @mickym
                      OK, das macht dann Sinn, wenn der zweite Parameter weggelassen wird, dann stimmt die Zeit.
                      Das das nur ein Offset ist habe ich nicht gewusst. Komischerweise habe ich den Thread sogar durchgeblättert, aber das habe ich wahrscheinlich überlesen.

                      Aber auf was ein Offset? Stunden, Tage ??
                      wenn ich 1 angebe (für +1 Tag) ist es falsch.

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      wrote on last edited by mickym
                      #10

                      @diwoma Nee ich denke das ist offset in Minuten das dürfte komplett mit dem Parameter in der Adapterkonfig übereinstimmen:

                      53f92f80-623a-4d4b-a599-a19f71c9a772-image.png

                      das heisst bei mir ist es im Moment: 7:27, wenn Du in dem Adapter für den Offset zum Beispiel 2 eingibst - dann ist es 7:29 was als Sunrise kommt. Insofern ist der Offset immer falsch - es geht ja darum, dass Du mit dem Offset Deine Vorliebe quasi eingibst, die mit den offiziellen Zeitpunkten nichts zu tun haben.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      D 1 Reply Last reply
                      0
                      • D diwoma

                        @mickym
                        Nein, das bringt das gleiche Ergebnis, habe es eben wieder probiert.
                        Die Koordinaten direkt eingegeben und keine Änderung.
                        Was mich aber verwundert, in der Konfiguration wird next sunrise ausgegeben, und dort ist der Wert gleich wie es der Trigger ausführt. Also muss bei der Funktion was schief laufen.

                        HomoranH Do not disturb
                        HomoranH Do not disturb
                        Homoran
                        Global Moderator Administrators
                        wrote on last edited by
                        #11

                        @diwoma sagte in Astro-Zeiten unterschiedlich:

                        in der Konfiguration wird next sunrise ausgegeben

                        welche?

                        Meint ihr die von @mickym gepostete??

                        @mickym sagte in Astro-Zeiten unterschiedlich:
                        https://forum.iobroker.net/assets/uploads/files/1637316875401-88642057-df32-434c-a890-aaafa27d6c00-image.png

                        Diese Zeiten sind nur für den Datenpunkt isDaytime

                        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 -

                        D 1 Reply Last reply
                        0
                        • mickymM mickym

                          @diwoma Nee ich denke das ist offset in Minuten das dürfte komplett mit dem Parameter in der Adapterkonfig übereinstimmen:

                          53f92f80-623a-4d4b-a599-a19f71c9a772-image.png

                          das heisst bei mir ist es im Moment: 7:27, wenn Du in dem Adapter für den Offset zum Beispiel 2 eingibst - dann ist es 7:29 was als Sunrise kommt. Insofern ist der Offset immer falsch - es geht ja darum, dass Du mit dem Offset Deine Vorliebe quasi eingibst, die mit den offiziellen Zeitpunkten nichts zu tun haben.

                          D Offline
                          D Offline
                          diwoma
                          wrote on last edited by
                          #12

                          @mickym
                          Im Skript steht:

                          var today = new Date();
                          var tomorrow = today.setDate(today.getDate()+1);
                          var tomorrowNight = getAstroDate("night", tomorrow);
                          

                          Aber bei ist der Wert von today.getDate() heute aber 19. Was sollte das für ein Datum sein, ist mit dieser Funktion was falsch?

                          -- diwoma

                          ioBroker in LX-Container in Proxmox
                          Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                          mickymM 1 Reply Last reply
                          0
                          • D diwoma

                            @mickym
                            Im Skript steht:

                            var today = new Date();
                            var tomorrow = today.setDate(today.getDate()+1);
                            var tomorrowNight = getAstroDate("night", tomorrow);
                            

                            Aber bei ist der Wert von today.getDate() heute aber 19. Was sollte das für ein Datum sein, ist mit dieser Funktion was falsch?

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            wrote on last edited by mickym
                            #13

                            @diwoma Keine Ahnung - aber für mich sieht das eher so aus, dass der Skriptverfasser diesen 2. Parameter falsch verstanden hat. Da muss doch eine Zahl hin und kein Date Objekt.

                            Na nach dieser Doku - wäre es kein Offset sondern tatsächlich ein stateObject (Zeile 69):

                            https://www.kreyenborg.koeln/iobroker-astro-tageszeit-abfragen-und-in-datenpunkt-eintragen/

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            D 1 Reply Last reply
                            0
                            • HomoranH Homoran

                              @diwoma sagte in Astro-Zeiten unterschiedlich:

                              in der Konfiguration wird next sunrise ausgegeben

                              welche?

                              Meint ihr die von @mickym gepostete??

                              @mickym sagte in Astro-Zeiten unterschiedlich:
                              https://forum.iobroker.net/assets/uploads/files/1637316875401-88642057-df32-434c-a890-aaafa27d6c00-image.png

                              Diese Zeiten sind nur für den Datenpunkt isDaytime

                              D Offline
                              D Offline
                              diwoma
                              wrote on last edited by
                              #14

                              @homoran said in Astro-Zeiten unterschiedlich:

                              @diwoma sagte in Astro-Zeiten unterschiedlich:

                              in der Konfiguration wird next sunrise ausgegeben

                              welche?

                              Ich denke, bei dem der Trigger auf sunrise hört

                              -- diwoma

                              ioBroker in LX-Container in Proxmox
                              Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                              HomoranH 1 Reply Last reply
                              0
                              • D diwoma

                                @homoran said in Astro-Zeiten unterschiedlich:

                                @diwoma sagte in Astro-Zeiten unterschiedlich:

                                in der Konfiguration wird next sunrise ausgegeben

                                welche?

                                Ich denke, bei dem der Trigger auf sunrise hört

                                HomoranH Do not disturb
                                HomoranH Do not disturb
                                Homoran
                                Global Moderator Administrators
                                wrote on last edited by
                                #15

                                @diwoma sagte in Astro-Zeiten unterschiedlich:

                                @homoran said in Astro-Zeiten unterschiedlich:

                                @diwoma sagte in Astro-Zeiten unterschiedlich:
                                

                                in der Konfiguration wird next sunrise ausgegeben

                                welche?

                                Ich denke, bei dem der Trigger auf sunrise hört

                                ????
                                Welche Konfiguration meinst du?

                                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 -

                                D 1 Reply Last reply
                                0
                                • mickymM mickym

                                  @diwoma Keine Ahnung - aber für mich sieht das eher so aus, dass der Skriptverfasser diesen 2. Parameter falsch verstanden hat. Da muss doch eine Zahl hin und kein Date Objekt.

                                  Na nach dieser Doku - wäre es kein Offset sondern tatsächlich ein stateObject (Zeile 69):

                                  https://www.kreyenborg.koeln/iobroker-astro-tageszeit-abfragen-und-in-datenpunkt-eintragen/

                                  D Offline
                                  D Offline
                                  diwoma
                                  wrote on last edited by
                                  #16

                                  @mickym
                                  Du meinst also das ist nur ein Offset in Minuten und wenn ich Offset=0 eingebe, sollte das gleiche Ergebnis rauskommen. Tut es aber nicht. Der Wert muss was anders bedeuten

                                  -- diwoma

                                  ioBroker in LX-Container in Proxmox
                                  Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                                  mickymM 1 Reply Last reply
                                  0
                                  • HomoranH Homoran

                                    @diwoma sagte in Astro-Zeiten unterschiedlich:

                                    @homoran said in Astro-Zeiten unterschiedlich:

                                    @diwoma sagte in Astro-Zeiten unterschiedlich:
                                    

                                    in der Konfiguration wird next sunrise ausgegeben

                                    welche?

                                    Ich denke, bei dem der Trigger auf sunrise hört

                                    ????
                                    Welche Konfiguration meinst du?

                                    D Offline
                                    D Offline
                                    diwoma
                                    wrote on last edited by
                                    #17

                                    @homoran said in Astro-Zeiten unterschiedlich:

                                    ????
                                    Welche Konfiguration meinst du?

                                    Im Javascript-Adapter auf dem Astro-Tab

                                    -- diwoma

                                    ioBroker in LX-Container in Proxmox
                                    Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                                    1 Reply Last reply
                                    0
                                    • D diwoma

                                      @mickym
                                      Du meinst also das ist nur ein Offset in Minuten und wenn ich Offset=0 eingebe, sollte das gleiche Ergebnis rauskommen. Tut es aber nicht. Der Wert muss was anders bedeuten

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      wrote on last edited by mickym
                                      #18

                                      @diwoma sagte in Astro-Zeiten unterschiedlich:

                                      @mickym
                                      Du meinst also das ist nur ein Offset in Minuten und wenn ich Offset=0 eingebe, sollte das gleiche Ergebnis rauskommen. Tut es aber nicht. Der Wert muss was anders bedeuten

                                      Ja Du hast Recht - habe gerade mal die offizielle Doku gelesen :

                                      6db969e0-ba60-4356-8051-5cb00c793f38-image.png

                                      Also ist der 2. Parameter nicht der Offset - ist aber auch kein String oder eine Zahl sondern ein Date Objekt.

                                      Sprich wenn Du einen Date-String hast musst erst ein Date Objekt generieren.

                                      Und die 19 kommen raus, weil heute der 19. ist:

                                      afceec6a-bf43-412b-abe3-f3d41ff949ff-image.png

                                      Das ist damit klar - mit dem Skript sollte wirklich die Nacht von morgen rauskommen. In einem Date-Objekt ohne Parameter wird ja immer das aktuelle Datum genommen

                                      var today = new Date();
                                      var tomorrow = today.setDate(today.getDate()+1);
                                      var tomorrowNight = getAstroDate("night", tomorrow);
                                      

                                      Also wird das Date Objekt mit set Date und einem Integer das Datumsobjekt auf den Tag des aktuellen Monats gesetzt:

                                      Wenn ich mir hier die Beispiele ansehen:

                                      a21a794b-8a76-4ddf-b808-ace480bc454b-image.png

                                      dann ist

                                      tomorrow = today.setDate(today.getDate()+1); gleich tomorrow = today.setDate(20); Somit hast Du in tomorrow das date Object von morgen.

                                      und dann müsste es eigentlich passen, dass Du mit der astro Funktion den Sonnenaufgang von morgen bekommst.

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      1 Reply Last reply
                                      0
                                      • D diwoma

                                        Hi,
                                        ich habe Probleme, die Astro-Zeiten 'sunrise' und 'sunset' richtig zu interpretieren 😞

                                        Ich habe nach einem Skript im Forum die Zeiten auf mehrere Datenpunkte geschrieben:

                                        /* System Tageszeiten
                                           ------------------
                                        */
                                        
                                        // Variablen erstellen
                                        var folder = '0_userdata.0.Zeiten';
                                        var idSunriseToday = folder+'.SunriseToday';
                                        var idSunsetToday = folder+'.SunsetToday';
                                        var idSunriseTomorrow = folder+'.SunriseTomorrow';
                                        var idSunsetTomorrow = folder+'.SunsetTomorrow';
                                        
                                        createState(idSunriseToday, { name: 'Sonnenaufgang heute', desc: 'sunrise today'});
                                        createState(idSunsetToday, { name: 'Sonnenuntergang heute', desc: 'sunset today'});
                                        
                                        createState(idSunriseTomorrow, { name: 'Sonnenaufgang morgen', desc: 'sunrise tomorrow'});
                                        createState(idSunsetTomorrow, { name: 'Sonnenuntergang morgen', desc: 'sunset tomorrow'});
                                        
                                        
                                        function zeiten_speichern () {
                                        
                                            var timestamp;
                                            var date = new Date();
                                            var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getDate();
                                            var tomorrow = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1).getDate();
                                        
                                            log('date    :' + date.toString());
                                            log('today   :' + today.toString());
                                            log('tomorrow:' + tomorrow.toString());
                                            
                                            timestamp = getAstroDate('sunrise', today);
                                            setState(idSunriseToday, timestamp.toLocaleTimeString());
                                            timestamp = getAstroDate('sunset', today);
                                            setState(idSunsetToday, timestamp.toLocaleTimeString());
                                        
                                            timestamp = getAstroDate('sunrise', tomorrow);
                                            setState(idSunriseTomorrow, timestamp.toLocaleTimeString());
                                            timestamp = getAstroDate('sunset', tomorrow);
                                            setState(idSunsetTomorrow, timestamp.toLocaleTimeString());
                                        }
                                        zeiten_speichern();
                                        
                                        // Check Every Day
                                        schedule("1 0 * * *", function () { zeiten_speichern();});
                                        
                                        

                                        Das ergab eine Ausgabe von:
                                        SunriseToday: 7:44:42 AM

                                        Dann habe ich ein Blockly-Script, dass ein Licht bei Sunrise ausschaltet:

                                        // Nachtlicht ausschalten
                                        schedule({astro: "sunrise", shift: 0}, async function () {
                                          setState("linkeddevices.0.Vorzimmer.Nachtlicht.POWER"/*Vorzimmer Nachtlicht POWER*/, 0);
                                          console.log('Nachtlicht ausgeschaltet');
                                        });
                                        
                                        

                                        Das hat aber heute schon um 2021-11-19 07:08:13.054 geschaltet

                                        Abgesehen von der amerikanischen Stringausgabe (wobei ich noch nicht sagen kann, warum das nicht lokalisiert ist) sind die Zeiten doch einigermaßen unterschiedlich.
                                        Ist die Abfrage des 'sunrise' im Skrpt falsch oder verwendet der Trigger ein anderes 'sunrise'?
                                        Geo-Koordinaten sind von System aus richtig eingestellt und werden vom Javascript-Adapter übernommen. Selbst bei direkter Zuordnung der Koordinaten im Adapter bleiben die Werte gleich.
                                        System-Zeit ist auch korrekt (MEZ)

                                        Und was mir auch noch etwas komisch vorkommt, die Funktion getAstroDate('sunrise', today) erwartet einen numerischen Wert als Parameter, das ist in diesem Fall der Tag (heute eben 19). Warum nicht das Datum?

                                        Wo liegt da mein Fehler?

                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        wrote on last edited by
                                        #19

                                        @diwoma sagte in Astro-Zeiten unterschiedlich:

                                        Und was mir auch noch etwas komisch vorkommt, die Funktion getAstroDate('sunrise', today) erwartet einen numerischen Wert als Parameter, das ist in diesem Fall der Tag (heute eben 19). Warum nicht das Datum?

                                        Somit ist diese Aussage in Deinem Eingangspost verkehrt.

                                        Es wird nicht ein numerischer Wert, sondern ein Datumsobjekt erwartet. Nur mit der Methode dateObj.setDate(Integer) - kannst Du das Date- Objekt auf einen anderes Datum setzen, dass Du dann der Astro Funktion übergibst.

                                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                        1 Reply Last reply
                                        0
                                        • D Offline
                                          D Offline
                                          diwoma
                                          wrote on last edited by diwoma
                                          #20

                                          @mickym
                                          Ach du Sch...e 😬

                                          Da muss was in der Definition der Funktion falsch sein. Wenn ich ein Datum übergebe ist der Parameter rot unterwellt, weil er der Intellisense nach ein numeric haben will. Aber es ist doch ein Datum und damit geht es.

                                          War zwar etwas langsamer als Du, weil ich inzwischen herumprobiert habe, aber so ist mein Code:

                                          var timestamp;
                                                  var today = new Date();
                                                  var tomorrow = today.setDate(today.getDate()+1);
                                              
                                                  log('date    :' + today.toString());
                                                  log('tomorrow:' + tomorrow.toString());
                                                  
                                                  timestamp = getAstroDate('sunrise');
                                                  setState(idSunriseToday, timestamp.toLocaleTimeString());
                                                  timestamp = getAstroDate('sunset');
                                                  setState(idSunsetToday, timestamp.toLocaleTimeString());
                                              
                                                  timestamp = getAstroDate('sunrise', tomorrow);
                                                  setState(idSunriseTomorrow, timestamp.toLocaleTimeString());
                                                  timestamp = getAstroDate('sunset', tomorrow);
                                                  setState(idSunsetTomorrow, timestamp.toLocaleTimeString());
                                          

                                          Vielen Dank für die Hilfe.

                                          -- diwoma

                                          ioBroker in LX-Container in Proxmox
                                          Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                                          mickymM 1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          635

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe