FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: juliusha am 14 Juni 2018, 23:32:36

Titel: Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: juliusha am 14 Juni 2018, 23:32:36
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
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: mumpitzstuff am 15 Juni 2018, 07:52:30
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?
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: juliusha am 15 Juni 2018, 22:25:01
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
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: amenomade am 16 Juni 2018, 11:49:12
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
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: juliusha am 16 Juni 2018, 21:01:14
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!

Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: nils_ am 18 Juni 2018, 10:02:33
list von dashbutton1 ??
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: juliusha am 18 Juni 2018, 12:34:21
Zitatlist von dashbutton1 ??
Ja, irgendeine Idee?
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag 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.
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: nils_ am 18 Juni 2018, 12:58:26
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 (https://forum.fhem.de/index.php/topic,85386.0.html)
Dashbutton schaltet 2x (https://forum.fhem.de/index.php/topic,83896.0.html)
Doppeltes Auslösen verhindern (https://forum.fhem.de/index.php/topic,61957.0.html)
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: juliusha am 18 Juni 2018, 18:36:26
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.
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: nils_ am 19 Juni 2018, 08:47:27
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
Titel: Antw:Merkwürdiges Verhalten im notify mit IF- und ELSE
Beitrag von: juliusha am 20 Juni 2018, 23:15:35
Recht herzlichen Dank an alle Wissenden.

Danke
Julius