Es währe doch toll, wenn man bei eintreffender E-Mail benachrichtigt würde oder?
So braucht man nicht immer die 148 Mails checken, und kann die Welt retten.
In diesem Projekt, beschreibe ich wie das Betreff jeder eintreffende E-Mail per Sprachausgabe ausgegeben wird. Dazu wird der Karotz benutzt, der nicht nur für Sprachausgabe nützlich ist.
Zuerst das System aktuallisieren und die nötigen cpan Packages installieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
sudo apt-get update sudo apt-get upgrade sudo cpan install Mail::IMAPClient # bei Nachfrage mit ja antworten: # yes # bei der nächsten Nachfage mit return bestätigen # local::lib # ... Stunden später ... sudo cpan install IO::Socket::SSL sudo cpan install IO::Socket::INET # und optional damit Umlaute auch dargestellt werden sudo cpan install MIME::Parser # und optional GnuPG wenn nur signierte E-Mails gelesen werden sollen sudo cpan install Mail::GnuPG |
Folgende Zeile in der Datei fhem.cfg
ergänzen:
1 |
define name mailcheck host user password |
z.B. der IMAP von Strato:
define mailcheck mailcheck imap.strato.de e-mail-von@wenzlaff.de passwort
Nach einem restart von Fhem steht die letzte Betreffzeilen der E-Mails als Reading bereit. So sieht es dann in Fhem aus:
Jetzt fehlt noch den Subject als userReadings zu setze und eine notify Funktion in der fhem.cfg die das Subject liest und an eine Funktion übergibt. Diese Funktion macht die Sprachausgabe des Karotz und wurde an anderer stelle hier im Blog beschrieben.
1 2 3 4 5 6 7 8 |
# Folgende events werden generiert # # 2014-10-11 19:13:02 mailcheck mailcheck Subject: Ohne Umlaute # define mailcheckAnsage notify mailcheck:Subject.* {\ my $betreff=ReadingsVal("mailcheck", "Subject", "E-Mail ohne Betreff");;\ Set_Karotz_Nachricht('karotz-token',"$betreff");;\ } |
Nach einem reread von Fhem, wird jetzt jedesmal das Betreff von Karotz angesagt.
Mögliche Fehler:
1. Wenn dieser Fehler im Log steht, wurden die obigen cpan Packages nicht oder nicht richtig installiert:
1 2 3 4 5 6 |
2014.10.11 15:58:46 1: reload: Error:Modul 32_mailcheck deactivated: Can't locate Mail/IMAPClient.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM ./FHEM/lib) at ./FHEM/32_mailcheck.pm line 11, <> line 85. BEGIN failed--compilation aborted at ./FHEM/32_mailcheck.pm line 11, <> line 85. 2014.10.11 15:58:46 0: Can't locate Mail/IMAPClient.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM ./FHEM/lib) at ./FHEM/32_mailcheck.pm line 11, <> line 85. BEGIN failed--compilation aborted at ./FHEM/32_mailcheck.pm line 11, <> line 85. |
2. Wenn der MIME::Parser nicht installiert ist, wird aus diesem Betreff:
mit üüüüääää
dann
Wenn der MIME Parser aber installiert wurde, und Fhem restartet wurde, klappt es auch mit den Umlauten:
3. Fhem aktualisieren.
Habe festgestellt, das Fhem mit einem update
nicht mehr die Scripte autom. aktualisiert. Mit einem update force
hat es nach ein paar Fehlermeldungen wieder geklappt. Es waren an einigen Dateien nicht mehr die nötigen Userrechte gesetzt.