[Gelöst] FHEM stürzt ab: "Login failed: authentication failed"

Begonnen von Bracew, 28 September 2015, 19:21:15

Vorheriges Thema - Nächstes Thema

Bracew

Hallo,

seit mitte des Monats stürzt FHEM auf meinem Raspberry Pi Model B Revision 2.0 ab.

Die jeweils letzten Meldungen im Log sind:
Zitat
...
2015.09.15 19:13:13 3: Login failed: authentication failed
...
2015.09.17 14:01:36 3: Login failed: authentication failed
...
2015.09.22 01:00:03 3: Login failed: authentication failed
...
2015.09.28 02:29:09 3: Login failed: authentication failed
...
2015.09.28 17:59:56 3: Login failed: authentication failed
...
bisher also 5-mal.

Über Putty:
   sudo /etc/init.d/fhem status
bekomme ich dann angezeigt:
   fhem is not running

Ich kann FHEM dann wieder mit
   sudo /etc/init.d/fhem start
neustarten.

Der RasPi läuft im 24/7-Modus und zeigt sonst keine (mir bewussten) Auffälligkeiten.
Bis zum 15.09.2015 war auch FHEM stabil gelaufen. Nur Restarts zum Beispiel nach Updates.

Wo liegt der Fehler?
Oder, wie kann ich den Fehler rausfinden?

Gruß Bracew

P.S. Die letzten Änderungen 2 Tage vorher in fhem.cfg betrafen das Thema
http://forum.fhem.de/index.php/topic,40990.msg332008.html#msg332008
liegt es vielleicht daran?
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

rudolfkoenig

Es gibt drei Module, die "Login failed" ausgeben (könnten): 17_EGPM2LAN.pm, 42_SYSMON.pm und 72_FRITZBOX.pm. Bitte pruefe, welche dieser Module bei dir im Einsatz ist, und oeffne einen Beitrag mit passenden Titel im richtigen Forumsbereich.

maxritti

Sollte der Code aus dem genannten Posting sein, dann passe dort doch mal das Logging an.
Soll heissen, dass die 5. Zeile im Code einen andere Meldung als "Login failed:" ausgibt, damit man die Meldung von den genannten Modulen von Rudolf unterschieden werden können.

Oder aber deaktiviere mal die Funktion zum Mailabruf und schaue, ob es dann wieder stabil läuft.

Bracew

Danke für die Tips.

@rudolfkoenig
Ich benutze eigentlich nicht (jedenfalls nicht bewusst) die Module 17_EGPM2LAN.pm, 42_SYSMON.pm und 72_FRITZBOX.pm.

@maxritti
Ich habe den Code aus MailCheck:

  if(!$imap->login($user,$passwd)){
   Log3 "Mailcheck", 3, "Login failed: " . $imap->errstr;
   exit(64);


so geändert:

  if(!$imap->login($user,$passwd)){
   Log3 "Mailcheck", 3, "Login (sub CheckMails) failed: " . $imap->errstr;
   exit(64);


Mal sehen beim nächsten Absturz wie es aussieht. Ich melde mich dann wieder hier.
Danke.

Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

betateilchen

dann gib doch einfach mal den richtigen User und Passwort für den Zugang zu Deinem Mailaccount an...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Bracew

Hallo betateilchen,

der User und das Passwort sind richtig eingegeben. Der RasPi loggt sich damit alle paar Minuten in verschiedene E-Mail Accounts ein und forscht nach, ob es neue E-Mails gibt. Dies funktioniert, bis auf die Abstürze, bisher sogar tagelang sehr gut, ergo User und das Passwort  sind OK. Daran kann es meines Erachtens nicht liegen.

Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Markus M.

Das funktioniert wahrscheinlich nur solange du auch eine Rückmeldung bekommst.
Versuch doch mal ein falsches Passwort oder einen nicht existierenden Server einzutragen.
Wenn es dann abstürzt, musst du dich ausgehend davon um eine passende Fehlerbehandlung kümmern.
Aktuell weder Smarthome noch FHEM vorhanden

Bracew

Hallo,

nun ist es passiert. FHEM ist wieder abgestürzt, Auszug aus dem Log:
Zitat
...
2015.10.08 07:45:00 2: GenShellSwitch set HeizPumpe off
2015.10.08 14:03:41 3: Login (sub CheckMails) failed: authentication failed
2015.10.08 17:34:25 1: Including fhem.cfg
...

Es liegt also an der Subroutine CheckMails($$$$$) aus 99_BracewUtils.pm (meine Version der sonst üblichen 99_myUtils.pm):

##############################################
# Bracew 12.09.2015
# aus http://forum.fhem.de/index.php/topic,40990.msg332051.html#msg332051
# Anzahl neuer E-Mails anzeigen

sub CheckMails($$$$$) {
  my ($host, $user, $passwd, $dummy, $ssl) = @_;

  use Net::IMAP::Simple::SSL;
  use Net::IMAP::Simple;
  use Email::Simple;

#  Log3 "Mails", 3, "Login to $host";

my $imap;
  if ($ssl eq "ssl") {
    $imap = Net::IMAP::Simple::SSL->new($host) ||
     die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
  } else {
    $imap = Net::IMAP::Simple->new($host) ||
     die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
  }

  if(!$imap->login($user,$passwd)){
   Log3 "Mailcheck", 3, "Login (sub CheckMails) failed: " . $imap->errstr;
   exit(64);
  }

  my ($unseen, $recent, $num_messages) = $imap->status('INBOX');
  fhem("set $dummy hat $unseen ungelesenene Nachrichten bei $user");
#  fhem("hat $unseen ungelesenene Nachrichten");

  $imap->close();
  $imap->logout();
  return 0;
}


Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

maxritti

Tjo, warum FHEM abstürzt ist mir ein Rätsel.
Denn $imap->login($user,$passwd) scheint ja irgendwie "false" zurückzuliefern.
Dann mit einem ! geht der in das if und gibt "Log3 ..." noch aus.
Und dann verabschiedet FHEM sich.

Ob der das exit(64) nicht mag?

Nim mal den Code hier:
Da  habe ich den If -Fall mal anders aufgebaut (quasi getauscht) und ein return 64 anstelle des exit(64)

sub CheckMails($$$$$) {
  my ($host, $user, $passwd, $dummy, $ssl) = @_;

  use Net::IMAP::Simple::SSL;
  use Net::IMAP::Simple;
  use Email::Simple;

#  Log3 "Mails", 3, "Login to $host";

my $imap;
  if ($ssl eq "ssl") {
    $imap = Net::IMAP::Simple::SSL->new($host) ||
     die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
  } else {
    $imap = Net::IMAP::Simple->new($host) ||
     die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
  }

  if($imap->login($user,$passwd)){
    my ($unseen, $recent, $num_messages) = $imap->status('INBOX');
    fhem("set $dummy hat $unseen ungelesenene Nachrichten bei $user");
    #  fhem("hat $unseen ungelesenene Nachrichten");

    $imap->close();
    $imap->logout();
    return 0;
  } else {
   Log3 "Mailcheck", 3, "Login (sub CheckMails) failed: " . $imap->errstr;
   return 64;
  }

}

Bracew

Hallo Max,

vielen, vielen Dank für Deine Mühe.

Den neuen Code habe ich in die 99_BracewUtils.pm eingesetzt, gespeichert und FHEM anschließend neu gestartet.
Neue ungelesene Mails zeigt es an --> Test ist OK.

Ich melde mich wieder falls FHEM wieder stehen bleibt.

Danke nochmals und liebe Grüße von
Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

maxritti

Ich schätze mal, dass das exit wirklich das Problem war.

hier steht beschrieben, dass man exit nicht nutzen soll um eine subroutine zu verlassen.

http://perldoc.perl.org/functions/exit.html

Ich vermute mal, dass exit wirklich ein exit für fhem.pl ist.
Ist nur die Frage, warum das login via imap ab und zu mal fehlschlägt.
Aber mit dem neuen Code sollte zumindest fhem.pl nicht mehr das zeitliche segnen.

Bracew

Hallo Max,

seit dem ich Deinen neuen Code verwende, habe ich keine Abstürze mehr. Alles OK. Juchhuuu! :)
Vielen Dank für Deine ausführliche Hilfe!!!

Ich werde das "Thema schliessen" und als "Gelöst" markieren.

Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe