In $EVENT steckt ja sowohl der Name als auch der Wert des auslösenden Events. Kann ich das, ohne auf Perl-Ebene wechselns zu müssen, splitten? $EVENT:d (oder $VALUE :D) geht nicht.
Hintergrund: ich will einem Dummy nur den Wert, nicht den ganzen Event zuweisen: set dummy $EVENT
?? Laut Doku steckt in $EVENT nur der Wert, nicht der Name ??
$EVTPART kann da helfen. Z.B. $EVTPART1
Zitat von: Per am 25 Mai 2016, 09:27:33
In $EVENT steckt ja sowohl der Name als auch der Wert des auslösenden Events. Kann ich das, ohne auf Perl-Ebene wechselns zu müssen, splitten? $EVENT:d (oder $VALUE :D) geht nicht.
Hintergrund: ich will einem Dummy nur den Wert, nicht den ganzen Event zuweisen: set dummy $EVENT
Also bei mir steht bei einem Event: 2016-05-25 11:00:19.672 FS20 FS on
nur on im $EVENT.
Gruß
Damian
Es kommt stark auf das Event an. Events bestehen in der Regel tatsächlich aus mehreren Teilen. Es kommt eben darauf an, ob das Event über state oder ein anderes Reading geht.
Zitat von: Damian am 25 Mai 2016, 11:02:09
Also bei mir steht bei einem Event: 2016-05-25 11:00:19.672 FS20 FS on
nur on im $EVENT.
Gruß
Damian
Wenn es kein Status ist, dann handelt es sich normalerweise um ein bestimmes Reading, welches den Wert beinhaltet, dann kannst du [$DEVICE:<Reading>] benutzen, dort steht dann der entsprechende Wert drin, den du nutzen kannst.
Zitat von: Damian am 25 Mai 2016, 11:18:39ein bestimmes Reading
Leider ein Userreading, welches über RegEx ermittelt wird.
Zitat von: CoolTux am 25 Mai 2016, 09:55:42$EVTPART kann da helfen. Z.B. $EVTPART1
Geht das nicht nur bei
notify? Zumindest finde ich nix dazu in der CommandRef.
Da Du nicht gesagt hast auf welcher Art Du dem Dummy das Zuweisen willst, habe ich das einfach mal so reingeworfen.
Nun, wir sind bei DOIF (https://forum.fhem.de/index.php?board=73.0) ;).
Davon abgesehen, ich dachte, ich hatte irgendwo mal ne "Absichtserklärung" bzgl. $EVTPART1 und DOIF gelesen.
Aber leider nicht wiedergefunden.
Wobei es "echt bescheuert" wäre, wenn DOIF eine Globale Variable wie $EVENT anders behandelt als alle anderen Tools.
Zitat von: Wernieman am 25 Mai 2016, 15:08:42
Wobei es "echt bescheuert" wäre, wenn DOIF eine Globale Variable wie $EVENT anders behandelt als alle anderen Tools.
$EVENT ist nicht global, sondern wird im jeweiligen Modul definiert.
Es gibt da feine Unterschiede, da DOIF etwas anderen Funktionsumfang als notify hat ;)
Im Gegensatz zu notify, wird DOIF auch ohne Regex getriggert. Wenn man z. B. nur einen Status abfragt ([Dummy]), dann wird bei geblockten Events (mehrere Zeilen zu einem Trigger) einfach die erste Zeile in $EVENT gepackt, da es ja keine Regex in diesem Fall gibt. Mit $EVENTS gibt es dagegen alle Event-Zeilen eines Triggers - das gibt es z. B. bei notify nicht, weil es anhand der Regex für jede passende Zeile die Befehle ausführt - das macht wiederum DOIF nicht.
$EVTPART1 habe ich mir bisher gespart, da ich davon ausging, dass man entsprechende Readings abfragen kann.
Gruß
Damian
OK, aktuell behelfe ich mir damit, dass ich in der Auswertung :d anhänge. Vllt. gibt es später mal ne andere Lösung.
Zitat von: Per am 25 Mai 2016, 22:45:18
OK, aktuell behelfe ich mir damit, dass ich in der Auswertung :d anhänge. Vllt. gibt es später mal ne andere Lösung.
Wenn du im Sourcecode von DOIF schaust, wirst du $EVTPART finden, bisher allerdings noch auskommentiert.
Gruß
Damian
Habe ich gesehen, als ich die Hilfe durchsucht habe. Da hat F3 nur die beiden auskommentierten Zeilen gefunden.
@Damian
Sorry, habe mich alsch ausgedrückt.
Hätte es anders schreiben sollen:
ZitatEs ist blöde, wenn "Grundsätzliche" Variablen wie $EVENT in den verschiedenen Modulen unterschiedlich behandelt werden. So ist die pflege der Doku noch viel schwieriger, da immer mehr Modulabhängig. Besser währe es, enn solche "Grundsätzlichen" Variablen überall gleich sind. Bei Unterschieden eben unerschiedliche Variablennamen. Ansonsten hat man beim Wechsel von Modulen zusätzliche, unnötige Fehlerquellen.
Zitat von: Wernieman am 26 Mai 2016, 09:01:43
@Damian
Sorry, habe mich alsch ausgedrückt.
Hätte es anders schreiben sollen:
Ja, ich hätte die Variable auch anders nennen können, allerdings bei gefühlten 99,9 % Kompatibilität zu notify, ist die Frage, ob eine andere Bezeichnung für die User besser wäre.
Gruß
Damian
Ist doch auch nur meine persönliche Meinung ;o)
Zitat von: Per am 25 Mai 2016, 22:45:18
OK, aktuell behelfe ich mir damit, dass ich in der Auswertung :d anhänge. Vllt. gibt es später mal ne andere Lösung.
Man kann auch im Ausführungsteil auf das entsprechende Event-Reading im DOIF-Modul zugreifen und die neuen vielfältigen Möglichkeiten der Ausgabeformatierung von DOIF nutzen.
[$SELF:matched_event...:...:...]
Gruß
Damian
Zitat von: Damian am 26 Mai 2016, 09:57:37[$SELF:matched_event...:...:...]
Passt! Damit entfällt auch wieder mein
:d in der Auswertung.