2. Dash Button schaltet falsches DOIF

Begonnen von Gunther, 18 Juli 2018, 23:25:32

Vorheriges Thema - Nächstes Thema

Gunther

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
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Pfriemler

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.
"Ä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 ..."

Gunther

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?  :-\
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Pfriemler

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 ... ?
"Ä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 ..."