Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Implementiert - 1.0.6] getAstroDate(), isAstroDay

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Implementiert - 1.0.6] getAstroDate(), isAstroDay

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

      Hallo,

      ich weiss, wie ich astro für on und schedule benutzen kann aber geht es auch direkt?

      Ich würde gerne so etwas machen:

      on(myObject, cb(function(obj){
        if (obj.newState.val) {
           if (IS ASTRO DAY)
             //Do something
           else
             //Do something else
        }
      }));
      
      

      ich habe im source code von dem javascript Adaptor angeschaut, wie astro implementiert ist:

      var ts = mods.suncalc.getTimes(nowdate, adapter.config.latitude, adapter.config.longitude)[pattern.astro];
      
      

      So ich würde die folgende Erweiterung für javascript.js empfohlen:

      getAstroDate: function(pattern, date){
      
          if (date === undefined)
              date = new Date();
      
          if (adapter.config.latitude === undefined || adapter.config.longitude === undefined) {
              adapter.log.error('Longitude or latitude does not set. Cannot use astro.');
              return;
          }
      
          var ts = mods.suncalc.getTimes(date, adapter.config.latitude, adapter.config.longitude)[pattern];
      
          if (ts === undefined || ts.getTime().toString() === 'NaN') {
              adapter.log.error('Cannot get astro date for '+pattern);
          }
      
          return ts;
      },
      
      isAstroDay: function(){
          var nowdate  = new Date();
          var dayBegin = sandbox.getAstroDate("sunrise");
          var dayEnd   = sandbox.getAstroDate("sunset");
          if (dayBegin === undefined || dayEnd === undefined)
              return;
      
          return (nowdate >= dayBegin && nowdate <= dayEnd);
      },
      
      

      Ich habe es bei mir eingebaut und es funktioniert. 🙂

      @Bluefox: sind git pull request gewünscht oder möchtest Du lieber die Vorschlage selber umschreiben?

      1 Reply Last reply Reply Quote 0
      • V
        vegetto last edited by

        BlueFox hat mein Pull Request gerade integriert.

        Vielen Dank!

        1 Reply Last reply Reply Quote 0
        • F
          fuchs1978 last edited by

          Kein Frage zu der Funktion. Ich habe mir die Astro Funktion eingebaut, habe im Log aber folgenden Fehler:

          Longitude or latitude does not set. Cannot use astro.

          Dabei habe ich bei den Adapter unter Einstellung Breit und Länge eingetragen. 52.xxx für Breite und 9.xxx für Länge. Statt xxx natürlich die genauen Koordinaten. Muss ich . oder , nehmen, sind die Nachkommastellen beschränkt?

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

            @fuchs1978:

            Muss ich . oder , nehmen, sind die Nachkommastellen beschränkt? So, wie in den Einstellungen der JS-Instanz ganz unten steht: > Benutze das Format mit 49.1245 und nicht 49°34'0", sonst es wird automatisch umgerechnet `

            1 Reply Last reply Reply Quote 0
            • F
              fuchs1978 last edited by

              Nicht in den allgemeinen Einstellungen? Wo meinst du bei JS?

              Ich habe es wie folgt eingestellt, aber immer noch :

              javascript.0 2017-08-08 20:22:14.643 error Longitude or latitude does not set. Cannot use astro.

              Nachtrag: Ich habe den Haken deaktiviert "aus den Systemsetting" und direkt eingetragen. Jetzt habe ich keinen Fehler mehr.

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

              Support us

              ioBroker
              Community Adapters
              Donate

              733
              Online

              31.7k
              Users

              79.8k
              Topics

              1.3m
              Posts

              3
              5
              2052
              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