Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    getAstro date verschieben

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

      Hallo,
      kann man das Ergebnis einer getAstroDate funktion irgendwie verschieben?

      So steht es ja in der Dóku:

      getAstroDate(pattern, date);
      

      Aber wenn ich bspw. das hier eintrage:

      let actualDawn2 = getAstroDate({astro:"dawn",shift:10}).toLocaleTimeString();
      

      Dann bekomme ich die Fehlermeldung, dass der Ausdruck:

      {astro:"dawn",shift:10}
      

      nicht dem type string entspricht.

      arteck 1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @Ben1983 last edited by arteck

        @ben1983 sagte in getAstro date verschieben:

        {astro:"dawn",shift:10}

        wie kommst du dadrauf dass du ein json übergeben musst ? und wo ist dein Date ..wenn schon...

        var datum= new Date();
        var nacht= today.setDate(datum.getDate() + 1);
        var morgenNacht = getAstroDate("night", nacht);
        

        würde ich mal behaupten

        Ben1983 1 Reply Last reply Reply Quote 0
        • Ben1983
          Ben1983 @arteck last edited by

          @arteck So stehts in der doku:

          let sunriseEnd = getAstroDate("sunriseEnd");
          

          Denke wennd das date heute ist, ist es nicht notwendig.
          Aber mir gehts darum, dass ich das ergebnis einfach 10 min verschieben kann.

          Hintergrund ich möchte etwas nur anschalten, wenn die aktuelle Zeit den geschifteten Wert vor dem "dawn" liegt.

          JohGre 1 Reply Last reply Reply Quote 0
          • JohGre
            JohGre @Ben1983 last edited by

            @ben1983 sagte in getAstro date verschieben:

            Aber mir gehts darum, dass ich das ergebnis einfach 10 min verschieben kann.

            Ich machs so.

            schedule({astro: "sunset", shift: 10}, function () { //(Sonnenuntergang) sunset (Sonnenuntergang).........................: 18:08:47
                if (IsWinter()) {
                    log('Night is true: sunset');
                    setState("0_userdata.0.astro.night", true);
                }
            });
            
            Ben1983 3 Replies Last reply Reply Quote 0
            • Ben1983
              Ben1983 @JohGre last edited by

              @johgre Danke für die Info, aber ich möchte ja keine Astro schedule erzeugen,
              sondern in einer zeit gesteuerten das ganze abfangen:

              1. um 05:00 Uhr soll etwas aktiviert werden (wenn dawn nicht vor 05:10 Uhr liegt => deshalb aktuelle zeit + 10

              2. mit dawn soll deaktiviert werden.

              3. mit dusk aktiviert

              4. um 23:59 deaktiviert

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

                @johgre Also mir würde es ja auch schon reichen, wenn ich die aktuelle Zeit schieben könnte.

                Dann könnte ich vergleichen, ob die aktuelle (+offset) <= "dawn" ist und somit wäre "dawn" mindestens den offset größer

                1 Reply Last reply Reply Quote 0
                • Ben1983
                  Ben1983 @JohGre last edited by

                  @johgre Habe es raus bekommen, geht so:

                  let actualTime1 = new Date();
                  actualTime1.setMinutes(actualTime1.getMinutes() + 10);
                  
                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Ben1983 last edited by

                    @ben1983 sagte: um 05:00 Uhr soll etwas aktiviert werden (wenn dawn nicht vor 05:10 Uhr liegt

                    schedule('0 5 * * *', function() {
                        if(getAstroDate('dawn').getTime() > Date.now() + 600000) {
                            // Aktion
                        };
                    });
                    
                    Ben1983 1 Reply Last reply Reply Quote 0
                    • Ben1983
                      Ben1983 @paul53 last edited by

                      @paul53 sagte in getAstro date verschieben:

                      600000

                      Danke. TOP

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      795
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

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