Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Problem mit getAstroDate - Fehler in suncalc?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Problem mit getAstroDate - Fehler in suncalc?

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

      Ich habe gerade ein Problem bei der Berechnung der Astro-Zeitpunkte festgestellt.

      IMHO wird die Referenzzeit, die übergeben wird als UTC behandelt und nicht als lokale Zeit.

      Entsprechend wird bei einer Referenzzeit vor (zur Zeit) 1:00h der Astrozeitpunkt (hier: dawn, also Beginn der bürgerlichen Dämmerung) für den Vortag berechnet.

      Kurzes Testprogramm:

      var now = new Date ("2017-11-25 00:05");
      var utctest = new Date ("2017-11-25 01:00");
      var today = new Date ("2017-11-25 12:00");
      
      var dawn1 = getAstroDate("dawn",now);
      var dawnutc = getAstroDate ("dawn",utctest);
      var dawn2 = getAstroDate("dawn",today);
      
      log(formatDate(dawn1,"DD.MM hh:mm"));
      log(formatDate(dawnutc,"DD.MM hh:mm"));
      log(formatDate(dawn2,"DD.MM hh:mm"));
      
      

      Ich berechne also den Beginn der bürgerlichen Dämmerung am 25.11. mit den Referenzzeiten 00:05, 01:00 und 12:00.

      Erwarten würde ich bei allen dreien das gleiche Ergebnis. Das ist aber nicht so.

      09:17:48.991	[info]	javascript.0 script.js.Steuerung.testzeugs: 24.11 06:59
      09:17:48.991	[info]	javascript.0 script.js.Steuerung.testzeugs: 25.11 07:00
      09:17:48.991	[info]	javascript.0 script.js.Steuerung.testzeugs: 25.11 07:00
      
      

      Bei der Referenzzeit 00:05 wird also der Zeitpunkt des VORTAGs berechnet.

      Nun möchte ich aber um 00:05 den Offset bis zur bürgerlichen Dämmerung berechnen (der dann negativ wird :().

      Ich hab dann probiert, das mit dem "suncalc" Modul direkt zu machen (require("suncalc") etc…) - gleicher Effekt, also liegt da wohl der Hund begraben.

      ===

      Ergänzung:

      Beim suncalc modul ist auf github dazu auch ein Issue erfasst:

      https://github.com/mourner/suncalc/issues/107

      ===

      Workaround:

      var now = new Date ("2017-11-25 00:05");
      var reftime = new Date(now);
      reftime.setHours(12,0,0,0);
      
      var dawn1 = getAstroDate("dawn",now);
      var dawn2 = getAstroDate ("dawn",reftime);
      
      log(formatDate(dawn1,"DD.MM hh:mm"));
      log(formatDate(dawn2,"DD.MM hh:mm"));
      
      

      also Zeit kopieren und "gnadenlos" auf Mittag stellen …

      Vielleicht sparts mal jemand die Fehlersuche 🙂

      CU

      Werner

      ianvonseggern1 created this issue in mourner/suncalc

      open getTimes off by a day #107

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

      Support us

      ioBroker
      Community Adapters
      Donate

      789
      Online

      31.7k
      Users

      79.8k
      Topics

      1.3m
      Posts

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