FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Otto123 am 02 August 2020, 00:34:32

Titel: Namenloses einmaliges notify - ähnlich wie at bzw. sleep ?
Beitrag von: Otto123 am 02 August 2020, 00:34:32
Die Raw Definition nutze ich dank der Änderung von Rudi (https://forum.fhem.de/index.php/topic,111734.msg1059955.html#msg1059955) immer häufiger wie eine Art FHEM Script Umgebung. Also ein paar Zeilen FHEM Code einfach als Block reinkopieren und starten.
Das ist teilweise tricky: wenn ein Programm mit PopUp endet wird das "Script" jäh beendet. Aber mit einem sleep davor kann man es in den Hintergrund schicken und der Rest läuft weiter.
Wenn eine der Zeilen im Script nach der Ausführung einen Event erzeugt, würde ich gern einmalig darauf reagieren.
Beispiel:
set ... attrTemplate fragt einen Parameter ab.
Wenn das fertig ist (Eingabe erfolgt) wird durch setzen eines Attributes ein Event gefeuert (global:ATTR.SonosBridge.stateFormat.connected)
Auf den will ich reagieren und das Script abschließen. In dem Fall geht "sleep x; Befehl" schlecht weil die Zeit sehr unbestimmt ist.
Hier könnte man ein einmaliges notify gebrauchen. Ich behelfe mir jetzt mit einem notifý welches sich selbst wieder löscht:
define global_notify_1 notify global:ATTR.SonosBridge.stateFormat.connected "pm2 -s start sonos2mqtt";;delete $SELF

Ich habe zum Thema $SELF diese Diskussion  (https://forum.fhem.de/index.php?topic=74133.0)gefunden.

Fragen:
Gruß Otto
Titel: Antw:Namenloses einmaliges notify - ähnlich wie at bzw. sleep ?
Beitrag von: rudolfkoenig am 02 August 2020, 12:20:04
Antworten:
1. Wenn es funktioniert, habe ich kein Problem damit. Ist aber mAn nicht wirklich elegant.
2. Zitat https://fhem.de/commandref_modular.html#sleep:
Zitatsleep <sec|timespec|regex> [<id>] [quiet]
...
or as a regex (devicename or devicename:event)
3. Da ich das Problem (vmtl. mangels Beispiel) nicht verstanden habe, kann ich nichts dazu sagen.
Titel: Antw:Namenloses einmaliges notify - ähnlich wie at bzw. sleep ?
Beitrag von: Otto123 am 02 August 2020, 12:58:26
Hallo Rudi,

oh wie peinlich - gibts schon :)
Das es zu sleep gehören könnte war mein Gedanke beim letzten Satz im Schreiben. Hätte ich mal doch genauer in die Doku schauen sollen  ;D  :-[

Danke!

Gruß Otto
Titel: Antw:Namenloses einmaliges notify - ähnlich wie at bzw. sleep ?
Beitrag von: Otto123 am 02 August 2020, 16:00:20
Ich will mal noch ein Beispiel liefern:
Einmalige Reaktion auf einen Event.
Aus meinem uneleganten Konstrukt
define global_notify_1 notify global:ATTR.SonosBridge.stateFormat.connected "pm2 -s start sonos2mqtt";;delete $SELF
Wird dieses:
sleep global:ATTR.SonosBridge.stateFormat.connected;"pm2 -s start sonos2mqtt"