Raspberry hat immer Warning Meldungen im Log beim versenden von E-Mails.
Momentan komme ich nicht weiter mit dieser Warnmeldung beim Versandt.
2017.12.29 13:32:39.965 1: sendEmail RCP: email@domain.com
2017.12.29 13:32:39.966 1: sendEmail Subject: FHEM Batteriewarnung
2017.12.29 13:32:39.967 1: sendEmail Text: FHEM - Batterie wieder ok von Gerät: OG2 Dachboden Nische - Fenster 3 - Öffnungssensor
2017.12.29 13:32:39.968 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 48.
2017.12.29 13:32:39.969 3: eval: {DebianMail('email@domain.com', 'FHEM Batteriewarnung', 'FHEM - Batterie wieder ok von Gerät: OG2 Dachboden Nische - Fenster 3 - Öffnungssensor')}
2017.12.29 13:32:39.970 1: sendEmail Anhang:
2017.12.29 13:32:39.970 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 50.
2017.12.29 13:32:39.971 3: eval: {DebianMail('email@domain.com', 'FHEM Batteriewarnung', 'FHEM - Batterie wieder ok von Gerät: OG2 Dachboden Nische - Fenster 3 - Öffnungssensor')}
2017.12.29 13:32:40.785 1: sendEmail returned: Dec 29 13:32:40 ccs-ht-rasp01 sendEmail[26473]: Email was sent successfully!
LIST
Internals:
CFGFN /media/hdd/fhem/myprogram/batteriealarm_rasp01.pm
DEF (([".*:[Bb]attery: [Ll]ow"] or [".*:[Bb]attery: [Ll]ow 10%"]) and
[?BATALD:$DEVICE] ne "ALARM")
({DebianMail('email@domain.com',
'FHEM Batteriewarnung',
'FHEM - Batterie Warnung von Gerät: {(AttrVal("$DEVICE","alias", "$DEVICE"))}')},
setreading BATALD $DEVICE ALARM)
DOELSEIF
(([".*:[Bb]attery: [Oo]k"] or [".*:[Bb]attery: [Oo]k 100%"]) and
[?BATALD:$DEVICE] ne "OK")
({DebianMail('email@domain.com',
'FHEM Batteriewarnung',
'FHEM - Batterie wieder ok von Gerät: {(AttrVal("$DEVICE","alias", "$DEVICE"))}')},
setreading BATALD $DEVICE OK)
NAME BATALM
NR 4478
NTFY_ORDER 50-BATALM
STATE OK
TYPE DOIF
READINGS:
2017-12-29 14:40:40 Device THGR810_2
2017-12-28 14:04:40 THGR810_2 OK
2017-12-28 14:04:14 THGR810_6 OK
2017-12-29 13:32:40 cmd 2
2017-12-29 13:32:40 cmd_event UESF3_OG2_DBN
2017-12-29 13:32:40 cmd_nr 2
2017-12-29 13:32:40 state cmd_2
Regex:
cond:
:
0:
".*:[Bb]attery: [Ll]ow 10%" .*:[Bb]attery: [Ll]ow 10%
".*:[Bb]attery: [Ll]ow" .*:[Bb]attery: [Ll]ow
1:
".*:[Bb]attery: [Oo]k 100%" .*:[Bb]attery: [Oo]k 100%
".*:[Bb]attery: [Oo]k" .*:[Bb]attery: [Oo]k
condition:
0 (EventDoIf('.*',$hash,'[Bb]attery: [Ll]ow',0) or EventDoIf('.*',$hash,'[Bb]attery: [Ll]ow 10%',0)) and ReadingValDoIf($hash,'BATALD','$DEVICE') ne "ALARM"
1 (EventDoIf('.*',$hash,'[Bb]attery: [Oo]k',0) or EventDoIf('.*',$hash,'[Bb]attery: [Oo]k 100%',0)) and ReadingValDoIf($hash,'BATALD','$DEVICE') ne "OK"
devices:
do:
0:
0 {DebianMail('email@domain.com', 'FHEM Batteriewarnung', 'FHEM - Batterie Warnung von Gerät: {(AttrVal("$DEVICE","alias", "$DEVICE"))}')}, setreading BATALD $DEVICE ALARM
1:
0 {DebianMail('email@domain.com', 'FHEM Batteriewarnung', 'FHEM - Batterie wieder ok von Gerät: {(AttrVal("$DEVICE","alias", "$DEVICE"))}')}, setreading BATALD $DEVICE OK
2:
helper:
DOIF_Readings_events
DOIF_eventas
event battery: ok
globalinit 1
last_timer 0
sleeptimer -1
timerdev UESF3_OG2_DBN
timerevent battery: ok
triggerDev THGR810_2
timerevents:
battery: ok
timereventsState:
battery: ok
triggerEvents:
temperature: 33.2
battery: ok
rssi: 5
lx: 66850
rssi_dB: -80
triggerEventsState:
temperature: 33.2
battery: ok
rssi: 5
lx: 66850
rssi_dB: -80
internals:
itimer:
readings:
trigger:
uiState:
uiTable:
Attributes:
alias Überwachung Gerätebatterien - E-Mail Weiterleitung
delayCounter 3
devStateIcon ALARM:measure_battery_25@E50005 OK:measure_battery_100@0CFB0C
do always
eventMap cmd_1:ALARM cmd_2:OK
group Alarme
icon measure_battery_100
room Alarme,_Sensor-Batteriezustände
userattr delayCounter
99_myUtils.pm
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "rasp01\@domain.com";
my $konto = "rasp01#domain.coml";
my $passwrd = "rasp01";
my $provider = "smtp.provider.de:587";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";;
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=no -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
Wo habe ich den Fehler gemacht?
Du verwendest in deinem Code die Variable $attach aber sie wird nicht initialisiert, wenn ohne Anhang/attach gesendet wird.
Das shift schiebt die Parameter durch es wird aber kein Attachment beim Aufruf übergeben...
Entweder mit Attachment senden, Funktion/Sub "umbauen", dass immer initialisiert wird oder "ignorieren", ist ja "nur" eine Warnung...
Kurz, da nur Handy...
Gruß, Joachim