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. [Implementiert - 1.0.6] getAstroDate(), isAstroDay

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[Implementiert - 1.0.6] getAstroDate(), isAstroDay

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 3 Kommentatoren 2.2k Aufrufe
  • Ä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.
  • V Offline
    V Offline
    vegetto
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • V Offline
      V Offline
      vegetto
      schrieb am zuletzt editiert von
      #2

      BlueFox hat mein Pull Request gerade integriert.

      Vielen Dank!

      1 Antwort Letzte Antwort
      0
      • F Offline
        F Offline
        fuchs1978
        schrieb am zuletzt editiert von
        #3

        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 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

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

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • F Offline
            F Offline
            fuchs1978
            schrieb am zuletzt editiert von
            #5

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

            534

            Online

            32.6k

            Benutzer

            82.1k

            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