in DOIF SEQUENCE Trigger ODER Partial_1 auslesen

Begonnen von dafosy, 21 März 2021, 13:51:39

Vorheriges Thema - Nächstes Thema

dafosy

Hallo Forum,

entschuldigt bitte, dass ich dieser Anfrage hier nochmal ein eigenes Thema widme, ich habe diese Anfrage bereits https://forum.fhem.de/index.php/topic,35739.0.html#top am Ende gestellt, möglicherweise jedoch dort nicht mehr die erforderliche Reichweite.

Aufbauend auf diesem Post https://forum.fhem.de/index.php?topic=84122.0 stelle ich mir die Frage, wie ich in

DOIF den SEQUENCE Status trigger oder partial_1 verwenden kann. Meines bisherigen Verständnisses nach, erhalte ich durch

DOELSEIF
(["K2_BI_OFF_seq"])
(set HUEDevice9 off)


nur den Status "trigger".

Hinweis:
defmod K2_BI_OFF_seq sequence EnO_FEEFAXXX:BI 0.5 EnO_FEEFAXXX:buttons:.released

Was muss ich bei DOIF eingeben, um auch den Status "partial_1" verwenden zu können?

Grüße
dafosy

Otto123

#1
Hi,
Deine Frage(n) ist/sind hier falsch
*** Keine Fragethemen starten! Board ist nur für funktionsfähigen Code! ***
verschiebe das Bitte ins DOIF Board.

Wenn Du dazu noch Deine Events posten würdest könnte dann auch einer mitdenken :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Zitat von: dafosy am 21 März 2021, 13:51:39

Hinweis:
defmod K2_BI_OFF_seq sequence EnO_FEEFAXXX:BI 0.5 EnO_FEEFAXXX:buttons:.released


Hallo,

wenn das die ganze Definition ist dann fehlt da noch ein gesetztes Attribut um partial_1 zu aktivieren.

ZitatWas muss ich bei DOIF eingeben, um auch den Status "partial_1" verwenden zu können?

Hab mich nicht damit beschäftigt denke aber nach dem aktivieren von partial_1 erscheint das dann ja auch im Eventmonitor, dieses Event markierst du klickst oben im Event-Monitor Create/Modify Device und wählst in dem Dialogfeld statt notify DOIF aus.
Daraufhin wird dir die Syntax von partial_1 zur Verwendung in deinem DOIF angezeigt, das kopierst dir einfach raus.
Hoffe lieg nicht daneben  :P

Gruß

Thomas

dafosy

Danke dir für die Antwort.

Das Attribut "triggerpartial_1" hatte ich bereits gesetzt.
Neu war DOIFs aus dem Eventmonitor zu erstellen.  :D
Deine Lösungsweg hat erstmal geklappt.

Ziel meines DOIFs ist ja ein Dimmer mit Enocean:

Einfachklick BO: leuchtet schwach
Doppelklick BO: am hellsten
gedruckthalten BO: dimmt hoch
gedrückt halten BI: dimmt runter
Einfachklick BI: ausschalten

Bevor ich mein Projekt hier fürs Forum dokumentiere, folgende Frage noch:
bisher funktioniert mein Dimmer soweit, allerdings dimmt meine DOIF nur einmal beim gedrückt halten.

Welches Attribut muss ich setzen oder wie muss ich den Code schreiben, dass die DOIF nach erfolgreichem Durchlaufen wieder startet? Mit

"attr. do always"

klappt es noch nicht.

Zitat([K2_Klicks_Dummy:state] eq 1 and [K2_BO_ON_seq:"^trigger$"])
(set HUEDevice9 pct 25) 
(set K2_Dimm_Dummy 20)
(set K2_Klicks_Dummy 0)
(set K2_Dauer_Dummy 0)

DOELSEIF
([K2_Klicks_Dummy:state] eq 2 and [K2_BO_ON_seq:"^trigger$"])   
(set HUEDevice9 pct 100)   
(set K2_Dimm_Dummy 100)
(set K2_Klicks_Dummy 0)
(set K2_Dauer_Dummy 0)

DOELSEIF
([K2_BI_OFF_seq:"^trigger$"])
(set HUEDevice9 off)
(set K2_Klicks_Dummy 0)
(set K2_Dauer_Dummy 0)

DOELSEIF
([K2_BO_ON_seq:"^partial_1$"])
(set HUEDevice9 dimUp)
(set K2_Dauer_Dummy 0)

DOELSEIF
([K2_BI_OFF_seq:"^partial_1$"])
(set HUEDevice9 dimDown)
(set K2_Dauer_Dummy 0)

Attribute aktuell:
do always
wait 0,0,0.7,0:0,0,0.7,0:0,0,0:0,0,0:0,3 (hier fehlt nochwas)
room: K2



Gruß
dafosy

dafosy

Das Attribut "repeatcmd" wird es sein, ich probiere.

dafosy

Hallo Team,

ich sitze an der Programmierung des Dimmers und es läuft ganz gut. Auch die Dokumentation fürs Forum schreitet voran. Allerdings ein Problem taucht auf und zwar:

wenn ich den Taster gedrückt halte, dann löst dieser auch das Event "Partial_1" aus. In meiner DOIF ist das der folgende Punkt:

DOELSEIF
([SZ_ON_seq:"^partial_1$"])
(set HUEDevice9 dimUp)


Allerdings wird die Sequence nach dem loslassen des Tasters nicht geändert. Ihr ahnt, was passiert:
Der Dimmer dimmt durch, sprich die DOIF-Routine wird nicht unterbrochen und das Licht dimmt bis auf Maximum.

Ich habe bisher probiert, eine "AND" Verbindung mit [EnO_FEEFAXXX:"^buttons:.pressed$"] zu kombinieren, aber das hilft auch nix.

Eine weiterer DOIFELSE-Eintrag mit
([EnO_FEEFAXXX:"^buttons:.released$"]) ist zwar nett gedacht, unterbricht aber jegliche Einträge in der entsprechenden DOIF.

Habt ihr eine Idee, wie ich die obige DOIF-Routine erweitern kann, dass der Dimm-Befehl unterbricht, wenn die Taste los gelassen wird? Evtl. ist ja etwas mit Attributen am EnOcean-Taster zu machen, bspw. event-on-change oder ähnlich.

Danke für einen Hinweis.