Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Zwangsobjekt für Rolladen

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

    - √ - Zwangsobjekt für Rolladen

    Hallo,

    ich habe Fensterkontakte über Tasterschnitstellen auf dem Bus. Neben der Heizungssteuerung wollte ich jetzt auch das der Rolladen hochfährt wenn ein Fenster geöffnet wird, und halt wieder runter in die letzte Position wenn es wieder geschlossen wird.

    Bei den einflügligen Fenstern auch kein Problem:
    Code:
    if ("Fenster_a_nichtverrigelt-1/1/1") \\
      then write("Rollo_a_Zwang-1/1/5,2b02) \\
      else write("Rollo_a_Zwang-1/1/5,0b02) \\
    endif
    Rolladenaktor ist übrigens ein Gira1038 bzw. Gira2165

    Nun habe ich zwei Räume mit zweiflügligem Fenster aber einfachem Rolladen. Dort habe ich folgendes versucht:
    Code:
    if ("Fenster_b_nichtverrigelt-1/2/1" or "Fenster_c_nichtverrigelt-1/2/2") \\
      then write("Rollo_a_Zwang-1/2/5,2b02) \\
      else \\
        if (!"Fenster_b_nichtverrigelt-1/2/1" and !"Fenster_c_nichtverrigelt-1/2/2") \\
        then write("Rollo_b_Zwang-1/2/5,0b02) \\
      endif \\
    endif
    Leider wird der Zwangsmodus damit nicht wieder aufgehoben.

    Statt der Negierung mit ! habe ich auch schon
    Code:
    "Fenster_b_nichtverrigelt-1/2/1"==AUS
    versucht, leider mit dem selben Ergebnis.

    Jetzt stehe ich ersteinmal etwas auf dem Schlauch. Hat jemand eine Idee oder weis wo mein Fehler ist?

    Gruß,

    Olaf
    ETW mit TS2+, SmartSensor, Winkhaus Fensterkontakte, EibPC, OpenRemote KNX

    #2
    Zitat von OColu Beitrag anzeigen
    Leider wird der Zwangsmodus damit nicht wieder aufgehoben.
    Löse die Verschachtelung und mach besser zwei getrennte Abfragen. Das Validierungsschema (Aktualisierung nur bei Änderung) wird Dir hier einen Strich durch die Rechnung machen:
    Code:
    if ("Fenster_b_nichtverrigelt-1/2/1" or "Fenster_c_nichtverrigelt-1/2/2") \\
      then write("Rollo_a_Zwang-1/2/5,2b02) \\
    endif
    if (!"Fenster_b_nichtverrigelt-1/2/1" and !"Fenster_c_nichtverrigelt-1/2/2")    then write("Rollo_b_Zwang-1/2/5,0b02) \\
    endif
    Michael
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      AH!

      Gut, danke.
      Nur so zum Verständnis, ginge demnach:
      Code:
      if event(B or C) then \\
          if (B or C) then write(ZWANG,2b02) else write(ZWANG,0b02) endif \\
      endif
      Wäre deutlich kürzer.
      Die "else" Bedingung ist damit doch nicht in event() oder?

      Gruß,

      Olaf
      ETW mit TS2+, SmartSensor, Winkhaus Fensterkontakte, EibPC, OpenRemote KNX

      Kommentar


        #4
        Zitat von OColu Beitrag anzeigen
        AH!
        Code:
        if event(B or C) then \\
            if (B or C) then write(ZWANG,2b02) else write(ZWANG,0b02) endif \\
        endif
        Event geht nur auf eine GA oder speziellen Funktionen (wie etwa readudp). Nicht aber auf eine "Oder" Verknüfpung.
        Gehen würde es etwa in der Form
        Code:
         if event(GA-B) or event(GA-C) then \\
            if (GA-B or GA-C) then write(ZWANG,2b02) else write(ZWANG,0b02) endif \\
        endif
        Die "else" Bedingung ist damit doch nicht in event() oder?
        Der Compiler würde jedenfalls meckern, wenn er es nicht mag...
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Super suport!!

          Klasse!!

          Das funktioniert!
          Und gefällt mir wesentlich besser als für zwei verschiedene Flanken ein und des selben Sensorpaares getrennte Anweisungsblöcke zu schreiben.

          Danke für die Hilfe.

          Gruß,

          Olaf
          ETW mit TS2+, SmartSensor, Winkhaus Fensterkontakte, EibPC, OpenRemote KNX

          Kommentar

          Lädt...
          X