FHEM Forum

FHEM => Automatisierung => Thema gestartet von: hankie am 31 Mai 2015, 21:07:24

Titel: Allgemeiner Notifier
Beitrag von: hankie am 31 Mai 2015, 21:07:24
Hallo,

ich möchte alle Werte, die über Fhem laufen per URL (Rest WS) weiterzugeben. Dafür habe ich eine allgeimeiner Notify angelegt mit
define RestNotifier .* {my $url="/rest/msg?$NAME=$EVENT";; GetHttpFile("hostname",$url)}

Das Problem ist dabei, dass ich hier weder den $DEVICE noch $NAME kennt. Wie kann ich es hier herausfinden, woher die Meldung kommt? Der Wert ist $EVENT drin, aber das ist mir zu wenig.

Wer könnte mir weiterhelfen?


VG,

hankie
Titel: Antw:Allgemeiner Notifier
Beitrag von: rudolfkoenig am 01 Juni 2015, 07:49:52
ZitatDas Problem ist dabei, dass ich hier weder den $DEVICE noch $NAME kennt.

Diesen Satz verstehe ich nicht.
Comandref Eintrag zu notify schon gelesen?
Wie schauen die problematischen Events im Event-Monitor aus? Was erwartest du?
Titel: Antw:Allgemeiner Notifier
Beitrag von: hankie am 02 Juni 2015, 15:05:50
Hallo Rudolf,

Es geht darum, dass ich alle Events die Fhem emfängt über Rest an einen Server weitergeben möchte.
Die URL dafür ist host:port/rest/msg?eventname_eventvalue
Mit dem o.g. Notifier kann ich alle Werte($EVENT) an den Rest-Service weitergeben aber ich weiß es nicht wie ich den Namen der Aktoren auch mitschicken kann. Der Wert nutzt mir nichts, wenn ich es nicht weiß ob es ein KNX oder einen anderen Aktor geschickt hat.
Ich weiß, dass der $EVENT hier nicht nur Werte leifert sondern es ist ein Event Notifier und nicht nur Value-Notifier

Ich habe es aber geschaft damit

define RestNotifyer notify .* { my $typ=$TYPE; my $name=$NAME; my $evt=$EVENT; my $msg=$name . "_" . $typ . ":" . $evt; GetHttpFile("host:8080", "/rest/msg?msg=$msg") }

Es lohnt sich manchmal in die Logs reinzuschauen, was der Fehler war...
Titel: Antw:Allgemeiner Notifier
Beitrag von: rudolfkoenig am 03 Juni 2015, 07:30:25
Kannst du mir noch verraten, warum du die Variablen umkopierst? Folgendes sollte mit deiner Definition gleichwertig sein:
define RestNotifyer notify .* { GetHttpFile "host:8080", "/rest/msg?msg=${NAME}_$TYPE:$EVENT" }