Ankündigung

Einklappen
Keine Ankündigung bisher.

Berechnung Sonnenparameter

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Berechnung Sonnenparameter

    Hallo zusammen,

    ich bin immer noch auf der Suche nach einer Möglichkeit die diversen Informationen über die Sonne (Azimt, Höhe, Aufgang, etc) zu berechnen.

    In MH verwende ich ein Script, welches (glaube ich) von Ralf (RaK) geschrieben wurde und habe auch eines für openHAB von ihm gefunden. Jedoch liefern diese Scripte unterschiedliche Ergebnisse?!

    Auch habe ich unter anderem das folgende Script gefunden
    https://groups.google.com/forum/#!to...Mq0/discussion

    Die liefert die bisher genauesten Ergebnisse im Vergleich zu: Sonnenaufgang und Sonnenuntergang Zeiten Mettmann, Januar 2013

    Evtl. ist diese Seite aber auch nicht genau??

    Das eigentliche Problem habe ich mit dem oben verlinktem Script heute Nacht nach dem Tageswechsel gahabt. Dort wurden mir negative Uhrzeiten gemeldet?? (siehe Anhang) Auch ein Neustart hatte hier keinen Erfolg. Nachdem ich das Script gerade gestartet habe, wurde wieder ein richtiger Wert berechnet?? Jedoch scheint auch die Umwandlung der Zahlen nicht ganz zu passen (siehe Bild)

    Wie berechnet Ihr denn z.B. die Sonnen und auch Mondinformationen?? Und woran könnte der Fehler im Script liegen??

    VG
    Joerg
    Angehängte Dateien

    #2
    Das Script verwende ich in leicht abgewandelter Form selbst. Die Genauigkeit liegt innerhalb weniger Minuten, für die Hausautomatisierung also völlig ausreichend. Da spielen andere Effekte eine größere Rolle.

    Der Fehler nach Mitternacht liegt an der Berechnung der Zeitdifferenz zu GMT. Das hab ich folgendermaßen geändert:

    var localgmtdiff = local_time.get(java::util::Calendar::ZONE_OFFSET)/3600000

    Etwas genauere Formeln gibt es auf der im Skript genannten Seite ABC der Astronomie Die hab ich mal in C umgesetzt und nutze sie vor allem zur Berechnug von Mondauf- und Untergang sowie Phase. Für eine openHAB Regel sind sie etwas zu unhandlich. Daher kann ich aber auch sagen, dass die Genauigkeit der Regel vollkommen OK ist!

    Kommentar


      #3
      Ich korrigiere mich mal selbst:

      Code:
      var localgmtdiff = local_time.get(java::util::Calendar::ZONE_OFFSET)/3600000
      Sollte besser lauten:

      Code:
      var localgmtdiff                = (local_time.get(java::util::Calendar::ZONE_OFFSET) + local_time.get(java::util::Calendar::DST_OFFSET))/3600000
      Sonst wird die Sommerzeit nicht richtig berücksichtigt!

      Kommentar


        #4
        Dankeschön für die tolle Regel.

        Hat einer von euch denn das Format für die Minuten sauber bekommen?
        Bei mir wird z.B. Sunrise_Time mit "20:8 Uhr" gefüllt - ich denke, dass "20:08 Uhr" gemeint ist

        Danke & Grüße
        Sascha

        Kommentar


          #5
          Ja, bei mir gibt es eine führende Null, gerade noch mal beim Sonnenaufgang überprüft.

          Ich habe es folgendermaßen gelöst:

          Items:
          Code:
          DateTime   Sunrise  "Sonnenaufgang [%1$tR]"       <sun>		(gSun)
          Sitemap:
          Code:
          Text item=Sunrise
          In der Regel dann
          Code:
          var DateString = year + "-" + month + "-" + day +"T"+ sunriseHours +":" + sunriseMinutes + ":00" 
          postUpdate(Sunrise, new DateTimeType(DateString))
          Den Rest entsprechend

          Kommentar


            #6
            Hallo zusammen,

            die oben verlinkte Rule auf Google Groups enthält einen Fehler:

            Bei der Berechnung der Dämmerungen (Sun_DawnTwilight_Xyz) wird jeweils ein positiver Wert für den Vergleich benutzt. Das ist falsch, denn es müssen negative Werte sein, da die Sonne für die unterschiedlichen Dämmerungen unter dem Horizont stehen muss und nicht darüber.

            Richtig müsste es also heißen:

            Code:
            postUpdate(Sun_DawnTwilight_Solar,            if( height < 0  ) {ON} else {OFF})
            postUpdate(Sun_DawnTwilight_Civil,            if( height < -6  ) {ON} else {OFF})
            postUpdate(Sun_DawnTwilight_Nautical,         if( height < -12 ) {ON} else {OFF})
            postUpdate(Sun_DawnTwilight_Astronomical,     if( height < -18 ) {ON} else {OFF})
            Inzwischen benutze ich aber das neue Astro-Binding. Dieses habe ich um eine kleine Rule erweitert, das mir genau die obigen Dämmerungen berechnet.

            Gruß,
            Martin

            Kommentar


              #7
              Ja, das stimmt. Es ist auch falsch, dass die Phasen gleichzeitig aktiv sind, eigentlich enden sie mit dem Begin der Nachfolgenden, außerdem fehlt die entsprechende Berechnung für die Abenddämmerung.

              In der Praxis verwende ich aber eh einen eigenen Wert für den Sonnenstand auf den ich triggere, die übrigen Größen nehme ich nur zur Information

              Hier hab ich die von mir modifizierte Regel gepostet, die korrigiert außerdem noch die Ermittlung der Zeiten.

              Kommentar

              Lädt...
              X