FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dafosy am 05 Mai 2021, 09:45:28

Titel: [gelöst] sequence und die Zustände trigger/ partial1, Zustände zurücksetzen
Beitrag von: dafosy am 05 Mai 2021, 09:45:28
Hallo Team,

an sich knüpfe ich an folgendes Thema irgendwie an:
https://forum.fhem.de/index.php?topic=28952.0 (https://forum.fhem.de/index.php?topic=28952.0)

Ich habe sequence so verstanden, dass mit Tastendruck der Zustand "trigger" gesetzt wird.
Je nachdem wie lange die Taste nun gedrückt bleibt - im Code durch bspw. "0.5" gekennzeichnet, ändern sich dann die weiteren Zustände zu "partial_1" und von mir ungetestet vielleicht auch zu "partial_2" wenn der Code noch einen weiteren Eintrag getrennt durch bspw. "0.5" enthält.

Ich konkret stehe jetzt allerdings vor einer anderen Frage:
Wenn ein kurzer Tastendruck erfolgt, dann wird der Status der Sequence auf "trigger" gesetzt, ABER der Zustand bleibt auf Trigger.

Beispiel:
Der Code ist nur in Auszügen:
Ich möchte meine Schreibtischlampe, welche durch eine Funktsteckdose eingebunden ist, mittels Doppelklick ausschalten. Mit dem gleichen Schalter steuere ich aber mein HUEDevice an der Decke. Hinweis: in einer anderen DOIF steuert ([K2_Licht_OFF_seq:"^trigger$"]) den Dummy [K2_DoppelklickA_Dummy].

DOELSEIF
([K2_Licht_OFF_seq:"^trigger$"])
(set HUEDevice9 pct 25)
(set HUEDevice9 off)
(set K2_LichtA_Dummy 0)

DOELSEIF
([K2_DoppelklickA_Dummy:state] eq 2 and [4_Schreibtisch:state] eq "off")
(set 4_Schreibtisch on)

DOELSEIF
([K2_DoppelklickA_Dummy:state] eq 2 and [4_Schreibtisch:state] eq "on")
(set 4_Schreibtisch off)


Der Code zusammen mit der Sequence führt nun zu folgendem Effekt:
Ein Doppelklick schaltet meine Schreibtischlampe zuerst aus, dann bemerkt die DOIF jedoch, dass die Sequence noch den Status "trigger" inne hat und schaltet anschliessend auch das Deckenlicht aus. Die Abfolge habe ich anhand des wait-Attributs ergründet.

Nun meine Frage:
Kann ich den Sequence Status manuell in einen anderen von mir ungenutzten Status versetzen?
also beispielsweise:


...
DOELSEIF
([K2_DoppelklickA_Dummy:state] eq 2 and [4_Schreibtisch:state] eq "off")
(set 4_Schreibtisch on)
(set K2_Licht_OFF_seq partial_2]
...


/dafosy

Titel: [gelöst] sequence und die Zustände trigger/ partial1, Zustände zurücksetzen
Beitrag von: dafosy am 06 Mai 2021, 08:31:37
Ich habe jetzt einfach noch einen "Klickanzahl_Dummy" eingebaut. Der zählt hoch, sobald der Taster triggert. Zusammen mit einem wait-Attribut funktioniert alles dann so, wie geplant:

DOELSEIF
([K2_Licht_OFF_seq:"^trigger$"] and [K2_DoppelklickA_Dummy:state] eq 1)
(set HUEDevice9 pct 25)
(set HUEDevice9 off)
(set K2_LichtA_Dummy 0)

--> attr ABC-DOIF wait 0.6,0.6,0


Ich glaube mit der "and" Kombination kann das Auslesen des Trigger-Statuses sinnvoll ergänzt werden.

/dafosy