Seite auswählen

Jede Nacht ist anders! dynamische Rolladenbetätigung

,
Jede Nacht ist anders! dynamische Rolladenbetätigung
Print Friendly

Wer schon länger eine automatische Rolladenbetätigung in Abhängigkeit von Sonnenauf- / untergang betreibt, der kennt das Thema: Im Winter gehen die Rolladen viel zu früh runter und im Sommer viel zu spät. Das liegt u.a. daran, dass die Dämmerungsphase im Winter viel länger andauert und im Sommer recht kurz ist. Viele Versuche mit einer Rolladenbetätigung eine feste Zeit nach Sonnenuntergang unter Verwendung des sicher bekannten Tageszeitenskriptes zeigen, dass man zwar für eine bestimmte Jahreszeit die Rolladenschliesszeit optmieren kann, aber man muß jahreszeitabhängig immer wieder anpassen. Seit einigen Monaten fahre ich eine andere Strategie, bei der die Rolladenschliesszeit zwar von der jahreszeitlichen Sonnenuntergangszeit abgeleitet wird, diese Ableitung aber nicht additiv sondern mit einer linearen Umrechnung erfolgt. Mit dem  obigen Bild wird der Sachverhalt deutlich.

Näherungsweise übers Jahr ist die Darstellung der Sonnenuntergangszeit eine Sinuskurve mit einem Minimalwert im Dezember (SUmin) und einem Maximalwert im Juni. Ausgehend von dieser Abhängigkeit (rote Kurve) berechne ich eine gefühlt angenehmere Rolladenschliesszeit in der Weise. dass die Amplitude verkleinert und der Mittelwert vergrößert wird.(grüne Kurve). Die Berechnungsgrundlagen für die Umrechnung sind unten im Bild dargestellt. Vorgegeben aufgrund meiner individuellen Ortslage (Nähe Bonn) sind die Zeiten für SUmax und SUmin (in Winterzeit !) . Bei mir ist SUmax = 1250 (in min entsprechend 20h50) und SUmin = 990 (in min entsprechend 8h30). Die gewünschte Zielkurve wir nur duch die beiden Parameter ROLLmax und ROLLmin festgelegt. Ich habe hier für die grüne kurve ROLLmax = 1320 und ROLLmin = 1170 gewählt. Daraus ergibt sich dann eine einfache Berechnungsformel für die tägliche Rolladenschließzeit ROLL = 0.58 * SU +595 .
Wenn nun die Rolladen zu dieser Zeit geschlossen werden sollen und beispielsweise zu einer festen Zeit am morgen wieder geöffnet werden sollen, dann sieht die WebUI-Umsetzung mit integriertem Skript etwa so aus:
Zuerst definiert man zwei neue Systemvariable „rolladenzeit“ als Zahl und „rolladengeschlossen“ als log. Variable.
Dann ruft man mit einem WebUI-Programm zyklisch alle paar Minuten das folgende Skript auf, das die Systemvariable „rolladengeschlossen“ entsprechend der grünen Kurve abends auf 1 setzt und morgens um 6h45 wieder auf 0 zurücksetzt. Damit man die aktuelle Rolladenschliesszeit sich ansehen kann, wird die Systemvariable „rolladenzeit“ im Skript ebenfalls berechnet.

 

HM-Skript   
!Skript setzt die logische Systemvariable "rolladengeschlossen"  auf true, wenn Rolladen runter
 
!Rolladen-Schliesszeit ROLL berechnet sich aus der aktuellen Sonnenuntergangszeit SU
!Zeitberechnung immer im Minutenschema!aktuellen Sonnenaufgang berechnen
integer SU = system.SunsetTime("%M").ToInteger() + 60* system.SunsetTime("%H").ToInteger();
integer zeit = system.Date("%M").ToInteger() + 60*system.Date("%H").ToInteger();
 
!Systemvariable "rolladengeschlossen" abends auf 1 und morgens um 6h45 auf 0 setzen
boolean rolladennacht =0;
real ROLL = 595.0 + 0.58* SU;
if (zeit < 405)   {rolladennacht = 1;} !Zwischen 0h00 und 6h45 ist rolladennacht = 1
if (zeit > ROLL)  {rolladennacht = 1;} ! zwischen ROLL und 24h00 ist rolladennacht = 1
dom.GetObject("rolladengeschlossen").State(rolladennacht);
 
!Umformen von der Minutendarstellung von ROLL in Stundendarstellung hh,mm
!und abspeichern auf Systemvariable "rolladenzeit"
real su_zeit = 0.0166 *ROLL;
real su_zeit_h = su_zeit.ToInteger();
real su_zeit_m = (su_zeit - su_zeit_h) *0.6;
real su_zeit= su_zeit_m + su_zeit_h;
dom.GetObject("rolladenzeit").State(su_zeit);

Das eigentliche Rolladenprogramm sieht dann beispielhaft so aus:

dyn_rolladen1

Aktuell steuere ich insgesamt 14 Rolläden im Nachtbetrieb mit der beschriebenen Strategie.Mit dem Schliessverhalten bin ich jetzt sehr zufrieden, weil keine jahreszeitlichen Anpassungen mehr notwendig sind. Im Tagbetrieb wird abhängig vom Sonnenstand, der Sonneneinstrahlung individuell jedes Fenster gesteuert, aber das ist ein anderes Thema.

Fähigkeiten

Gepostet am

19. Juni 2013

13 Kommentare

  1. Das Skript läuft einwandfrei, wenn Du vorher auch die notwendigen Systemvariablen definiert hast!

  2. Hallo ich wollte grade das tolle script testen, allerdings spuckt er immer eine Fehlermeldung aus, wenn ich in dem Programmdas Skript auf Fehler teste…

    Error 1 at row 2 col 1 near ^ 
    !Rolladen-Schliesszeit ROLL berechnet sich aus der aktuellen Sonnenuntergangs
    Parse following code failed:
    !Skript setzt die logische Systemvariable „rolladengeschlossen“ auf true, wenn Rolladen runter
     
    !Rolladen-Schliesszeit ROLL berechnet sich aus der aktuellen Sonnenuntergangszeit SU
    !Zeitberechnung immer im Minutenschema!aktuellen Sonnenaufgang berechnen
    integer SU = system.SunsetTime(„%M“).ToInteger() + 60* system.SunsetTime(„%H“).ToInteger();
    integer zeit = system.Date(„%M“).ToInteger() + 60*system.Date(„%H“).ToInteger();
     
    !Systemvariable „rolladengeschlossen“ abends auf 1 und morgens um 6h45 auf 0 setzen
    boolean rolladennacht =0;
    real ROLL = 595.0 + 0.58* SU;
    if (zeit ROLL) {rolladennacht = 1;} ! zwischen ROLL und 24h00 ist rolladennacht = 1
    dom.GetObject(„rolladengeschlossen“).State(rolladennacht);
     
    !Umformen von der Minutendarstellung von ROLL in Stundendarstellung hh,mm
    !und abspeichern auf Systemvariable „rolladenzeit“
    real su_zeit = 0.0166 *ROLL;
    real su_zeit_h = su_zeit.ToInteger();
    real su_zeit_m = (su_zeit – su_zeit_h) *0.6;
    real su_zeit= su_zeit_m + su_zeit_h;
    dom.GetObject(„rolladenzeit“).State(su_zeit);

  3. … ok, jetzt habe ich es verstanden. Habe das Amplitudenverhältnis jetzt auf meine Vorstellungen angepasst und schon habe ich die für mich passenden „Roll“ Zeiten.

    Vielen Dank für deine Hilfe
    Udo

  4. Ich hab mir überelegt, wie die Kurve aussehen müßte, damit sie meinen Vorstellungen entspricht. Die mathematische Umsetzung dieser Kurve führte dann zu diesem Wert.

  5. … ok und was besagt der Wert 595? Den schnall ich nicht.

    Gruß
    Udo

  6. .. das ist keine exakte Berechnungsformel, sondern eine subjektiv von mir festgelegte Erfahrungsformel.
    Die Koeefizienten kann man nach eigenem „Dämmerungsempfinden“ individuell anpassen.

  7. Hallo Eugen,
    bin gerade dabei meine Rolladen auf die dynamische Rolladenbetätigung umzustellen. Wie bist Du an die SU-Sinuskurve für deine Ortslage gekommen? Mein Breitengrad ist 52.533349, kann ich mir dazu die SU-Kurve irgendwie erzeugen?
    Dann verstehe ich in deiner Formel ROLL=0.58 *SU+595 den Wert 595 nicht, wie kommst du auf die 595?

    Schon mal danke für deine Antwort und das du deine Ideen und Erfahrungen hier mit uns teilst. Hilft mir sehr meine Hausautomation weiter zu bringen.

    Viele Grüße
    Udo

  8. Hallo,

    tolles Beispiel und funktioniert wunderbar, aber – wie Peter – möchte ich dies auch für den Sonnenaufgang machen. Dies ergibt ja eine genau umgekehrte Kurve nach unten.
    Beim Versuch die Formel entsprechend abzuleiten, muss ich gestehen, dass ich Deine Formeln im Formelkasten (im Diagramm) nicht nachvollziehen kann. Irgendetwas passt da nicht so ganz.
    Können Sie die nochmal erklären bzw. prüfen und gibt es ne Formel für den Sonnenaufgang ?

    Vielen Dank und Gruss
    Thorsten

  9. Wenn rolladengeschlossen = wahr (bei Änderung) dann Rollade= 0% , sonst wenn Zeitsteuerung, Astrofunktion tagsüber zu Zeitpunkten auslösen , dann Rollade =100%.
    Komfortabler geht´s aber mit dem Sonnenstandskript. Schau Dir hierzu mal mein Tutorial auf dieser Website an.

  10. Hi,
    baue Dein Script gerade bei mir ein. Da ich aber keine fest Uhrzeit haben möchte würde ich gerne Dein Script mit dem astrologischen Sonnenaufgang kombinieren. Also nicht fest um 06:45 sondern zum Zeitpunkt des Sonnenaufgangs.
    Hättest du da ein Codebeispiel, was im Script geändert werden müsste?
    gruss
    peter

  11. Ich versuche mich auch grade mit der Einstellung. Kann ich die Uhrzeit für auf und zu im Skript einfach ändern?

    Und wo füge ich meine Rollläden ein? Bei Aktivität sonst?

    Gruß

  12. Ein neues WebUI-Programm anlegen mit:
    WENN Zeitsteuerung periodisch alle 5 Minuten , ganztägig
    DANN Skript
    Im Skript mit Copy&Paste das „Jede Nacht ist anders“- Skript hier aus dem Artikel einfügen und mit OK abschließen.

  13. Eine sehr schöne, einleuchtende Beschreibung. Bei der Umsetzung scheitere ich aber schon bei den Vorbereitungen

    „Zuerst definiert man zwei neue Systemvariable „rolladenzeit“ als Zahl und „rolladengeschlossen“ als log. Variable.
    Dann ruft man mit einem WebUI-Programm zyklisch alle paar Minuten das folgende Skript auf, das die Systemvariable „rolladengeschlossen“ entsprechend der grünen Kurve abends auf 1 setzt und morgens um 6h45 wieder auf 0 zurücksetzt. Damit man die aktuelle Rolladenschliesszeit sich ansehen kann, wird die Systemvariable „rolladenzeit“ im Skript ebenfalls berechnet.“

    Die Variablen habe ich definiert, aber wie sieht der Aufruf des Scriptes aus?

    Michael

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Translate »