[Gelöst] andNotify mit einem Text und $EVENT beschicken, wie?

Begonnen von Pfriemler, 11 Februar 2015, 22:23:42

Vorheriges Thema - Nächstes Thema

Pfriemler

Heida,
mit einem Notify mit dem DEF AlarmanlageZustand.* {Log 1,"Alarmanlage ist jetzt $EVENT"} bekomme ich den Zustand des Dummys AlarmanlageZustand prima klarschriftlich geloggt.
Wie löse ich das Problem mit andNotify?
Wie man über eine Sub das löst, hätte ich schon irgendwo gelesen. Aber den Einzeiler raffe ich jetzt nicht.

AlarmanlageZustand.* {fhem("set myNote send Die Alarmanlage ist jetzt $EVENT |FHEM: Alarm $EVENT |Alarmanlage ist jetzt $EVENT |Statusmeldung|2")}
geht schon mal nicht.
Global symbol "$EVENT" requires explicit package name at (eval 2676) line 1.
Die Fehlermeldung kommt dreimal (gemäß der Häufigkeit der Verwendung von $EVENT)

Any Hints?

edit: vor die letzte Klammer } gehört natürlich noch eine )-Klammer ergänzt, gab auch ne Fehlermeldung.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

rudolfkoenig

Ich kann es auch nicht erklaeren.
Zum Debuggen wuerde ich fhem(...) durch Log(1, ...) austauschen, und pruefen, was geloggt wird.

Pfriemler

#2
Ich dachte ja das Ersetzen von $EVENT ist eine Perl-Funktion und müsste also vor dem Aufruf von "fhem(...)" erfolgen ..., denn mit sowas wie
define LichtamRadioan notify LichtKueche { fhem "set RadioKueche $EVENT" } (aus dem WIKI) klappt's doch auch ...

OK, ich habe die fehlende Klammer hinten ergänzt und die Zeile insgesamt auf
AlarmanlageZustand.* {Log(1, "set myNote send Die Alarmanlage ist jetzt $EVENT |FHEM: Alarm $EVENT |Alarmanlage ist jetzt $EVENT |Statusmeldung|2")}
geändert.

Im Log erscheint dann etwas wie
Zitat2015.02.12 18:25:49 1: Alarmanlage ist jetzt Aus
2015.02.12 18:25:49 1: set myNote send Die Alarmanlage ist jetzt Aus |FHEM: Alarm Aus |Alarmanlage ist jetzt Aus |Statusmeldung|2
... auf deutsch, wie es soll.

Und jetzt kommt's:

AlarmanlageZustand.* {fhem ("set myNote send Alarmanlage wurde auf $EVENT geschaltet|FHEM: Alarmanlage=$EVENT|Alarmanlagenzustand: $EVENT|Statusmeldung|2")}
funktioniert.
AlarmanlageZustand.* {fhem "set myNote send Alarmanlage wurde auf $EVENT geschaltet|FHEM: Alarmanlage=$EVENT|Alarmanlagenzustand: $EVENT|Statusmeldung|2"}
(ohne Klammern) genauso.

Das Problem wollte einfach mal von Dir begutachtet werden  ;)

Nachtrag: Braucht's das Leerzeichen hinter fhem?




"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

hanske

Ich habe mit andnotify auch noch ein Stringausgabeproblem, wollte aber keinen neuen Thread dafür eröffnen.

Wenn ich folgendes in der FHEM Befehlszeile eingebe ist alles gut:
{ my $ct = strftime("%H:%M", localtime);; fhem("set gcmNotify send Text1|Text2|".$ct."|Text3|1")}

Benutze ich das gleiche in einem notify, wird die Uhrzeit nicht mit ausgegeben.
Es kommt so etwas wie onH:onM anstatt der Uhrzeit.
Was mache ich falsch?

p.s. gcmNotify ist ein andnotify Objekt
Raspberry Pi (Wheezy), Aeon Labs Z-Wave USB Stick 2, HM-USB Adapter, EBUS 2.0 mit Wemos
diverse HM und Z-Wave Geräte


hanske

Danke Krikan,

das war es wohl.
Escapen in Strings kannte ich bisher nur in die andere Richtung, also wenn man tatsächlich ein '%' ausgeben will muss man es verdoppeln.
Raspberry Pi (Wheezy), Aeon Labs Z-Wave USB Stick 2, HM-USB Adapter, EBUS 2.0 mit Wemos
diverse HM und Z-Wave Geräte