[Gelöst] Anzahl neuer E-Mails anzeigen

Begonnen von Bracew, 12 September 2015, 14:35:47

Vorheriges Thema - Nächstes Thema

Bracew

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
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

maxritti

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");

Bracew

#17
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
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

maxritti

#18
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]

Bracew

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.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Bracew

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
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

maxritti

#21
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?

Puschel74

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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

maxritti

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

Puschel74

#24
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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Bracew

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
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

maxritti

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.

maxritti

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

Bracew

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 1

Nochmals 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.
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

maxritti

Schau mal das Attribut sortBy der ReadingsGroup.
Damit sollte das klappen.