Autor Thema: Namenloses einmaliges notify - ähnlich wie at bzw. sleep ?  (Gelesen 219 mal)

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 16370
  • schon mal restore trainiert?
    • Otto's Technik Blog
Die Raw Definition nutze ich dank der Änderung von Rudi 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 gefunden.

Fragen:
  • Ist es legitim sich ein notify selbst löschen zu lassen? Vielleicht schlagen ja bei meiner Idee die "alten FHEM Hasen" die Hände über dem Kopf zusammen.
  • Wäre das nicht eine Idee so ein einmaliges notify zu implementieren. In der Art sleep regExp;Befehl
  • Oder gibt es eine Lösung die ich nicht gefunden habe?

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22806
Antw:Namenloses einmaliges notify - ähnlich wie at bzw. sleep ?
« Antwort #1 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:
Zitat
sleep <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.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 16370
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Namenloses einmaliges notify - ähnlich wie at bzw. sleep ?
« Antwort #2 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
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 16370
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Namenloses einmaliges notify - ähnlich wie at bzw. sleep ?
« Antwort #3 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 $SELFWird dieses:
sleep global:ATTR.SonosBridge.stateFormat.connected;"pm2 -s start sonos2mqtt"
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266