Ankündigung

Einklappen
Keine Ankündigung bisher.

1-10 V Lüftungssteuerung mittels Schaltaktor

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

    [Codebeispiel] 1-10 V Lüftungssteuerung mittels Schaltaktor

    Nachdem die Anforderung eine 1-10 V Lüftungssteuerung durch den Bus auszuführen immer wieder auftaucht, will ich an dieser Stelle meinen Code posten. Die Schaltung und ein paar weitere Informationen sind in diesem Threat unter #34 zu finden:
    https://knx-user-forum.de/gebaeudete...modelle-4.html


    [highlight=epc] //Lüftungsstufen
    Lueftungsstufe=2
    Lueftungsstufe_vorher=2
    if event("Lüftung-Erhöhen-1/6/19") then Lueftungsstufe=Lueftungsstufe+1 endif
    if Lueftungsstufe>6 then Lueftungsstufe=6 endif
    if event("Lüftung-Reduzieren-1/6/16") then Lueftungsstufe=Lueftungsstufe-1 endif
    if Lueftungsstufe<1 then Lueftungsstufe=1 endif
    if Lueftungsstufe==1 then write ("Lüftung-Schalter-A-1/6/30", AUS); write("Lüftung-Schalter-B-1/6/32", AUS); write("Lüftung-Schalter-C-1/6/34", EIN) endif
    if Lueftungsstufe==2 then write ("Lüftung-Schalter-A-1/6/30", AUS); write("Lüftung-Schalter-B-1/6/32", EIN); write("Lüftung-Schalter-C-1/6/34", EIN) endif
    if Lueftungsstufe==3 then write ("Lüftung-Schalter-A-1/6/30", AUS); write("Lüftung-Schalter-B-1/6/32", EIN); write("Lüftung-Schalter-C-1/6/34", AUS) endif
    if Lueftungsstufe==4 then write ("Lüftung-Schalter-A-1/6/30", EIN); write("Lüftung-Schalter-B-1/6/32", AUS); write("Lüftung-Schalter-C-1/6/34", EIN) endif
    if Lueftungsstufe==5 then write ("Lüftung-Schalter-A-1/6/30", EIN); write("Lüftung-Schalter-B-1/6/32", EIN); write("Lüftung-Schalter-C-1/6/34", AUS) endif
    if Lueftungsstufe==6 then write ("Lüftung-Schalter-A-1/6/30", EIN); write("Lüftung-Schalter-B-1/6/32", AUS); write("Lüftung-Schalter-C-1/6/34", AUS) endif
    if Lueftungsstufe==1 then write ("Lüftung-Status-Min-1/6/17", EIN) endif
    if Lueftungsstufe>1 then write ("Lüftung-Status-Min-1/6/17", AUS) endif
    if Lueftungsstufe==6 then write ("Lüftung-Status-Max-1/6/18", EIN); write("Lüftung-Intensiv-Status-1/6/21", EIN) endif
    if Lueftungsstufe<6 then write ("Lüftung-Status-Max-1/6/18", AUS); write("Lüftung-Intensiv-Status-1/6/21", AUS) endif

    //Stosslüften
    if "Lüftung-Intensiv-Aktivieren-1/6/20"==EIN then {
    Lueftungsstufe_vorher=Lueftungsstufe;
    Lueftungsstufe=6
    } endif
    if delay("Lüftung-Intensiv-Aktivieren-1/6/20"==EIN,900000u64) then write("Lüftung-Intensiv-Aktivieren-1/6/20", AUS); Lueftungsstufe=Lueftungsstufe_vorher endif

    //Lüftung leise
    if "Lüftung-Leise-1/6/15" then {
    Lueftungsstufe_vorher=Lueftungsstufe;
    Lueftungsstufe=1
    } endif
    if "Lüftung-Leise-1/6/15" and event("HWR-PM-Schalten-5/0/30") and "HWR-PM-Schalten-5/0/30"==AUS then {
    Lueftungsstufe=Lueftungsstufe_vorher;
    write("Lüftung-Leise-1/6/15", AUS)
    } endif [/highlight]

    Grüße
    Uwe

    #2
    Super, vielen Dank!
    Kannst du den Webserver Teil der Vollständigkeit halber auch noch posten? Gerade der interessiert mich auch noch!

    Vielen Dank

    Kommentar


      #3
      Ich habe die Struktur des Visu-Assistenten beibehalten, welche die Webserverdateien aufteilt auf die
      1. Initialisierung der Elemente
      2. Anordnung der Elemente
      3. Makroaufe
      4. Makros selbst

      Nachdem 1. trivial ist, will ich mich hier auf 2. bis 4. beschränken.

      2. Anordnung der Webelemente:
      Code:
      line$Lüftung$
      pbutton(Z6S1ID)[SWITCH]$Lüftung Ein/Aus$ pbutton(Z6S2ID)[SWITCH]$Stosslüftung$ pshifter(Z6S3ID)[MINUS,PLUS]$Lüftung schächer / stärker$
      pbutton(Res1ID)[SWITCH]$EWT Ein/Aus$ pbutton(Res2ID)[SWITCH]$WT Bypass$ pbutton(Res3ID)[INFO]$Betriebsst. Lftg.$ pbutton(Res4ID)[INFO]$Betriebsst. EWT$
      3. Makroaufrufe
      Code:
      UmschaltButton(Z6S1ID,AllgemeinHLSID,"Lüftung-E/A-1/6/10", "Lüftung-Status-E/A-1/6/11",SWITCH)
      UmschaltButton(Z6S2ID,AllgemeinHLSID,"Lüftung-Intensiv-Aktivieren-1/6/20", "Lüftung-Intensiv-Status-1/6/21",SWITCH)
      MinusPlusShifter(Z6S3ID,AllgemeinHLSID,Lueftungsstufe)
      UmschaltButton(Res1ID,AllgemeinHLSID,"EWT-Pumpe-E/A-1/6/50","EWT-Pumpe-Status-1/6/51",SWITCH)
      UmschaltButton(Res2ID,AllgemeinHLSID,"WT-Bypass-1/6/40","WT-Bypass-Status-1/6/41",SWITCH)
      BetriebsstundenButton(Res3ID,AllgemeinHLSID,"Lüftung-Betriebsstunden-1/6/12")
      BetriebsstundenButton(Res4ID,AllgemeinHLSID,"EWT- Betriebsstunden-1/6/52")
      4. Verwendete Makros:
      Code:
      // Webelement
      // @date    11.01.2012
      // @version    1 
      // @author    Enertex Bayern GmbH
      :begin UmschaltButton(ID, PageID, GA, StatusGA, ICON)
      :$ID des Elements$\\
               :$SeitenID$\\
               :$Gruppenadresse des EIN/AUS Schaltelements (b01)$\\
               :$Status des Aktors (b01)$\\
           :$ICON$
      :shortinfo $Implementierung eines Um-Schalters ("Toggle")$
      initga(StatusGA)
      if pbutton(ID,PageID)==1 then {
         write(GA,!StatusGA)
      } endif   
      if StatusGA then {
           pdisplay(ID,settime(),ICON,ACTIVE,GREEN,PageID) 
      } else {
           pdisplay(ID,settime(),ICON,INACTIVE,GREY,PageID) 
      } endif
      :end
      
      //////MinusPlusShifter//////
      :begin MinusPlusShifter(ID,PageID,Var)
      if pbutton(ID,PageID)==1 then Var=Var-1 endif
      if pbutton(ID,PageID)==2 then Var=Var+1 endif
      if change(Var) then pdisplay(ID,$Stufe: $ + convert(Var,$$),PLUS,INACTIVE,GREY,PageID) endif
      :end 
      
      /////BetriebsstundenButton//////
      :begin BetriebsstundenButton(ID,PageID,GAStatus)
      initGA(GAStatus)
      Anzeige_^ID=GAStatus
      if change(Anzeige_^ID) then pdisplay(ID,convert(Anzeige_^ID,$$)+$ h$,INFO,INACTIVE,GREY,PageID) endif
      :end
      Viel Erfolg beim Umsetzen

      Kommentar


        #4
        Zitat von Kahler Beitrag anzeigen
        Ich habe die Struktur des Visu-Assistenten beibehalten, welche die Webserverdateien aufteilt auf die
        Super! Und jetzt noch ein Screenshot....
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Zitat von enertegus Beitrag anzeigen
          Super! Und jetzt noch ein Screenshot....
          Ein Screenshot ist hier im Beitrag #5 zu sehen:
          https://knx-user-forum.de/gebaeudete...r-modelle.html

          Einen Neuen will ich der Gemeinde nicht zumuten, solange mein Sonderzeichen/Umlautproblem nicht gelöst ist.

          Kommentar


            #6
            Kleiner Nachtrag von meiner Seite:
            Ich habe mir die Schaltung genau so nachgebaut. Bedingt durch die Reihenschaltung ist es nicht ganz einfach die Werte an den Potis so einzustellen das am Abgriff die entsprechenden Spannungspegel stehen. Ein etwas modifiziertes Schaltungsdesign könnte da abhilfe schaffen.

            Die Programmierung habe ich dann jedoch doch selbst gemacht da meine Bedürfnisse doch etwas in andere Richtung gehen (Anlage läuft permanent in der Grundstufe und es gibt bei mir die Möglichkeit für 30min Intensiveren Luftwechsel zu aktivieren und dann noch ein Automatikprogramm (nach dem duschen etc.)).

            Nochmal vielen Dank für die Ideen und die Niederschrift!

            LG

            Kommentar


              #7
              Bedingt durch die Reihenschaltung ist es
              einfach so ausführen, dass jeweils nur EINE Stufe geschalten wird - dann kannst du die werte unabhängig mit Potis einstellen ....
              EPIX
              ...und möge der Saft mit euch sein...
              Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

              Kommentar

              Lädt...
              X