Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS Doppelklick (mein erster)

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

    LBS Doppelklick (mein erster)

    Hallo

    Da ich nicht fündig geworden bin bei der Suche eines Doppelklick LBS hab ich mich mal selbst an den Speck gemacht.

    Nach meinen Tests funktioniert er, würde nur gerne mal die Meinung der Spezialisten hören.
    Ist das halbwegs korrekt gemacht worden von mir?



    ###[DEF]###
    [name=Doppelklick]
    [e#1=Trigger]
    [e#2=Dauer (ms) #init=300]
    [a#1=Doppelklick]
    [v#1=0]
    ###[/DEF]###

    ###[HELP]###
    Dieser Baustein generiert einen Impuls (nur 1) wenn innerhalb der unter E2 eingestellten Zeit zwei Signale ungleich 0 kommen.
    Nach Ablauf der Zeit (wenn nur ein Signal gekommen ist) wird der Baustein wieder inaktiv.
    ###[/HELP]###

    ###[LBS]###
    <?
    function LB_LBSID($id) {
    if ($E=getLogicEingangDataAll($id)) {
    if (getLogicElementStatus($id)==0) { //LBS läuft nicht?
    if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
    setLogicElementVar($id,1,(getMicrotime()+$E[2]['value']/1000)); //Timestamp + E2
    setLogicElementStatus($id,1); //LBS "starten"
    }
    } else {
    if (getMicrotime()<=getLogicElementVar($id,1) && $E[1]['refresh']==1) { // Doppelklick innerhalb der Zeit
    setLogicLinkAusgang($id,1,1); //A1=1 setzen
    setLogicElementStatus($id,0); //LBS "stoppen"
    }
    }
    if (getMicrotime()>getLogicElementVar($id,1)) { // KEIN Doppelklick innerhalb der Zeit
    setLogicElementVar($id,1,0);
    setLogicElementStatus($id,0); //LBS "stoppen"
    }
    }
    }
    ?>
    ###[/LBS]###

    ###[EXEC]###
    <?
    ?>
    <###[/EXEC]###



    Danke und Gruß
    Seppl

    #2
    Welchen Anwendungsfall deckt der ab?

    Kommentar


      #3
      Ich vermute einen Doppelklick in der VISU...

      Kommentar


        #4
        Oder vielleicht weil Nachts das Licht gedimmt angeht, man aber sofort 100% haben möchte.
        Zuletzt geändert von nektar; 20.12.2016, 08:51.

        Kommentar


          #5
          nektar hat gewonnen ;o)
          Licht schnell auf 100% oder 1% zu dimmen.
          Oder Licht mit Treppenhausfunktion auf "Dauereien" zu stellen....

          Was sagen die Spezialisten.
          Geht die art der Programmierung halbwegs?

          Kommentar


            #6
            Zitat von sepplo815 Beitrag anzeigen
            Geht die art der Programmierung halbwegs?
            Funktionieren wird es so schon.

            Ich bin noch nicht ganz sicher, ob ich es richtig verstanden habe, aber der Baustein soll doch, wenn zweimal innerhalb einer kurzen Zeit ein Taster gedrückt wird, den Ausgang auf 1 setzen. Richtig?

            Im Moment wird dein LBS ja dauerhaft so schnell wie möglich gestartet.

            PHP-Code:
            setLogicElementStatus($id,1); //LBS "starten" 
            Wenn du nur den Doppelklick auf A1 signalisieren willst, dann müsstest du dir eigentlich nur beim Triggern die Zeit merken und dann beim nächsten Triggern vergleichen.
            Wenn die Zeit innerhalb des Intervalls liegt, dann Ausgang setzen und in jedem Fall wieder die Zeit merken.
            Der LBS müsste dann also nur beim Triggern des Eingangs E1 gestartet werden und nicht ständig.

            Wenn Du mit der Null auf A1 anzeigen möchtest, dass es ein Einfachklick ist, dann geht es vermutlich nur so, wie von dir beschrieben.

            Kommentar


              #7
              sepplo815 ein Vorschlag, mach doch noch einen Eingang in dem man die Anzahl der erwartet Signale mit dem Wert 1 festlegen kann. Somit kann man diesen Baustein dynamischer nutzen. Zum Beispiel wenn nicht nur 2 Signale in einer bestimmten Zeit erwartet werden, sondern 5 oder mehr. Vg

              Kommentar


                #8
                Der Werks-LBS 17000220 arbeitet ähnlich, allerdings im Sekundenbereich (aber dies wäre ja leicht zu ändern). Ich nutze der LBS u.a. für eine Panik-Alarmfunktion (daher der Name): Wenn ich einen Taster 5x innerhalb von 3s drücke, wird's laut und hell
                EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                Kommentar


                  #9
                  Ja Christian, an sowas habe ich dabei auch gedacht und eine Bereichsüberwachung. Ich schau mir gleich mal deinen LBS an.

                  Kommentar


                    #10
                    So....
                    geht natürlich auch ein wenig kürzer.
                    Wie geschrieben "war" halt mein ester ;o)

                    Code:
                    ###[DEF]###
                    [name=Doppelklick]
                    [e#1=Trigger]
                    [e#2=Dauer (ms) #init=300]
                    [a#1=Doppelklick]
                    [v#1=0]
                    ###[/DEF]###
                    
                    ###[HELP]###
                    Dieser Baustein generiert einen Impuls (nur 1) wenn innerhalb der unter E2 eingestellten Zeit zwei Signale ungleich 0 kommen.
                    Nach Ablauf der Zeit (wenn nur ein Signal gekommen ist) wird der Baustein wieder inaktiv.
                    ###[/HELP]###
                    
                    ###[LBS]###
                    <?
                    function LB_LBSID($id) {
                      if ($E=getLogicEingangDataAll($id)) {
                    
                        if ($E[1]['value']!=0 && $E[1]['refresh']==1) {                            // High & Refresh
                          if (getMicrotime()>getLogicElementVar($id,1)) {
                            setLogicElementVar($id,1,(getMicrotime()+$E[2]['value']/1000));
                          } else {
                            setLogicLinkAusgang($id,1,1);
                          }
                        }
                    
                      }
                     }
                    ?>
                    ###[/LBS]###
                    
                    ###[EXEC]###
                    <?
                    ?>
                    <###[/EXEC]###


                    Oder dynamisch (bis zu 10 Klicks):
                    Code:
                    ###[DEF]###
                    [name=Mehrfachklick]
                    [e#1=Trigger]
                    [e#2=Dauer (ms) #init=500]
                    [e#3=Anzahl #init=2]
                    
                    [a#1=1]
                    
                    [v#1=0]    // letzter klick
                    [v#2=0]    // vorletzter Klick
                    [v#3=0]    // vor-vorletzter Klick
                    [v#4=0]    // ..vor-vorletzter Klick
                    [v#5=0]    // ....vor-vorletzter Klick
                    [v#6=0]    // ......vor-vorletzter Klick
                    [v#7=0]    // ........vor-vorletzter Klick
                    [v#8=0]    // ..........vor-vorletzter Klick
                    [v#9=0]    // ............vor-vorletzter Klick
                    [v#10=0]// ..............vor-vorletzter Klick
                    // ...........
                    
                    ###[/DEF]###
                    
                    ###[HELP]###
                    Dieser Baustein generiert einen Impuls (nur 1) wenn innerhalb der unter E2 eingestellten Zeit die unter E3 (max 10) eingestellten Signale ungleich 0 kommen.
                    ###[/HELP]###
                    
                    ###[LBS]###
                    <?
                    function LB_LBSID($id) {
                      if ($E=getLogicEingangDataAll($id)) {
                    
                        for($i=1;$i<=$E[3]['value'];$i++) {
                          $a=$E[3]['value']-$i+1;
                          setLogicElementVar($id,$a,getLogicElementVar($id,$a-1));
                        }
                        setLogicElementVar($id,1,(getMicrotime()+$E[2]['value']/1000));
                    
                        if (getMicrotime()<getLogicElementVar($id,$E[3]['value'])) {
                          setLogicLinkAusgang($id,1,1);
                        }
                    
                      }
                    }
                    ?>
                    ###[/LBS]###
                    
                    ###[EXEC]###
                    <?
                    ?>
                    <###[/EXEC]###


                    Gruß
                    Seppl

                    Kommentar


                      #11
                      Hallo,
                      kommt der Baustein auch in die LBS-Datenbank? Könnte ihn gerade gebrauchen und will eigentlich keine additive ID vergeben, wenn er sowieso in der Datenbank landet.

                      Kommentar

                      Lädt...
                      X