Merkwürdiges Verhalten im notify mit IF- und ELSE

Begonnen von juliusha, 14 Juni 2018, 23:32:36

Vorheriges Thema - Nächstes Thema

juliusha

Im notify werden nacheinander erst die Befehle im IF- und danach sofort ELSE-Zweig ausgeführt.
Merkwürdig deshalb, weil scheinbar abhängig vom zu schaltenden Gerät.

Hier der Code aus dem DEF des notify:
DashButton1:xx-xx-xx-xx-xx-xx..short
IF (Value("Fs_Sat") eq "off")
  (set Fs_Sat on, set Fs_Licht on)
ELSE
  (set Fs_Sat off, set Fs_Licht off)

funktioniert nicht.
Im Log wird
2018.06.14 00:02:01 3: FS20 set Fs_Sat off
2018.06.14 00:02:02 3: FS20 set Fs_Licht off
2018.06.14 00:02:02 3: FS20 set Fs_Sat on
2018.06.14 00:02:02 3: FS20 set Fs_Licht on
angezeigt,
während dieser Code
DashButton1:6c-56-97-1e-34-09..short
IF (Value("Keramikheizer") eq "off")
  (set Keramikheizer on, set Hebeanlage on)
ELSE
  (set Keramikheizer off, set Hebeanlage off)

funktioniert!
Hier wird im Log das erhoffte Ergebnis
2018.06.14 23:25:04 3: FS20 set Keramikheizer on
2018.06.14 23:25:04 3: FS20 set Hebeanlage on
angezeigt.
Alle Geräte sind FS20-Steckdosen, wobei Keramikheizer und Hebeanlage z.Zt. nicht gesteckt sind.
Ich kann keinen Unterschied feststellen.
Hat jemand evtl. einen Tipp für mich?

Danke
Julius

mumpitzstuff

short kommt vermutlich 2x. Beim ersten mal ist das Gerät aus und Du schaltest an, dann kommt short noch einmal und Du schaltest wieder aus. Was sagt denn der Event Monitor?

juliusha

Hallo mumpitzstuff,
recht herzlichen Dank für deine Antwort, aber im Event Monitor wird nur ein mal short aufgezeichnet.
Ausserdem warum ist da ein unterschiedliches Verhalten bei unterschiedlichen Geräten?
Ich hatte zuerst den FS20-Repeater im Verdacht. Aber auch nach dem Entfernen des Repeaters ist das Verhalten wie beschrieben. Leider kann ich heute keine Tests mehr vornehmen, sonst würde ich meiner Frau den Fernseher und den Receiver an und wieder ausschalten. Am WE sieht es da schon besser aus.
Julius

amenomade

Zitat von: juliusha am 15 Juni 2018, 22:25:01
aber im Event Monitor wird nur ein mal short aufgezeichnet.
Sicher?
Zeig mal die Log mit deinem Notify auf verbose 5, wenn es 2x getriggert wird
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

juliusha

ZitatZeig mal die Log mit deinem Notify auf verbose 5, wenn es 2x getriggert wird

#amenomade Du hast recht mit deiner Annahme.
So richtig verstehen kann ich das nicht! Beim ersten Versuch heute abend (mit Verbose 5 beim notify) wurde für den DashButton zwei mal : short aufgezeichnet.
Danach dann nicht mehr trotz mehrmaligem (nicht unmittelbar hintereinander!) betätigen.
Hier der entsprechende Auszug aus der Log-Datei:

2018.06.16 18:34:11 5: Triggering n_DashButton1
2018.06.16 18:34:11 4: n_DashButton1 exec IF (Value("Fs_Sat") eq "off")
  (set Fs_Sat on , set Fs_Licht on)
ELSE
  (set Fs_Sat off , set Fs_Licht off)
2018.06.16 18:34:11 3: FS20 set Fs_Sat off
2018.06.16 18:34:11 3: FS20 set Fs_Licht off
2018.06.16 18:34:11 5: Triggering n_DashButton1
2018.06.16 18:34:11 4: n_DashButton1 exec IF (Value("Fs_Sat") eq "off")
  (set Fs_Sat on , set Fs_Licht on)
ELSE
  (set Fs_Sat off , set Fs_Licht off)
2018.06.16 18:34:11 3: FS20 set Fs_Sat on
2018.06.16 18:34:11 3: FS20 set Fs_Licht on
2018.06.16 18:35:30 5: Triggering n_DashButton1
2018.06.16 18:35:30 4: n_DashButton1 exec IF (Value("Fs_Sat") eq "off")
  (set Fs_Sat on , set Fs_Licht on)
ELSE
  (set Fs_Sat off , set Fs_Licht off)
2018.06.16 18:35:30 3: FS20 set Fs_Sat off
2018.06.16 18:35:30 3: FS20 set Fs_Licht off
2018.06.16 18:36:23 5: Triggering n_DashButton1
2018.06.16 18:36:23 4: n_DashButton1 exec IF (Value("Fs_Sat") eq "off")
  (set Fs_Sat on , set Fs_Licht on)
ELSE
  (set Fs_Sat off , set Fs_Licht off)
2018.06.16 18:36:23 3: FS20 set Fs_Sat on
2018.06.16 18:36:23 3: FS20 set Fs_Licht on
2018.06.16 18:36:24 5: Triggering n_DashButton1
2018.06.16 18:36:24 4: n_DashButton1 exec IF (Value("Fs_Sat") eq "off")
  (set Fs_Sat on , set Fs_Licht on)
ELSE
  (set Fs_Sat off , set Fs_Licht off)
2018.06.16 18:36:24 3: FS20 set Fs_Sat off
2018.06.16 18:36:24 3: FS20 set Fs_Licht off
2018.06.16 18:38:52 5: Triggering n_DashButton1
2018.06.16 18:38:52 4: n_DashButton1 exec IF (Value("Fs_Sat") eq "off")
  (set Fs_Sat on , set Fs_Licht on)
ELSE
  (set Fs_Sat off , set Fs_Licht off)
2018.06.16 18:38:52 3: FS20 set Fs_Sat on
2018.06.16 18:38:52 3: FS20 set Fs_Licht on


Und hier die gleichen Aktionen im Event Monitor:

2018-06-16 18:34:11 FS20 Fs_Sat off
2018-06-16 18:34:11 FS20 Fs_Licht off
2018-06-16 18:34:11 dash_dhcp DashButton1 6c-56-97-1e-34-09: short
2018-06-16 18:34:11 FS20 Fs_Sat on
2018-06-16 18:34:11 FS20 Fs_Licht on
2018-06-16 18:34:11 dash_dhcp DashButton1 6c-56-97-1e-34-09: short
......
2018-06-16 18:35:30 FS20 Fs_Sat off
2018-06-16 18:35:30 FS20 Fs_Licht off
2018-06-16 18:35:30 dash_dhcp DashButton1 6c-56-97-1e-34-09: short
......
2018-06-16 18:36:23 FS20 Fs_Sat on
2018-06-16 18:36:23 FS20 Fs_Licht on
2018-06-16 18:36:23 dash_dhcp DashButton1 6c-56-97-1e-34-09: short
......
2018-06-16 18:36:24 FS20 Fs_Sat off
2018-06-16 18:36:24 FS20 Fs_Licht off
2018-06-16 18:36:24 dash_dhcp DashButton1 6c-56-97-1e-34-09: short
......
2018-06-16 18:38:52 FS20 Fs_Sat on
2018-06-16 18:38:52 FS20 Fs_Licht on
2018-06-16 18:38:52 dash_dhcp DashButton1 6c-56-97-1e-34-09: short


Hierbei ist mir aufgefallen, daß doch kein Unterschied mit anderen Geräten besteht. Es lief in diesem Moment scheinbar bei den anderen Geräten immer richtig!


nils_

viele Wege in FHEM es gibt!

juliusha

Zitatlist von dashbutton1 ??
Ja, irgendeine Idee?

Beta-User

Frag doch ergänzend noch das ReadingsAge vom Dashbutton ab: Wenn z.B. <5: keine Aktion, da vermutlich doppeltes Triggern.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

nils_

#8
Zitat von: juliusha am 18 Juni 2018, 12:34:21
Ja, irgendeine Idee?

wo ist denn das list??
ich sehe nix  ::)


Zitat von: Beta-User am 18 Juni 2018, 12:40:16
Frag doch ergänzend noch das ReadingsAge vom Dashbutton ab: Wenn z.B. <5: keine Aktion, da vermutlich doppeltes Triggern.
wäre eine variante....
aber deswegen wollte ich ja gerne das list sehen, denn wenn ich den Dashbutton Thread richtig im Kopf habe, wird das mittels event-on-* "gelöst"...


//edit:
mal gesucht
dash_dhcp mehrfache auslösung
Dashbutton schaltet 2x
Doppeltes Auslösen verhindern
viele Wege in FHEM es gibt!

juliusha

Hallo, heute Vormittag war ich in Eile, die normale Hektik am Montag.
Hier nun das List:
Internals:
   CONNECTS   2
   FD         5
   LAST_CONNECT 2018-06-15 22:08:11
   LAST_DISCONNECT 2018-06-15 22:08:11
   NAME       DashButton1
   NR         1005
   NTFY_ORDER 50-DashButton1
   PORT       6767
   STATE      listening
   TYPE       dash_dhcp
   READINGS:
     2018-06-17 21:52:00   6c-56-97-1e-34-09 short
     2018-06-15 22:08:11   state           listening
   helper:
     devAliases:
Attributes:
   allowed    6c:56:97:1e:34:09
   event-min-interval 10
   port       6767
   room       DashButtons
   verbose    3

Deine Suchvorschläge werde ich heute abend mal nachvollziehen. Danke dafür.

nils_

Zitat von: juliusha am 18 Juni 2018, 18:36:26
   event-min-interval 10

das war schon der richtige weg, da fehlt nur das entsprechende reading (regex).
also zB.
   event-min-interval .*:10
viele Wege in FHEM es gibt!

juliusha

Recht herzlichen Dank an alle Wissenden.

Danke
Julius