notify auf WEB attr

Begonnen von tomspatz, 18 Januar 2018, 12:05:39

Vorheriges Thema - Nächstes Thema

tomspatz

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

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

rudolfkoenig

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.

tomspatz

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

marvin78

Das set macht auch keinen Sinn. Der Befehl heißt attr.

tomspatz

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


MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tomspatz

@ 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

rudolfkoenig

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.