Ankündigung

Einklappen
Keine Ankündigung bisher.

EibPC Dimmer Problem

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

    [Codebeispiel] EibPC Dimmer Problem

    Hallo beisammen!

    Ich habe folgendes Problem beim anlegen eines Dimmers im Webserver des EibPCs: Die Shifter up und down gehen soweit korrekt, aber wenn ich nun von 100% runter dimme bis ich auf 0% komme und dann nochmal runterdimme, dann geht der Wert retour auf dann 255 (bzw 100%). Die Programmierung sieht so aus:

    //Webserver Dimmer
    DimmerTV=0%
    if webbutton(3)==1 then if "Wohnen TV-1/1/5" then write("Wohnen TV-1/0/2"u08,DimmerTV) endif; \\
    DimmerTV=DimmerTV+10% endif
    if webbutton(3)==3 then if "Wohnen TV-1/1/5" then write("Wohnen TV-1/0/2"u08,DimmerTV) endif; \\
    DimmerTV=DimmerTV-20% endif

    Was mache ich falsch? Danke für die Antworten.

    Mike

    #2
    .... 0% minus 20% = 80% so wäre eine Überlauf in einer SPS-Steuerung,
    daher wundert mich schon mal die 100% (8bit Vorzeichenlos: 255).

    Das hochdimmen müßte dann aber auch herunterspringen, also:

    100% + 10% = 10%

    Es müßte sich wie in einer SPS verhalten,
    das springen über die Bereichsgrenzen

    ---- 0..255 --- 0..255 --- 0..255 ---

    muss also irgendwie programmtechnisch verhindert werden.

    Ich probiere das mal in den nächsten Stunden mal aus.

    Frank

    -----

    EDIT:

    Wunderde dich nicht in menem Code über ==3 und ==4.
    Ich habe einen 4-Taster-Shifter mißbraucht.

    Ab es ist, wie ich schon sagte, der Prozentwert spingt
    in BEIDEN Richtungen auf den jeweis andern Extermwert.
    {muss besser heißen, über die Extremwertgrenze hinaus!}
    Da muß also noch eine Abfrage rein - ist schon störend - das
    verstehe ich.

    Ich probiere mal was...

    Code:
     
    //Webserver Dimmer
    DimmerTV=0%
    if webbutton(6)==3 then\\
      if "Galerie | BE 1 Schalten Beleuchtung Indirekt-1/4/1" then write("Galerie | WT Dimmen Beleuchtung Indirekt-1/4/21"u08,DimmerTV) endif; \\
    DimmerTV=DimmerTV+10% endif
    if webbutton(6)==4 then\\
      if "Galerie | BE 1 Schalten Beleuchtung Indirekt-1/4/1" then write("Galerie | WT Dimmen Beleuchtung Indirekt-1/4/21"u08,DimmerTV) endif; \\
    DimmerTV=DimmerTV-20% endif
    Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

    Kommentar


      #3
      so geht mit Anschlag nach oben und unten.
      Ist allerdings noch nicht fertig, den..

      1.
      wenn man auf NULL oder nahe NULL dimmt, dann kann der Aktor
      auch direkt ausgeschaltet werden.

      2.
      wenn der Dimmaktor aus ist, geht garnichts. Man könnte mit einer
      zusätzlichen Abfrage (Aktor==EIN) den Aktor auch mittels vorherigem
      write auch erstmal anschalten oder man nimmt die if Abfrage gleich
      raus oder ändert das Konstrukt entsprechend. Also für eine
      reale Verwendung gibts noch ein paar Sachen anzufassen.

      3.
      In deinem Beipiel hast du übrigens erst NACH dem Write den
      Dimmwert addiert oder subtrahiert. Das war bestimmt nicht so
      gewollt oder?


      Code:
       
      //Webserver Dimmer
      DimmerTV=0%
      if webbutton(6)==3 then \\
      if DimmerTV>90% then DimmerTV=100% else DimmerTV=DimmerTV+10% endif; \\
      if "Galerie | BE 1 Schalten Beleuchtung Indirekt-1/4/1" then write("Galerie | WT Dimmen Beleuchtung Indirekt-1/4/21"u08,DimmerTV) endif; \\
      endif
       
       
      if webbutton(6)==4 then\\
      if DimmerTV<10% then DimmerTV=0% else DimmerTV=DimmerTV-10% endif; \\
      if "Galerie | BE 1 Schalten Beleuchtung Indirekt-1/4/1" then write("Galerie | WT Dimmen Beleuchtung Indirekt-1/4/21"u08,DimmerTV) endif; \\
      endif

      Frank
      Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

      Kommentar


        #4
        Danke! Ich komme leider trotzdem nicht weiter - mein Code sieht nun so aus:

        //Webserver Dimmer
        DimmerTV=0%
        // erster Button soll "+" dimmen bzw. wenn Licht aus auf 10% einschalten \\
        if webbutton(3)==1 then if DimmerTV>90% then DimmerTV=100%; \\
        write("Wohnen TV-1/1/5",EIN) \\
        else DimmerTV=DimmerTV+10% endif;
        if "Wohnen TV-1/1/5" then write("Wohnen TV-1/0/2"u08,DimmerTV) endif \\
        endif
        // Button in der Mitte soll Licht ein-/ausschalten mit Änderung der Grafik
        if webbutton(3)==2 then if "Wohnen TV-1/1/5" then DimmerTV=0%; write("Wohnen TV-1/1/5",AUS) endif; \\
        if !"Wohnen TV-1/1/5" then DimmerTV=100%; write("Wohnen TV-1/1/5",EIN) endif
        endif
        if "Wohnen TV-1/1/5" then webdisplay(3,$EIN$c14,LIGHT,ACTIVE,GREY) \\
        else webdisplay(3,$AUS$c14,LIGHT,INACTIVE,GREY) endif
        // dritter Button soll "-" dimmen bzw. wenn Licht auf 10% dann ausschalten \\
        if webbutton(3)==3 then if DimmerTV<10% then DimmerTV=0%; \\
        write("Wohnen TV-1/1/5",AUS) \\
        else DimmerTV=DimmerTV-10% endif; \\
        if "Wohnen TV-1/1/5" then write("Wohnen TV-1/0/2"u08,DimmerTV) endif \\
        endif


        Button Mitte Licht ein/aus und "-"dimmen funktioniert. Nicht aber wenn der Aktor aus ist mit "+"dimmen auf 10% zu kommen. Das kriege ich nicht hin. Ferner wäre es perfekt, wenn die Beschriftung (wo AUS und EIN steht) bei gedimmten Werten die Prozentanzeige hätte. Das kriege ich aber schon dreimal nicht hin :-(
        Kannst Du mir da behilflich sein?

        Vielen Dank,
        Mike

        Kommentar


          #5
          Ferner wäre es perfekt, wenn die Beschriftung (wo AUS und EIN steht) bei gedimmten Werten die Prozentanzeige hätte. Das kriege ich aber schon dreimal nicht hin :-(
          Kannst Du mir da behilflich sein?
          Code:
          if "Wohnen TV-1/1/5" then webdisplay(3,convert(DimmerTV,0f16)/2.55,LIGHT,ACTIVE,GREY) \\
                                  else webdisplay(3,convert(DimmerTV,0f16)/2.55, LIGHT,INACTIVE,GREY) endif
          Michael
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #6
            Zitat von Mikey Beitrag anzeigen
            Button Mitte Licht ein/aus und "-"dimmen funktioniert. Nicht aber wenn der Aktor aus ist mit "+"dimmen auf 10% zu kommen. Das kriege ich nicht hin.
            Wenn Du mit dem Debugger arbeitest: Auf welchem Wert steht denn der DimmerTV (nicht, dass Rundungsfehler einen Überlauf bauen)... In diesem Fall müsstest Du dies anpassen.
            Alternativ wäre es sicher einfacher mit einer 4Bit -GA- Dimmen zu arbeiten.
            Michael
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Zitat von enertegus Beitrag anzeigen
              Alternativ wäre es sicher einfacher mit einer 4Bit -GA- Dimmen zu arbeiten.
              4Bit dimmt am bzw. im Dimmer direkt.

              Da muß schon der Aktor eine langsame Dimmgeschwindigkeit haben,
              das die Trägheit des Webbrowsers nicht zu sehr stört

              1byte setzt den Wert im Aktor absolut, das ist schon die edlere
              Variante. Natürlich schreit das Kostrukt ja schon gleich wieder
              nach einem Marko, odrr?

              Frank
              Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

              Kommentar


                #8
                Da muß schon der Aktor eine langsame Dimmgeschwindigkeit haben,
                Das Dimmen wird über den 4 Bit Wert gemacht, der damit mehrere Inkrementstufen kann. Beim maximalen Wert dürfte das mehr als 10 % sein (natürlich auch abhängig von eingestellten Parametern).
                Das vermeintlich schnelle Hochdimmen eines Tasters ist also eine Kombination von wenigen Telegrammen und deren Wert.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Wow - alles klar. Ich dachte eine einfache Sache am Anfang machen zu wollen. Bin erst seit wenigen Tagen stolzer Besitzer des EibPCs. Naja man wächst ja mit seinen Aufgaben.

                  Also - bei der folgenden Programmierung geht bei ausgeschalteter Lampe das Licht erst an, wenn der +-Button so oft gedrückt wird, bis die Lampe auf "EIN" geht.
                  Wenn die Lampe ein ist, dann gehen die Werte beim "-"Button von Ein auf 114.96, dann auf 102.48, dann 90.0 usw., beim raufdimmen in selben Schritten. Dennoch startet der Dimmer bei Lampe aus und +Button nicht mit 10% Helligkeit. Wie kann ich an die Sache weiter rangehen?
                  LG,
                  Mike

                  Code:
                  //Webserver Dimmer
                  DimmerTV=0%
                  if webbutton(3)==1 then if DimmerTV>90% then DimmerTV=100%;write("Wohnen TV-1/1/5",EIN) \\
                  else DimmerTV=DimmerTV+10% endif; \\
                  if "Wohnen TV-1/1/5" then write("Wohnen TV-1/0/2"u08,DimmerTV) endif ; \\
                  if "Wohnen TV-1/1/5" then webdisplay(3,convert(DimmerTV,0f16)/2.55,LIGHT,ACTIVE,GREY) \\
                  else webdisplay(3,convert(DimmerTV,0f16)/2.55, LIGHT,INACTIVE,GREY) endif endif
                  if webbutton(3)==2 then if "Wohnen TV-1/1/5" then DimmerTV=0%; write("Wohnen TV-1/1/5",AUS) endif; \\
                  if !"Wohnen TV-1/1/5" then DimmerTV=100%; write("Wohnen TV-1/1/5",EIN) endif endif
                  if "Wohnen TV-1/1/5" then webdisplay(3,$EIN$c14,LIGHT,ACTIVE,GREY) \\
                  else webdisplay(3,$AUS$c14,LIGHT,INACTIVE,GREY) endif
                  if webbutton(3)==3 then if DimmerTV<10% then DimmerTV=0%;write("Wohnen TV-1/1/5",AUS) \\
                  else DimmerTV=DimmerTV-10% endif; \\
                  if "Wohnen TV-1/1/5" then write("Wohnen TV-1/0/2"u08,DimmerTV) endif ; \\
                  if "Wohnen TV-1/1/5" then webdisplay(3,convert(DimmerTV,0f16)/2.55,LIGHT,ACTIVE,GREY) \\
                  else webdisplay(3,convert(DimmerTV,0f16)/2.55, LIGHT,INACTIVE,GREY) endif endif

                  Kommentar


                    #10
                    schau mal im Dimmeraktor nach

                    Einschalthelligkeit

                    da sollte Memory (Helligkeit vor letztem Asuschalten stehen)
                    und nicht etwa 100% Prozent

                    Gruß

                    Frank
                    Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

                    Kommentar


                      #11
                      Hallo Frank!

                      Das hat keine Auswirkung auf das Hochdimmverhalten. Selbiger Effekt wie wenn es auf 100% Einschalthelligkeit steht. Leider.

                      Gruß,
                      Mike

                      Kommentar


                        #12
                        Wow - alles klar. Ich dachte eine einfache Sache am Anfang machen zu wollen.
                        Na gerade der Anfang ist schwer
                        Also - bei der folgenden Programmierung geht bei ausgeschalteter Lampe das Licht erst an, wenn der +-Button so oft gedrückt wird, bis die Lampe auf "EIN" geht.
                        Ggf. muss die Einschalthelligkeit am Dimmer programmiert werden. Du kannst den EIN Befehl aber bei jedem Dimmerwert !=0 angeben (zusätzliches write), oder wo ist das Problem?
                        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                        Enertex Produkte kaufen

                        Kommentar


                          #13
                          Zitat von Mikey Beitrag anzeigen
                          Also - bei der folgenden Programmierung geht bei ausgeschalteter Lampe das Licht erst an, wenn der +-Button so oft gedrückt wird
                          und du über 90% bist
                          , bis die Lampe auf "EIN" geht.
                          Wird zwar nun immer größer das ganze, aber da müssen wir noch einiges
                          ändern.

                          Mir is jedenfall nicht klar, warum du in das Grenzenüberwachungskonstukt

                          [CODE]

                          if DimmerTV>90% then DimmerTV=100% else DimmerTV=DimmerTV+10% endif;

                          [/QUOTE]


                          rausgenommen hast. Wie ganz oben bei mir war es sauberer als mit dem reingeschriebenen WRITE


                          Man sollte if then nicht zu sehr verschachteln


                          Auch finde ich die 0% und 100% unschön

                          if webbutton(3)==2 then if "Wohnen TV-1/1/5" then DimmerTV=0%; write("Wohnen TV-1/1/5",AUS) endif; \\
                          if !"Wohnen TV-1/1/5" then DimmerTV=100%; write("Wohnen TV-1/1/5",EIN) endif endif
                          if "Wohnen TV-1/1/5" then webdisplay(3,$EIN$c14,LIGHT,ACTIVE,GREY) \\
                          else webdisplay(3,$AUS$c14,LIGHT,INACTIVE,GREY) endif


                          Lasse die weg, dann hast du eine reguläre Memory-Funktion
                          von wo aus du UP und DOWN- Dimmen kannst.


                          ...der Beitrag war schon länger, den hat es mir aber gerade zerschossen...


                          Gruß

                          Frank
                          Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

                          Kommentar


                            #14
                            Seh ich gerade:
                            if "Wohnen TV-1/1/5" then write("Wohnen TV-1/0/2"u08,DimmerTV) endif ; \\
                            würde hier nur ein einziges mal die if-Abfrage anspringen, wenn sich der Zustand der GA 1/1/5 ändert (Stichwort Validierungsschema).
                            Besser hier
                            Code:
                            if "Wohnen TV-1/1/5" and event("Wohnen TV-1/1/5") then write("Wohnen TV-1/0/2"u08,DimmerTV) endif
                            oder (gefällt mir besser)
                            Code:
                            if change(DimmerTV) then write("Wohnen TV-1/0/2"u08,DimmerTV) endif
                            schreiben
                            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                            Enertex Produkte kaufen

                            Kommentar


                              #15
                              @enertegus

                              Jetzt machte er ja endlich mal mit REALCODE mit - der Herr "enertegus".

                              Das musste jetzt raus haha!

                              --

                              Ich denke mal - auch wenn der Aufwand für so ein scheinbar
                              kleines Problem - irgendwas hübsch zu dimmen zu wollen - schon
                              immer größer wird, ist das doch eine Standardaufgabe, die irgendwann
                              Eingang in die Codeschnipsel finden muss!


                              Gruß

                              Frank
                              Warum eine SPS wenns auch KNX gibt (oder war das umgekehrt???)

                              Kommentar

                              Lädt...
                              X