Ankündigung

Einklappen
Keine Ankündigung bisher.

Doppelklick mit Taster

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

    Doppelklick mit Taster

    Hallo !

    Ich habe derzeit mehrere Taster auf einer Gruppenadresse des KNX (Binäreingang) liegen.

    Den Taster habe ich bereits per items eingebunden.

    Nun soll das Licht bei :

    - einmal tasten für 1 Minute brennen....
    - zweimal tasten für 5 Minuten brennen....
    - dreimal tasten für 15 Minuten brennen.....
    - mehr als drei mal tasten -> Licht direkt aus

    Kann mir jemand bitte dabei helfen ? Danke im Voraus !

    #2
    Hi,

    Statt viermal kurz zu tippen um das Licht auszuschalten, würde ich lieber einmal lang tippen (>1s).

    Gruß ,
    Thoern

    Kommentar


      #3
      stimmt.....noch besser !

      Kommentar


        #4
        Falls du doch den mehrfach Tipper brauchst.
        Ich hatte mir da mal eine Rule für gebastelt:
        Code:
        var Number timerCounter = 0
        var org.joda.time.DateTime lastButtonPress = now
        var Timer timer = null
        var Object timerLastSendCommmand=STOP
        
        rule "Taster Zaehler"
        when
        	Item Rolladen_EG_Wohn_1 received command
        then
        	var Number millisAgo=now.getMillisOfDay()-lastButtonPress.getMillisOfDay()  
        	//logInfo("Rolladen.rules", "Rolladen alle "+timerCounter+"x : "+receivedCommand)
        	if(millisAgo < 2000 && receivedCommand instanceof UpDownType) {
        		timerCounter=timerCounter+1
        		lastButtonPress=lastButtonPress.plusMillis(1000)
        		timerLastSendCommmand= receivedCommand
        		logInfo("Rolladen.rules", "Rolladen alle "+timerCounter+"* : "+receivedCommand+" ("+receivedCommand.getClass() +")")
        		if(timer==null) {
        			// first ON command, so create a timer to turn the light off again
        			timer = createTimer(now.plusMillis(2000)) [|
        				logInfo("Rolladen.rules", "Rolladen alle "+timerCounter+"x : "+timerLastSendCommmand)
        				if(timerCounter==2)
        				{
        					logInfo("Rolladen.rules", "Rolladen alle: STOP")
        					Rolladen_EG_Wohn_Alle.sendCommand(STOP)
        				}
        				else if(timerCounter==3)
        				{
        					logInfo("Rolladen.rules", "Befehl an Rolladen_WZ_ alle: "+timerLastSendCommmand)
        					Rolladen_EG_Wohn_Alle.sendCommand(timerLastSendCommmand+"")
        				}
        			]
        		} else {
        			timer.reschedule(now.plusMillis(2000))
        		}
        	} 
        	else {
        		timerCounter=1
        		lastButtonPress = now
        		if(timer!=null) {
        			timer.cancel
        			timer = null
        		}	
        	}
        end
        Die Rule zählt so lange die Tastendrücke bis der Timer abgelaufen ist.
        Ich hatte das mal ursprünglich für Rolladen gemacht, da hat es leider nicht richtig funktioniert, aberbeim Licht war alles super.

        Kommentar


          #5
          Danke ! Werde ich direkt testen !

          Kommentar

          Lädt...
          X