Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. isAstroDay=true trotz "sunset"

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    isAstroDay=true trotz "sunset"

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

      Re: [gelöst]Astro abhängig schedule verändern

      Grüß euch,

      ich rufe bei "sunrise" und bei "sunset" ein Script auf, in dem ich nochmals validiere, ob isAstroDay() true od. false ist. Nun habe ich bemerkt, dass bei Sonnenuntergang (sunset) isAstroDay()=true zurückliefert. Kann sein, dass sich hier um ein paar Millisekunden die Zeiten überschneiden, weshalb isAstroDay() kurzzeitig noch true sein kann?

      const setSchedule = async function () {
          if (isAstroDay()) {
              // Do something
          } else {
              // Do something
          })
      }
      
      schedule({ astro: "sunrise", shift: 0 }, setSchedule);
      schedule({ astro: "sunset", shift: 0 }, setSchedule);
      

      LG
      Stephan

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

        @stephan80 sagte: bemerkt, dass bei Sonnenuntergang (sunset) isAstroDay()=true zurückliefert.

        Das kann ich nicht bestätigen. In meinem Testskript

        var timer = null;
        schedule({ astro: "sunset", shift: 0 }, function() {
            if(isAstroDay()) {
                log('Astroday: true');
                timer = setInterval(function() {
                    if(!isAstroDay()) {
                        log('Astroday: false');
                        clearInterval(timer);
                    }
                }, 100);
            } else log('SU: false');
        });
        

        liefert isAstroDay() false im Sunset-Trigger.

        18:34:21.797	info	javascript.0 (16976) script.js.common.Neuer_Test: SU: false
        

        In der Praxis wird man nicht beides zusammen anwenden.

        const setSchedule = async function (hell) {
            if (hell) {
                // Do something
            } else {
                // Do something
            })
        }
         
        schedule({ astro: "sunrise", shift: 0 }, function() {
            setSchedule(true);
        });
        schedule({ astro: "sunset", shift: 0 }, function() {
            setSchedule(false);
        });
        
        1 Reply Last reply Reply Quote 0
        • S
          Stephan80 last edited by

          @paul53 Danke für den Hinweis. Das ist eine weitaus schönere Lösung! Habe ich soeben übernommen und warte nun auf sunset 🙂

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

          Support us

          ioBroker
          Community Adapters
          Donate

          714
          Online

          31.7k
          Users

          79.8k
          Topics

          1.3m
          Posts

          2
          3
          195
          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