Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeitverzögerung bei Sonnenstandsautomatik

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

    Zeitverzögerung bei Sonnenstandsautomatik

    Hallo zusammen,

    ich steuere meine Rollos in Abhängigkeit des Sonneneinstrahlwinkels und der Helligkeitswerte von meiner Wetterstation. Dazu habe ich den Helligkeitswert in eine hysteresis Funktion gepackt.

    Nun kommt es aber ja vor, dass die Helligkeit kurzzeitig unter den unteren hyseresis Wert sinkt. Hier möchte ich gerne erreichen, dass die Rollos dennoch unten bleiben und erst wenn die Helligkeit eine bestimmte Zeit unter dem unteren Grenzwert ist rauffahren.

    Leider habe ich aktuell keine Idee wie ich das sinnvoll programmieren kann, hat jemand einen Vorschlag?

    Beste Grüße
    Nils

    #2
    Hallo,

    ich würde den Helligkeitswert alle x Minuten in zwei Variablen schreiben.

    Variable a = Helligkeitswert vor x Minuten
    Variable b = aktueller Helligkeitswert

    Anschließend beide Variablen mit einer Und-Verknüpfung auswerten.

    Nur wenn beide Werte unterhalb des vorgegebenen Niveaus sind, sollte die Rollade angesteuert werden.

    Viele Grüße

    Michael

    Kommentar


      #3
      Einfach die Änderung etwas verzögern
      [highlight=epc]
      Steuerung=AUS
      if hystereis() then Steuerung=EIN else Steuerung AUS enfif
      // 10 Sekunden : EDIT delay anstelle von after!
      if delay(change(Steuerung),10000u64) then write(GA,Steuerung) endif
      [/highlight]
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #4
        Hallo zusammen,

        an die after Funktion hab ich auch gedacht. Allerdings würde dieses Konstruktion ja immer nach Ablauf der Nachlaufzeit die Rollos hochfahren selbst wenn es in der Zwischenzeit wieder hell genug (after Funktion ist ja nicht retriggerbar), oder hab ich da einen Denkfehler?

        Beim ersten Vorschlag würde ich auch eventuelle Spitzen zwischen der Variablenspeicherung nicht erfassen, daher auch recht unzuverlässig.

        Die Lösung wäre vermutlich eine retriggerbare after Funktion.

        Gruß Nils

        Kommentar


          #5
          Zitat von Reason555 Beitrag anzeigen
          Hallo zusammen,
          an die after Funktion hab ich auch gedacht. Allerdings würde dieses Konstruktion ja immer nach Ablauf der Nachlaufzeit die Rollos hochfahren selbst wenn es in der Zwischenzeit wieder hell genug (after Funktion ist ja nicht retriggerbar), oder hab ich da einen Denkfehler?
          Ja, gerade eben ist mir das auch gekommen. Also delay anstelle von after. Sonst ändert sich nix. Ich besser das auch mal in meinem Posting aus.
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #6
            Ich glaub da ist noch ein Fehler.
            Jetzt fahren die Rollos einfach 10 Sekunden später, weil ausgelöst ist ausgelöst.
            Das muss so sein:
            [highlight=epc]
            Steuerung=AUS
            if hystereis() then Steuerung=EIN else Steuerung=AUS endif
            // 10 Sekunden
            if delay(change(Steuerung),10000u64) and Steuerung then write(GA,Steuerung) endif
            [/highlight]
            Gruß
            Volker

            Wer will schon Homematic?

            Kommentar


              #7
              Zitat von SnowMaKeR Beitrag anzeigen
              Ich glaub da ist noch ein Fehler.
              Jetzt fahren die Rollos einfach 10 Sekunden später, weil ausgelöst ist ausgelöst.
              Yep, gut dass hier einige mitdenken
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Super und danke an alle. Das mit der Change Funktion war genau der Knackpunkt. Ich hab mir nämlich das Hirn zermartert wie ich einen wiederkehrenden "Ein-Befehl" zum Neustarter der Delay Kette initiieren kann, genau das war es.

                Beste Grüße
                Nils

                Kommentar


                  #9
                  Zitat von SnowMaKeR Beitrag anzeigen
                  Ich glaub da ist noch ein Fehler.
                  Jetzt fahren die Rollos einfach 10 Sekunden später, weil ausgelöst ist ausgelöst.
                  Stimmt leider, denn auf den Stop-Befehl muss man verzichten.
                  BR
                  Marc

                  Kommentar

                  Lädt...
                  X