Hallo Gemeinde,
anlässlich der Implementierung von DebianMail nach den Anleitungen hier hab ich erstmalig auch eine 99_myUtils angelegt. Beim Start geht aber wohl etwas schief: "2014.09.22 19:31:22 1: reload: Error:Modul 99_myUtils deactivated:"
Beim Aufruf von "DebianMail" in der FHEM Kommandozeile kommt dann auch "Unknown Command DebianMail" ...
Ich füge mal meine 99_myUtils bei und hoffe, Ihr könnt mir helfen; unsicher bin ich mir auch wegen des HTML-Codes in der 99_myUtils.pm
=pod
=begin html
<a name="Utils"></a>
<h3>Utils</h3>
<ul>
<br/>
This is a collection of functions that can be used module-independant in all your own development<br/>
</br>
<pre>
<br/>
<code>
# start-of-template
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
######## DebianMail Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "xx\@yyy.de";
my $konto = "xx\@yyy.de";
my $passwrd = "password";
my $provider = "smtp.strato.de:465";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
1;
</code>
</pre>
</br>
<b>Defined functions</b><br/><br/>
<ul>
<li><b>abstime2rel("HH:MM:SS")</b><br>tells you the difference as HH:MM:SS
between now and the argument</li><br/>
<li><b>ltrim("string")</b><br>returns string without leading
spaces</li><br/>
<li><b>max(str1, str2, ...)</b><br>returns the highest value from a given
list (sorted alphanumeric)</li><br/>
<li><b>maxNum(num1, num2, ...)</b><br>returns the highest value from a
given list (sorted numeric)</li><br/>
<li><b>min(str1, str2, ...)</b><br>returns the lowest value from a given
list (sorted alphanumeric)</li><br/>
<li><b>minNum(num1, num2, ...)</b><br>returns the lowest value from a given
list (sorted numeric)</li><br/>
<li><b>rtrim("string")</b><br>returns string without trailing
spaces</li><br/>
<li><b>time_str2num("YYYY-MM-DD HH:MM:SS")</b><br>convert a time string to
number of seconds since 1970</li><br/>
<li><b>trim("string")</b><br>returns string without leading and without
trailing spaces</li><br/>
<li><b>UntoggleDirect("deviceName")</b><br>For devices paired directly,
converts state 'toggle' into 'on' or 'off'</li><br/>
<li><b>UntoggleIndirect()</b><br>For devices paired indirectly, switches
the target device 'on' or 'off', also when a 'toggle' was sent from the
source device</li><br/>
<li><b>defInfo("devspec", "internal")</b><br>return an array with the
internal values of all devices found with devspec, e.g.
defInfo("TYPE=SVG", "GPLOTFILE").</li><br/>
<li><b>SVG_time_to_sec("YYYY-MM-DD_HH:MM:SS")</b><br>converts the argument
to the number of seconds since 1970. Optimized for repeated use of similar
timestamps.</li></br>
<li><b>fhemNc("host:port", "textToSend", waitForReturn)</b><br>
sends textToSend to host:port, and if waitForReturn is set, then read
the answer (wait up to 5 seconds) and return it. Intended as small
nc replacement.
</li></br>
</ul>
</ul>
=end html
=cut
In deiner Utils steht jede Menge Zeugs, was da nichts zu suchen hat, desshalb wird das Modul auch nicht geladen. Ab package main bis zur 1; ist OK, den Rest lösch besser mal raus.
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
######## DebianMail Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "xx\@yyy.de";
my $konto = "xx\@yyy.de";
my $passwrd = "password";
my $provider = "smtp.strato.de:465";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g; # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}
1;
VG
Frank
Danke franky, ich hatte mich auch schon über den HTML-Code in der .pm Datei gewundert.
Hallo,
HTML in einem FHEM-Modul ist grundsätzlich in Ordnung, da hierüber die commandref generiert wird. Wichtig ist nur, dass das HTML korrekt eingeleitet und beendet wird.
Nach
1;
=pod
=begin html
...
=end html
=cut
Grüße Jörg
läuft, vielen Dank :)
Moin,
nur mal für mich zur Info.
Ist an diesem Wiki-Eintrag http://www.fhemwiki.de/wiki/99_myUtils_anlegen (http://www.fhemwiki.de/wiki/99_myUtils_anlegen) etwas fehlerhaft oder unverständlich?
Grüße
@Puschel74:
Der Wiki-Eintrag ist schon sehr hilfreich, danach bin ich auch vorgegangen ;) und zwar durch "Kopieren-und-Verändern" der 99_Utils.pm. Dann hat mich allerdings der HTML-Code verwirrt und ich hab ihn dringelassen, aber wohl nicht "sauber". Vielleicht könnte man Jörgs Hinweis hier aus dem thread noch in den Wiki-Eintrag aufnehmen ...