Ankündigung

Einklappen
Keine Ankündigung bisher.

Jalousiesteuerung mit wechselnden Bedingungen

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

    Jalousiesteuerung mit wechselnden Bedingungen

    Hallo Experten,

    ich arbeite mich gerade in die Programmierung für den EibPC ein. Einfache if/than/else-Anweisungen sind soweit kein Problem. Jedoch komme ich bei meinem zentralen Problem nicht auf eine funktionierende Lösung und finde auch keinen passenden Beitrag im Forum, vielleicht kann mir jemand von Euch helfen.

    Das Problem: Zur Zeit steuer ich meine Jalousien über einen Dämmerungssensor – ab 6 Lux runter und ab 30 Lux wieder hoch. Klappt alles wunderbar. Nun wird es aber immer früher hell und die Jalousien fahren entsprechend zu früh hoch.

    Ich möchte nun eine Anweisung schreiben, mit der die Jalousien nicht vor 7 Uhr und nicht vor 30 Lux Dämmerungswert hochgefahren werden (wie beim entsprechenden Makro), jedoch Werktags und am Wochenende zu unterschiedlichen Zeiten (was ich beim Makro ja nicht eingeben kann).

    Mein Problem ist, dass beide Bedingungen im Sommer und Winter in unterschiedlicher Reihenfolge auftreten und daher kann ich ja nicht mit einer einfachen „and“ Verknüpfung arbeiten. Z. B. würde die Anweisung

    If wtime(07,00,00,WERKTAGS) and (Dämmerungswert>30) then write (Rolladen, hoch) endif

    Im Sommer funktionieren, jedoch im Winter nicht. Ich habe auch schon überlegt mit Variablen zu arbeiten, komme aber auch nicht zu einem vernünftigen Ergebnis. Habe ich die für mich passende Funktion noch nicht gefunden oder übersehen?

    Für Euch wird die Aufgabenstellung bestimmt kein Problem sein aber ich als Anfänger drehe mir mit den Fingern schon Locken in die Haare. Ich bin Dankbar für jeden Hinweis.

    LG
    Martin

    #2
    Hallo Martin,

    wenn Du statt wtime Funktion (gibt nur exakt zum angegebenen Zeitpunkt eine "1" zurück) die cwtime Funktion (ist ab dem angegebenen Zeitpunkt bis Mitternacht "1") nimmst sollte das Sommer wie Winter funktionieren. Meines Wissens gibt es in der aktuellen Firmware aber einen Bug mit der Weekend Funktion, so dass Du die Funktion im Moment evtl. für jeden Wochentag einzeln aufführen musst, das weis ich aber nicht so genau.

    Gruß Nils

    Kommentar


      #3
      Hallo Nils,

      danke für Deine schnelle Hilfe. In meiner Unerfahrenheit hört sich das so ähnlich an, als wenn ich mit Variablen arbeite. Wenn ich also schreibe:

      if cwtime(07,00,00,WERKTAGS) and (Dämmerungswert>30) then write (Rolladen, hoch) endif

      wie würde sich diese Anweisung im Winter verhalten wenn es um 7 Uhr noch dunkel ist? Wird diese Anweisung um 7 Uhr aktiv und wartet dann bis die zweite Bedingung auch eintritt? Und wie ist es eigentlich mit dem Dämmerungswert, dieser wird regelmäßig von der Wetterstation auf den Bus geschickt, merkt sich der EibPC automatisch den letzten Wert?

      Gruß
      Martin

      Kommentar


        #4
        Halölo Martin,

        zu beiden Fragen ja. Die Rollos fahren erst hoch wenn beide Bedingungen erfüllt sind. Mit der Einschränkung, dass das mit dem "Werktags" im aktuellen Release evtl. nicht funktioniert.

        Gruß Nils

        Kommentar


          #5
          Hi Nils,

          prima! Soweit so gut, laut akt. Handbuch arbeitet cwtime mit WERKTAGS etc., jedoch wird der Wert 1 erst am kommenden Sonntag um 24 Uhr wieder auf 0 gesetzt. Bedeutet das, dass die Anweisung am ersten Tag richtig arbeitet und am Folgetag die Jalousien schon bei Erreichen von 30 Lux (z. B. 6 Uhr) hochgefahren werden (weil cwtime ja immer noch auf 1 steht)?

          Mit chtime kann ich eine Anweisung ja nicht auf bestimmte Wochentage reduzieren.

          Gruß
          Martin

          Kommentar


            #6
            Stimmt, schau mal im Zeitschaltuhren Thread, da ist beschrieben wie es mit Dayofweek geht.
            Gruß Nils

            Kommentar


              #7
              Zitat von pelleman Beitrag anzeigen
              Hallo Nils,
              if cwtime(07,00,00,WERKTAGS) and (Dämmerungswert>30) then write (Rolladen, hoch) endif

              wie würde sich diese Anweisung im Winter verhalten wenn es um 7 Uhr noch dunkel ist? Wird diese Anweisung um 7 Uhr aktiv und wartet dann bis die zweite Bedingung auch eintritt? Und wie ist es eigentlich mit dem Dämmerungswert, dieser wird regelmäßig von der Wetterstation auf den Bus geschickt, merkt sich der EibPC automatisch den letzten Wert?

              Gruß
              Martin
              Im Sommer (1.4 bis 30.09) nicht vor Sonnenaufgang (sun()) beim Dämmerungswert einschalten:
              [highlight=epc]
              Sommer=month(01,04) and !month(30,09)
              if chtime(07,00,00) and (Dämmerungswert>30) and Sommer and !sun() and dayofweek<SAMSTAG then write (Rolladen, hoch) endif
              [/highlight]
              In aller Kürze: Der EibPC merkt sich jede GA auf dem Bus. Bei Veränderung wird die If-Abfrage ausgewertet.
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Zitat von enertegus Beitrag anzeigen
                Im Sommer (1.4 bis 30.09) nicht vor Sonnenaufgang (sun()) beim Dämmerungswert einschalten:
                [highlight=epc]
                Sommer=month(01,04) and !month(30,09)
                [ACHTUNG]if chtime(07,00,00) and (Dämmerungswert>30) and Sommer and !sun() and dayofweek<SAMSTAG then write (Rolladen, hoch) endif
                [/highlight]
                In aller Kürze: Der EibPC merkt sich jede GA auf dem Bus. Bei Veränderung wird die If-Abfrage ausgewertet.
                Vielen herzlichen Dank für Eure Hilfe!
                Da in meiner Anweisung weder Sommer noch Sonnenaufgang eine Rolle spielen sollen kann ich diese beiden Argumente doch weglassen, oder?

                Meine Anweisung sähe dann wie folgt aus:
                [INFORMATION]if chtime(07,00,00) and (Dämmerungswert>30) and dayofweek<SAMSTAG then write (Rolladen, hoch) endif[/INFORMATION]

                Gruß
                Martin

                Kommentar


                  #9
                  Hi,

                  hatte auch mal meine Rollos mit zig Bedingungen versehen. Jetzt steuere ich mit elevation, hat den Vorteil muss keine Uhrzeit mehr anpassen.

                  Klappt in Kombi mit azimuth auch hervorragend bei sonnenstandsabhängiger Steuerung im Sommer

                  Schau Dir mal die Funktionen an.

                  Gruß

                  Ralf

                  Kommentar


                    #10
                    Zitat von pelleman Beitrag anzeigen
                    Vielen herzlichen Dank für Eure Hilfe!
                    Da in meiner Anweisung weder Sommer noch Sonnenaufgang eine Rolle spielen sollen kann ich diese beiden Argumente doch weglassen, oder?
                    Klar.
                    Bitte auch diesen Hinweis für die Forumsdarstellung des EibPC Codes lesen:
                    https://knx-user-forum.de/eibpc/1061...-im-forum.html
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      ebenfalls klar, wäre nur eine andere Option gewesen

                      Gruß

                      Kommentar


                        #12
                        Hi,

                        hier mal ein Beispiel mit Deckelung frühestens um X:XX Uhr auf und um YY:YY Uhr zu mit unterschiedlichen Zeiten je nach Wochenende oder Werktag:

                        [highlight=epc]//Rolläden Schlafräume bei Sonnenaufgang-/untergang und wenn:
                        //Montag bis Donnerstag fühestens 6:30 auf und spätestens 20:00 zu
                        //Freitag fühestens 6:30 auf und spätestens 21:00 zu
                        //Samstag fühestens 8:00 auf und spätestens 21:00 zu
                        //Sonntag fühestens 8:00 auf und spätestens 20:00 zu
                        MObisDO = !(dayofweek()==FREITAG or dayofweek()==SAMSTAG or dayofweek()==SONNTAG)
                        Werktags = !(dayofweek()==SONNTAG or dayofweek()==SAMSTAG)
                        if sun() and ((MObisDO and chtime(6,30,0) and !chtime(20,0,0)) or \\
                        (dayofweek()==FREITAG and chtime(6,30,0) and !chtime(21,0,0)) or \\
                        (dayofweek()==SAMSTAG and chtime(8,0,0) and !chtime(21,0,0)) or \\
                        (dayofweek()==SONNTAG and chtime(8,0,0) and !chtime(20,0,0))) \\
                        then write("Zentral Schlafräume Bewegen-4/0/1",AUF);Schattenautomatik=EIN \\
                        else write("Zentral Schlafräume Bewegen-4/0/1",ZU);Schattenautomatik=AUS \\
                        endif[/highlight]

                        Die Rollläden werden zu den gegebenen Zeiten geöffnet / geschlossen und die Freigabevariable für die Verschattungsautomatik (40% Verschatten wenn mehr als XXX Lux) passend gesetzt.
                        Sonst passiert es in der früh dass das Verschatten die geschlossenen auf 40% öffnet noch bevor 8:00 erreicht ist...

                        Gruß

                        Quisa

                        Kommentar


                          #13
                          Hallo zusammen,

                          nochmals herzlichen Dank an Alle. Die Hinweise waren zielführend und das Problem ist gelöst. Der folgende Code erfüllt genau die gewünschte Steuerung:

                          [highlight=epc]
                          //Jalousiesteuerung in Abhängigkeit vom Lichtwert, Zeitpunkt und Wochentag

                          //Jalousien komplett schließen wenn der Außenlicht-Luxwert von 6 unterschritten wird
                          if ("LichtWert 3/2/1"<6f16) then write ("Zentral Bewegen-2/0/0,1b01) endif

                          //Jalousien Werktags öffnen wenn der Außenlicht-Luxwert von 30 überschritten, jedoch nicht vor 7 Uhr
                          if chtime(07,00,00) and ("LichtWert 3/2/1">30f16) and dayofweek()<SAMSTAG and dayofweek()>SONNTAG then write ("OG Zentral Bewegen-2/0/41",0b01) endif
                          [/highlight]

                          @enertegus: Jetzt klappts auch mit der Darstellung

                          Schönes Wochenende!

                          Gruß
                          Martin

                          Kommentar

                          Lädt...
                          X