Hallo liebes Forum,
ich habe jetzt 2-3 Stunden probiert und gegooglt, aber komme nicht weiter:
FHEM (auf Fritzbox 7390) soll mir eine Email schicken.
Die Anweisungen auf http://www.fhemwiki.de/wiki/E-Mail_senden (//www.fhemwiki.de/wiki/E-Mail_senden) habe ich gelesen.
Unter http://192.168.178.1:8083/fhem?cmd=style%20edit%2099_Utils.pm (//192.168.178.1:8083/fhem?cmd=style%20edit%2099_Utils.pm) habe ich sub fb_mail eingefügt und die Fritzbox neu gestartet.
Jetzt habe ich Putty geöffnet und { fb_mail('empfaenger@mail.de' ('empfaenger@mail.de'),'Subject','text 123') } ausgeführt (natürlich mit einer richtigen Empfängeradresse) aber nichts funktioniert!
Push-Service ist in der Fritzbox aktiviert und schickt mir wöchentlich eine Zusammenfassung.
Was mache ich falsch?
Hallo,
wenn Du den Beitrag gelesen hast, ist Dir sicher aufgefallen, daß dort steht:
Seit 10/2012 ist diese Funktion Bestandteil der fhem Standardauslieferung. Sie ist untergebracht in FritzBoxUtils.pm und heisst dort FB_mail($$$)
Du muss also nichts mehr in die 99_utils.pm eintragen. Lediglich der Aufruf änder sich ein wenig (Case-Sensitive). Bei mir funktionierts tadellos...
{ FB_mail('empfaenger@mail.de' ('empfaenger@mail.de'),'Subject','text 123') }
Dazu muss aber FHEM im non-chroot laufen...
Moin,
- die Funktion fb_mail hättest Du nicht einfügen müssen. Die Routine ist unter dem Namen FB_mail bereits vorhanden (Groß/Kleinschreibung beachten) - das steht auch im Wiki
- das funktioniert nur mit deer Version von fhem.de, das install von AVM.de lässt den Zugriff auf die Mailing-Funktion der Fritzbox nicht zu (habe das Wiki nun dahingehend aktualisiert)
- falls es auch dann noch nicht funktioniert, muss fhem ggf als root laufen. Probier erstmal die oberen beiden Schritte.
Wenn der Aufruf nicht funktioniert, müsste es Fehlermeldungen im log geben. Diese bitte immer mitposten, sonst ist remote-Hilfe schwierig.
Gruß, Uli
Hallo!
Ich habe http://fhem.de/fhem-5.3-fb7390.image (//fhem.de/fhem-5.3-fb7390.image) nochmal drüber-installiert. Die Einstellungen sind erhalten geblieben.
Danach in Putty folgendes eingegeben:
fhem> { FB_mail('MeineEmail@googlemail.com' ('MeineEmail@googlemail.com'),'Subject123','text 123') }
Undefined subroutine &main::FB_mail called at (eval 40) line 1.
Warum funktioniert das nicht? Wäre super, wenn jemand helfen könnte.
Nebenbei: Wo finde ich die ganzen unnötig von mir angelegten *.pm dateien? Ich möchte diese gern löschen (99_Utils_xxx.pm / own modules)?
Vielen Dank!
Auf der Kommandozeile gibst du nur ein:
FB_mail('MeineEmail@googlemail.com','Subject123','text 123')
Die Klammern {} sind für den Aufruf aus fhem.
Guten Abend,
ich verzweifele... es klappt immernoch nicht. Auch ohne die geschweiften Klammern:
fhem> FB_mail('MeineEmail@googlemail.com' ('MeineEmail@googlemail.com'),'Subject123','text 123')
Unknown command fb_mail('meineemail@googlemail.com' ('meineemail@googlemail.com'),'subject123','text, try help
(FRITZ!OS 05.50 / Firmware-Version: 84.05.50)
Nachtrag:
Das könnte wichtig sein (beim einloggen mit Putty):
SecurityCheck:
WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.
Running with root privileges.
Restart fhem for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.
fhem>
@Uli: somit läuft FHEM als root ?
Hallo,
ich hatte die gleiche FEHLER-Meldung!
Einfach mittels Editor folgendes in die 99_Utils.pm einfügen:
sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("/bin/echo \"$text\" > /var/tmp/fhem_nachricht.txt");
system("/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \"$subject\" -t \"$rcpt\"");
system("rm /var/tmp/fhem_nachricht.txt");
}
Gruß
LH
P.S.: Nicht vergessen, in der config müssen @@ in der E-Mail Adresse eingetragen werden!
Hallo!
Danke, ich habe den Code in der "99_Utils.pm" wie unten zu sehen eingefügt.
Danach in Putty "shutdown restart"
Danach in Putty "fb_mail('xxxxx@googlemail.com' ('xxxxx@googlemail.com'),'Subject123','text 123')" gestestet.
---> "Unknown command" :-((
##############################################
# $Id: 99_Utils.pm 1932 2012-10-06 20:15:33Z ulimaass $
package main;
use strict;
use warnings;
use POSIX;
sub fb_mail {
my $rcpt = $_[0];
my $subject = $_[1];
my $text = $_[2];
system("/bin/echo \"$text\" > /var/tmp/fhem_nachricht.txt");
system("/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \"$subject\" -t \"$rcpt\"");
system("rm /var/tmp/fhem_nachricht.txt");
}
sub
Utils_Initialize($$)
{
my ($hash) = @_;
}
sub
time_str2num($)
.... usw ....
und hier das Logfile:
2013.01.22 19:42:16 0: Server shutdown
2013.01.22 19:42:20 1: Including /etc/fhem.cfg
2013.01.22 19:42:20 1: reload: Error:Modul 99_MyUtils deactivated:
2013.01.22 19:42:20 1: reload: Error:Modul 99_Utils1 deactivated:
2013.01.22 19:42:21 3: WEB: port 8083 opened
2013.01.22 19:42:21 3: WEBphone: port 8084 opened
2013.01.22 19:42:21 3: WEBtablet: port 8085 opened
2013.01.22 19:42:22 3: Opening CUL_0 device /dev/ttyACM0
2013.01.22 19:42:22 3: Setting CUL_0 baudrate to 9600
2013.01.22 19:42:22 3: CUL_0 device opened
2013.01.22 19:42:22 3: CUL_0: Possible commands: BCFiAZEGMRTVWXefmltux
2013.01.22 19:42:22 3: telnetPort: port 7072 opened
2013.01.22 19:42:23 1: Including /var/log/fhem/fhem.save
2013.01.22 19:42:23 1: usb create starting
2013.01.22 19:42:23 3: Opening CUL device /dev/ttyACM1
2013.01.22 19:42:23 3: Can't open /dev/ttyACM1: Invalid argument
2013.01.22 19:42:23 3: Opening TCM310 device /dev/ttyUSB0
2013.01.22 19:42:23 3: Can't open /dev/ttyUSB0: No such device or address
2013.01.22 19:42:23 3: Opening TCM310 device /dev/ttyUSB1
2013.01.22 19:42:23 3: Can't open /dev/ttyUSB1: No such device or address
2013.01.22 19:42:23 1: usb create end
2013.01.22 19:42:23 2: SecurityCheck: WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute. Running with root privileges. Restart fhem for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2013.01.22 19:42:23 0: Server started (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2535 2013-01-20 09:21:35Z rudolfkoenig $, pid 1845)
Hy,
bitte den Befehl in geschweiften Klammern eingeben, und einen Moment warten, bis zur Server-Aktualisierung!
{fb_mail('xxxxx@googlemail.com','Subject123','text 123')}
Hallo!
Klappt auch leider nicht.
Ich meinte den Befehl in der Befehlszeile FHEM eingeben!
Hi,
sorry, aber solange diese beiden Fehler nicht behoben sind, dürfte da gar nichts mit fb/FB_mail klappern...
Zitat von: datasette schrieb am Di, 22 Januar 2013 19:50...
2013.01.22 19:42:20 1: reload: Error:Modul 99_MyUtils deactivated:
2013.01.22 19:42:20 1: reload: Error:Modul 99_Utils1 deactivated:
oder irre ich?
Gruß
Thomas
Hi,
ohje, soviele Gerüchte in nur einem Fred...
1. Die Routine fb_Mail muss man als FB7390-user NICHT in seine 99_myUtils.pm nehmen, das steht dick und fett im Wiki. Dort steht auch, dass die Routine unter dem Namen FB_mail() Bestandteil der fhem-Auslieferung ist. Wenn das nochmal jemand verdreht, nehm ich die fb_mail-Schreibweise dort komplett raus.
2. die geschweiften Klammern kennzeichnen perl-Code. Eine beliebige Perl-Routine muss also aus der fhem-Kommandozeile oder fhem-telnet immer in geschweiften Klammern aufgerufen werden, da fhem den angegebenen Befehl sonst versucht, als fhem-Befehl auszuführen -> Fehlermeldung.
3. Wie ebenfalls im Wiki steht, ist die Routine FB_mail() in der Programmdatei FritzBoxUtils.pm untergebracht. Da der Dateiname nicht mit 99_ beginnt, wird diese nicht automatisch geladen. Man muss das Laden anfordern. Entweder durch
reload FritzBoxUtils.pm
oder direkt beim Aufruf der Mailfunktion:
{ use FritzBoxUtils;; FB_mail('xxxxx@googlemail.com' ('xxxxx@googlemail.com'),'Subject123','text 123')}
Was steht nach diesem Aufrug im log?
Rohan hat natürlich Recht, wenn er sagt, man möge sich doch um die in log auftretenden Fehlermeldungen kümmern. Dort sind ja konkrete Fehlermeldungen mit Angabe der Zeilennummer zu finden.
Gruß, Uli
Hallo Uli,
ich habe bisher
use FritzBoxUtils;; direkt vor meinem FB_mail(...
genutzt. Da ich mehrfach den Mailversand nutze, taucht natürlich auch mehrfach das use FritzBoxUtils;; auf.
Im Zusammenhang z.B.:
define nBatChk notify KlimaGarten:T:.* {if (%EVTPART1 < 9) { use FritzBoxUtils;; FB_mail('email@@adresse.com' (@@adresse.com'),'KlimaGarten %EVTPART1','KlimaGarten...')}}
Kann ich die FritzBoxUtils auch zentral einmal in der fhem.cfg einbinden?
Muss dass dann als
use FritzBoxUtils;;
oder
reload FritzBoxUtils.pm
ganz oben in der fhem.cfg erfolgen?
Zitat von: stobor schrieb am Mi, 23 Januar 2013 16:18Kann ich die FritzBoxUtils auch zentral einmal in der fhem.cfg einbinden?
Hi,
hmmm - es ist ja nicht erforderlich, das jedes mal zu laden - schadet abgesehen von performance aber auch nix.
Möglichkeiten aus meiner Sicht:
1. in 99_myUtils.pm ganz am Anfang einmal
use FritzBoxUtils;
eintragen, so hab ich's bei mir auch.
Wenn Du kein 99_myUtils.pm hast, sind vmtl möglich
2. nachdem das Laden der fhem.cfg abgeschlossen ist, einmal FritzBoxUtils holen, also
#fhem.cfg
define autostart notify global:INITIALIZED {use FritzBoxUtils}
3. Es sollte auch klappen, in fhem.cfg am Anfang einzutragen
#fhem.cfg
reload FritzBoxUtils.pm;
das find ich aber schräg. Ich würde Variante 1 empfehlen.
=8-)
Guten Abend Forum,
jetzt läuft alles.
Muss leider gestehen, diverse Anfänger-/Flüchtigkeitsfehler gemacht zu haben.
Was zum Erfolg geführt hat:
- FHEM nochmals sauber drüber-installiert auf die FB 7390 (http://fhem.de/fhem-5.3-fb7390.image (//fhem.de/fhem-5.3-fb7390.image))
- nochmal genau geprüft, dass "use FritzBoxUtils;" in der 99_Utils.pm steht (Semikolon nicht vergessen!), bei mir steht diese Zeile jetzt gleich unter "use POSIX;"
- in der fhem.cfg habe ich jetzt u.a. solche Eintragungen für meine S300TH:
define Wohnzimmer_unter_20_Grad at +*04:00:00 { my $s300th_Wohnzimmer = ReadingsVal("Wohnzimmer_Thermometer","temperature","99.9");; fhem(FB_mail('XXXXXXXXX@googlemail.com' ('XXXXXXXXX@googlemail.com'),qq{Im Wohnzimmer sind jetzt $s300th_Wohnzimmer Grad Celsius.},'')) if($s300th_Wohnzimmer < 20.0) }
(alle 4 Stunden prüfen, ob Temperatur unterschritten. Wenn ja, Email an mich)
Oder der hier:
define Wohnzimmer_Turbo_21_Grad at +*04:00:00 { my $s300_Wohnzimmer2 = ReadingsVal("Wohnzimmer_Thermometer","temperature","99.9");; fhem("set Fussbodenheizung_Schalter on-for-timer 10800") if($s300_Wohnzimmer2 < 21.0) }
(alle 4 Stunden prüfen, ob Temperatur 21 Grad unterschritten. Wenn ja, dann FS20ST-4 Schaltsteckdose für 3 Stunden anschalten. An dieser FS20ST-4 hängt ein Möhlenhoff Stellantrieb (Thermoantrieb) 230V NC (normally closed) für einen normalerweise brach liegenden Heizkreislauf (Fussbodenheizung) in der hinteren Ecke meines Wohnzimmers.
Viel Spass!