Ankündigung

Einklappen
Keine Ankündigung bisher.

Verständnisproblem bei Zeitsteuerung

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

    Verständnisproblem bei Zeitsteuerung

    Hallo zusammen,

    nachdem ich nun endlich meine eibPC in Betrieb nehmen konnte und eine wenig getestet habe bin ich bei der Rollladensteuerung auf ein kleines Problem gestossen.

    Folgendes funktioniert:

    if after(sun()==EIN,5700000u64) and chtime(8,30,0) and (dayofweek() == SONNTAG or dayofweek() == SAMSTAG) then {
    write("Rolladen Position Ankleide-3/2/10", 88%)
    } endif

    Der Rollladen fuhr zu richtigen Zeit auf 88% und fertig. Nun wollte ich dass der Rolladen nichts mehr tut, wenn er vor diese Zeitpunkt schon anders geöffnet wurde. ALso habe ich der Bedingung ' and "Rolladen Status Ankleide-3/3/10" ==100% ' hinzugefügt. Funktioniert soweit auch, nur gestern Abend als ich die Rollläden zentral runtergefahren habe, hat sich dieser wieder auf 88% geöffnet. Wie könnte ich das verhindern? Wahrscheinlich hab ich was übersehen, aber ich finde die Lösung nicht. Danke für Eure Hilfe.

    Gruß
    Stefan

    #2
    Möglicherweise fährt Dein Rollo durch eine binäre GA ganz hoch und runter. In diesem Fall würde sich der Prozentwert nicht verändern wenn der Rollo aufgrund dieser GA fährt.

    Kommentar


      #3
      Zitat von daF Beitrag anzeigen
      Möglicherweise fährt Dein Rollo durch eine binäre GA ganz hoch und runter. In diesem Fall würde sich der Prozentwert nicht verändern wenn der Rollo aufgrund dieser GA fährt.
      Um das zu verhindern habe ich vor einiger Zeit alle Rollladen GA auf % umgestellt. Das sollte wohl nicht das Problem sein. Wenn ich abfrage gibt der Aktor auch 100% zurück.

      Mir ist klar, dass alle Bedingungen erfüllt sind...

      - after(sun()==EIN,5700000u64)
      - chtime(8,30,0)
      - (dayofweek() == SONNTAG or dayofweek() == SAMSTAG)
      - "Rolladen Status Ankleide-3/3/10" ==100%

      ... aber ich weis nicht wie ich verhindern kann, dass ich diese Abfrage so limitieren kann, dass sie nur morgens die Rollläden leicht öffnet und Abends nach dem Schließen nicht reagiert. Ich möchte ungern sowas wie 'and !chtime(12,0,0)' einbauen.

      Ich bin mir nicht sicher wo nach ich suchen soll - ich kann ja nicht der erste mit so einem Problem sein.

      Gruß
      Stefan

      Kommentar


        #4
        Du könntest die Zeit begrenzen, z.B.: 8:30 Uhr bis 9:00 Uhr. Dann wäre die Bedingung ab 9:00 Uhr nicht mehr erfüllt.

        [highlight=epc]
        (chtime(8,30,0) and !chtime(9,00,0))
        [/highlight]

        Uwe

        Kommentar


          #5
          Zitat von michel38 Beitrag anzeigen
          Du könntest die Zeit begrenzen, z.B.: 8:30 Uhr bis 9:00 Uhr. Dann wäre die Bedingung ab 9:00 Uhr nicht mehr erfüllt.

          [highlight=epc]
          (chtime(8,30,0) and !chtime(9,00,0))
          [/highlight]

          Uwe
          Hallo Uwe,

          sowas hatte ich mir ja schon überlegt, aber wirklich elegant finde ich diese Lösung nicht. Oder ist das für so einen Fall die einzig mögliche Lösung?

          Gruß
          Stefan

          Kommentar


            #6
            Zitat von StefanRo Beitrag anzeigen
            Hallo Uwe,
            sowas hatte ich mir ja schon überlegt, aber wirklich elegant finde ich diese Lösung nicht. Oder ist das für so einen Fall die einzig mögliche Lösung?
            Mir ist noch nicht ganz klar, was Du machen willst:
            Wenn er auf 100% steht, ist der doch zu.
            lt. Deiner Abfrage, soll er dann aber auf 88% fahren. Wenn Du also eine 1 Bit GA auslöst, fährt der auf 100% und dann wirkt die Abfragen und fährt auf 88%.
            So genau versteh ich das leider nicht.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Hallo,

              ich möchte erreichen, dass der Rolladen morgens nicht mehr auf 88% fährt, wenn er vorher schon auf anderem Weg geöffnet wurde weil ich gerade mal aus dem Bett gefallen bin. Das funktioniert soweit auch.
              Wenn ich den Rolladen Abends nun runterfahre ist die Bedingung aber auch erfüllt und er fährt wieder auf 88% hoch. Letzteres möchte ich verhindern.
              Die Idee von Uwe und mir z.B. einfach !chtime(9,0,0) einzusetzen geht, ich finde es aber unschön und zu undynamisch. Deshalb die Suche nach etwas eleganterem . Vielleicht geht es ja auch einfach nicht anders?!

              Gruß
              Stefan

              Kommentar


                #8
                Zitat von StefanRo Beitrag anzeigen
                ich möchte erreichen, dass der Rolladen morgens nicht mehr auf 88% fährt, wenn er vorher schon auf anderem Weg geöffnet wurde weil ich gerade mal aus dem Bett gefallen bin. Das funktioniert soweit auch.
                Wenn ich den Rolladen Abends nun runterfahre ist die Bedingung aber auch erfüllt und er fährt wieder auf 88% hoch. Letzteres möchte ich verhindern.
                wenn ich dich recht verstehe, möchtest Du eigentlich zwischen Hand- und Automatik unterscheiden. Daher würde ich eine Variable Auto definieren. In diesem Fall wird die Automatik eben nur einmal aktiv.
                [highlight=epc]
                if Bedingungen and Auto then write("Rolladen Position Ankleide-3/2/10", 88%); Auto=AUS endif
                if chtime(4,0,0) then Auto=EIN endif
                [/highlight]
                War das was Du wolltest?
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Du müsstes im Code abfangen, ob der Rollo von deiner Logik oder von wo anders (Taster) gefahren wurde...

                  Code umsetzung in etwas so (Nicht getestet):

                  [highlight=epc]
                  RolloLogik=AUS
                  RolloHandbedienung=AUS

                  if RolloLogik==AUS and (event("Rolladen Position Ankleide-3/2/10") or event(...weiter GA´s die den Rollo fahren...)) then {
                  RolloHandbedienung=EIN
                  } endif

                  if after(RolloHandbedienung==EIN, 30Sekunden) then {
                  RolloHandbedienung=AUS
                  } endif

                  if RolloHandbedienung==AUS and (after(sun()==EIN,5700000u64) and chtime(8,30,0) and (dayofweek() == SONNTAG or dayofweek() == SAMSTAG)) then {
                  RolloLogik=EIN;
                  write("Rolladen Position Ankleide-3/2/10", 88%);
                  } endif

                  if after(RolloLogik==EIN, 30Sekunden) then {
                  RolloLogik=AUS
                  } endif
                  [/highlight]
                  Gruß
                  Christian

                  Kommentar


                    #10
                    Es gibt sicherlich einfachere Moeglichkeiten. Z. B. Eine Anweisung fuer Morgens mit Bedingung und eine Anweisung fuer Abends mit Bedingung.

                    Uwe

                    Kommentar


                      #11
                      Hallo zusammen,

                      danke für Eure Ideen. Ich habe mich gestern erstmal für die Variante 'and !chtime(9,0,0)' enschieden, da es mir zu viele if-Abfragen sind bis ich auch die abendsliche Automatik abgedeckt bekomme. Das scheint mir momentan die einfachste Lösung zu sein.

                      Gruß
                      Stefan

                      Kommentar


                        #12
                        Der ursprüngliche Ausdruck triggert nur einmal morgens. Die Abfrage auf 100% soll da eigentlich nur sperren, triggert durch das and aber die Auswertung sobald der Rolladen bewegt wird. Das könnte wahrscheinlich vermieden werden, wenn die 100% erst innerhalb des than Zweiges als innere if Abfrage auftaucht, denn diese würde zwar die Ausführung genau so verhindern können wie das and, aber eben nicht bei Änderungen triggern, das tun nur alle im äußersten if enthaltenen Werte, Stichwort Validierungsschema und verschachtelte if.
                        Tessi

                        Kommentar

                        Lädt...
                        X