FHEM Forum

FHEM - Hardware => Einplatinencomputer => Thema gestartet von: grappa24 am 22 September 2014, 19:43:08

Titel: Problem mit DebianMail und 99_myUtils.pm
Beitrag von: grappa24 am 22 September 2014, 19:43:08
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
Titel: Antw:Problem mit DebianMail und 99_myUtils.pm
Beitrag von: franky08 am 22 September 2014, 19:50:10
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
Titel: Antw:Problem mit DebianMail und 99_myUtils.pm
Beitrag von: grappa24 am 22 September 2014, 20:05:45
Danke franky, ich hatte mich auch schon über den HTML-Code in der .pm Datei gewundert.

Titel: Antw:Problem mit DebianMail und 99_myUtils.pm
Beitrag von: JoWiemann am 22 September 2014, 20:13:15
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
Titel: Antw:Problem mit DebianMail und 99_myUtils.pm
Beitrag von: grappa24 am 22 September 2014, 20:43:55
läuft, vielen Dank  :)
Titel: Antw:Problem mit DebianMail und 99_myUtils.pm
Beitrag von: Puschel74 am 23 September 2014, 05:59:42
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
Titel: Antw:Problem mit DebianMail und 99_myUtils.pm
Beitrag von: grappa24 am 23 September 2014, 07:42:59
@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 ...