FHEM Forum

FHEM => Automatisierung => Thema gestartet von: tomspatz am 18 Januar 2018, 12:05:39

Titel: notify auf WEB attr
Beitrag von: tomspatz am 18 Januar 2018, 12:05:39
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
Titel: Antw:notify auf WEB attr
Beitrag von: MadMax-FHEM am 18 Januar 2018, 12:14:06
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
Titel: Antw:notify auf WEB attr
Beitrag von: rudolfkoenig am 18 Januar 2018, 20:21:22
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.
Titel: Antw:notify auf WEB attr
Beitrag von: tomspatz am 19 Januar 2018, 10:40:20
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
Titel: Antw:notify auf WEB attr
Beitrag von: marvin78 am 19 Januar 2018, 10:51:35
Das set macht auch keinen Sinn. Der Befehl heißt attr.
Titel: Antw:notify auf WEB attr
Beitrag von: tomspatz am 19 Januar 2018, 12:36:51
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

Titel: Antw:notify auf WEB attr
Beitrag von: MadMax-FHEM am 19 Januar 2018, 13:05:56
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
Titel: Antw:notify auf WEB attr
Beitrag von: tomspatz am 20 Januar 2018, 13:16:30
@ 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
Titel: Antw:notify auf WEB attr
Beitrag von: rudolfkoenig am 20 Januar 2018, 14:48:03
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.