Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonnenauf/untergang und Zeit verknüpfen?

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

    Sonnenauf/untergang und Zeit verknüpfen?

    Hallo in die Runde,

    ich möchte bei Sonnenauf- bzw. -untergang in Verbindung mit einer einstellbaren Zeit GA's schalten lassen.
    Also schalten direkt bei Auf- und Untergang funktioniert soweit.
    Wie würde jetzt folgendes konkrete Beispiel ausschauen?

    GA soll bei Sonnenaufgang plus 1h und 1h vor Sonnenuntergang schalten.

    Vielleicht hat das schon jemand so oder so ähnlich umgesetzt und könnte seinen Code hier posten.

    Vielen Dank schon mal.
    Frank

    #2
    Hallo Frank,

    1h vor Sonnenuntergang ist über sun() kompliziert umzusetzen.

    Der einfachere Weg ist über die Sonnenelevation zu gehen. So kannst Du die Werte nach Belieben einstellen.

    [highlight=epc]
    // Außenbeleuchtung kurz vor Sonnenuntergang einschalten
    if elevation()<=-4f32 then \\
    write("Fassadenbeleuchtung Vorne-2/4/0",EIN); \\
    write("Fassadenbeleuchtung Hinten-2/4/3",EIN) \\
    endif
    // Außenbeleuchtung kurz vor Sonnenaufgang ausschalten
    if elevation()>=-3f32 then \\
    write("Fassadenbeleuchtung Vorne-2/4/0",AUS); \\
    write("Fassadenbeleuchtung Hinten-2/4/3",AUS) \\
    endif
    [/highlight]

    Viele Grüße

    Michael

    Kommentar


      #3
      Hallo Michael

      danke, werd ich morgen gleich mal testen.
      Ich steh noch etwas auf der Leitung...
      Wie rechne ich 4f32 und 3f32 in Minuten um?

      Gruß Frank

      Kommentar


        #4
        Hallo Frank,
        Ich habe es bei mir z.B. so gemacht:

        [highlight=epc]
        // Abends Rolladen herunterfahren (Wenn nachmittags die Sonne tiefer als 5 Grad unterm Horizont steht...)
        if chtime(12,00,00) and elevation() < -5f32 then {
        write("OG Gruppe LZ-0/2/28",RUNTER) ; \\
        write("EG Gruppe LZ-0/1/39",RUNTER) ; \\
        write("UG Gruppe LZ-0/0/17",RUNTER) \\
        } endif
        [/highlight]

        Die Vergleichswerte (hier -5f32) einfach ermittelt, indem ich mir
        a) den Wert von Elevation in der Web-Visu angezeigt habe
        b) wenn es abends dunkel genug ist, um die Rolladen herunterzufahren, den Wert einfach abgelesen habe.

        Gruß, Joachim
        EibPC - Wiregate

        Kommentar


          #5
          Hallo Frank,

          hier kannst Du für Deinen Wohnort die gewünschte Uhrzeit in Elevation umrechnen:

          Sonnenstands-Rechner | ARAS 360

          Viele Grüße

          Michael

          Kommentar


            #6
            Hmmh,

            das Ganze kommt mir recht aufwendig vor. Gibt's eine einfache Möglichkeit Sunrise und Sunset mit Zeit zu kombinieren, um dann je nach Bedarf und ohne jedesmal umzurechnen Minuten oder Stunden einzutragen?

            Frank

            Kommentar


              #7
              Hallo Frank,

              da Gegenteil ist der Fall. Der vorgebene Elevationswert ist unabhängig von der Jahreszeit und Sommer- oder Winterzeit.

              Wenn Du einmal einen für Dich passenden Elevationswert - z.B. für beginnende Dämmerung - gefunden hast, dann paßt der Wert ganzjährig und Du muß nie wieder etwas anpassen.

              Viele Grüße

              Michael

              Kommentar


                #8
                Hallo Michael

                Der EIB PC berechnet ja Sunrise und Sunset mithilfe der Koordinaten meines Wohnortes. Das funzt ja soweit. Die beiden Werte möchte ich nun als Bezugspunkte nehmen um z.B. 30 min später oder 90 min früher GA's zu schalten. Diese Werte sollen aber öfters geändert werden. Deswegen suche ich nach einer einfachen Lösung, bei der ich schnell mal die Minuten oder Stunden ändern kann.

                Grüße Frank

                Kommentar


                  #9
                  Hallo Frank,

                  dann kannst Du prinzipiell den folgenden Weg nehmen:

                  Einschaltzeitpunkt=sunrisehour()*60+sunriseminute( )+Verzoegerung
                  Einschaltstunde=Einschaltzeitpunkt/60
                  Einschaltminute=Einschaltzeitpunkt-Einschaltstunde*60
                  if htime(Einschaltstunde,Einschaltminute,00)==EIN then …

                  Die Verzögerung oder Vorziehung ist so natürlich in Minuten anzugeben.

                  Das dann auch analog für den Ausschaltzeitpunkt umsetzen.

                  Viele Grüße

                  Michael

                  Kommentar


                    #10
                    Zitat von frankthegreat Beitrag anzeigen
                    um z.B. 30 min später oder 90 min früher GA's zu schalten. Diese Werte sollen aber öfters geändert werden. Deswegen suche ich nach einer einfachen Lösung, bei der ich schnell mal die Minuten oder Stunden ändern kann.
                    Schau Dir mal die Makrosammlung an. EnertexSchaltuhrenV2.lib hat da einige Vorschläge.
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      So sollte es funktionieren:
                      [highlight=epc]
                      // Version mit Stunden und Minuten, aber beides als s08

                      // Sonnenaufgang
                      EinschaltVerzoegerungStunden = 0s08
                      EinschaltVerzoegerungMinuten = 0s08
                      Einschaltzeitpunkt = (convert(sunrisehour(), 0s16) + convert(EinschaltVerzoegerungStunden, 0s16)) * 60s16 + convert(sunriseminute(), 0s16) + convert(EinschaltVerzoegerungsMinuten, 0s16)
                      Einschaltstunde = convert(Einschaltzeitpunkt/60s16, 0u08)
                      Einschaltminute = convert(Einschaltzeitpunkt - convert(Einschaltstunde, 0s16) * 60s16, 0u08)
                      if htime(Einschaltstunde, Einschaltminute, 00) then …

                      //Sonnenuntergang
                      AusschaltVerzoegerungStunden = 0s08
                      AusschaltVerzoegerungMinuten = 0s08
                      Ausschaltzeitpunkt = (convert(sunrisehour(), 0s16) + convert(AusschaltVerzoegerungStunden, 0s16)) * 60s16 + convert(sunriseminute(), 0s16) + convert(AusschaltVerzoegerungsMinuten, 0s16)
                      Ausschaltstunde = convert(Ausschaltzeitpunkt/60s16, 0u08)
                      Ausschaltminute = convert(Ausschaltzeitpunkt - convert(Ausschaltstunde, 0s16) * 60s16, 0u08)
                      if htime(Ausschaltstunde, Ausschaltminute, 00) then …
                      [/highlight]


                      // Version nur mit Minuten, aber die dafuer als s16

                      [highlight=epc]
                      // Sonnenaufgang
                      EinschaltVerzoegerungMinuten = 0s16
                      Einschaltzeitpunkt = convert(sunrisehour(), 0s16) * 60s16 + convert(sunriseminute(), 0s16) + EinschaltVerzoegerungMinuten
                      Einschaltstunde = convert(Einschaltzeitpunkt/60s16, 0u08)
                      Einschaltminute = convert(Einschaltzeitpunkt - convert(Einschaltstunde, 0s16) * 60s16, 0u08)
                      if htime(Einschaltstunde, Einschaltminute, 00) then …

                      //Sonnenuntergang
                      AusschaltVerzoegerungMinuten = 0s16
                      Ausschaltzeitpunkt = convert(sunrisehour(), 0s16) * 60s16 + convert(sunriseminute(), 0s16) + AusschaltVerzoegerungsMinuten
                      Ausschaltstunde = convert(Ausschaltzeitpunkt/60s16, 0u08)
                      Ausschaltminute = convert(Ausschaltzeitpunkt - convert(Ausschaltstunde, 0s16) * 60s16, 0u08)
                      if htime(Ausschaltstunde, Ausschaltminute, 00) then …
                      [/highlight]

                      Dabei ist es durchaus zulässig, 0 Stunden und 90 Minuten anzugeben, oder -1 Stunde aber +5 Minuten, wenn man -55 Minuten meint.
                      ACHTUNG: Das ist auch ein Fallstrick, -1h und 15m sind eben nicht -75m sondern nur -45m.

                      Die zweite Methode nur mit Minuten vermeidet diese Fehlerquelle...

                      Zu beachten: In allen Fällen liegen positive Zeitdifferenzen später und negative Zeitdifferenzen früher als das Trigger-Ereignis.

                      Ach ja, ich weiß nicht, wie htime() auf negative Zeiten oder Zeiten größer 24h reagiert, es gilt also 0min <= Ein- und Ausschaltzeitpunkt < 1440min.

                      Man sollte sich aber vorher fragen, warum man eigentlich vor oder nach dem Zeitpunkt etwas tun will. Geht es wirklich um eine bestimmte Zeit (warum auch immer), dann ist diese Ansatz hier verwendbar, oder geht es eigentlich um einen bestimmten Stand der Sonne und daraus resultierender Helligkeit?
                      Dann ist die direkte Angabe der Elevation zielführender und vor allem einfacher.

                      Am ungünstigsten ist sicherlich, das einen zu wollen, das andere zu verwenden und dann umzurechnen. Das Verhältnis von Winkeldifferenz zu Zeitdifferenz ändert sich nun mal mit der Jahreszeit - wenn auch nur so um die 20% in unseren Breiten, so das man neben den geografischen Koordinaten immer auch noch das Datum braucht, außerdem ist die Funktion für eine genaue Berechnung relativ umfangreich und kompliziert. Das dann in ein EibPC-Skript zu packen dürfte viel zu aufwändig werden.
                      Tessi

                      Kommentar


                        #12
                        Danke für die zahlreichen Antworten. Da dürfte in jedem Fall was passendes dabei sein.
                        Jetzt nochmal kurz ein Beispiel, warum ich vor bzw. nach dem Zeitpuntk etwas tun will.
                        In einem stark frequentierten Flur sitzt ein PM an ungünstiger Stelle. Also er sitzt zwar so das alle Türen "gesehen" werden bekommt aber dort sehr wenig Licht. D.h. das Ding schaltet auch wenn es gefühlt zu hell ist.
                        Bis jetzt hab ich das mit einer Schaltuhr gelöst, die dann zu bestimmten Zeiten auf Hand oder Automatik schaltet. Diese mußte ich bisher ca. all 4 Wochen umstellen.
                        Um das zu automatisieren kam mir die Idee mit SUN plus/minus Minuten.

                        Viele Grüße

                        Frank

                        Kommentar


                          #13
                          Zitat von frankthegreat Beitrag anzeigen
                          Um das zu automatisieren kam mir die Idee mit SUN plus/minus Minuten.
                          Das ist eigentlich ein klassischer Fall, um die Elevation zu verwenden. Ich würde dir empfehlen das wie von meinen Vorschreibern bereits skizziert umzusetzen.

                          Falls du mit dem Begriff "Evelvation" nichts anfangen kannst und dir das alles sehr kompliziert erscheint, keine Sorge, das ist ganz einfach. Die Elevation definiert den Winkel der Sonne zum Horizont gesehen. Nach Sonnenuntergang hat die Elevation also einen Wert kleiner als 0. Wenn du in einer bergigen Gegend wohnst geht die Sonne mitunter auch schon bei 5 oder 10 Grad Elevation unter. Wie gesagt, das musst du probieren.

                          Falls du eine Wetterstation geplant hast, kannst du dann natürlich auch den Lux-Wert der Wetterstation auswerten. Dort lassen sich auch Grenzwerte mit Hysterese definieren.

                          Kommentar


                            #14
                            Die Sonne, das bekannte Unwesen

                            Zitat von klaus Beitrag anzeigen
                            Das ist eigentlich ein klassischer Fall, um die Elevation zu verwenden.
                            Hoi

                            Sehe ich genau so. Was nützt Dir ein DELTA-Zeit von 10 min, wenn im Sommer die Sonne viel schneller zapp dunkel macht, weil sie eher senkrecht hinter dem Horizont verschwindet.
                            Und im Winter ist es drei mal so lange noch hell, weil sie ziemlich flach/schräg abtaucht. Daher goto -> Elevation
                            Grüsse Bodo
                            Fragen gehören ins Forum, und nicht in mein Postfach;
                            EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                            Kommentar


                              #15
                              Zitat von Bodo Beitrag anzeigen
                              Was nützt Dir ein DELTA-Zeit von 10 min, wenn im Sommer die Sonne viel schneller zapp dunkel macht, weil sie eher senkrecht hinter dem Horizont verschwindet.
                              Und im Winter ist es drei mal so lange noch hell, weil sie ziemlich flach/schräg abtaucht.
                              Äh, anders herum wird ein Schuh draus: im Winter ist es spontan dunkel, im Sommer ist es ein schleichender Prozess.

                              Zusätzlich beachten sollte man: Im Winter wirkt sich schlechtes Wetter auch noch stärker auf die Helligkeit aus. -> Helligkeitssensor ist auch eine gute Idee.

                              Daher goto -> Elevation
                              Die "Elevation" mag ja auch die bessere Variante sein, die Umrechnung ist aber aufwendig und auf einer Visu schwer greifbar.
                              BR
                              Marc

                              Kommentar

                              Lädt...
                              X