Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonnenaufgang nur beim init berechnet

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

    Sonnenaufgang nur beim init berechnet

    Hallo Zusammen,

    habe hier im Forum vor einiger Zeit mal eine Item.config gefunden, die die Sonnenauf-/untergang Zeitpunkte berechnet und der VISU zur Verfügung stellt. jetzt ist mir aufgefallen, dass die Werte nur jeweils zum start des smarthome.py berechnet werden und dannach nicht erneut aktualisiert werden. Habe die config der Items mehrfach überprüft, finde den Fehler einfach nicht. Vielleicht kann mir ja einer von euch weiter helfen.

    Hier der Eintrag aus der items.yaml:

    Code:
    %YAML 1.1
    ---
    
    system:
    
        datum_uhrzeit:
    
            sonne:
    
                berechnung:
                    type: bool
                    visu_acl: rw
                    enforce_updates: 'true'
                    crontab:
                      - init
                      - 0 1 * *
    
                aufgang:
                    type: foo
                    visu_acl: rw
                    eval: sh.sun.rise().astimezone(sh.tzinfo()).strftime('%H :%M')
                    eval_trigger: system.datum_uhrzeit.sonne.berechnung
                    enforce_updates: 'true'
    
                untergang:
                    type: foo
                    visu_acl: rw
                    eval: "sh.sun.set().astimezone(sh.tzinfo()).strftime('%H: %M')"
                    eval_trigger: system.datum_uhrzeit.sonne.berechnung
                    enforce_updates: 'true'
    
                position:
                    type: num
                    visu_acl: rw
                    eval: sh.sun.pos()
                    eval_trigger: system.datum_uhrzeit.sonne.berechnung
                    enforce_updates: 'true'
    Danke schonmal für eure Hilfe,

    Dominik
    Zuletzt geändert von bmx; 17.04.2020, 19:02. Grund: Änderung ins neue *.yaml Format

    #2
    die '()' hinter dem eval_trigger jeweils weg

    Kommentar


      #3
      Danke, obs funktioniert werde ich morgen früh sehen, wenn sich die Werte in der VISU verändert haben.

      Kommentar


        #4
        Hallo Dominik,

        nimm einfach env.location.sunset/sunrise dort stehen immer die aktuellen Werte des nächsten Sonnenunter bzw. Aufgangs drin.

        Bis bald

        Marcus

        Kommentar


          #5
          Hallo Zusammen,

          hab das hier

          Zitat von Robert Beitrag anzeigen
          die '()' hinter dem eval_trigger jeweils weg
          mal ausprobiert, jedoch habe ich in smartVISU heute morgen immernoch die gleichen Werte vorgefunden wie gestern morgen.
          Wenn ich smarthome.py 1.0 dann neu starte habe bekomme ich direkt die neuen richtigen Werte angezeigt.

          meine Aktuelle config sieht folgendermassen aus:

          in smartVISU in der index.html:

          <div class="day">
          <div>sun rize</div>
          <img src="lib/weather/pics/sun_up.png" width="51"/>
          <div>{{ basic.value('sonnenaufgang', 'system.datum_uhrzeit.sonne.aufgang') }}</div>
          </div>

          in smarthome.py in der items.yaml:

          Code:
          %YAML 1.1
          ---
          
          system:
          
              datum_uhrzeit:
          
                  sonne:
          
                      berechnung:
                          type: bool
                          visu_acl: rw
                          enforce_updates: 'true'
                          crontab:
                            - init
                            - 0 1 * *
          
                      aufgang:
                          type: foo
                          visu_acl: rw
                          eval: sh.sun.rise().astimezone(sh.tzinfo()).strftime('%H :%M')
                          eval_trigger: system.datum_uhrzeit.sonne.berechnung
                          enforce_updates: 'true'
          
                      untergang:
                          type: foo
                          visu_acl: rw
                          eval: "sh.sun.set().astimezone(sh.tzinfo()).strftime('%H: %M')"
                          eval_trigger: system.datum_uhrzeit.sonne.berechnung
                          enforce_updates: 'true'
          
                      position:
                          type: num
                          visu_acl: rw
                          eval: sh.sun.pos()
                          eval_trigger: system.datum_uhrzeit.sonne.berechnung
                          enforce_updates: 'true'
          analog zum SunSet/SunRize zeige ich auch die MoonSet/MonRize und MoonLight an. Die werden ebenfalls nicht aktualisiert.

          Danke nochmal für Eure Hilfe,

          Dominik
          Zuletzt geändert von bmx; 17.04.2020, 19:04. Grund: Änderung von conf in yaml

          Kommentar


            #6
            Hi!

            Dann weiß ich leider auch gerade nicht weiter. Bzw. du müsstest gucken, ob das "Berechnung"-Items auch wirklich immer um 1 Uhr nachts getriggert wird. Dann würde mir nur noch ein Bug mit dem Handling der Zeitzonen einfallen. Vielleicht mal auf 3 Uhr stellen?

            Zudem: Wie Marcus sagte gibt es die von dir gewünschten Infos mittlerweile automatisch.

            GRüße
            Robert

            Kommentar


              #7
              irgendwas scheint am Triggern der Logic/Berechnung nicht zu stimmen, in den logs konnte ich keinen Nachweiss finden, dass die Logic überhaupt jemals nach dem start nochmals getriggert wurde.

              Gelöst habe ich nun das Problem der Art, dass ich mir in der items.conf zwar die Items für SunRise, SunSet, MoonRise, MoonSet, MoonLight und MoonPhase definiert habe, aber deren berechnung nicht in der items.conf durchführe. Stattdessen habe ich eine eigene logic erstellt in logic.conf, die die einzelnen Items regelmässig updatet. Dies funktioniert wunderbar.

              Danke trotzdem für eure Tips.

              Kommentar


                #8
                Wie schaffe ich es den die Werte sunrise/sunset umzuformatieren? Wo muss das strftime("%H:%M") hin? Geht das ohne zusätzliche Items?

                Wenn ich es so versuche:
                <img src="lib/weather/pics/sun_up.png" class="sunIcon" width="50px", height="32px"/> {{ basic.value('sonnenaufgang', 'env.location.sunrise') }}
                Bekomme ich folgendes Format 2013-11-29T08:12:23.171678+01:00 angezeigt..

                Kommentar


                  #9
                  Zitat von jaykay Beitrag anzeigen
                  Wie schaffe ich es den die Werte sunrise/sunset umzuformatieren? Wo muss das strftime("%H:%M") hin? Geht das ohne zusätzliche Items?
                  nimm basic.formula:

                  {{ basic.formula('sonnenaufgang', 'env.location.sunrise', 'time') }}

                  bye
                  Rhaegar

                  Kommentar

                  Lädt...
                  X