Hallo,
Ich habe einen TFK in Fhem integriert. Dieser gibt mir folgendes zurück (Event Monitor):
2014-12-02 12:49:15 MYSENSORS_DEVICE Fenster1 tripped4: on
2014-12-02 12:49:21 MYSENSORS_DEVICE Fenster1 tripped4: off
jetzt probiere ich schon etwas länger dieses Event in ein notify zu schieben um dann meine "lampe2" mittels genshell ein zu schalten. (Das funktioniert bereits über die Weboberfläche)
Egal was ich tue es funktioniert nicht. Aus diesem Grund habe ich all meine Versuche wieder gelöscht und würde gerne neu beginnen.
Wie gehe ich da am besten vor?
Vielen Dank!
Ich bin kein notify Experte, aber das sollte doch mir
define Lampenschalter notify Fenster1:tripped4:.* set lampe2 %EVTPART1
funktionieren, oder?
Ja Sauber.... es funktioniert.
Vielen Dank!
Was ist das %EVTPART1 ? eine Variable in der On/Off steht?
Hierbei könnte doch auch der "Lampenschalter" ein "MeinAlarm" sein der irgendetwas auslöst wie ein Pieper oder ähnliches - richtig?
Gern geschehen. %EVTPART1 liefert den ersten Teilstring (bei Dir also: on oder off) des Events zurück. Schalten kannst Du damit alles, was auf "on" oder "off" hört.
Hallo,
Leute, ihr wisst aber das es
$EVTPART1 heisst und nicht
%EVTPART1 ?
Wenn ich %EVTPART0 verwende bekomme ich im Log
Zitat2014.12.02 17:30:59 3: 1. Auto
2014.12.02 17:30:59 3: %EVTPART0
Wenn ich aber $EVTPART0 verwende bekomme ich
Zitat2014.12.02 17:30:44 3: 1. Auto
2014.12.02 17:30:44 3: Auto
Wie man schön sieht steht in $EVTPART0 der richtige Wert - der des Dummy mit dem das notify getriggert wurde.
Zugrunde liegender Code zum testen:
anwesend {
if($EVENT eq "Auto") {
Log(3,"1. $EVENT");
Log(3,"%EVTPART0");
}
elsif($EVENT eq "Day") {
Log(3,"2. $EVENT");
}
else {
Log(3,"3. $EVENT");
}
}
Das notify triggert einfach nur auf einen Dummy der per attr webCmd Auto:Day:Night schalten kann.
Sollte das mit % klappen bin ich mal auf die Erklärung gespannt da Variablen mWn mit $ beginnen und nicht mit %
Kann mich mal bitte jemand erhellen ???
Danke.
Grüße
Erklären kann ich es leider auch nicht, aber ich habe heute gerade etwas programmiert mit my $aufruf1 = "%EVTPART0" ;;\
my $aufruf2 = "%NAME" ;;\
und das klappt prima. Zuvor hatte ich genau den gleichen Gedanken wie du und habe "$EVTPART0" verwendet. Das hat nicht funktioniert und beim debuggen (Variableninhalt nach Log1 schicken) ergab es nur "$EVTPART0" statt des Wertes.
War bei mir auch so. Irgendwo in der Wiki hatte ich $EVTPART1 gefunden und verwendet, hat nicht funktioniert. An einer anderen Stelle hieß es dann %EVTPART1 und das ging auf Anhieb.