[gelöst] sequence mit Homematic-Dimmer

Begonnen von ronzo, 09 Dezember 2020, 22:59:09

Vorheriges Thema - Nächstes Thema

ronzo

Ich hätte gerne eine sequence definiert, über die ich per "Doppelklick" alle Lichter eines Raumes ein- und ausschalten kann.

Die Lichter habe ich über eine Structure zusammengefasst. Die sequence funktioniert auch, wenn ich sie auf die Tasten meiner Homematic-Fernbedienung lege. Ich hätte diese Funktionalität aber gerne über meinen Wandschalter (Homematic Dimmer HM-LC-DIM1TPBU-FM) gelöst. (Alternativ hätte ich dort in der Wand noch einen HM-RC-2-PBU-FM und einen HM-LC-SW1PBU-FM)

Habe schon ein paar Sachen ausprobiert, nichts davon wollte funktionieren. Im Moment bin ich bei

DimmerWohnzimmer_Dim:pressS:self02 1.0 DimmerWohnzimmer_Dim:pressS:self02

in der Definition der sequence.

Was mache ich falsch?

Otto123

normale Homematic Aktoren sind keine Fernbedienungen. Die Tasten geben keine Events nach außen, die funktionieren nur intern.
Mit der HM-RC-2-PBU-FM wird es gehen, mit dem HM-LC-SW1PBU-FM nicht.
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

ronzo

Vielen Dank für deine überaus rasche Antwort! Hatte schon befürchtet, dass es mit keinem Taster in der Wand funktionieren wird...

Otto123

der HM-RC-2-PBU-FM ist doch ein Taster an der Wand?
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

ronzo

#4
Hier noch der Link zum Foreneintrag, wo ich mir die Kombination aus sequence und notify abgeschaut habe:
https://forum.fhem.de/index.php/topic,26772.msg198050.html#msg198050


ronzo

Leider funktioniert die Sache mit dem HM-RC-2-PBU-FM noch nicht wie gewünscht. Die gewünschte Aktion wird bereits bei einmaligem Drücken eines Buttons ausgelöst...

Pfriemler

gib uns Lists vom DEF der sequence und des notify...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

ronzo

#7
WehnzimmerBeleuchtungOnSeq DEF
ArbeitsbeleuchtungKueche_Btn_02 0.5 ArbeitsbeleuchtungKueche_Btn_02

WohnzimmerBeleuchtungOnNotify DEF
WohnzimmerBeleuchtungOnSeq:trigger set WohnzimmerBeleuchtung on

Hatte vorher
WohnzimmerBeleuchtungOnSeq:partial_2 set WohnzimmerBeleuchtung on

Aber auch das wollte nicht wie gewünscht funktionieren...

Pfriemler

es hätte etwas mehr sein dürfen, um bspw. die Namen von sequence und die Trigger zu kontrollieren... auch ein Auszug aus der RAW-Definition.

Gegenbeispiel von mir:
Internals:
   DEF        Wz6TasterRightDown:Short.* 2 Wz6TasterRightDown:Short.* 2 Wz6TasterRightDown:Short.*
...
   NAME       seqMoveEGRightBlindUp
...
   TYPE       sequence
   READINGS:
     2020-12-28 09:16:59   state           active
Attributes:
   comment    erster erreichbarer Taster zum Lichtmachen per Rollo-Öffnung
   room       Spielwiese,Steuerungen


und darauf reagiert
Internals:
   DEF        seqMoveEGRightBlindUp.* set RolloEGWzReDF dawn
...
   NAME       nfyEGWzRolloRechtsWandtaster
   NOTIFYDEV  seqMoveEGRightBlindUp.*
...
   STATE      active
...
   TYPE       notify
   .attraggr:
   .attrminint:
   READINGS:
     2020-12-29 12:36:42   state           active
Attributes:
   room       System->Steuerungen


Ich stolpere derzeit noch ein bisschen über das :trigger in der commandref. Als reines "RegEx" interpretiert müsste das Notify auf ein Event des Readings "trigger" reagieren, was es aber gar nicht gibt. Allerdings scheint das hier eine Sonderfunktion zu sein... Partielle Trigger benötigen zudem zusätzliche Attribute, siehe commandref.
Ohne das alles funktioniert es bei mir wie beschrieben, d.h. jedes beliebige Event der Sequence triggert das Notify. Ein dreimaliger Knopfdruck auf die Taste im Abstand von etwa einer Sekunde (erlaubt sind 2) öffnet den Rolladen. Klappt seit Jahren und über alle Updates. Auf zwei Knopfdrücke (oft praktiziert zum sofortigen Ausschalten (Überspringen der off-Rampe) des eigentlich mit der Taste gepeerten Dimmers) passiert am Rolladen nichts.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

ronzo

Mir fehlte offenbar das

:Short.*

in der Sequence. Warum ist ".*" nötig?

Otto123

ZitatEin sequence kann verwendet werden, um ein neues Event zu generieren, wenn eine bestimmte Folge von anderen Events in einem festgelegten Zeitraum eingetroffen ist.
Wenn der Begriff Event vorkommt - findest Du die Antworten auf solche Fragen immer im Eventmonitor :)

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

ronzo

Sehe im Eventlog schon Events à la Short_<counter>.

Welches Event hier jedoch das Auslösende ist, check ich noch nicht 100%ig:

2020-12-29 22:43:04 sequence WohnzimmerBeleuchtungOnSeq trigger
2020-12-29 22:43:04 CUL_HM ArbeitsbeleuchtungKueche_Btn_02 Short 1_29 (to DimmerKueche)
2020-12-29 22:43:04 CUL_HM ArbeitsbeleuchtungKueche_Btn_02 trigger: Short_29
2020-12-29 22:43:04 CUL_HM ArbeitsbeleuchtungKueche_Btn_02 triggerTo_DimmerKueche: Short_29
2020-12-29 22:43:04 CUL_HM ArbeitsbeleuchtungKueche_Btn_02 trigger_cnt: 29
2020-12-29 22:43:04 CUL_HM ArbeitsbeleuchtungKueche_Btn_02 triggerTo_DimmerKueche: Short_29_ack


DimmerKueche ist das gepeerte Device. Das kann es ja nicht sein...

Otto123

Du hast ja gesagt Dir fehlte :Short.* das wäre mit Deinem ursprünglichen Code dieser finale Trigger in Deiner Sequence?
ArbeitsbeleuchtungKueche_Btn_02:Short.*
Der reagiert auf den Event:
2020-12-29 22:43:04 CUL_HM ArbeitsbeleuchtungKueche_Btn_02 Short 1_29 (to DimmerKueche)

Short alleine würde nicht passen denn es kommt ja noch was hinterher. Du brauchst einen "full match" auf die komplette Zeile.
Kurz gesprochen steht . für irgendein Zeichen und der * für beliebig viele - in Summe: beliebig viele irgendwelche Zeichen.

Kannst Du hier ausprobieren https://regex101.com/
Hier musst Du hinter Short dann mal ein .* setzen, da siehts Du was passiert:
https://regex101.com/r/hwyjEL/1


Guten Rutsch
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

ronzo

@Otto123: Danke für deine Antwort!

Die RegEx hat mich nicht verwirrt. Was ".*" bedeutet, ist mir klar. Was ich noch nicht ganz checke ist, warum ich hier nix von meiner Sequence sehe bzw. vom Notify das von der Sequence getriggert wird. Das "to DimmerKueche" verwirrt mich (das ist der gepeerte Dimmer und nicht die Structure, die ich im Notify anspreche.)

Otto123

Die Zeile die ich markiert und herausgezogen habe ist der Event von deinem Taster. Der ist so, das hat erstmal gar nichts mit dem zu tun was Du dran strickst.

Was Du jetzt genau gemacht hast und wo Du einen Event erwarten könntest, ist mir nicht klar. Dazu hast Du zu wenig gepostet. Du hast gesagt es funktioniert, Du kannst ja die Events der Geräte die Du schaltest auch verhindern, dann siehst Du nix im Eventmonitor nur das Licht geht an :)
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