Ankündigung

Einklappen
Keine Ankündigung bisher.

Neue HA-Integration: Shadow Control

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

    Hallo Zusammen,

    ich werde den Code mit der Erklärung einstellen, sobald dieser komplett fertig ist.
    Und selbstverständlich mit Beschreibung etc. Wie sich das gehört.
    Scheint ja doch einige zu geben die den Baustein nutzen.

    Daher bis demnächst.

    Alex

    Kommentar


      Hallo miteinander

      Zitat von Triaalex Beitrag anzeigen
      Auf Basis des LBS 1445 für Edomi der Berechnung "Kurvenschwellenwert Sonnenschein" errechnet dies die notwendige Helligkeitsschwelle an Hand von 3 manuell konfigurierbaren Parametern.
      Das ist interessant. Den LBS kannte ich tatsächlich noch gar nicht aber das Problem haben wir hier auch. Wenn ich so drüber nachdenke, könnte ich das ja auch direkt in die Integration einbauen...
      Kind regards,
      Yves

      Kommentar


        Zitat von scw2wi Beitrag anzeigen
        oder sehe ich das falsch?
        Es gibt Leute die benutzen Home Assistant mit KNX ohne vorher Edomi benutzt zu haben. Werden immer mehr.

        Man kann es machen wie man will, aber wenn ich die Zeit Aufbringe das zu implementieren und hier zu veröffentlichen, dann kann ich auch einen Link zum Orignalthread mitgeben. Man will ja das es anderen hilft.



        Zitat von starwarsfan Beitrag anzeigen
        Hallo miteinander
        Das ist interessant. Den LBS kannte ich tatsächlich noch gar nicht aber das Problem haben wir hier auch. Wenn ich so drüber nachdenke, könnte ich das ja auch direkt in die Integration einbauen...

        Wäre schön, wenn man das optional machen könnte. Im original LBS wird der Brightness Threshold noch linear zwischen Winter und Sommer interpoliert.

        Code:
        function LB_LBSID_getDayBrightness($floor, $cap, $time)
        {
            if ($floor == $cap) {
                $brightness = $cap;
            } else {
                $diffDays = round((LB_LBSID_getNextDate() - $time) / 86400);
                LB_LBSID_debug(false, true, "Calculate Day Threshold: Next 21st of June is: " . date('d.m.Y', LB_LBSID_getNextDate()));
                LB_LBSID_debug(false, true, "Calculate Day Threshold: Today its: " . date('d.m.Y', $time));
                LB_LBSID_debug(false, true, "Calculate Day Threshold: Difference of days between these dates: $diffDays");
                $brightness = $floor + round(abs($diffDays - 183) * (($cap - $floor) / 183));
                LB_LBSID_debug(false, true, "Calculate Day Threshold: Calculated result Day Threshold: $brightness");
            }
            return $brightness;
        }​
        Eventuell bitte an die denken, die nicht auf der Nordhalbkugel sind. Sommersonnenwende Nordhalbkugel =~ 21.6, Südhalbkugel=~21.12

        P.S.: Mit "Cap"[SIC] ist sicher "Ceiling" gemeint.
        Zuletzt geändert von dhb2002; 24.01.2026, 20:52.

        Kommentar


          Hallo miteinander

          Zitat von dhb2002 Beitrag anzeigen
          Wäre schön, wenn man das optional machen könnte.
          Ist quasi schon implementiert. Bin gerade am Tests schreiben...


          Zitat von dhb2002 Beitrag anzeigen
          Im original LBS wird der Brightness Threshold noch linear zwischen Winter und Sommer interpoliert.
          Oh, danke! Wird beachtet.


          Zitat von dhb2002 Beitrag anzeigen
          ​Eventuell bitte an die denken, die nicht auf der Nordhalbkugel sind. Sommersonnenwende Nordhalbkugel =~ 21.6, Südhalbkugel=~21.12
          Da stellt sich die Frage, ob man das irgendwie automatisch herausfindet. HA müsste das ja wissen. Jemand eine Idee?
          Kind regards,
          Yves

          Kommentar


            Zitat von starwarsfan Beitrag anzeigen
            Hallo miteinander

            Da stellt sich die Frage, ob man das irgendwie automatisch herausfindet. HA müsste das ja wissen. Jemand eine Idee?
            Latitude in der Südhalbkugel ist negativ. Steht in der configuration.yaml, aber leider keine Standard Entity. Muss ich mal nachdenken wie man das rausfischt.

            Edit: Habs gefunden: Latitude attribute in Zone.Home < 0 ist Südhalbkugel
            Zuletzt geändert von dhb2002; 24.01.2026, 21:23.

            Kommentar


              Hallo dhb2002

              ich war der Annahme, dass der Code hier anders ist als im LBS:

              Zitat von dhb2002 Beitrag anzeigen
              Code:
              function LB_LBSID_getDayBrightness($floor, $cap, $time)
              {
              if ($floor == $cap) {
              $brightness = $cap;
              } else {
              $diffDays = round((LB_LBSID_getNextDate() - $time) / 86400);
              LB_LBSID_debug(false, true, "Calculate Day Threshold: Next 21st of June is: " . date('d.m.Y', LB_LBSID_getNextDate()));
              LB_LBSID_debug(false, true, "Calculate Day Threshold: Today its: " . date('d.m.Y', $time));
              LB_LBSID_debug(false, true, "Calculate Day Threshold: Difference of days between these dates: $diffDays");
              $brightness = $floor + round(abs($diffDays - 183) * (($cap - $floor) / 183));
              LB_LBSID_debug(false, true, "Calculate Day Threshold: Calculated result Day Threshold: $brightness");
              }
              return $brightness;
              }​
              Aber genau so ist das auch im LBS, den ich heute morgen heruntergeladen habe. Also was genau möchtest Du mir damit sagen?
              Kind regards,
              Yves

              Kommentar


                Zitat von starwarsfan Beitrag anzeigen
                Hallo dhb2002

                Aber genau so ist das auch im LBS, den ich heute morgen heruntergeladen habe. Also was genau möchtest Du mir damit sagen?
                Genau, direkter Cut & Paste aus den LBS. War vielleicht unglücklich unter deinem Zitat platziert. Das war an Triaalex gerichtet und sollte verdeutlichen das da was fehlt. Soweit ich das überblicke, war sein Code ohne die Sommer/Winter Interpolation und hat nur versucht den Tagesverlauf per Sinuskurve abzubilden.

                Ich kannte den LBS auch nicht. Kenne aber auch das Problem, den Brightness Threshold jahreszeitlich verändern zu müssen. Konnte den Code von Triaalex diesbezüglich gar nicht nachvollziehen und hab dann in den LBS geschaut und festgestellt, dass da was fehlt. Wen du ( starwarsfan) vom Original LBS ausgehst ist alles gut. Es ist sowieso die bessere Lösung es in die Shadow Control Integration mit aufzunehmen.

                Also vielen Dank an dich und Triaalex für den Denkanstoß

                Kommentar


                  Hallo miteinander

                  Zitat von dhb2002 Beitrag anzeigen
                  Es ist sowieso die bessere Lösung es in die Shadow Control Integration mit aufzunehmen.
                  So, bei mir auf dem Dev-System läuft jetzt dieser Stand. Mal schauen, wie sich das verhält.
                  Kind regards,
                  Yves

                  Kommentar


                    Zitat von starwarsfan Beitrag anzeigen
                    Mal schauen, wie sich das verhält.
                    Super.
                    Zitat von dhb2002 Beitrag anzeigen
                    Habs gefunden: Latitude attribute in Zone.Home < 0 ist Südhalbkugel

                    Wenn es bei dir zufriedenstellend läuft, kann ich gerne die Anpassung an die Südhalbkabel machen, schon aus reinem Eigeninteresse.

                    Kommentar


                      Hallo ?

                      Zitat von dhb2002 Beitrag anzeigen
                      Wenn es bei dir zufriedenstellend läuft, kann ich gerne die Anpassung an die Südhalbkabel machen, schon aus reinem Eigeninteresse.
                      Oh, danke für das Angebot aber das habe ich heute Morgen schon implementiert.
                      Kind regards,
                      Yves

                      Kommentar


                        Hi Yves,

                        wenn du das integrierst wäre das top, dann brauche ich als Anfänger nicht "rumbasteln". 🤔
                        Als Anregung, würde ich den buffer auch variabel einsetzen. Denn ich habe bei dem Einsatz des LBS immer festgestellt, dass der buffer im Winter zu hoch war,
                        oder im Sommer zu niedrig. ich würde diesen entweder linear analog der Tagesschwelle (183-Resttage) variabel einsetzen, oder mit 2 Werten (Winter / Sommer),
                        welche die Restspanne ebenfalls analog errechnen und einsetzen.

                        lg Alex

                        Kommentar


                          Hallo miteinander

                          So, die adaptive Beschattung ist implementiert. Da ich aber gerade in den Skiferien bin, kann ich das nur lokal testen, daher noch kein Release. Ich muss mir noch überlegen, wie ich das mit den bereits vorgenommenen Changes der bisherigen 0.11.0-RC's in Einklang bringe, evtl. gibt es auch die Version 0.11.0 nur mit der adaptiven Beschattung und die anderen Changes kommen dann in die 0.12.0.

                          Hier aber einige Details. Zunächst habe ich das Naming der Beschattungs- und Dämmerungsoptionen nochmals modifiziert. Konkret sieht das jetzt so aus, dass nummerierte Präfixe B* für Beschattung und D* für Dämmerung verwendet werden und somit eine logische Gruppierung der Optionen in der Instanzview erreicht wird. Das sieht dann so aus:

                          CleanShot 2026-01-28 at 21.34.09@2x.png

                          Hier sind mit B02-B04 die neuen Optionen für die adaptive Beschattung zu sehen. Die adaptive Steuerung ist aktiv, sobald der Sommer-Wert grösser als der Winter-Wert ist. Oh, und ich sehe gerade, B09 und B10 muss ich noch tauschen.

                          Sobald auf eine Option eine eigene Entität konfiguriert wurde, ist diese Option nicht mehr unter den Steuerelementen sondern den Sensoren zu finden. Das sieht dann bspw. so aus:

                          CleanShot 2026-01-28 at 21.45.45@2x.png

                          Hier ist zu sehen, dass B06, B07, D04 und D05 mit einer eigenen Entität konfiguriert wurden, welche aktuell den Wert 0% enthält. Weiterhin ist der von der adaptiven Beschattungssteuerung berechnete Schwellwert zu sehen ("Aktiver Helligkeitsschwellwert").​

                          Stay tuned!
                          Zuletzt geändert von starwarsfan; Gestern, 21:49.
                          Kind regards,
                          Yves

                          Kommentar

                          Lädt...
                          X