Hauptmenü

Sequence

Begonnen von Thommes, 10 November 2019, 08:50:56

Vorheriges Thema - Nächstes Thema

Thommes

Hallo zusammen,
ich stehe auf dem Schlauch: Ich möchte die Laufrichtung meines Garagentorantriebs in FHEM auswerten. Einzige Möglichkeit, das ohne Umbauten zu realisieren, ist der Ausgang für eine Signalleuchte. Sie blinkt beim Schließen schnell und beim öffnen langsam. Ich steuere daher mit dem Lampenausgang über ein zwischengeschaltetes Relais einen FSM14-UC an. Dieser generiert folgende Events:

2019-11-06 10:35:41 EnOcean gn_Tast2 buttons: pressed
2019-11-06 10:35:41 EnOcean gn_Tast2 channelB: B0
2019-11-06 10:35:41 EnOcean gn_Tast2 B0
2019-11-06 10:35:42 EnOcean gn_Tast2 buttons: released
2019-11-06 10:35:44 EnOcean gn_Tast2 buttons: pressed
2019-11-06 10:35:44 EnOcean gn_Tast2 channelB: B0
2019-11-06 10:35:44 EnOcean gn_Tast2 B0
2019-11-06 10:35:46 EnOcean gn_Tast2 buttons: released
usw.

Die Zeitabstände der state:B0-Readings sind:
Beim Öffnen: 2,1 s
Beim Schließen: 1,0-1,1 s

Meine Sequence-Definitionen lauten:

define ga_Seq_TorAuf sequence gn_Tast2:B0 3 :B0 3 :B0
define ga_Seq_TorZu sequence gn_Tast2:B0 1.5 :B0 1.5 :B0


Leider triggert aber nur ga_Seq_TorZu, wenn sich das Tor öffnet (langsames Blinken) passiert nichts. Ich würde eigentlich erwarten, dass mit dieser Definition beim schließen (schnelles Blinken) beide triggern und dabe daher auch schon timeouts probiert, aber ebenfalls ohne Erfolg:


define ga_Seq_TorAuf sequence gn_Tast2:B0 2.2:1.5 :B0 2.2:1.5 :B0


Wie muss die "TorAuf"-sequence korrekt definiert werden?

rudolfkoenig

Ich kann das Problem nicht nachstellen, vmtl. ist noch ein Seiteneffekt wirksam, was ich nicht sehe.
Hier meine Versuche:

fhem> define gn_Tast2 dummy
fhem> define ga_Seq_TorAuf sequence gn_Tast2:B0 3 :B0 3 :B0
fhem> define ga_Seq_TorZu sequence gn_Tast2:B0 1.5 :B0 1.5 :B0
fhem> inform timer

fhem> trigger gn_Tast2 B0; sleep 1;trigger gn_Tast2 B0; sleep 1;trigger gn_Tast2 B0         
2019-11-10 10:18:27 dummy gn_Tast2 B0
2019-11-10 10:18:28 dummy gn_Tast2 B0
2019-11-10 10:18:29 sequence ga_Seq_TorAuf trigger
2019-11-10 10:18:29 sequence ga_Seq_TorZu trigger
2019-11-10 10:18:29 dummy gn_Tast2 B0

fhem> trigger gn_Tast2 B0; sleep 2; trigger gn_Tast2 B0; sleep 2; trigger gn_Tast2 B0           
2019-11-10 10:18:52 dummy gn_Tast2 B0
2019-11-10 10:18:54 dummy gn_Tast2 B0
2019-11-10 10:18:56 sequence ga_Seq_TorAuf trigger
2019-11-10 10:18:56 dummy gn_Tast2 B0

rudolfkoenig

Nachtrag: die zweite Definition von ga_Seq_TorAuf funktioniert nicht, da die "Taubzeit" 2.2s ist, aber laut Beschreibung die Signale alle 2.1s kommen.

Vmtl. funktioniert sowas wie:
Zitatdefmod ga_Seq_TorAuf sequence gn_Tast2:B0 1.5:0.8 :B0 1.5:0.8 :B0

Fuer eine sichere Loesung wuerde ich zunaechst die Intervalle genau ermitteln, und danach die Zeiten (event-zeitpunkt, totzeitbereich, aktivzeitbereich) aufmalen.

Thommes

Vielen Dank! Habe den Fehler jetzt gefunden: in der fhem.cfg hatten sich hinter der Definition der ga_Seq_TorAuf ein backslash und eine Leerzeile eingeschlichen (hatte ich im Web-Frontend nicht gemerkt).
Ohne diese läuft es jetzt.

Zur zweiten Definition von ga_Seq_TorAuf: Ich hatte die Reihenfolge von <delay>:<timeout> verwechselt (erschien mir wahrscheinlich intuitiver). Wer lesen kann ist klar im Vorteil. Deine Lösung funktioniert auch hier.

Einen schönen Abend noch!