FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Gunther am 18 Juli 2018, 23:25:32

Titel: 2. Dash Button schaltet falsches DOIF
Beitrag von: Gunther am 18 Juli 2018, 23:25:32
Ich verzweifle gerade an der Einrichtung eines 2. Amazon Dash Button.
Das DOIF für den ersten Button springt mit an.
Vielleicht habe ich aber noch ein grundsätzliches Verständnisproblem.

Ich richte einmal dash_dhcp für alle Buttons ein, richtig?

So sieht es für meine 2 Buttons aus:
defmod DashButton dash_dhcp
attr DashButton allowed 6c:56:97:a4:90:c1,fc:65:de:4c:10:c8
attr DashButton devAlias 6c-56-97-a4-90-c1:eg_wz_dash_esstisch fc-65-de-4c-10-c8:eg_ki_dash_led_licht
attr DashButton event-min-interval .*:5
attr DashButton group DashButton
attr DashButton port 6767
attr DashButton room G_Schaltaktoren


Jetzt mit dem 2. Button springen beide DOIFS an.

Beim 2. Button (MAC: fc-65-de-4c-10-c8) spuckt der Event-Monitor folgendes beim Drücken aus:

2018-07-18 23:19:37 dash_dhcp DashButton eg_ki_dash_led_licht: short

Das sieht gut aus.

Leider springen beide DOIFs an.

Dieses hier richtiger Weise:
defmod doif_eg_ki_dash_ledlicht DOIF ([DashButton:eg_ki_dash_led_licht] =~ "short") (set eg_ki_ledspots toggle)
attr doif_eg_ki_dash_ledlicht do always


Aber warum dieses hier?
defmod doif_eg_wz_dash_esstischlicht DOIF ([DashButton:eg_wz_dash_esstisch] =~ "short") (set eg_ku_kuechentisch toggle)
attr doif_eg_wz_dash_esstischlicht do always
Titel: Antw:2. Dash Button schaltet falsches DOIF
Beitrag von: Pfriemler am 19 Juli 2018, 12:12:38
Ist Dein FHEM aktuell? Dann sollten die DOIFs nur triggern, wenn ein das benannte reading betreffende Event generiert wurde. Das ist jetzt Standard (Attribut checkReadingEvent, default =1) - früher triggerten DOIFs bei allen Events (kann mit 0 eingestellt werden). Da wäre es dann nämlich so, dass "DashButton" beide DOIFs triggert - und wenn das letzte den jeweiligen Button betreffende Ereignis (egal wie lange es her ist) mit der Bedingung übereinstimmt, wird es ausgeführt.
Teste einmal bei beiden DOIFs mit checkReadingEvent=1.
Andere Möglichkeit: dash_dhcp erzeugt events, weil es alle device-bezogenen Readings aktualisiert. Kenn das Modul nicht. Gib mal ein list statt der def.
Titel: Antw:2. Dash Button schaltet falsches DOIF
Beitrag von: Gunther am 19 Juli 2018, 23:17:49
Das war die Lösung. Danke schonmal :-)

Leider habe ich nicht verstanden wieso und werde aus der commandref nicht schlau.
Was hat sich denn geändert? Muss ich jetzt alle meine DOIFs checken?  :-\
Titel: Antw:2. Dash Button schaltet falsches DOIF
Beitrag von: Pfriemler am 20 Juli 2018, 00:12:55
Schön, wenn es jetzt tut. Aber ich wiederhole mich gern:
checkEventReading = 1 ist jetzt default, früher war es 0. Bei einem aktuellen FHEM ist es daher egal, ob man checkEventReading auf 1 setzt oder das Attribut ganz löscht - erst wenn es auf 0 steht, verhält sich das DOIF wie vor der Umstellung. Da die Umstellung einige Zeit nach der "Markteinführung" erfolgte und einige meiner DOIFs sehr speziell waren, hatte ich jedenfalls den einen oder anderen Tuningbedarf. Ob das bei Dir auch so ist ... ?