NEWS
Test Adapter ioBroker.imap latest/stable
-
Aktuelle Test Version 0.3.0 Veröffentlichungsdatum 26.02.2023 Github Link https://github.com/Lucky-ESA/ioBroker.imap Status Nun als Stable 0.1.2 verfügbar Hallo zusammen,
habe mal einen IMAP Adapter gschrieben. Es können beliebig viele IMAP Verbindungen anlegen und überwacht werden.
Updates oder neue Mails werden automatisch erkannt und die Infos in den Datenpunkten geschrieben.Hier nun die Beschreibung:
Einstellung Instanz- Aktiv: IMAP Verbindung aktivieren
- Host: Bsp:. imap.gmail.com
- Posteingang: Standard INBOX
- Port: Standard ist 993
- Benutzername: Dein Loginname
- Passwort: Dein Passwort
- max.: Maximale Anzahl an Mails die als Datenpunkte angelegt werden (max. 99)
- max. HTML: Maximale Anzahl an Mails die als HTML ausgegeben werden (max. 99)
- TLS: TLS Verschlüsselung. Sollte immer true haben
- Flaggen: Hier sind die Flags
- Symbol auswählen: Hier erst über "Symbole Erstellen" ein ICON hochladen. Wird als Folder ICON verwendet
- Token: Bsp.: Für Outlook. Ob das funktioniert kann ich nicht sagen
- tls-Option: Bsp.: {"rejectUnauthorized": false} oder leer lassen {}
- Auto-TLS: Hier lesen
Datenpunkte
- imap.0.xx.email: Hier werden die Mails angelegt wie in der Instanz eigestellt wurde. Habt ihr nur 7 Mails und
max. 10 eingetragen, bleiben die letzten 3 leer. Habt ihr 10 Mails und löscht 3, werden die letzten 3 Mails nicht geleert. - imap.0.xx.remote.html: Hier könnt ihr euren CSS-Style anpassen
- imap.0.xx.remote.criteria: Neue Suchkreterium. Bleibt auch bei einem Neustart aktiv (auch als Blockly möglich)
- imap.0.xx.remote.reload_emails: Änderungen in HTML werden erst bei einer Aktualisierung übernommen. Hiermit kannst du den Code sofort übernehmen.
- imap.0.xx.remote.search_start: show_mails und criteria anwenden
- imap.0.xx.remote.show_mails: Die Anzahl in der Instanz Konfig ändern (auch als Blockly möglich)
- imap.0.xx.html: HTML Code für VIS
- imap.0.xx.last_activity: Letzte Aktivität (Aktualisierung/Neue Post)
- imap.0.xx.last_activity_json: Bsp.: {"flags": ["\Seen"]} für als gelesen markiert
oder {"flags": []} für neue Post. - imap.0.xx.last_activity_timestamp: Letzte Aktivität als Timestamp
- imap.0.xx.online: Mit IMAP verbunden = true
- imap.0.xx.quality: Qualität der Datenpunkte (automatische Prüfung alle 24h)
- imap.0.xx.total: Anzahl aller Mails in deiner Inbox.
- imap.0.xx.remote.change_folder: Hier könnt ihr eure Folder auswählen. Es werden dann alle Daten mit dem Inhalt dieses Folder gefühlt (Mail01, json_table etc). Allerdings wird dann auch nur diese Auswahl überwacht.
- imap.0.xx.active_inbox: Zeigt euch welcher Folder aktiv ist und überwacht wird
- imap.0.xx.total_unread: Anzahl ungelesene Mails im aktiven Folder
- imap.0.xx.total: Anzahl aller Mails im aktiven Folder
Blocklys
Der kleine Blockly steuert die o. g. Datenpunkte um die Suche zu ändern.
Mit dem großen können eigene Anfragen erstellt werden und ihr erhaltet einen Array mit JSON Elemente. ACHTUNG! Es kommen echt viele Daten daher nicht immer mit "debug output" arbeiten. Was möglich ist könnt ihr hier nachlesen.
Habe diesen Adapter für mich und meine Berdürfnisse geschrieben. Nun könnt ihr gerne Wünsche aussern die ich hinzufügen soll.outlook.office365.com 2Fach-Authentifizierung
Bekannte Issues
- Habe noch keine Idee die Mail Total zu aktualisieren - done
- Es wird auch ein Update durchgeführt, wenn Mails ausserhalb der max. liegen. Ihr habt max. 20 eingetragen und die Mail 22 wird als gelesen markiert, dann wird trotzdem ein Update gefahren. - done
Bitte den RAM Verbrauch kontrollieren. Bei 4 IMAP`s komme ich schon auf 120MB.
Viel Spaß beim testen und ich hoffe auch gute Ideen die man auch umsetzen kann

Gruß//Lucky
@lucky_esa sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
Ich verwende das NPM Modul node-imap und es funktioniert noch. Habe allerdings auch ein aktuelles imapflow gefunden was ich parrallel teste.
Muss ich das node-imap in JS als zusätzliches Modul eintragen?
-
@lucky_esa sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
Ich verwende das NPM Modul node-imap und es funktioniert noch. Habe allerdings auch ein aktuelles imapflow gefunden was ich parrallel teste.
Muss ich das node-imap in JS als zusätzliches Modul eintragen?
-
@lucky_esa sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
@sigi234 Gmail hat doch wie immer eine Extrawurst. Du musst nach dieser Anleitung dein PW generieren

Funktioniert!
-
-
Wenn möglich bitte die E-Mail Adresse automatisch in
remote.htmlsetzen. -
zurzeit keine doppelten Einträge in html

-
Im HTML-Code sind 2 Dinge die für jarvis nicht passen .
class "container"

Style -> Tabelle wird falsch angezeigt
div.container { align-items: center; justify-content: center }
Nehme ich die Klasse raus passt es

- Einträge in remote.html werden nicht umgesetzt

<th style="text-align:center; width:auto">  ID  </th> <th style="text-align:center; width:auto">  Von  </th> <th style="text-align:center; width:auto">  Betreff  </th> <th style="text-align:center; width:auto">  Datum  </th> <th style="text-align:center; width:auto">  Inhalt  </th> <th style="text-align:center; width:auto">  Sequenznummer  </th> <th style="text-align:center; width:auto">  Flaggen  </th>- Bitte auch ein json-DP mit den E-Maildaten
@mcu sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
Bitte auch ein json-DP mit den E-Maildaten
Ja, und bitte einen DP Json Table
-
-
Aktuelle Test Version 0.3.0 Veröffentlichungsdatum 26.02.2023 Github Link https://github.com/Lucky-ESA/ioBroker.imap Status Nun als Stable 0.1.2 verfügbar Hallo zusammen,
habe mal einen IMAP Adapter gschrieben. Es können beliebig viele IMAP Verbindungen anlegen und überwacht werden.
Updates oder neue Mails werden automatisch erkannt und die Infos in den Datenpunkten geschrieben.Hier nun die Beschreibung:
Einstellung Instanz- Aktiv: IMAP Verbindung aktivieren
- Host: Bsp:. imap.gmail.com
- Posteingang: Standard INBOX
- Port: Standard ist 993
- Benutzername: Dein Loginname
- Passwort: Dein Passwort
- max.: Maximale Anzahl an Mails die als Datenpunkte angelegt werden (max. 99)
- max. HTML: Maximale Anzahl an Mails die als HTML ausgegeben werden (max. 99)
- TLS: TLS Verschlüsselung. Sollte immer true haben
- Flaggen: Hier sind die Flags
- Symbol auswählen: Hier erst über "Symbole Erstellen" ein ICON hochladen. Wird als Folder ICON verwendet
- Token: Bsp.: Für Outlook. Ob das funktioniert kann ich nicht sagen
- tls-Option: Bsp.: {"rejectUnauthorized": false} oder leer lassen {}
- Auto-TLS: Hier lesen
Datenpunkte
- imap.0.xx.email: Hier werden die Mails angelegt wie in der Instanz eigestellt wurde. Habt ihr nur 7 Mails und
max. 10 eingetragen, bleiben die letzten 3 leer. Habt ihr 10 Mails und löscht 3, werden die letzten 3 Mails nicht geleert. - imap.0.xx.remote.html: Hier könnt ihr euren CSS-Style anpassen
- imap.0.xx.remote.criteria: Neue Suchkreterium. Bleibt auch bei einem Neustart aktiv (auch als Blockly möglich)
- imap.0.xx.remote.reload_emails: Änderungen in HTML werden erst bei einer Aktualisierung übernommen. Hiermit kannst du den Code sofort übernehmen.
- imap.0.xx.remote.search_start: show_mails und criteria anwenden
- imap.0.xx.remote.show_mails: Die Anzahl in der Instanz Konfig ändern (auch als Blockly möglich)
- imap.0.xx.html: HTML Code für VIS
- imap.0.xx.last_activity: Letzte Aktivität (Aktualisierung/Neue Post)
- imap.0.xx.last_activity_json: Bsp.: {"flags": ["\Seen"]} für als gelesen markiert
oder {"flags": []} für neue Post. - imap.0.xx.last_activity_timestamp: Letzte Aktivität als Timestamp
- imap.0.xx.online: Mit IMAP verbunden = true
- imap.0.xx.quality: Qualität der Datenpunkte (automatische Prüfung alle 24h)
- imap.0.xx.total: Anzahl aller Mails in deiner Inbox.
- imap.0.xx.remote.change_folder: Hier könnt ihr eure Folder auswählen. Es werden dann alle Daten mit dem Inhalt dieses Folder gefühlt (Mail01, json_table etc). Allerdings wird dann auch nur diese Auswahl überwacht.
- imap.0.xx.active_inbox: Zeigt euch welcher Folder aktiv ist und überwacht wird
- imap.0.xx.total_unread: Anzahl ungelesene Mails im aktiven Folder
- imap.0.xx.total: Anzahl aller Mails im aktiven Folder
Blocklys
Der kleine Blockly steuert die o. g. Datenpunkte um die Suche zu ändern.
Mit dem großen können eigene Anfragen erstellt werden und ihr erhaltet einen Array mit JSON Elemente. ACHTUNG! Es kommen echt viele Daten daher nicht immer mit "debug output" arbeiten. Was möglich ist könnt ihr hier nachlesen.
Habe diesen Adapter für mich und meine Berdürfnisse geschrieben. Nun könnt ihr gerne Wünsche aussern die ich hinzufügen soll.outlook.office365.com 2Fach-Authentifizierung
Bekannte Issues
- Habe noch keine Idee die Mail Total zu aktualisieren - done
- Es wird auch ein Update durchgeführt, wenn Mails ausserhalb der max. liegen. Ihr habt max. 20 eingetragen und die Mail 22 wird als gelesen markiert, dann wird trotzdem ein Update gefahren. - done
Bitte den RAM Verbrauch kontrollieren. Bei 4 IMAP`s komme ich schon auf 120MB.
Viel Spaß beim testen und ich hoffe auch gute Ideen die man auch umsetzen kann

Gruß//Lucky
Hallo, sehe das nicht als error:
imap.0 2023-02-27 06:41:49.532 error Fehler bei Host xxxxxxxxx_gmail_com - Mailbox is empty. -
-
Wenn möglich bitte die E-Mail Adresse automatisch in
remote.htmlsetzen. -
zurzeit keine doppelten Einträge in html

-
Im HTML-Code sind 2 Dinge die für jarvis nicht passen .
class "container"

Style -> Tabelle wird falsch angezeigt
div.container { align-items: center; justify-content: center }
Nehme ich die Klasse raus passt es

- Einträge in remote.html werden nicht umgesetzt

<th style="text-align:center; width:auto">  ID  </th> <th style="text-align:center; width:auto">  Von  </th> <th style="text-align:center; width:auto">  Betreff  </th> <th style="text-align:center; width:auto">  Datum  </th> <th style="text-align:center; width:auto">  Inhalt  </th> <th style="text-align:center; width:auto">  Sequenznummer  </th> <th style="text-align:center; width:auto">  Flaggen  </th>- Bitte auch ein json-DP mit den E-Maildaten
@mcu sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
- Wenn möglich bitte die E-Mail Adresse automatisch in
remote.htmlsetzen.
done - Im HTML-Code sind 2 Dinge die für jarvis nicht passen .
Kannst du jetzt mit html.jarvis == true deaktivieren - Einträge in remote.html werden nicht umgesetzt
done - Bitte auch ein json-DP mit den E-Maildaten
done
Gruß//Lucky
-
-
Hallo, sehe das nicht als error:
imap.0 2023-02-27 06:41:49.532 error Fehler bei Host xxxxxxxxx_gmail_com - Mailbox is empty.@sigi234 sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
Hallo, sehe das nicht als error:
imap.0 2023-02-27 06:41:49.532 error Fehler bei Host xxxxxxxxx_gmail_com - Mailbox is empty.geändert in Info
Gruß//Lucky
-
Hallo zusammen,
nun zu den JSON. Habe lange Zeit darüber nachgedacht diesen zur Verfügung zu stellen und hatte mich eigentlich dagegen entschieden. Warum? Es sind einfach zu viele Daten die in die DB von iobroker geschrieben werden.
Habe jetzt mal 2 Alternativen implementiert.
Zum testen gibt es den neuen Datenpunkt imap.0.xx.json in dem jetzt die Daten geschrieben werden. Ihr könnt euch da selber mal ein Bild von der enormen Datenmenge machen.
Daher habe ich noch ein Blockly hinzugefügt. Hier könnt ihr den JSON holen oder alle Sequenz ID`s und diese weiter verarbeiten.

Was meint ihr?Gruß//Lucky
-
Hallo zusammen,
nun zu den JSON. Habe lange Zeit darüber nachgedacht diesen zur Verfügung zu stellen und hatte mich eigentlich dagegen entschieden. Warum? Es sind einfach zu viele Daten die in die DB von iobroker geschrieben werden.
Habe jetzt mal 2 Alternativen implementiert.
Zum testen gibt es den neuen Datenpunkt imap.0.xx.json in dem jetzt die Daten geschrieben werden. Ihr könnt euch da selber mal ein Bild von der enormen Datenmenge machen.
Daher habe ich noch ein Blockly hinzugefügt. Hier könnt ihr den JSON holen oder alle Sequenz ID`s und diese weiter verarbeiten.

Was meint ihr?Gruß//Lucky
@lucky_esa Bei
html.jarvisist anscheinend nochdiv.containerim style drin. Also Problem noch vorhanden. -
@lucky_esa Bei
html.jarvisist anscheinend nochdiv.containerim style drin. Also Problem noch vorhanden.@mcu sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
@lucky_esa Bei
html.jarvisist anscheinend nochdiv.containerim style drin. Also Problem noch vorhanden.Upps, Gedankenfehler. Mach bitte mal im Datenpunkt xxx.html aus
div.containerdas hier:
.container -
@mcu sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
@lucky_esa Bei
html.jarvisist anscheinend nochdiv.containerim style drin. Also Problem noch vorhanden.Upps, Gedankenfehler. Mach bitte mal im Datenpunkt xxx.html aus
div.containerdas hier:
.container@lucky_esa Dann gibt es noch ein Problem mit der Höhe ?

JSON Aufbau müsste geändert werden, damit man es nutzen kann.
[{"Received":"","from":"", "html":"","flag":""}]Das andere ist für Super-Experten?
-
also muss dann alles raus? Verstehe das nicht wie jarvis das darstellt. Habe den HTML Code mit Validator geprüft und habe 0 Fehler...
@lucky_esa
Ich vermute das jarvis intern auchcontainerKlasse nutzt?
Vielleicht kannst du dich mit @Zefau absprechen? Discussion in github?
https://github.com/Zefau/ioBroker.jarvis/discussions -
@lucky_esa
Ich vermute das jarvis intern auchcontainerKlasse nutzt?
Vielleicht kannst du dich mit @Zefau absprechen? Discussion in github?
https://github.com/Zefau/ioBroker.jarvis/discussions -
@mcu Habe css jetzt bei true auch entfernt.
Der JSON ist eigentlich für alle und ist nichts besonderes.
Gruß//Lucky
@lucky_esa
Die JSON ist zu kompliziert für jsonTable.
Möchte doch nur wissen, wann ist eine Mail von wem gekommen mit welchem Inhalt. Mehr sollte da nicht drin sein, oder?
Sieht so aus in jarvis

-
@lucky_esa
Die JSON ist zu kompliziert für jsonTable.
Möchte doch nur wissen, wann ist eine Mail von wem gekommen mit welchem Inhalt. Mehr sollte da nicht drin sein, oder?
Sieht so aus in jarvis

-
@mcu Aber jeder möchte andere Informationen haben und diese kann man sich aus dem JSON holen. Ich werde mal ein Beispiel Blockly erstellen.
Gruß//Lucky
@lucky_esa Mach bitte ein JSON_Light oder direkt jarvisJSON so? Dann kann jeder mit dem anderen arbeiten wie er möchte?
-
@Lucky_ESA
hi, grundsätzlich funktioniert der Adapter bei mir. E.Mails habe ich genug in den DPs.
Wie oder mit welchem Widget bau ich das in die VIS ein?Ich habe die Value-List Tabelle und die Json-Tabelle probiert. Bei beiden fliegt mir der VIS-Editor auseinander.
-
@Lucky_ESA
hi, grundsätzlich funktioniert der Adapter bei mir. E.Mails habe ich genug in den DPs.
Wie oder mit welchem Widget bau ich das in die VIS ein?Ich habe die Value-List Tabelle und die Json-Tabelle probiert. Bei beiden fliegt mir der VIS-Editor auseinander.
-
@maxtor62 Funktioniert mit dem HTML Widget. Der JSON muss erst bearbeitet werden. Erstelle gerade ein Beispiel Blockly.
Gruß//Lucky
@lucky_esa sagte in Test Adapter ioBroker.imap v0.0.1 GitHub:
@maxtor62 Funktioniert mit dem HTML Widget. Der JSON muss erst bearbeitet werden. Erstelle gerade ein Beispiel Blockly.
Gruß//Lucky
Du meinst ich soll den Inhalt des DPs HTML in das VIS HTML Widget reinkopieren? Wie wird dann der html-code aktualisiert?
Außerdem fliegt mir die VIS auch so auseinander.EDIT: Ich habe den CSS style Abschnitt gelöscht. Jetzt bleibt VIS zusammen. Aber das mit dem aktualisieren ist mir ein Rätsel
