Hallo,
ich hatte bisher ein Notify:
define Mail_HS_UP_test notify HS_UP_test_Btn_02:trigger:.Short.* {system('/usr/local/bin/mailnotify.sh "fhem@@xxxxxxxxxx.de" "%NAME" "%EVENT"')}
Nach Update auf 5.7 habe ich @@ gegen @ und % gegen $ getauscht. $NAME und $EVENT sind in der Mail aber leer.
Sieht jetzt so aus:
define Mail_HS_UP_test notify HS_UP_test_Btn_02:trigger:.Short.* {system ('/usr/local/bin/mailnotify.sh "fhem@xxxxxxxxxx.de" "$NAME" "$EVENT"')}
testweise habe ich noch
define testdummyN dummy
define Mail_HS_UP_test2 notify HS_UP_test_Btn_02:trigger:.Short.* set testdummyN "$NAME"
eingerichtet. Der Dummy wird entsprechend gesetzt.
Mein "mailnotify.sh" funktioniert aber grundsätzlich.
define Mail_HS_UP_test notify HS_UP_test_Btn_02:trigger:.Short.* {system('/usr/local/bin/mailnotify.sh "fhem@@xxxxxxxxxx.de" "Betreff" "Email Text"')}
kommt korrekt an und mit FHEM 5.6 hat %NAME und %EVENT auch funktioniert.
Hat jemand 'nen Tipp für mich ?
Du hast vergessen, zu posten, wie Mail_HS_UP_test nach deiner Änderung aussieht.
Du hast Recht
s.O.
Und jetzt wären noch entsprechende Fehlermeldungen interessant (Log etc).
Ich nehme aber an, dass das Problem ist, dass $NAME und $EVENT nicht innerhalb von ' aufgelöst werden.
sollst Du haben:
(verbose 5)
2015.12.28 15:19:00 4: HS_UP_test: CUL_HM HS_UP_test battery: ok
2015.12.28 15:19:00 5: Triggering HS_UP_test (1 changes)
2015.12.28 15:19:00 5: Notify loop for HS_UP_test battery: ok
2015.12.28 15:19:00 4: HS_UP_test: CUL_HM HS_UP_test CMDs_done
2015.12.28 15:19:00 5: Triggering HS_UP_test (1 changes)
2015.12.28 15:19:00 5: Notify loop for HS_UP_test CMDs_done
2015.12.28 15:19:00 4: HS_UP_test: CUL_HM HS_UP_test HS_UP_test_Btn_02 Short
2015.12.28 15:19:00 5: Triggering HS_UP_test (1 changes)
2015.12.28 15:19:00 5: Notify loop for HS_UP_test HS_UP_test_Btn_02 Short
2015.12.28 15:19:00 4: HS_UP_test_Btn_02: CUL_HM HS_UP_test_Btn_02 Short (to vccu)
2015.12.28 15:19:00 5: Triggering HS_UP_test_Btn_02 (1 changes)
2015.12.28 15:19:00 5: Notify loop for HS_UP_test_Btn_02 Short (to vccu)
2015.12.28 15:19:00 4: HS_UP_test_Btn_02: CUL_HM HS_UP_test_Btn_02 trigDst_vccu: noConfig
2015.12.28 15:19:00 5: Triggering HS_UP_test_Btn_02 (1 changes)
2015.12.28 15:19:00 5: Notify loop for HS_UP_test_Btn_02 trigDst_vccu: noConfig
2015.12.28 15:19:00 4: HS_UP_test_Btn_02: CUL_HM HS_UP_test_Btn_02 trigger: Short_56
2015.12.28 15:19:00 5: Triggering HS_UP_test_Btn_02 (1 changes)
2015.12.28 15:19:00 5: Notify loop for HS_UP_test_Btn_02 trigger: Short_56
2015.12.28 15:19:00 5: Triggering Mail_HS_UP_test
2015.12.28 15:19:00 4: Mail_HS_UP_test exec {system ('/usr/local/bin/mailnotify.sh "fhem@xxxxxxxxx.de" "$NAME" "$EVENT"')}
2015.12.28 15:19:00 5: Cmd: >{system ('/usr/local/bin/mailnotify.sh "fhem@xxxxxxxxx.de" "$NAME" "$EVENT"')}<
Reading message body from STDIN because the '-m' option was not used.
If you are manually typing in a message:
- First line must be received within 60 seconds.
- End manual input with a CTRL-D on its own line.
Dec 28 15:19:02 fhem-net-v2 sendEmail[19539]: Message input complete.
Dec 28 15:19:03 fhem-net-v2 sendEmail[19539]: Email was sent successfully!
2015.12.28 15:19:03 3: Mail_HS_UP_test return value: -1
2015.12.28 15:19:03 4: HS_UP_test_Btn_02: CUL_HM HS_UP_test_Btn_02 trigger_cnt: 56
2015.12.28 15:19:03 5: Triggering HS_UP_test_Btn_02 (1 changes)
2015.12.28 15:19:03 5: Notify loop for HS_UP_test_Btn_02 trigger_cnt: 56
die Meldung "Reading message body...." kommt weil "Betreff" leer ist wenn ich was rein schreibe kommt die Meldung nicht.
Und meinen 2. Satz hast du ignoriert?
nein - nicht verstanden.... :o
wie soll ich das denn einfassen ?
define Mail_HS_UP_test notify HS_UP_test_Btn_02:trigger:.Short.* {system ("/usr/local/bin/mailnotify.sh fhem@xxxxxxxxxx.de $NAME $EVENT")}
oder qx
define Mail_HS_UP_test notify HS_UP_test_Btn_02:trigger:.Short.* {qx (/usr/local/bin/mailnotify.sh fhem@xxxxxxxxxx.de "$NAME" "$EVENT")}
Hallo marvin78
erstmal Danke für Deine Hilfe. Ich mußte gestern kurzfristig abbrechen.
Ich habe verschiedene Varianten probiert
Offensichtlich wird die Email-Adresse nicht als eine Variable erkannt. Ich bekomme dann solche Meldungen:
Zitat2015.12.29 10:55:30 3: Mail_HS_UP_test return value: Global symbol "@xxxxxxxxxx" requires explicit package name at (eval 743) line 1.
Ich habe dann diese Variante probiert:
define Mail_HS_UP_test notify HS_UP_test_Btn_02:trigger:.Short.* {system ("/usr/local/bin/mailnotify.sh dummy $NAME $EVENT")}
und in meiner mailnotify.sh die Email-Adresse fest eingetragen und "dummy" einfach verworfen. Damit kam zumindest eine Email mit dem Gerätenamen und einem Teil des Events. Da der Event typisch so lautet:
Zitattrigger: Short_1
und ein Space enthält wird auch er in 2 Stücken übergeben.
Jetzt weiss ich zwar, dass $NAME und $EVENT grundsätzlich übergeben werden (wie Du vermutet hast, aber nicht innerhalb von 2x ') und ich könnte mir die mailnotify.sh hinbasteln. Aber wirklich toll ist das nicht. Zumal das mit ' schon mal funktioniert hat. Da muss doch schon mal jemand drüber gestolpert sein.
Was passiert, wenn du es so machst?
HS_UP_test_Btn_02:trigger:.Short.* {system ("/usr/local/bin/mailnotify.sh 'fhem@xxxxxxxxxx.de' $NAME $EVENT")}
(Code für den DEF Bereich)
Für das Aufteilen von $EVENT gibt es ja $EVTPART.
die Variante hatte ich auch schon. Das ' wird scheinbar nicht erkannt. Die Fehlermeldung ist mit oder ohne die gleiche
Zitat2015.12.29 12:27:59 3: Mail_HS_UP_test return value: Global symbol "@xxxxxx" requires explicit package name at (eval 34) line 1.
Du kanst system() auch so verwenden:
HS_UP_test_Btn_02:trigger:.Short.* {
my @cmd = ('/usr/local/bin/mailnotify.sh');
push @cmd, 'fhem@xxxxxxxxxx.de';
push @cmd, $NAME;
push @cmd, $EVENT;
system (@cmd);
}
wow !!!!!
tut geh'n
Vielen Dank
Dann kann ich mich weiter durch das Update kämpfen - ich habe noch ein paar %xxx-Leichen im Keller - mal sehen wo ich noch drüber stolpere
Hier noch ein kleiner Nachtrag für Mitleser:
hier die angepasste "DEF" für den entsprechenden notify:
maildummy {
my @cmd = ('/usr/local/bin/mailnotify.sh');
push @cmd, 'fhem@ulfreinhardt.de';
push @cmd, "$NAME";
push @cmd, "Geraet: $NAME \n Event: $EVENT";
system (@cmd);
}
man kann Text und Variablen in " zusammenfassen und so übergeben (siehe Zeile 5)
Dann wird eine richtige Email draus (\n veranlasst einen Zeilenumbruch in der Email)
Die Emailadresse muss in ' eingefasst werden sonst wird sie am @ und . geteilt.
Eine Bitte von mir:
Anfänger sollen möglich nicht direkt die Config editieren. Könntest du also bitte dein Beispiel so abändern, dass es für den DEF Bereich im Frontend passt? Danke.
maildummy {
my @cmd = ('/usr/local/bin/mailnotify.sh');
push @cmd, 'fhem@xxxxxxxx.de';
push @cmd, $NAME;
push @cmd, "Geraet: $NAME \n Event: $EVENT";
system (@cmd);
}