Hauptmenü

Email Versand mit Anhang

Begonnen von inesa394, 04 Mai 2014, 16:55:58

Vorheriges Thema - Nächstes Thema

inesa394

Hallo Werner

Ich bekomme diesen Fehler
"my" variable $tmp masks earlier declaration in same scope at ./FHEM/99_myMailUtils.pm line 102.
einfach rauslöschen? Eintrag ist ja doppelt
Meine mysendmail.conf sieht so aus für gmail
{accountname@gmail.com}
{passwort}
{smtp.gmail.com:465}
{tls=yes}
und das notify so
define MOTION.not.04 notify ipcam:snapshots.* { sendmailSnapshots ("3",'inesaxxx@@gmail.com')}

angepaßt habe ich dann noch den Pfad zu den Bildern

sub sendmailSnapshots{
  my ($cnt, $to) = @_;
   my $subj = 'ipcam: Moving-Alarm';
   my $text = "Attention:\n\n";
  my $file = '/opt/fhem/FHEM/ipcam_snapshot_';
   my $ext = '.jpg';   
Trotzdem kommt nicht bei mir an

Gruß Inesa

inesa394

Zwischenzeitlich habe ich mal wieder zeit gefunden und meinen fehler gefunden.
In dem Script von Werner mußte diese zeile angepaßt werden
$nr = sprintf ("%02d", $i); in  $nr = sprintf ("%01d", $i);
Da ipcam die bilder mir als ipcam_scnapshot_1.jpg abgelegt hatte und
sendEmail nach ipcam_scnapshot_01.jpg suchte.
Jetzt funktioniert jedenfalls alles danke noch für das Script.

wmeiners

hallo inesa,

das ist richtig. Ich habe die Datei so verändert, dass man nun bis 9 oder halt bis 99 Dateien
übermitteln kann.

Ich hänge die aktualisierte Version 1.2 an!

Liebe Grüße
Werner
FHEM auf Raspberry Pi 3
2x cul (FS20, Homematic)
USV Selbstbau

juniorfux

Guten Abend,

sorry, dass ich auf dem alten Thema herumhacken muss, aber leider komme ich genau mit dem Teil nicht weiter :(

Ich habe die 99_myUtils.pm soweit zum laufen bekommen, dass die Mail mit Anhang rausgeht.

Überwachen möchte ich das Keyamtic der Haustüre.

Das Notify, dass bei Aktion der Keymatic die Bilder auf den Fhem-Server verschubst läuft ebenfalls sauber.
Leider reagiert das Notify zum Versand der Mail etwas "über".

Es sieht so aus:

EG_Kamera_Flur:.*snapshots.* sleep 5; { sendSnapshot("%NAME","%EVTPART1")


Nun ist es so, dass EG_Kamera_Flur scheinbar mehrfach das Reading "snapshots = 9" während der Übertragung ändert.
Habe mal ein LOG für EG_Kamera_Flur angelegt und dort erscheinen binnen weniger Sekunden mehrere Einträge.
Achso, es sollen 9 Bilder im Abstand von 1 Sekunde erstellt werden.
Braver Weise sendet das Notify dann leider auch so um die 11 Mails mit den Bildern im Anhang an die Mail-Adresse.


Bin völlig ratlos wie ich das in den Griff bekomme, sleep verzögert den Mail-Angriff lediglich, die Readings werden aber weiterhin abgearbeitet.

Ich hoffe Ihr könnt mir nochmal helfen.


Viele Grüße

Manuel

wmeiners

Hallo Manuel,
so wie ich es einschätze, ist für die 11 emails das notify verantwortlich, dass die mails mit "get ipcamxx image" von der cam holt. Denn nachdem die Bilder geholt wurden, folgt das event "ipcamxx:snapshots.*"!
Schau es dir doch mal im Event monitor an.

Liebe Grüße
Werner
FHEM auf Raspberry Pi 3
2x cul (FS20, Homematic)
USV Selbstbau

juniorfux

Guten Morgen Werner,

ja, genau so sieht es auch aus :( Bei dem Abholvorgang wird das Reading mehrfach mit "9" überschrieben und bei jedem Überschreiben läuft mein notify los.
Hast Du eine Idee, wie ich das Notify so einbremse, dass es auf das erste reagiert, dann aber X schläft, oder erst nach x Event reagiert, und dann die Mail abschickt.

Ich habe zwar schon ein bisschen in fhem gearbeitet, aber die Nuss ist mir zu hart.

Sorry.

Manuel

wmeiners

Hallo Martin,
wie sieht dein notify aus, dass die Bilder mit "get image x" holt aus. Welches Device gibt das Event hierfür?
Ist es die Cam, ein Bewegunsmelder oder ...?
Hier musst du ansetzen.

Liebe Grüße
Werner
FHEM auf Raspberry Pi 3
2x cul (FS20, Homematic)
USV Selbstbau

juniorfux

Morgen Werner,

ich vermute, ich weiß was du meinst, aber hier die Aufstellung des Ganzen:

An der Haustür ist eine Keymatic im Einsatz, diese soll später bei unerlaubter Öffnung die Mail auslösen.

Derzeit sieht das Notfiy so aus:

EG_Flur_HT.*{fhem ("get EG_Kamera_Flur image")}

dannn werden die Bilder verarbeitet:

EG_Kamera_Flur:.*snapshots.* sleep 5; { sendSnapshot("%NAME","%EVTPART1") }

Viele Grüße

Manuel

wmeiners

Hallo Martin,
genau hier must du ansetzen!
EG_Flur_HT.*{fhem ("get EG_Kamera_Flur image")}
Alle Ereignisse (.*) des Gerätes EG_Flur_HT Triggern das notify!

Du musst es einschränken. Dazu schaue dir im Event Monitor an, welche Ereignisse es sind und dann wähle das richtige aus.
Beispiel:
EG_Flur_HT:Open{fhem ("get EG_Kamera_Flur image")}

Werner
FHEM auf Raspberry Pi 3
2x cul (FS20, Homematic)
USV Selbstbau

TiPpFeHlEr

Hallo,

ich versuche nun auch Bilder einer Cam per mail zu senden.

was klappt:
1. Bilder per notify aufnehmen lassen und speichern
2. nach erfolgreichen speichern email senden

was nicht klappt:

1. Bilder anhängen

hier mal die sendSnapshot(@) sub rutine in der 99myUtils

#########################  Sende Bilder an Email  ##############
sub
sendSnapshot(@)
{
  my ($cam,$snapshots) = @_;
  my $storage = AttrVal($cam,"storage","");
  my $rcpt = 'xxxxx@xxx.de';
  my $from = "xxxxx\@xxx.de";
  my $usr = "xxxxx";
  my $pw = "xxxxx";
  my $smtp = "smtp.xxx.de:25";
  my $subj = "FHEM: Kamera $cam hat eine Bewegung aufgezeichnet";
  my $last = ReadingsTimestamp($cam,"last","");
  my $mess = "Kamera $cam hat eine Bewegung am $last aufgezeichnet:";
  Log 1, "IPCAM $cam : $storage";
  if(!-d $storage) {
    Log 1, "IPCAM $cam storagepath does not exists: $storage";
    return "storagepath for $cam does not exists: $storage";
  }
  if(!$last) {
    Log 1, "IPCAM $cam no snapshots available";
    return "no snapshots available for $cam";
  }
  my $cmd  = "sendemail -f $from -t $rcpt -s $smtp -xu $usr -xp $pw -u $subj -m $mess ";
     $cmd .= "-o message-content-type=text -o message-charset=utf-8 -a";
  for (my $s=1;$s<$snapshots+1;$s++) {
    $cmd .= " $storage/".ReadingsVal($cam,"snapshot$s","");
  }
  my $ret  = `$cmd`;
  $ret =~ s/[\r\n]//g;
  Log 4, "IPCAM sendSnapshot: $ret";
  return undef;


wo liegt der Fehler???

mfg Maik

TiPpFeHlEr

Fehler gefunden!

es lag nicht an der 99MyUtils , der aufruf in FHEM war falsch (veraltet)

alt: Cam1:.*snapshots.* { sendSnapshot("%NAME","%EVTPART1") }
geht so nicht mehr seit Version 5.7

neu Cam1:.*snapshots.* { sendSnapshot("$NAME","$EVTPART1") }
nun geht auch der Dateiversand.

mfg maik