Moin
ich versuche gerade ein notify zu erstellen welches attr in ein device schreibt.
Es soll die Änderung im WEB nach WEBphone kopieren.
Es gibt ein Event:
2018-01-18 11:57:15 Global global ATTR WEB styleData { "f18": { "Pinned.menu": "true", "cols": { "..........................
oder im Ganzen:
2018-01-18 11:57:15 Global global ATTR WEB styleData { "f18": { "Pinned.menu": "true", "cols": { "bg": "FFFFE7", "fg": "000000", "link": "278727", "evenrow": "F8F8E0", "oddrow": "F0F0D8", "header": "E0E0C8", "menu": "D7FFFF", "sel": "A0FFFF", "inpBack": "FFFFFF" }, "savePinChanges": true, "Pinned.detail.Attributes": true, "hidePin": false, "hideLogo": false, "rightMenu": false } }
Probiere es mit:
defmod ntest notify Global global ATTR WEB styleData:.* attr WEBphone styleData $EVENT
doch scheint es nicht zu wirken.
Es funktioniert allerdings in der Eingabezeile:
attr WEBphone styleData { "f18": { "Pinned.menu": "true", "cols": { "bg": "FFFFE7", "fg": "000000", "link": "278727", "evenrow": "F8F8E0", "oddrow": "F0F0D8", "header": "E0E0C8", "menu": "D7FFFF", "sel": "A0FFFF", "inpBack": "FFFFFF" }, "savePinChanges": true, "Pinned.detail.Attributes": true, "hidePin": false, "hideLogo": false, "rightMenu": false } }
Könntet ihr mir da unter die Arme greifen?
LG
Tom
Commandref zu Notify lesen: https://fhem.de/commandref_DE.html#notify
Regex lernen...
Oder (mittlerweile) einfacher: EventMonitor öffnen, warten bis der Event kommt, Zeile markieren und dann "modify/create" und den Notify anlegen "lassen"...
Gruß, Joachim
Es faellt mir auf, dass im notify-Regexp hinter styleData ein : gibt, im Event aber keins.
MadMax-FHEM hat natuerlich auch Recht, man kann diese Klasse von Probleme vermeiden, wenn man "Create/Modify Device" im Event-Monitor verwendet.
Irgendwie klappt es nicht. Ein aus dem Event Monitor generiertes sieht so aus:
defmod global_notify_1 notify global:ATTR.WEB.styleData.{..."f18":.{....."Pinned.menu":."true",....."cols":.{......."bg":."FFFFE7",......."fg":.".*",......."link":.".*",......."evenrow":."F8F8E0",......."oddrow":."F0F0D8",......."header":."E0E0C8",......."menu":."D7FFFF",......."sel":."A0FFFF",......."inpBack":."FFFFFF".....},....."savePinChanges":.true,....."Pinned.detail.Attributes":.true,....."hidePin":.true,....."hideLogo":.true,....."rightMenu":.false...}.} {}
Ist zwar ohne Ausführung aber triggert trotzdem nicht.
Ändere ich es jetzt ab auf:
defmod global_notify_2 notify global:ATTR.WEB.styleData.* {fhem "set attr WEBphone styleData $EVENT"}
und genauso wenig:
defmod global_notify_2 notify global:ATTR.WEB.styleData.* set attr WEBphone styleData $EVENT
Ich verstehe ja auch das ich auf ALLES im Event Triggern muss deswegen *
"Ich" sehe da keinen Fehler (blind)
LG
Tom
Das set macht auch keinen Sinn. Der Befehl heißt attr.
ooops ja natürlich ohne set. So habe ich es ja auch in der Eingabezeile ausprobiert. Wobei das der ausführende Teil ist.
defmod global_notify_2 notify global:ATTR.WEB.styleData.* attr WEBphone styleData $EVENT
Doch so triggert es auch nicht.
Ich glaube das es NUR am Trigger liegt doch ist der .* m.E. richtig
LG
Tom
Bist du sicher, dass nicht getriggert wird?
Wenn du nur mal einen Logeintrag machst, dann siehst du ob er triggert und was in $EVENT steht...
defmod global_notify_3 notify global:ATTR.WEB.styleData.* {Log3(undef,3,"glNotTest $EVENT")}
So fange ich mit Notify immer/meistens an.
Wie gesagt, dann sehe ich ob getriggert wird und was in den "genutzen Variablen" auch wirklich drin steht...
Gruß, Joachim
@ MadMax-FHEM
SUPER Tipp das kannte ich so nicht.
Somit konnte ich allerdings feststellen das das notify NICHT triggert.
Ich drehe noch durch.
LG
Tom
Ich habe das jetzt auch angeschaut:
- notify ist (bzw war) nicht in der Lage, auf mehrzeilige Events zu matchen. Das habe ich jetzt geaendert, update ab morgen.
- es reicht nicht, nur styleData zu uebertragen, Css muss auch aktualisiert werden. Da Css ; enthaelt, ist eine Sonderbehandlung noetig. Folgendes funktioniert bei mir (in Raw Definition einzugeben):
defmod global_notify_1 notify global:ATTR.WEB.(Css|styleData).* { \
my @a = split(" ",$EVENT,4);;\
$a[3] =~ s/;;/;;;;/g;;\
fhem "attr WEB2 $a[2] $a[3]";;\
}
@tomspatz: danke fuer die hartnaeckigkeit.