Tastendruckabfrage

Hallo in die Runde.

Ich habe vor bei mehreren FGS-224 die Tastendruckfunktion abzufragen.
Geht das mit LUA und wenn wie ?
Für den Dimmer2 habe ich da etwas gefunden.

HC3 Dimmer 2 S2 input - Scenes and Interface - Smart Home Forum by FIBARO

In der Doku des FGS-224 finde ich da keine Info zu.
Hat das schon mal einer probiert und könnte mir ein kleines Beispiel zeigen?

Gruss Frank

1 Like

Guten morgen Frank, ich habe zwar gerade keinen FGS-224 zur Verfügung, aber habe das bei älteren Modulen mehrfach in Benutzung. Als erstes musst du unter den Parameten:
Parameter
Scene/Associations auf 1 setzen


als Trigger nimmst du dann die Fernbedienung vom Modul

{
  conditions = { {
      id = 85,                    --ID des Moduls Fernbedienung
      isTrigger = true,
      operator = "==",
      property = "sceneActivationEvent",
      type = "device",
      value = 26                 -- S2 einfach click
      --weitere Value unter   https://manuals.fibaro.com/roller-shutter-2/  Scene Activation
    }, {
      id = 85,                    --ID des Moduls Fernbedienung
      isTrigger = true,
      operator = "==",
      property = "sceneActivationEvent",
      type = "device",
      value = 24                   -- S2 zweifach click
    }, {
      id = 85,                    --ID des Moduls Fernbedienung
      isTrigger = true,
      operator = "==",
      property = "sceneActivationEvent",
      type = "device",
      value = 25                   -- S2 dreifach click
    }},
  operator = "any"
}


local trigger = sourceTrigger
print(json.encode(sourceTrigger))
operatingStatus = trigger["value"]
print(operatingStatus)
if operatingStatus == 26 then
print("einmal gedrückt")
fibaro.call(1067, 'turnOff')
fibaro.call(1068, 'turnOff')
end
if operatingStatus == 24 then
print("zweimal gedrückt")
fibaro.call(1067, 'turnOn')
end
if operatingStatus == 25 then
print("dreimal gedrückt")
fibaro.call(1068, 'turnOn')
end
2 Like

hallo Frank,
ich meine das geht über Parameter 40+41.
Im Handbuch stehen die Scene-IDs.

Parameter 40: S1 Input
Parameter 41: S2 Input

0 – no scenes sent
1 – Key pressed 1 time
2 – Key pressed 2 times
4 – Key pressed 3 times
8 – Key hold down and key released

Auf Seite 14 steht noch etwas dazu. S1 sendet Scene ID 1 und S2 sendet Scene ID 2.
Ich würde also in einem Script das auf das CentralScene Event reagiert diese Scene IDs erwarten:
S1:
11 – Key pressed 1 time
12 – Key pressed 2 times
14 – Key pressed 3 times
18 – Key hold down and key released

S2:
21 – Key pressed 1 time
22 – Key pressed 2 times
24 – Key pressed 3 times
28 – Key hold down and key released

Grüsse - kro

1 Like

@sven_gomann
@kroeatschge

Guten Morgen
Danke für die Info.
Die Zusammenhänge hatte ich nicht erkannt.
Fernbedienung, Szenen ID und Key pressed
Da muss man aber auch erst mal drauf kommen.
Gelesen hatte ich das aber wo für, warum, wie nutzen das war mir nicht klar.
Mit den Szenen und Assoziationen stehe ich eh noch auf Kriegsfuß da muss ich noch einiges mir anlesen oder ausprobieren.
Bis Dato habe ich alles mit reiner Software gelöst erst bei den Tastendrücken bin ich auf Grenzen gestoßen, der HC3 ist was die Abfrage und den Trigger wie auch die Speed betrifft, nicht der schnellste, wenn man Processteuerungen und SPS gewohnt ist (µs, ns und nicht s sind da das Maß der Dinge). :grin:
So jetzt habe ich für die Nächste Zeit viel zu probieren (danke Euch) meine Aussenbeleuchtung wartet auf die Fertigstellung denn die Hardware ist schon fertig.
Grüße aus dem Reich der Weihnachtsbäume (Sauerland)
Frank

So nach einigen Tests !
Ich habe das ausprobiert was Ihr geschrieben habt, das funktioniert nicht.
Der Triggert einfach nicht.
Dann habe ich unter Fernbedienung eine Blockszene neu erstellt und diese in LUA umgewandelt.
Dann die Triggerfunktion eingefügt schaut so :

{
conditions = {
{
type = „date“,
property = „cron“,
operator = „match“,
value = {"", "", „", "“, „", "“},
isTrigger = true
}, {
id = 829,
isTrigger = true,
operator = „==“,
property = „centralSceneEvent“,
type = „device“,
value = {
keyAttribute = „Pressed“,
keyId = 1
}
}, {
id = 829,
isTrigger = true,
operator = „==“,
property = „centralSceneEvent“,
type = „device“,
value = {
keyAttribute = „Pressed2“,
keyId = 1
}
}, {
id = 829,
isTrigger = true,
operator = „==“,
property = „centralSceneEvent“,
type = „device“,
value = {
keyAttribute = „Pressed3“,
keyId = 1
}
}
},
operator = „any“
}

Auch nicht funktionsfähig.
Nur der cron triggert.
Liegt das möglicherweise am HC3 und ist das noch nicht implementiert?
Wenn ich bei den Geräten unter der Fernbedienung mir Blockszenen eintrage die funktionieren aber das sind Blockszenen die können nichts.
Oh mann immer diese fehlende Doku und das mühsame raussuchen ist um k… na ja möglicherweise hat ja einer von Euch noch eine Idee oder findet meinen Fehler.
Gruss Frank

So nach weiteren Stunden hier ist das Ergebnis !
ID 829 ist die Fernbedienung vom FGS-224 !

-- Das ist ein 1min. Trigger
----------------------------------
{
  conditions = { 
  {
    type = "date",
    property = "cron",
    operator = "match",
    value = {"*", "*", "*", "*", "*", "*"},
    isTrigger = true
  }, {
    id = 829,
    isTrigger = true,
    operator = "==",
    property = "centralSceneEvent",
    type = "device",
    value = {
            keyAttribute = "Pressed",
            keyId = 1
            }
  }, {
    id = 829,
    isTrigger = true,
    operator = "==",
    property = "centralSceneEvent",
    type = "device",
    value = {
            keyAttribute = "Pressed2",
            keyId = 1
            }
 }, {
    id = 829,
    isTrigger = true,
    operator = "==",
    property = "centralSceneEvent",
    type = "device",
    value = {
            keyAttribute = "Pressed3",
            keyId = 1
            }
   }
 },
  operator = "any"
}

Da muss man erst mal drauf kommen.
Erst ausführliche Suche im „sourceTrigger“ brachten mich auf die Lösung.
Alles was ich gefunden hatte wahr für den HC2 oder für den Dimmer2 alles passte nicht.
Jetzt ist das nur noch ein Zeitproblem, das mit den Tastendruck und dem 1,2,3 ist noch sehr unzuverlässig mal sehen ob die Parameter da weiterhelfen.
Sehr mühsam das alles, möglicherweise stelle ich mich aber auch nur mal wieder dumm an.
Gruss Frank

hallo Frank,
nein, da hast du schon recht… das ist alles sehr mühsam.

Ich hatte das mal versucht mit einem Fibaro Switch an einem Licht. War aber nicht zu gebrauchen.
Zu ungenau um 2 x Tastendruck auszuführen, mal ging es mal nicht.

Was mich dann am meisten gestört hatte war, dass der Switch die Ausgänge immer schaltet. Auch wenn eine Szene gestartet wird. Das bedeutete das Licht war nach 2x Tastendruck natürlich immer aus.
Bzw. bei 3 mal immer an. Auch wenn das Licht gar nicht hätte geschaltet werden sollen.

Für solche Szenarien kommt der Switch nicht an den Dimmer heran… der bietet da wesentlich mehr Möglichkeiten.

Gruss - kro

1 Like

Guten Morgen und einen Schönen 4 Advent gewünscht !
Ja genau so ist es bei mir auch, das mit dem 1,2,3 x Tastendruck und dem Trigger ist sehr ungenau.
Ich habe an den Parametern geschraubt aber das wird nicht besser.
Also bleibt nur meine Softwareversion die funktioniert wenn auch träge.
Mal sehen ob ich da noch einen Trick finde um das zu ändern.
Der HC3 ist dafür eben nicht so dolle.
Normalerweise ist es nicht so wichtig ob nun in 0,1s oder in 0,5s was passiert aber dabei ist es für das Tastengefühl schon wichtig.
Alles Normale mache ich im 1m Rhythmus nur bei schneller Reaktion benutze ich Trigger.
Da der z-wave dazwischen ist kann man aber nicht schnell reagieren darum wird das wohl mit den Tastendrücken schwierig.
Mal sehen was ich hinbekomme und ob das überhaupt was taugt (Haptik).
Grüße Frank