Autor Thema: (gelöst) notify $EVENT an 2 Set übergeben  (Gelesen 3090 mal)

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3331
    • _.:|:._
Antw:notify $EVENT an 2 Set übergeben
« Antwort #15 am: 19 Mai 2017, 11:20:26 »
Ich habe es übrigens per fhemweb eingegeben. deshalb kam ich auch nicht auf die Idee, es zu verdoppeln.
Dann ist es doch klar: Eingabe via telnet und auch FHEMWEB command line benötigen escapen/verdoppeln von Semikola. Der DEF-Editor (incl. Codemirror) und die fhem.cfg benötigen es hingegen nicht.

Ich weiß noch, dass ich anfangs auch immer wieder darüber gestolpert bin. Vielleicht finde ich mal die Muße, dass als Vorschlag für das Einsteiger PDF zu formulieren...

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4248
Antw:notify $EVENT an 2 Set übergeben
« Antwort #16 am: 19 Mai 2017, 13:33:24 »
Also wenn ich im Fhemweb schreibe:
mynotify set Test1 $EVENT ;; set Test2 $EVENTPassiert beim Auslösen des Events mit Test2 gar nichts.

Also die Frage:
Ist es ein Bug oder wie wird es "richtig" Umgesetzt ist so nicht gaaans gelöst.

Mit folgendes wird wenigstens Test2 gesetzt
mynotify set Test1 $EVENT ; set Test2 $EVENTWenn auch auf "$EVENT" und nicht den Wert von "$EVENT"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline marvin78

  • Hero Member
  • *****
  • Beiträge: 5162
Antw:notify $EVENT an 2 Set übergeben
« Antwort #17 am: 19 Mai 2017, 13:41:33 »
Was passiert denn, wenn du die völlig unnötigen Leerzeichen weg lässt?

Und was bedeutet, "in FHEMWEB"? Im DEF?

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3696
  • Wer anderen eine Bratwurst brät...
Antw:notify $EVENT an 2 Set übergeben
« Antwort #18 am: 19 Mai 2017, 13:47:29 »
Hab das gerade mal mit 3 dummy(s) und einem notify durchgespielt.
defmod t1 dummy
attr t1 setList on off

defmod t2 dummy
attr t2 setList on off

defmod t3 dummy
attr t3 setList on off

Hierbei kommt in state von t3 tatsächlich "$EVENT" als String an.
defmod n_t1 notify t1:on|off|toggle set t2 $EVENT;;set t3 $EVENTDas funktioniert wie erwartet:
defmod n_t1 notify t1:on|off|toggle set t2,t3 $EVENT
Ich würde hier allerdings auch erwarten dass die erste Variante funktioniert.

Gruß
Dan
FHEM 5.8, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4248
Antw:notify $EVENT an 2 Set übergeben
« Antwort #19 am: 19 Mai 2017, 14:10:08 »
Genau das ist es, was mich wundert.

Habe es hier auch mit 2 Dummies laufen. Da man eventuell zwischen den set noch andere Sachen machen möchte, nur als Simples Beispiel:
set  Test1 $EVENT; sleep 1; set Test2 $EVENT Entweder Bug oder falsche Definition ....

P.S. Ich glaube auch, das ich den Forumsbereich "Anfänger" falsch gewählt habe, nur wo hätte ich es sonst schreiben sollen?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline marvin78

  • Hero Member
  • *****
  • Beiträge: 5162
Antw:notify $EVENT an 2 Set übergeben
« Antwort #20 am: 19 Mai 2017, 14:14:32 »
Das notify so definiert

defmod n_t1 notify t1:(on|off|toggle) set t2 $EVENT;;set t3 $EVENT
bzw. im DEF

t1:(on|off|toggle) set t2 $EVENT;set t3 $EVENT
macht bei mir gar keine Probleme und macht genau, was es soll und genau so, wie dokumentiert.

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3696
  • Wer anderen eine Bratwurst brät...
Antw:notify $EVENT an 2 Set übergeben
« Antwort #21 am: 19 Mai 2017, 14:27:19 »
defmod n_t1 notify t1:(on|off|toggle) set t2 $EVENT;;set t3 $EVENT
Dabei wird nur auf t2 der richtige Wert gesetzt.

defmod t2 dummy
attr t2 setList on off

setstate t2 off
setstate t2 2017-05-19 14:26:02 state off

defmod t3 dummy
attr t3 setList on off

setstate t3 $EVENT
setstate t3 2017-05-19 14:26:02 state $EVENT

Gruß
Dan
FHEM 5.8, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert

Offline marvin78

  • Hero Member
  • *****
  • Beiträge: 5162
Antw:notify $EVENT an 2 Set übergeben
« Antwort #22 am: 19 Mai 2017, 14:29:14 »
Nun. Bei mir nicht. Es funktioniert auch mit einem sleep dazwischen.

Ich habe viele notifys, die sowas machen. Ich hätte mich längst sehr gewundert, wenn sowas nicht funktionieren würde.

P.S.: Das Regex ohne Klammer (oder sollte immer in Klammern), führt allerdings zu dem von euch beschriebenen Verhalten.
« Letzte Änderung: 19 Mai 2017, 14:31:09 von marvin78 »

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4248
Antw:notify $EVENT an 2 Set übergeben
« Antwort #23 am: 19 Mai 2017, 14:36:02 »
Laut Doku ist aber doch das RegEx optional?

Edit:
Habe es getestet, auch folgendes funktioniert bei mir nicht:
mynotify:(on|off|toggle) set Test1 $EVENT ; set Test2 $EVENT

Ich bekomme wieder das Verhalten, das Test2 anschließend den Wert "$EVENT" hat ,.,
« Letzte Änderung: 19 Mai 2017, 14:40:18 von Wernieman »
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3696
  • Wer anderen eine Bratwurst brät...
Antw:notify $EVENT an 2 Set übergeben
« Antwort #24 am: 19 Mai 2017, 14:41:04 »
Nun. Bei mir nicht. Es funktioniert auch mit einem sleep dazwischen.

Ich habe viele notifys, die sowas machen. Ich hätte mich längst sehr gewundert, wenn sowas nicht funktionieren würde.

P.S.: Das Regex ohne Klammer (oder sollte immer in Klammern), führt allerdings zu dem von euch beschriebenen Verhalten.

Ich habe absichtlich die Klammern in meinem letzten Versuch auch gesetzt, weil Du meintest dass die Variante bei Dir funktioniert.
Das Ergebnis war/ist das Selbe...
Auch die Leerzeichen vor/nach dem Semikolon spielen in meinen Tests keine Rolle.

EDIT: Es ist noch abgefahrender! Bei on von t1 funktioniert es auch bei t3. Bei off von t1 ist t3 wieder "$EVENT".

Gruß
Dan
« Letzte Änderung: 19 Mai 2017, 14:44:58 von DeeSPe »
FHEM 5.8, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert

Offline marvin78

  • Hero Member
  • *****
  • Beiträge: 5162
Antw:notify $EVENT an 2 Set übergeben
« Antwort #25 am: 19 Mai 2017, 14:44:13 »
@Deespe: Ich habe sogar genau dein Beispiel kopiert (und dann mit Klammern versetzt). Bei mir klappt alles wunderbar und so wie es sein soll. Auch komplett ohne Regex im notify (Reaktion auf alle Events).

Ich habe viele notifys, bei denen genau sowas (mit einem sleep) gemacht wird. Und es gab bisher keine Probleme. Wenn es welche gäbe, müsste hier, wie ich meine, auch deutlich mehr los sein.

Edit: vielleicht helfen echt lists?
« Letzte Änderung: 19 Mai 2017, 14:46:47 von marvin78 »

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3696
  • Wer anderen eine Bratwurst brät...
Antw:notify $EVENT an 2 Set übergeben
« Antwort #26 am: 19 Mai 2017, 14:48:02 »
@Deespe: Ich habe sogar genau dein Beispiel kopiert (und dann mit Klammern versetzt). Bei mir klappt alles wunderbar und so wie es sein soll. Auch komplett ohne Regex im notify (Reaktion auf alle Events).

Ich habe viele notifys, bei denen genau sowas (mit einem sleep) gemacht wird. Und es gab bisher keine Probleme. Wenn es welche gäbe, müsste hier, wie ich meine, auch deutlich mehr los sein.

Edit: vielleicht helfen echt lists?

Ich kann es mir auch nicht erklären, ich schreibe nur meine Feststellungen nieder:
2017-05-19 14:46:53 dummy t2 state: on
2017-05-19 14:46:53 dummy t3 state: on
2017-05-19 14:46:53 dummy t1 state: on
2017-05-19 14:47:01 dummy t2 state: off
2017.05.19 14:47:01 3 : n_t1 return value: Unknown argument $EVENT, choose one of on off intervals on-for-timer on-till off-till on-till-overnight off-till-overnight blink toggle off-for-timer
2017-05-19 14:47:01 dummy t1 state: off

Gruß
Dan
FHEM 5.8, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert

Offline marvin78

  • Hero Member
  • *****
  • Beiträge: 5162
Antw:notify $EVENT an 2 Set übergeben
« Antwort #27 am: 19 Mai 2017, 14:51:56 »
Ich behaupte ja nicht, dass du lügst. Ich behaupte aber sehr wohl, dass hier die Hölle los wäre, wenn das Verhalten generell so wäre, wie du es jetzt beobachtest.

Aber auch ich bin nun neugierig, was da falsch läuft.

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3696
  • Wer anderen eine Bratwurst brät...
Antw:notify $EVENT an 2 Set übergeben
« Antwort #28 am: 19 Mai 2017, 14:59:34 »
Ich behaupte ja nicht, dass du lügst. Ich behaupte aber sehr wohl, dass hier die Hölle los wäre, wenn das Verhalten generell so wäre, wie du es jetzt beobachtest.

Aber auch ich bin nun neugierig, was da falsch läuft.

Sign für Beides! 8)

Hab jetzt auch nochmal den RegEx komplett entfernt und auch damit klappt nur on, off nicht.
defmod n_t1 notify t1 set t2 $EVENT;;set t3 $EVENT
2017-05-19 14:58:43 dummy t2 state: on
2017-05-19 14:58:43 dummy t3 state: on
2017-05-19 14:58:43 dummy t1 state: on
2017-05-19 14:58:48 dummy t2 state: off
2017.05.19 14:58:48 3 : n_t1 return value: Unknown argument $EVENT, choose one of on off on-till-overnight off-till-overnight intervals on-for-timer on-till off-till toggle off-for-timer blink
2017-05-19 14:58:48 dummy t1 state: off

Ich hoffe Rudi kann hier evtl. Licht ins Dunkel bringen!?

Gruß
Dan
FHEM 5.8, Brix, VIVO mini, RPi3, Debian Jessie, ZME_UZB1
HM-CFG-LAN, HM-MOD-UART-WIFI, HUE, HarmonyHub, JeeLink, CO20
Hyperion auf RPi Zero W, Sonos, viel Z-Wave und HM
alles per HomeKit steuerbar
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert

Offline krikan

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5963
Antw:notify $EVENT an 2 Set übergeben
« Antwort #29 am: 19 Mai 2017, 16:46:04 »
Hab jetzt auch nochmal den RegEx komplett entfernt und auch damit klappt nur on, off nicht.
defmod n_t1 notify t1 set t2 $EVENT;;set t3 $EVENT
Hattest Du vorher "shutdown restart" ausgeführt?

Ich kann Deine Beobachtung nachvollziehen, nachdem ich die "kaputte" Regex ohne Klammern benutzt hatte:
t1:on|off|toggleKorrekturen an Regex per FHEMWEB/defmod helfen dann nicht mehr; nur ein Neustart.
Zitat
Ich hoffe Rudi kann hier evtl. Licht ins Dunkel bringen!?
Wenn er denn hier mitliest  ;)

Gruß, Christian