Hi nipponichi ...
bist Du bei Deiner Fehlersuche schon etwas weiter gekommen? Ich stehe nach wie vor vor dem gleichen Problem.. Allerdings nur wenn ich das aktuelle Logikprozessor Script laufen lasse.. dann läuft mein Email Plugin mit der Meldung Thread eiblisten Caught TERM, exiting:TIMEOUT running PLUGIN email_triggered_by_ga gegen die Wand...
An den timeout Werten hatte ich bereits geschraubt, leider ohne Verbesserung....
Beste Grüße und schöne Feiertage weiterhin,
Mike
Ankündigung
Einklappen
Keine Ankündigung bisher.
suche E-Mail Plugin
Einklappen
Dieses Thema ist geschlossen.
X
X
-
Verwende ich das abgespeckte SMTP-eMail.pl, endet das Plugin wie gehabt zwangsweise bei Timeout.
Lasse ich das identische Script auf der Kommandozeile laufen, schickt es innerhalb von 2 Sekunden erfolgreich eine Email.
Warum dieser Unterschied?
Einen Kommentar schreiben:
-
Ich habe das Script neu aufgesetzt, ohne beim alten abzugucken, leider wieder kein Erfolg.
Beim Aufruf "$smtp = Net::SMTP::SSL->new($mailserver, Timeout => 10)" bleibt er hängen und nach 60-120 Sekunden gibt es einen Timeout, der zum Neustart führt:
/usr/sbin/wiregated.pl: INFO
Thread eiblisten Caught TERM, exiting:TIMEOUT running PLUGIN SendEmailTrig.pl
*** reading config
connected to eibd local:/tmp/eib
Den (gmx) Mail Server kann ich anpingen und mittels "openssl s_client -connect mail.gmx.net:465 -debug" eine Verbindung aufbauen.
Einen Kommentar schreiben:
-
Hallo,
ich habe das Script email_triggered_by_ga_once.pl weitgehend unverändert übernommen.
Nur, es passiert nichts und ich bekomme keine Fehlermeldung.
Ich habe mir dann mal "printfs" eingebaut unf festgestellt, daß das Script bis
Net::SMTP::SSL->new($mailserver, Timeout => 10) kommt, aber dort weder einen Fehler generiert noch drüber hinwegkommt. Kein Rückgabewert in der Script-Übersicht oder Fehler im Plugin-Log.
Ich habe sowohl einen GMX- als auch einen Gmail-Account getestet - kein Unterschied. Internetzugang ist vorhanden.
Desweiteren:
- nehme ich einen ungültigen Servernamen, erhalte ich "bad hostname"
- verwende ich einen blödsinnigen Port, erhalte ich "connection timeout"
- verwende ich port 587, erhalte ich "unknown protocol" (aus den vorhandenen Beiträgen ist mir nicht klar geworden, ob Port 587 überhaupt geht.)
Damit kann man einige Fehler wohl schon ausschließen.
Timeout 10 ist doch eigentlich schon zu groß, da das Script dann zwangsabgeschossen wird (sieht man das irgendwie?). Mit 5 bleibt es aber genauso hängen.
Gibt es noch irgendwelche Debuginformationen, die man sich angucken könnte?
Grüße, Manuel
Einen Kommentar schreiben:
-
Jetzt funktioniert es. Habe das Logikprozessor Script gelöscht und seit dem klappt es. Warum auch immer. Fehler hatte das Logikprozessor Script im Log zwar keine aufgeführt, aber scheint reproduzierbar in Zusammenhang zu stehen. Warum ist mir allerdings ein Rätsel (??).
Grüße,
Mike
Einen Kommentar schreiben:
-
Hi daviid,
habe das Standard EMail Plugin nur Minimal angepasst. Code sieht wie folgt aus
Nutze parallel noch das Logikprozessor Script zur Erfassung und Auswertung der Fenster Kontake und der Aktiven Alarmierung via CV. Das funzt auch soweit. Die GA 5/1/1 wird gesendet, sobald ein Fenster auf geht. Habe im Email Script auch das Logging aktiv, so dass erkennbar der Trigger ausgelöst wird. Nur wird keine Mail gesendet und ich stehe auf dem Schlauch woran es liegt und wo ich ggf. nach weiteren Mailproblemen suchen kann. Gibt es noch ein Logfile aus dem ggf. die Kommunikation mit dem Provider hervorgeht? Der private Mailversand via Outlook und verschlüsselter Übertragung klappt.Code:#Plugin zum versenden von Emails beim Empfang eines definierten Werts auf einer definierten GA #Mehrere Mails an einer GA sind derzeit nicht möglich! # - benoetigt Paket libnet-smtp-ssl-perl # Aufbau moeglichst so, dass man unterhalb der Definitionen nichts aendern muss! my ($sec,$min,$hour,$day,$month,$yr19,@rest) = localtime(time); my $hostname = `hostname`; ################## ### DEFINITION ### ################## my $Absender = 'WireGate '; # unbedingt anpassen, die Absenderadresse sollte gültig sein um Probleme zu vermeiden my $username = 'xxx@gmx.de'; #Anpassen! Username fuer SMTP-Server my $password = 'xxx'; #Anpassen! Passwort fuer SMTP-Server my $mailserver='mail.gmx.net:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden! #my $mailserver='smtp.gmail.com:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden! $plugin_info{$plugname.'_cycle'} = 3500; my @actionGA; push @actionGA, { name => "Alarmanlage", email_adress => 'xxx@gmx.de', email_subject => "ALARM", email_text => "Alarmanlage hat um $hour:$min ausgelöst.", trigger_ga => "5/1/1", value => 1 }; #push @actionGA, { name => "test", email_adress => 'email@gmx.de', email_subject => "test2", email_text => "Test 2", trigger_ga => "1/1/1", value => 0 }; #push @actionGA, { name => "test", email_adress => 'email@gmx.de', email_subject => "test3", email_text => "Test 3", trigger_ga => "1/1/2", value => 1 }; ####################### ### ENDE DEFINITION ### ####################### use Net::SMTP::SSL; use MIME::Base64; foreach my $element (@actionGA) { my $email_adress = $element->{email_adress}; my $email_subject = $element->{email_subject}; my $email_text = $element->{email_text}; my $trigger_ga = $element->{trigger_ga}; my $value = $element->{value}; $plugin_subscribe{$trigger_ga}{$plugname} = 1; if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "$value" ) { plugin_log($plugname, "Trigger erfolgt."); my $smtp = Net::SMTP::SSL->new($mailserver, Timeout => 10) or return "Fehler beim verbinden zu $mailserver $!; $@"; $smtp->auth($username,$password) or return "SASL Auth failed $!;$@"; # try SASL $smtp->status() < 5 or return "Auth failed: $!; $@ ". $smtp->status(); $smtp->mail($Absender) or return "Absender $Absender abgelehnt $!"; $smtp->to(split(',',$email_adress)) or return "Empfaenger $email_adress abgelehnt $!"; $smtp->data() or return "Data failed $!"; $smtp->datasend("To: $email_adress\n") or return "Empfanger $email_adress (Header-To) abgelehnt $!"; $smtp->datasend("Subject: $email_subject\n") or return "Subject $email_subject abgelehnt $!"; $smtp->datasend("\n") or return "Data failed $!"; $smtp->datasend("$email_text\n") or return "Data failed $!"; $smtp->dataend() or return "Data failed $!"; $smtp->quit or return "Quit failed $!"; return;# keine Logausgabe return "eMail von $Absender an $email_adress\ Betreff $email_subject gesendet: $email_text"; } else { plugin_log($plugname, "Unbekannter Aufruf."); } }
Die verwendete GA ist in der eibga.conf hinterlegt. WG wurde bereits durchgestartet. Test mit aktivem exim4 Dienst und ohne brachte keine Änderung. Wobei der Dienst wohl auch nicht benötigt wird (oder ist das ein Irrtum?)
Grüße,
Mike
Einen Kommentar schreiben:
-
So. neues Problem oder besser, neue Herausforderung ;-)
Ich plane eine Email Signalisierung bei geöffneten Fenstern während der Abwesenheit. Also wenn ein Fenster auf geht, dann Alarmierung. Folgendes existiert. Sammel GA Plugin zur Überwachung alle Fenster und Meldung an eine GA -> funktioniert. Anzeige in der CV ist korrekt.
Zweites Sammel GA Plugin prüft die GA aus dem ersten Sammel GA Script UND eine zweite GA für einen Alarmierungs Button in der CV. Damit soll erreicht werden, dass eine Alarmierung nur bei Aktiviertem Alarm Button ausgelöst wird. Ich will ja nicht bei jedem geöffneten Fenster eine Mail erhalten. Die GA aus dem zweiten Script wird dem Email Plugin Script mitgegeben. In der ETS Diagnose werden alle GAs korrekt erzeugt und via KNX übertragen. Nur das Email Plugin reagiert nicht. Keine Email. Setze ich eine Status GA eines Aktors in das Mail Plugin ein, dann kommt auch die Email. Frage. Gibt es einen Grund warum aus den Plugins heraus generierte GAs nicht durch das EMail Plugin berücksichtigt werden? Oder gibt es eine Alternative zur Steuerung der Email Benachrichtigung, so dass eine Aktive Überwachung gesteuert werden kann?
Danke im Voraus und Grüße,
Mike
Einen Kommentar schreiben:
-
Ok. Lösung gefunden. Habe im Wiregate unter der root Anmeldung und dann unter Sonstiges -> Perl Module (CPAN) das Modul Authen::SASL installiert. War offenbar nicht vorhanden. Danach klappt es.
Einen Kommentar schreiben:
-
Hallo zusammen,
habe mich jetzt auch am email plugin versucht. die apt-get update meldung erhalte ich auch. laut anderen foren beiträgen hier soll diese ja zu vernachlässigen sein. aber.... ich habe noch ein ganz anderes problem. bei empfang einer ga wird das script zwar angestoßen, bricht aber mit einem fehler ab. meldung lautet auf:
SASL Auth failed No such file or directory;Can't locate Authen/SASL.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/share/perl/5.10/Net/SMTP.pm line 117.
Gibt es hierzu Ideen wo das Problem liegen könnte?
Danke und Grüße!
Mike
Einen Kommentar schreiben:
-
Danke für den Tipp. Laut dieser Seite sollte SSL funktionieren.
Habe nun versucht libnet-smtp-ssl-perl neu zu installieren, bekomme aber nun folgende Fehlermeldung:
Gruß PluschW: GPG error: Index of / lenny/updates Release: The following signatures were invali d: KEYEXPIRED 1356982504 W: You may want to run apt-get update to correct these problems
Einen Kommentar schreiben:
-
Schuß ins Blaue bei freenet.de... Kann es sein das da gar kein SSL angeboten wird Du aber im Plugin SSL anforderst. Bin nur mal auf die schnelle die Konf.empfehlung von freenet.de durchgegangen und da sind IMHO keine Haken bzgl. SSL oder TLS gesetzt...
Wie gesagt, auf die schnelle... aber vielleicht hilft's Dir...
Cheers,
Oliver
Einen Kommentar schreiben:
-
Hallo,
habe mir nun Aufgrund des Posts von lio auch mal das Plugin installiert.
Bekomme unten stehende Fehlermeldung bei zwei verschiedenen Emailkonten.
Hat jemand einen Hinweis für mich wo hier der Fehler eventuell zu suchen ist?
Danke!
Gruß Plusch
Code:Fehler beim verbinden zu mx.freenet.de:587 ; Net::SMTP::SSL: SSL connect attempt failed with unknown errorerror:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Einen Kommentar schreiben:
-
Hallo Zusammen, das Wiregate brauchte wohl die Nacht um darüber nachzudenken, ob es das Plugin nicht doch arbeiten lässt. Heute morgen erfolgte dann die Arbeitsaufnahme und funktioniert bisher ganz gut. Warum diese Verzögerung? Egal, hauptsache es funktioniert nun! Danke und Grüße, Lio
Einen Kommentar schreiben:
-
Der Trigger ist vermutlich der richtige Ansatz. Es kommt vermutlich erst gar nicht zum Senden der Mail, da die Bedigung dafür nicht gegeben ist.Zitat von lio123 Beitrag anzeigenIrgendwie denke ich, dass es am Trigger liegt?!
Hast Du denn Deine eibga.conf gepflegt mit passenden DPTs?
Wenn Du ein paar grundlegende perl Kenntnisste hast, dann pfleg doch einfach in Dein Skript eine log Ausgabe ein.
z.B. in der "email_triggered_by_ga.pl" (Änderung Fett/rot markiert):
Und dann noch eine "else" Bedingung dazu:Code:if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "$value" && $plugin_info{$plugname."_".$trigger_ga} == 0) { [COLOR=Red][B]plugin_log($plugname, "Trigger erfolgt.");[/B][/COLOR]
In der log Datei siehst Du dann, ob der Trigger funktioniert oder nicht.Code:return; # keine Logausgabe return "eMail von $Absender an $email_adress\ Betreff $email_subject gesendet: $email_text"; } [COLOR=Red][B]else { plugin_log($plugname, "Unbekannter Aufruf."); }[/B][/COLOR]
Einen Kommentar schreiben:


Einen Kommentar schreiben: