Hallo,
ich würde gerne auf meinem FHEM auf RasPi eine Seite einrichten, auf der für jeden meiner Familie die Anzahl der noch ungelesenen Nachrichten im jeweiligen E-Mail Konto bei verschiedenen Providern angezeigt wird.
Also zum Beispiel:
Vater hat 3 ungelesenene Nachrichten bei provider.de
0 ungelesenene Nachrichten bei t-online.de
Mutter hat 2 ungelesene Nachrichten bei gmx.de
Kind hat 0 ungelesene Nachrichten bei web.de
Gibt es dazu eine Möglichkeit, einen Beitrag hier im Forum oder gar eine Anleitung?
Danke für Eure Hilfe
Bracew
Der André hatte da mal ein Modul oder besser hat es bestimmt noch. Schau mal im Forum oder im Wiki.
Gruß
Leon
Suche mal nach "mailcheck"
Hallo CoolTux,
das Modul mailcheck hatte ich mir schon einmal angeschaut. Zunächst hat es nicht funktioniert, da ich
"Mail::IMAPClient and IO::Socket::SSL and IO::Socket::INET hast to be installed on the FHEM host"
nicht hinbekommen habe.
Darauf hin habe ich versucht alle 26 Seiten Beiträge im Forum http://forum.fhem.de/index.php/topic,14092.0.html (http://forum.fhem.de/index.php/topic,14092.0.html) nachzulesen um es denoch installiert zu bekommen. Auf Seite 18 hatte ich dann jedoch gelesen:
Zitat
Antwort #261:
Hallo zusammen,
ich würde mir gerne die Anzahl der ungelesenen E-Mail anzeigen lassen. Soweit ich das gesehen habe ist das Modul nicht dafür erstellt worden, oder täusche ich mich da und es ist doch möglich?
Antwort #262
das modul ist nicht dafür gemacht.
jede mail die mailcheck erkannt hat ist danach nicht mehr neu.
so dass ich danach alles wieder rückgängig gemacht bzw. deinstalliert habe, da das Modul nicht dafür gemacht ist ungelesenen E-Mail anzeigen zu lassen (und auch sehr kompliziert für mich erscheint).
In einem Python-Forum unter http://www.python-forum.de/viewtopic.php?f=3&t=24392 habe ich dann eine (relativ einfache) Lösung gefunden, welche zumindestens auf der Kommandozeilen-Ebene (bash) funktioniert. Aber leider kann ich das nicht in FHEM integrieren.
Gruß Bracew
Ist in Perl aber auch nicht weiter schwer ;)
use Net::IMAP::Simple::SSL;
use Email::Simple;
my $imap = Net::IMAP::Simple::SSL->new('imap.provider.de') ||
die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
if(!$imap->login('user','password')){
print STDERR "Login failed: " . $imap->errstr . "\n";
exit(64);
}
my ($unseen, $recent, $num_messages) = $imap->status('INBOX');
printf("unseen: $unseen - recent $recent - num_messages $num_messages\n");
$imap->close();
$imap->logout();
Das in eine myUtils ausgelagert und entsprechend Parameter übergeben, dann sollten paar at's ausreichen um Deinen Wunsch zu erfüllen.
Ein paar Module müsstest du dafür aber wieder installieren.
Hallo maxritti,
funktioniert das bei Dir?
Wenn ja,
kannst Du das für einen "Dummy" wie mich etwas näher erläutern bzw. verständlich aufbereiten?
Zum Beispiel wie die at's und Module eingerichtet werden.
Wie kann ich das in FHEM Weboberfläche einbinden?
etc.
Gruß Bracew
Klaro, funktioniert das, würde ich sonst nicht schreiben. 8)
Und ich bin ja gar nicht so. :)
Hast Du schon eine 99_myUtils.pm?
Wenn nein, dann schau mal hier:
http://www.fhemwiki.de/wiki/99_myUtils_anlegen
Da baust Du dann diese Funktion ein:
sub CheckMails($$$$) {
my ($host, $user, $passwd, $dummy) = @_;
use Net::IMAP::Simple::SSL;
use Email::Simple;
Log3 "Mails", 3, "Login to $host";
my $imap = Net::IMAP::Simple::SSL->new($host) ||
die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
if(!$imap->login($user,$passwd)){
Log3 "Mailcheck", 3, "Login failed: " . $imap->errstr;
exit(64);
}
my ($unseen, $recent, $num_messages) = $imap->status('INBOX');
fhem("set $dummy $unseen Messages for $user");
$imap->close();
$imap->logout();
}
Dann im FHEM Web ein paar Dummys erstellen, die letzendlich den Text anzeigen sollen.
Also ein paar mal das hier:
define du_Vater dummy
Dann noch ein passendes at dazu, welches periodisch abfragt:
define at_Vater at +*00:00:30 {CheckMails('imap.provider.de','user','passwd', 'du_Vater')}
Dann sollte das IMAP Konto vom Vater alle 30 Sekunden angefragt werden und im Dummy du_Vater der Text erscheinen.
That's it.
An Modulen musste ich bei mir diese hier installieren.
Hast Du ja bereits bei dem Modul Emailcheck gemacht. Müsstest also wissen, wie das auf dem PI geht.
- libemail-simple-per
- libnet-imap-simple-perl
- libnet-imap-simple-ssl-perl
Hallo maxritti,
Super! funktioniert gut! Danke!
Ich habe mir schon vor längerem eine 99_BracewUtils.pm gebastelt. Dort habe ich Deine Funktion eingefügt.
Zu Deiner Frage "An Modulen musste ich bei mir diese hier installieren....Müsstest also wissen, wie das auf dem PI geht." habe ich mit:
sudo apt-get install libemail-simple-perl libnet-imap-simple-perl libnet-imap-simple-ssl-perl
gemacht (hier zur Vollständigkeit für alle anderen, welche sich wie ich als "Dummy" fühlen).
Ich habe dann zunächst zum Test nur für Vater angelegt, wie Du geschrieben hast.
In Unsorted bekomme ich nun angezeigt:
Zitatdummy
du_Vater
1 Messages for MeineEmailAdresse@MeinProvider.de
oder
Zitatdummy
du_Vater
0 Messages for MeineEmailAdresse@MeinProvider.de
nachdem Thunderbird die Mails abgeholt hat.
Wie ich das in meine Struktur einsortieren kann, weis ich,
aber wie kann ich es "Schön" anzeigen, also zum Beispiel wie anfangs geschrieben "Vater hat 3 ungelesenene Nachrichten bei provider.de"?
Leider bekomme ich nun, fürchte ich, das Logfile mit Meldungen wie diese alle 30 Sekunden geflutet:
Zitat2015.09.12 19:05:03 3: Login to imap.MeinProvider.de
2015.09.12 19:05:04 3: at_Vater: 1
Wie kann ich das abschalten?
Gruß Bracew
Die Zeile aus der Funktion rausschmeissen
Log3 "Mails", 3, "Login to $host";
und diese hier nach Deinen Wünschen anpassen.
fhem("set $dummy $unseen Messages for $user");
Wieso das at die 1 zurückgibt, weiss ich ehrlich gesagt gerade auch nicht.
Schreib noch hinter die Zeile
$imap->logout();
ein
return 0;
dann gibt verschwindet auch das "at: 1" aus dem Log.
Hallo maxritti,
vielen Dank. Nun ist (fast) alles OK. Funktioniert mit externen Mailprovidern sehr gut.
Nur mit dem Mailserver auf dem RasPi (auf dem auch FHEM läuft) bekomme ich entweder Fehler wie:
Zitat2015.09.12 21:59:16 3: at_Vater_2: Unable to connect to IMAP: connection failed
oder FHEM stürzt komplett ab.
der cfg-Code welchen ich benutze wäre (Mit den Parametern aus Thunderbird, wo sie funktionieren):
define du_Vater_2 dummy
attr du_Vater_2 room E-Mails
attr du_Vater_2 Ungelesene_Mails_Bracew
define at_Vater_2 at +*00:00:30 {CheckMails('192.168.0.20:143','MeinLogin','MeinPassword', 'du_Vater_2')}
attr at_Vater_2 at room hidden
Hast Du noch ein Lösung dafür?
Gruß Bracew
Wieso gibst Du den Port 143 mit an?
Der lokale IMAP kann wohl kein IMAP via SSL?
Ich vermute mal, dass dies das Problem ist.
Veruch mal dies:
In der Funktion noch etwas ändern.
Und Du müsstest dann beim Aufruf angeben, ob SSL oder kein SSL genuzt werden soll.
Ungefähr so:
Aber ich habe das nicht getestet.
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";
if ($ssl eq "ssl") {
my $imap = Net::IMAP::Simple::SSL->new($host) ||
die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
} else {
my $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 failed: " . $imap->errstr;
exit(64);
}
my ($unseen, $recent, $num_messages) = $imap->status('INBOX');
fhem("set $dummy $unseen Messages for $user");
$imap->close();
$imap->logout();
}
Die at's wären dann so mit SSL:
CheckMails('imap.provider.de','MeinLogin','MeinPassword', 'du_Vater_2', 'ssl')
oder ohne SSL:
CheckMails('192.168.0.20:143','MeinLogin','MeinPassword', 'du_Vater_2', '')
Hallo maxritti,
werde ich morgen versuchen.
Aber wieso kommst Du drauf, dass Port 143 IMAP via SSL ist (Auszug aus Wikipedia):
Zitat
STARTTLS
Nach dem Aufbau einer unverschlüsselten Datenverbindung mit dem Server (Port 143) kann mittels des Kommandos STARTTLS eine verschlüsselte Sitzung initiiert werden, so dass alle nachfolgend versendeten Daten über diese Verbindung nur noch verschlüsselt übertragen werden. Diese Protokollerweiterung ist in der neuesten Protokollspezifikation bereits fest vorgesehen.
IMAPS
Bei der Verwendung von IMAPS wird die Verbindung zum Server bereits während des Verbindungsaufbaus durch SSL verschlüsselt. Damit der Server das erkennt, muss ein anderer Port verwendet werden. Dafür wurde der Port 993 reserviert.
Demnach unverschlüsselt =143
SSL verschlüsselt = 993
Gruß Bracew
Zitat von: Bracew am 12 September 2015, 22:46:06
Aber wieso kommst Du drauf, dass Port 143 IMAP via SSL ist (Auszug aus Wikipedia):
Demnach unverschlüsselt =143
SSL verschlüsselt = 993
Wo habe ich das denn geschrieben?
Genau das Gegenteil habe ich ja beschrieben.
Die erste Version meiner Funktion macht SSL:
use Net::IMAP::Simple::
SSL;
Und mit Deiner Angabe durch Port 143 erzwingst Du ein "normales" IMAP, was halt mit dem SSL Modul für IMAP nicht klappt. Meiner Meinung nach.
Damit dürfte die Funktion gegen die Wand laufen und daher muss da halt noch eine Abfrage rein, ob SSL oder nicht genutzt werden soll.
Das wäre dann die Version 2 der Funktion.
Aber probiere morgen ruhig mal aus und berichte... :D
Moin Bracew,
ich habe es gerade auch mal mit einem lokalen IMAP Server ohne ssl probiert.
Hatte da noch einen Bug in der Funktion.
Aber dies hier klappt bei mir:
sub CheckMails($$$$$) {
my ($host, $user, $passwd, $dummy, $ssl) = @_;
use Net::IMAP::Simple::SSL;
use Net::IMAP::Simple;
use Email::Simple;
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 failed: " . $imap->errstr;
exit(64);
}
my ($unseen, $recent, $num_messages) = $imap->status('INBOX');
fhem("set $dummy $unseen Messages for $user");
$imap->close();
$imap->logout();
return 0;
}
/EDIT:
So sieht jetzt meine DEF für ein at aus, welches 2 Postfächer abfragt.
Einmal mit ssl und einmal ohne.
+*00:00:30 {CheckMails('imap.provider.de','user','passwd', 'du_gmx', 'ssl'), CheckMails('imap.local.de','localuser','password', 'du_localimap', '')}
Hallo maxritti,
zunächstmal Entschuldigung, dass ich das mit dem Port 143 und dem SSL falsch verstanden habe. :-[
Deinen Code von heute morgen habe ich versucht und klappt tadellos! Bestens!
Das mit den 2 Postfächern in einer Zeile habe ich noch nicht verstanden. Bekomme ich dann angezeigt die ungelesenen Mails in Addition beider Konten?
Ich hab noch versucht:
fhem("hat <b> $unseen </b> ungelesenene Nachrichten");
um die Zahl in Fett darzustellen --> Funktioniert!
um nur "hat
2 ungelesene Nachrichten" darzustellen, also ohne $dummy und $user --> funktioniert nicht, kommt trotzdem:
ZitatUngelesene_Mails_Vater
Vater_1 hat 0 ungelesenene Nachrichten bei MeinKonto1@MeinProviderA.de
Vater_2 hat 2 ungelesenene Nachrichten bei MeinKonto2@MeinProviderB.com
Noch ein Tipp für einen Spätaufsteher?
Gruß Bracew
Es würde helfen, wenn Du Deinen Code mal posten würdest, der die von Dir genannten Ergebnis liefert.
So ist das ein wenig fischen im Fischteich :)
Bzgl. 2 Postfächer in einer Zeile:
Jedes CheckMails(..) fragt halt ein Postfach ab und schreibt es in den angegeben Dummy.
Um bei einem at zwei Postfächer abzufragen, schreibt mal halt 2 x den Funktionsaufruf mit neuen Daten und am besten mit einem separaten Dummy auf.
fhem("hat <b> $unseen </b> ungelesenene Nachrichten");
Hast Du wo versucht? Das ist so irgendwie aus dem Zusammenhang gerissen finde ich.
Um die Anzahl fett zu schreiben, müsstest Du diese Zeile in der Funktion so anpassen:
fhem("set $dummy <b>$unseen</b> Messages for $user");
Hallo maxritti,
also, kein Problem, die Datei fhem.cfg sieht zur Zeit auszugsweise in diesem Bereich so aus:
# #################################################################
# Anzahl neuer E-Mails anzeigen
# #################################################################
#
define Vater_1 dummy
attr Vater_1 room E-Mails
attr Vater_1 group Ungelesene_Mails_Vater
define CheckMailsVater_1 at +*00:01:05 {CheckMails('imap.ExternerProvider.de','ExtLoginName','ExtLoginPassword', 'Vater_1', 'ssl')}
attr CheckMailsVater_1 room hidden
define Vater_3 dummy
attr Vater_3 room E-Mails
attr Vater_3 group Ungelesene_Mails_Vater
define CheckMailsVater_3 at +*00:00:30 {CheckMails('localhost:143','LocalLoginName','LocalLoginPassword', 'Vater_3', '')}
attr CheckMailsVater_3 room hidden
define Tochter_1 dummy
.
.
.
Die Datei 99_BracewUtils.pm sieht auszugsweise so aus:
##############################################
# 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 failed: " . $imap->errstr;
exit(64);
}
my ($unseen, $recent, $num_messages) = $imap->status('INBOX');
# fhem("set $dummy hat <b> $unseen </b> ungelesenene Nachrichten bei $user");
fhem("hat <b> $unseen </b> ungelesenene Nachrichten");
$imap->close();
$imap->logout();
return 0;
}
Führt zur Ausgabe:
Zitat
Ungelesene_Mails_Tochter
Tochter_1 hat 2 ungelesenene Nachrichten bei TochterAnmeldeName@TochterProvider.de
Ungelesene_Mails_Vater
Vater_1 hat 0 ungelesenene Nachrichten bei V1@V1-Provider.de
Vater_2 hat 0 ungelesenene Nachrichten bei Vater-2-Name@Vater-2-Provider.de
Vater_3 hat 0 ungelesenene Nachrichten bei Vater
Ich würde gerne aufgrund der Gruppierung Tochter_1, Vater_1, Vater_2 und Vater_3 entfernen, da dies bereits im Titel der Gruppe steht. Das ganze auch noch linksbündig, so dass die Anzahl der Mails untereinander erscheint. Und beim RasPi-internen Konto auch noch "...bei Vater@RasPi.Intern" statt "...bei Vater" hinbekommen.
Die Gruppierung wird Alphabetisch vorgenommen, also Tochter (T) vor Vater (V). Geht das auch nach zum Beispiel "Familien-Hierachie-Status" (Vater, Mutter, Sohn, Tochter,...)? ;)
Bitte mich nicht als Chauvi brandmarken und schlagen, ist ja nur eine Beispielsortierung.
Alles nur noch "MakeUp", funktionieren tut es sonst Klasse!
Gruß Bracew
Das Posting hier sollte dann damit ja erst mal gelöst sein. :D
[Off-Topic]
Was die Formatierungen angeht, solltest Du Dich mal in die readingsGroup einlesen.
http://www.fhemwiki.de/wiki/ReadingsGroup
Learning bei doing :)
[/Off-Topic]
Danke für den Tipp, aber wenn ich den Codeblock zum Beispiel für Linksbündig, Fett und Großschrift erweitere:
define Vater_3 dummy
attr Vater_3 room E-Mails
attr Vater_3 group Ungelesene_Mails_Vater
define CheckMailsVater_3 at +*00:00:30 {CheckMails('localhost:143','LocalLoginName','LocalLoginPassword', 'Vater_3', '')}
attr CheckMailsVater_3 room hidden
attr Ungelesene_Mails_Vater valueStyle style="text-align:left"
attr Ungelesene_Mails_Vater nameStyle style="font-weight:bold"
attr Ungelesene_Mails_Vater style style="font-size:20px"
passiert ... nichts! Kein Unterschied zu vorher.
Hallo Puschel74,
ich habe ReadingsGroup angeschaut! Wenn ich das Wiki verstehen würde, würde ich es auch gleich richtig anwenden.
Ich habe auch Attribute per FHEM-Oberfläche versucht! Auch damit habe ich es nicht hinbekommen.
Wenn ich mit über 30 Jahre EDV-Erfahrung es nicht hinbekomme mag ich zu blöd sein, oder es gibt andere Gründe....
Ich möchte auch nicht "irgendwas erfinden", sondern mein Problem funktionell in Kürze lösen.
Ich frage hier in der Gruppe "Anfängerfragen" nicht weil ich alles weiß, sondern weil ich es nicht weiß und auch nicht verstehe.
Darum entschuldige, wenn ich auf eine Antwort zur Lösung hoffe.
Gruß Bracew
Das ganze Wiki brauchst Du hier auch nicht verstehen.
Es reicht erst mal der Punkt zu ReadingsGroup ;D
Was hast Du denn bei ReadingsGroup nicht verstanden?
Bzw was probiert und was klappt dann und was nicht?
Meine Readingsgroup, wo die Definition mal gerade aus 46 Zeichen besteht, liefert das, was im Bild zu sehen ist.
Zwar keine fett Formatierung mehr bei der Zahl, aber das geht bestimmt auch.
Nur wenn ich den Code hier posten würde, bringt Dir das auch nicht sooooo viel für die Zukunft.
Zwar für den Moment, aber ob es das ist, was Du möchtest?
Zitat von: Bracew am 13 September 2015, 14:46:59
Hallo Puschel74,
Weisst du was.
Ich
lösch habe meinen Beitrag wieder gelöscht da du offenbar nichtmal die einfachsten Dinge probieren willst.
... aber lassen wir das.
Dir wird schon geholfen und wieder und wieder und wieder.
Zitat von: Puschel74 am 13 September 2015, 15:05:36
Dir wird schon geholfen und wieder und wieder und wieder.
Das scheint für mich gedacht zu sein in dem Falle hier, daher mal mein Off-Topic Kommentar dazu:
Du hast Recht. Ich helfe hier (noch). Auch wenn manchmal Eigeninitiative nicht so wirklich zu erkennen ist.
Aber ich gebe die Hoffnung nicht auf. ;)
Kann mir auch denken, was nun für ein Spruch von Dir kommen würde.
Ich sage nur "Grund der Abgabe des Moderator".
Wir dürften uns einig sein, dass FHEM an der ein und anderen Stelle ein wenig, sagen wir mal gewöhnungsbedürftig ist.
Und jeder hat halt mal angefangen.
Denk Du doch mal ca. 8400 Beiträge von Dir zurück....
Eventuell hätte ich mir das Posting aber auch besser gespart :P
ZitatDas scheint für mich gedacht zu sein
Nein in keinster Weise.
ZitatDenk Du doch mal ca. 8400 Beiträge von Dir zurück....
Als ich angefangen hab gab es weder Wiki noch Forum.
In der Googlegroup was das suchen der Beiträge kein Zuckerschlecken :P
Die commandref ist mittlerweile teilweise auf deutsch - und wird auch gekonnt ignoriert.
Im Wiki geben sich die meisten wirklich viel Mühe und man müsste sich selbst nur die Mühe machen zu lesen und zu probieren.
ZitatEventuell hätte ich mir das Posting aber auch besser gespart
Musst du wissen aber ich bin nun raus ;)
Edith: Und von jedem Anfänger kommen immer wieder die selben Sprüche.
Hallo maxritti,
den Anspruch "Alles" im Wiki zu verstehen, versuche ich erst gar nicht, denn allein ReadingsGroup macht auf meinem Bildschirm schon mal knapp 40 Seiten und ich versuche hier ein Hobby neben sonstigen Leben und Familie unterzubringen.
Leider verstehen das manche Profis in diesem Forum nicht. Nicht jeder versteht gleich alles und ist in der Lage alles gleich richtig umzusetzen. Nicht Jeder hat schon die Erfahrung wie die Profis und möchte doch kleine Erfolgserlebnisse und einen Schritt weiterkommen, auch als hin-und-wieder-Gelegeheitstäter.
Was für den Einen "...einfachsten Dinge..." sind, sind für andere große Berge als Hürden.
Den Einstieg in ReadingsGroup verstehe ich nicht. Ich sehe jede Menge Attribute, aber wie ich diese auf mein konkretens Problemchen ansetze verstehe ich nicht. Ich denke, wenn ich erstmal einen Ansatz richtig hinbekomme, kann ich dies auch, falls ich das will, mit allen anderen Attibuten hinbekommen. Aber der Einstieg!
Ich sehe auf meinen Bildschirm:
Zitat
Ungelesene_Mails_Tochter
Tochter_1 hat 2 ungelesenene Nachrichten bei TochterAnmeldeName@TochterProvider.de
Ungelesene_Mails_Vater
Vater_1 hat 0 ungelesenene Nachrichten bei V1@V1-Provider.de
Vater_2 hat 0 ungelesenene Nachrichten bei Vater-2-Name@Vater-2-Provider.de
Vater_3 hat 0 ungelesenene Nachrichten bei Vater
Wie bekomme ich nun die Attribute zu den Gruppe, welche ich auf dem Bildschirm sehe?
Es soll nachher ähnlich wie Dein Bild sein.
Und ich hoffe, dass mir (und auch anderen) immer wieder und wieder und wieder geholfen wird, sonst würde ich ja nicht fragen.
Und wenn ich dann Groß und Stark bin, werde ich vielleicht auch einer, der sich traut anderen beim Aufstehen zu helfen.
Danke für jede konstruktive Hilfe
Bracew
Vergiss das mit dem Attribut "Group" bei Deinen Dummys.
Denn die einzurichtenden readingsGroups machen dann, wie der Name schon sagt aus den Readings mehrerer Devices Gruppen.
Probier doch einfach mal eine ReadingsGroup für deine Dummys zu erstellen, wo Du die Texte für die Dummys der Postfächer für den Vater angezeigt bekommst.
Die CommandRef für ReadingsGroup ist da auch mal ein guter Ansatz.
Als Devices nimmst Du die Dummys, welche mit den Werten befüllt sind.
Zitat von: Puschel74 am 13 September 2015, 15:19:25
Nein in keinster Weise.
Als ich angefangen hab gab es weder Wiki noch Forum.
In der Googlegroup was das suchen der Beiträge kein Zuckerschlecken
Das war auch nicht speziell auf FHEM gemünzt.
Die Beiträge welche ich da bei Dir gefunden habe, befassten sich u.a. mit HTML Formatierungen.
Da hätte man auch mit Tante Google & Co entsprechende Infos finden können.
Aber Du bist ja raus :D
Hallo maxritti,
Klasse!
Deine Hinweise
"Vergiss das mit dem Attribut "Group"..." und
"Als Devices nimmst Du die Dummys, welche mit den Werten befüllt sind"
waren der richtige Einstieg.
Nun siehts gut aus.
Zitat
Tochter
hat 2 ungelesenene Nachrichten bei TochterAnmeldeName@TochterProvider.de
Vater
hat 0 ungelesenene Nachrichten bei V1@V1-Provider.de
hat 1 ungelesenene Nachrichten bei Vater-2-Name@Vater-2-Provider.de
hat 0 ungelesenene Nachrichten bei Vater
Das Fett für die Nummer in 99_BracewUtils.pm musste ich wieder raus nehmen, da ansonsten beim Aufrufen der Seite immer
Zitat
hat <b> 1 </b> ungelesenene Nachrichten bei ....
angezeigt wurde. Erst nach einer Aktualisierung (also nach ca. 30 Sekunden) wurde aus <b> 1 </b> wieder
1Nochmals vielen Dank.
Gruß Bracew
P.S. eine Frage habe ich doch noch.
Wie bekommen ich die Reihenfolge der ReadingsGroups in die "Familien-Hierachie"?
Also nicht innerhalb des ReadingsGroups, sondern Vater über Tochter.
Schau mal das Attribut sortBy der ReadingsGroup.
Damit sollte das klappen.
Hallo maxritti,
funktioniert! Danke!
Ich glaube, jetzt haben wir alles, oder?
Was gelernt, alles dokumentiert, alles OK!
Jetzt kann ich das "Thema schliessen"!
Einen schönen Restsonntag noch
wünscht Bracew
Zitat von: Bracew am 13 September 2015, 17:24:47
Hallo maxritti,
funktioniert! Danke!
Kein Thema.
Zitat von: Bracew am 13 September 2015, 17:24:47
Ich glaube, jetzt haben wir alles, oder?
Nicht ganz.
Puschel74 würde sagen: "Bitte noch im 1. Posting das Thema mit einem [Gelöst] markieren, damit man weiß, dass die Lösung hier zu finden ist."
Zitat von: Bracew am 13 September 2015, 17:24:47
Was gelernt, alles dokumentiert, alles OK!
Jetzt kann ich das "Thema schliessen"!
Einen schönen Restsonntag noch
wünscht Bracew
Danke. Dir auch.
Eventuell liefert die Methode status warum auch immer bei Kabel BW nur die Anzahl der Messages aus der Inbox zurück?
http://search.cpan.org/~jettero/Net-IMAP-Simple-1.2206/Simple.pod
Probier doch mal direkt via Perl das Skript hier aufzurufen.
Das sollte dann alle Emails aus der Inbox anzeigen. Wenn die bereits gelesen wurden mit einem "*" davor, ansonsten " " davor.
Wann das klappt, müsste Du/wir wohl die Funktion mit der For-Schleife versehen und die unread-Messages zählen.
Müsste dann ja allgemein gültig funktionieren.
use Net::IMAP::Simple;
use Email::Simple;
my $imap = Net::IMAP::Simple->new('imap.gmx.net') ||
die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";
if(!$imap->login('user','passwd')){
print STDERR "Login failed: " . $imap->errstr . "\n";
exit(64);
}
my $nm = $imap->select('INBOX');
for(my $i = 1; $i <= $nm; $i++){
if($imap->seen($i)){
print "*";
} else {
print " ";
}
my $es = Email::Simple->new(join '', @{ $imap->top($i) } );
printf("[%03d] %s\n", $i, $es->header('Subject'))
}
$imap->close();
$imap->logout();
Zitat von: Puschel74 am 13 September 2015, 20:53:21
Das war fies :P
my $imap = Net::IMAP::Simple->new('imap.gmx.net') ||
Wir hatten es von Kabel-BW und nicht von GMX.
Aber ok, wer lesen kann ist klar im Vorteil - diesmal hab ich nicht gelesen.
Werd ich machen, nachdem ich den Code berichtigt und mich schlau gelesen habe.
Copy & Paste kann ja jeder.
Machen Anfänger ja besonders gerne :D
Zitat von: Puschel74 am 13 September 2015, 20:53:21
Ich? (siehe nächste Antwort).Eigentlich sollten Codes immer allgemein gültig funktionieren und ggf. per Attribut angepasst werden können.
Dafür bist duDeveloper und nicht ich :P
Hast Du richtig erkannt.
Sollten.
Allgemeingültig betrachtet wird Dein Windoof sicherlich immer funktionieren.
Zitat von: Puschel74 am 13 September 2015, 20:53:21
Ich bin nur der "Tester" der hier jetzt aus Spaß an der Freude mitmacht.
Das ich neue Mails habe weiß ich - das meldet mir Windoof, dafür brauch ich FHEM nicht.
Dennoch werde ich mich einlesen und dich versuchen beim Einbau einer "Allgemeingültigen Lösung" zu unterstützen.
Und das was Du ja für
alle freiwilligen Helfer hier wusstest gilt auch für mich:
Ich habe auch Familie, Beruf und FHEM als Hobby.
Bislang dachte ich, dass Hero Members mit mehr als 8K Beiträgen etwas anders mit solchen Dingen umgehen.
Gut. So kann man sich täuschen.
Dann noch ein Zitat von Dir, was nun für mich bei dem Posting hier für mich gilt.
"Ich bin dann hier raus." 8)
Wie oft magst Du Deine Beiträge denn noch bearbeiten, löschen oder sonst was machen?
BTW:
Du hast eine PM.
Zitat von: Puschel74 am 13 September 2015, 21:48:44
Solange bis es mir gefällt und passt.
Hast du ein Problem damit?
Wir leben immerhin noch in einem freien Land - hoffe ich zumindest.
Der Rest:
Zur Kenntniss genommen und die PM gelöscht.
Soviel zum Thema "Kritikfähig"
Hallo,
geänderter Code in folgendem Beitrag neu eingestellt:
http://forum.fhem.de/index.php/topic,41559.msg341938.html#msg341938