rule "Remote Button3"
when
Channel "innogysmarthome:BRC8:SMARTHOME08:d85e0ec0133346dc9d29d71ba332ff77:button3" triggered PRESSED
then
logInfo("Fernbedienung Button 3", "Ein")
// Befehl 1
end
rule "Remote Button3 Count"
when
Item Button3_Count_AZ changed
then
var CountNumber = Button3_Count_AZ.state as Number
logInfo("CountNumber",":"+CountNumber)
// Befehl 2
end
Bei einem Merhfachklick wird mehrfach die Info in Rule "Remote Button3" ausgegeben (was ich genau nicht will),
die Info in Rule "Remote Button3 Count" jedoch nicht (was ich ja genau will).
Teste das mal so... dann wissen wir schonmal ob der Count überhaupt funktioniert. Richtig sind deine Rules noch nicht. Die erste wird immer auslösen, weil die den Count ja garnicht kennt. Aber eins nach dem anderen. Ich habe auch noch nie mit den Count gearbeitet. Stellt der sich selbst wieder auf 0 oder muss man das selbst zurückstellen?
rule "Remote Button3"
when
Channel "innogysmarthome:BRC8:SMARTHOME08:d85e0ec0133346dc9d29d71ba332ff77:button3" triggered PRESSED
then
logInfo("Fernbedienung Button 3", "Ein")
logInfo("Fernbedienung Button 3","Count: {}", Button3_Count_AZ.state as Number)
//Verändert sich der Count überhaupt bei der 2ten Ausgabe?
end
Ich kenne das Innogy Addon nicht. Ist es so, dass der Channel button3_count die Anzahl der Klicks enthält? Dann musst Du mit einer Rule arbeiten, nicht mit zweien:
udo1toni hat geschrieben: ↑16. Aug 2019 00:57
Ich kenne das Innogy Addon nicht. Ist es so, dass der Channel button3_count die Anzahl der Klicks enthält?
Soweit ich weiß (Innogy Hardware ist ja von EQ3) zählt der Counter bis 999 jeden Klick hoch und fängt dann wieder von vorne an. Sprich man müsste erst den aktuellen Wert auslesen und dann die Differenz berechnen. Ich denke einen richtig guten Doppelklick wird man damit nicht hinbekommen, bzw. nur ziemlich Zeitverzögert.... also Licht z.b. wollte ich damit nicht schalten. Eine Rule die z.b. ne Alarmanlage einschaltet , da wäre mir die Verzögerung egal.
// Globale Variablen immer zu Beginn der Datei definieren!
var Timer tButton = null
rule
when
Channel 'innogysmarthome:BRC8:SMARTHOME08:d85e0ec0133346dc9d29d71ba332ff77:button3' triggered PRESSED
then
if(tButton !== null) {
tButton.cancel
tButton = null
// Befehl(e) für Doppelklick ausführen
} else {
tButton = createTimer(now.plusMillis(500), [|
// Befehle für Einfachklick ausführen
tButton = null
])
}
end
Der Trigger startet die Rule.
Ist der Timer bereit existent, muss vor weniger als 500Millisekunden die Rule schon mal getriggert worden sein -> Doppelklick. Da Doppelklick, muss der Timer abgebrochen werden.
Andernfalls handelt es sich um den ersten Klick. Damit wird der Einfach-Schaltvorgang mit der Verzögerung der Doppelklick-Erkennung geplant.
Mit dem Wert des Timers muss man im Zweifel etwas spielen...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
Cool. Vielen Dank für Eure Antworten. Ich werde es morgen gleich mal testen.
Ich wollte damit die Helligkeit meiner Netatmo Presence ändern, also 1 Klick -> einschalten, "Doppelklick" -> Helligkeit erhöhen usw.
Bis dann
var Timer tButton = null
rule "Remote Button 3 Click and DoubleClick"
when
Channel 'innogysmarthome:BRC8:SMARTHOME08:d85e0ec0133346dc9d29d71ba332ff77:button3' triggered PRESSED
then
if(tButton !== null) {
tButton.cancel
tButton = null
// Befehl(e) für Doppelklick ausführen
logInfo("Button 3","Doppelklick")
} else {
tButton = createTimer(now.plusMillis(500), [|
logInfo("Button 3","Einfachklick")
tButton = null
])
}
end
In events.log sehe ich, dass und wie oft Button3 gedrückt wurde, im openhab.log erscheint jedoch keine Info. Infos von anderen Ereignisse werden problemos angezeigt. Auch ein Neustart von Openhab ändert daran nicht.
Setze mal die Millis von 500 auf 2000 ... ich schätze die 500 reichen nicht um den Befehl zwischen CCU und Openhab auszutauschen, wobei eigentlich sollte dann immer der LOG Einfachklick auftauchen.
Tauchen evt. Javafehler auf ?
Teste das ganz mal wie folgt, dann siehst du ob die Rule überhaupt getriggert wird.
rule "Remote Button 3 Click and DoubleClick"
when
Channel "innogysmarthome:BRC8:SMARTHOME08:d85e0ec0133346dc9d29d71ba332ff77:button3" triggered PRESSED or
Channel "innogysmarthome:BRC8:SMARTHOME08:009044d17edf4236addd88d521a1c626:button3" triggered PRESSED
then
---