Ankündigung

Einklappen
Keine Ankündigung bisher.

Supportthread für UZSU Plugin

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

    Kann das Problem nachvollziehen. Müsste eigentlich seit ewig bestehen. Mal sehen, welche Lösung wir dazu finden. Melde mich demnächst wieder..

    Kommentar


      Zitat von Onkelandy Beitrag anzeigen
      Müsste eigentlich seit ewig bestehen.
      Ich glaube nicht, da meine Einträge seit Jahren unverändert sind, das Problem aber erst in dieser Saison aufgetreten ist.

      Zitat von Onkelandy Beitrag anzeigen
      welche Lösung wir dazu finden
      Lass mich wissen, wenn ich was tun kann.

      Danke dir!

      Kommentar


        ich habe das auf einem System mit shNG v1.9.5 getestet. Es scheinen 2 Fehler zu sein:
        • Bei einem negativen Winkel-Wert wird die entsprechende Zeitspanne auf den sunset-Wert addiert. Nach meinem Verständnis müsste sie subtrahiert werden. Dieser Fehler ist möglicherweise schon alt.
        • Wenn der obere Grenzwert bei der Umrechnung überschritten wird, begrenzt v1.9.5 den errechneten Wert korrekt (im Beispiel auf 22:00 Uhr). Hier muss sich in einer späteren Version ein zusätzlicher Fehler eingeschlichen haben, nämlich dass der falsche Grenzwert - im Beispiel der untere - herangezogen wird.
        Gruß
        Wolfram

        EDIT:
        Über das Vorzeichen kann man sich streiten. Wenn man dies rein nach dem Sonnenwinkel sieht, muss sunset-10" später als sunset sein. Also lassen wir das mal so, um keine breaking changes für die Anwender zu verursachen.

        Der zweite Fehler hat nach weiteren Tests mit dem oberen Grenzwert nichts zu tun. Wenn ich den auf 23:00 Uhr erhöhe oder sogar ganz weglasse, zieht das das Plugin in v1.11 trotzdem den unteren Grenzwert. Lasse ich diesen auch weg, passiert folgendes:
        • bei -9° und -10" rechnet das Plugin ziemlich lange und es kommt dann jeweils ein falscher Wert heraus (heute 21:58, wobei 22:05 und 22:13 Uhr richtig wären.
        • -8° rechnet das Plugin deutlich kürzer und es kommt der Wert 21:56 Uhr heraus
        Im Log finde ich noch nicht, ob das Plugin auf einen Fehler läuft. Das Verhalten legt das aber nahe.
        Zuletzt geändert von wvhn; 17.05.2025, 19:01.

        Kommentar


          Zitat von wvhn Beitrag anzeigen
          Bei einem negativen Winkel-Wert wird die entsprechende Zeitspanne auf den sunset-Wert addiert. Nach meinem Verständnis müsste sie subtrahiert werden. Dieser Fehler ist möglicherweise schon alt.
          Das ist aus meiner Sicht korrekt, denn es wird immer der Winkel in Relation zum Horizont angegeben. Sprich bei negativen Winkeln steht die Sonne unter dem Horizont und das ist später als sunset.
          Oder?

          Gruß
          Michael

          Kommentar


            Ja, ich denke auch. Siehe mein EDIT oben. Das hat sich mit Deiner Antwort überschnitten, weil ich die Sonnenstände noch mit einem Online-Tool nachgerechnet habe.

            Gruß
            Wolfram

            Kommentar


              Ein Downgrade von ephem auf Version 3.7.7.1 (gleich wie in meiner shNG v1.9.5 Installation) beseitigt das Problem. Ob auch neuere Versionen gehen, habe ich nicht getestet.

              Sicher kann das nicht die Lösung sein, weil man sich andere Probleme mit dem Downgrade einhandeln kann. Aber jetzt wissen wir, wo wir suchen müssen.

              Gruß
              Wolfram

              Kommentar


                Das sind sehr sonderbare Phänomene..
                Ich hab mal versucht, die Berechnung vom Sonnenuntergang zu verfolgen, letztlich hängt es an dieser Zeile in orb.py in der "set" Methode:
                observer.date = dt - dt.utcoffset() - dateutil.relativedelta.relativedelta(minutes=moff)

                Aus meiner Sicht muss es so heißen
                observer.date = dt - dateutil.relativedelta.relativedelta(minutes=moff)
                Was das sonst alles für Folgen nach sich zieht, ist mir noch unklar, insofern wäre dieser Quickfix mit Vorsicht zu genießen.

                Tatsache ist jedenfalls, dass durch diese Zeile der Sonnenuntergang des Vortags eruiert wird, weil observer.date nicht mehr Mitternacht, sondern 20:00 Uhr wird (Mitternacht UTC+2:00 wird zuerst auf 22:00 Uhr UTC gewandelt, dann werden noch 2 Stunden abgezogen). Und dann ist das Ergebnis immer jünger als der erste Threshold. Also 9.5. 22:30 Uhr ist früher als 10.5. 17:30 -> calculated Uhrzeit wird 17:30.
                Zuletzt geändert von Onkelandy; 18.05.2025, 20:58. Grund: utcoffset() muss eigtl. raus..

                Kommentar


                  Das klingt sehr plausibel. Allerdings ist an dieser Stelle seit v1.9.2 nichts mehr geändert worden. Weshalb tritt der Fehler dann mit shNG v1.9.5 und ephem v.3.7.7.1 nicht auf?

                  Kommentar


                    Problem gefunden, siehe Changelog von pyephem: Version 4.1.1 (2021 November 27)
                    • When you provide PyEphem with a Python datetime that has a time zone attached, PyEphem now detects the time zone and converts the date and time to UTC automatically.
                    ​Demzufolge ist bei alten Versionen -utcoffset() korrekt, bei neuen nicht mehr. Da verschiebt es alles um 2 Stunden, daraus resultiert wohl auch der neu auftretende Fehler in der UZSU.

                    Kommentar


                      Also entweder im Code ein Abfrage der pyephem-Version einbauen oder die Requirements anpassen...?

                      Kommentar


                        Also die Requirements im Master erfordern ephem >= 4.2 und ich würde auf keinen Fall auf eine ältere Version zurückgehen wollen, also anpassen des Codes würde ich bevorzugen.

                        Kommentar


                          Ah, wenn da eh schon min. ephem 4.2 drin ist, ist ja prima. Dann müssen die -utcoffset() Sachen raus. Notfalls manuell, aber ich stell mal einen PR.

                          Kommentar


                            Ich finde die Konvertierung von lokaler Zeit in UTC für ephem und anschliessend zurück sollte lieber innerhalb SHNG passieren und nicht einfach automatisch von ephem.
                            Hat denn das UZSU Plugin eine naive datetime ohne Zeitzoneninfo wenn es sunset oder sunrise abfragt?

                            Kommentar


                              Ich glaube, bisher hat shng immer ohne Zeitzone gearbeitet, aber die neuen Methoden in datetime benötigen immer Zeitzonen. Die Anpassung erfolgt so, dass shng an die "lokale" Zeit die eingestellte Zeitzone als Angabe anfügt.

                              Kommentar


                                Hallo,

                                ich habe ein item angelegt und ein uzsu Struktur hinzugefügt.

                                Code:
                                treppenled2:
                                name: Treppenlicht
                                tasmota_topic: tasmota_942A20
                                tasmota_relay: 1
                                tasmota_attr: relay
                                enforce_updates: true
                                type: bool
                                sim: track
                                visu_acl: rw
                                struct: uzsu.child
                                Ich habe einen Ausschalttimer auf Sonnenuntergang + x Minuten gesetzt, spätestens aber 11:45pm. Leider wird die Lampe erst zu sunset + x Min ausgeschlaltet, bei einer anderen Uhr funktiniert dies wie gewünscht:

                                [spoiler]
                                Code:
                                [LIST][*]Dictionary {"interpolation": {"type": "none", "initialized": false, "interval": "5", "initage": "0", "itemtype": "bool"}, "list": [{"active": true, "rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU", "value": "1", "calculated": "21:30", "time": "sunset+60m<21:30"}, {"active": true, "rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU", "value": "0", "calculated": "01:26", "time": "sunset+240m<23:45"}], "active": true, "sunrise": "05:27", "sunset": "21:27", "plugin_version": "2.0.0", "SunCalculated": {"sunrise": {"TU": "05:28", "WE": "05:27", "TH": "05:26", "FR": "05:25", "SA": "05:25", "SU": "05:24", "MO": "05:23"}, "sunset": {"TU": "21:26", "WE": "21:27", "TH": "21:28", "FR": "21:30", "SA": "21:31", "SU": "21:32", "MO": "21:33"}}}[/LIST]​
                                [/spoiler]
                                Dort sollte doch unter "calculated" 11:45pm / 23:45 stehen.
                                Es sieht für mich so aus als ob "spätestens" nicht "vor" 01:26am gesehen wird, sondern als 23:45 am nächsten Tag.

                                Wie löse ich das?


                                SmartHomeNG Version:v1.10.0-master
                                SmartHomeNG Plugins Version:v1.10.0-master​

                                Kommentar

                                Lädt...
                                X