Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter ioBroker.imap latest/stable

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Test Adapter ioBroker.imap latest/stable

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      Lucky_ESA Developer Most Active @Lucky_ESA last edited by

      @lucky_esa sagte in Test Adapter ioBroker.imap v0.0.9 latest:

      @ro75 sagte in Test Adapter ioBroker.imap v0.0.9 latest:

      @lucky_esa sagte in Test Adapter ioBroker.imap v0.0.9 latest:

      Hast du sonst noch Fehler gefunden?

      Nein.

      Ro75.

      Habe das loglevel gelöscht und auf dem GIT geladen.

      Danke für die Info.

      edit: die 0.1.1 ist unterwegs und sollte morgen sichtbar sein.

      Gruß//Lucky

      R 1 Reply Last reply Reply Quote 0
      • R
        Roelli @Lucky_ESA last edited by

        @lucky_esa

        Ich versuche auch gerade den Adapter zu installieren. Er scheint eine Verbindung mit meinem Strato-Account aufzubauen, aber dann geht irgendwas schief?

        IMAP.jng

        R 1 Reply Last reply Reply Quote 0
        • R
          Roelli @Roelli last edited by

          @roelli

          Ich habe den Host nochmal neu gestartet. Nun startet der Adapter.
          Er legt aber mein system lahm:
          IMAP schmiert ab.jng

          Mache ich was falsch?

          Ro75 1 Reply Last reply Reply Quote 0
          • Ro75
            Ro75 @Roelli last edited by

            @roelli sagte in Test Adapter ioBroker.imap v0.1.1 latest/stable:

            Er legt aber mein system lahm

            Was hast du denn für ein System? Ich habe 3 Adressen eingerichtet und läuft.

            Ro75.

            R 1 Reply Last reply Reply Quote 0
            • R
              Roelli @Ro75 last edited by Roelli

              @ro75 sagte in Test Adapter ioBroker.imap v0.1.1 latest/stable:

              @roelli sagte in Test Adapter ioBroker.imap v0.1.1 latest/stable:

              Er legt aber mein system lahm

              Was hast du denn für ein System? Ich habe 3 Adressen eingerichtet und läuft.

              Ro75.

              Debian 11
              Node 18.18.0
              NPM 9.8.1
              Proxmox LXC
              16CPUs Ryzen 9 4900H, 16GB Ram (minisforum HM90)

              ioBroker zeigt in der "info" öfters mal 100% oder mehr CPU last an:
              Host.jng

              Proxmox sagt aber "alles ruhig"
              proxmox.jng

              L 1 Reply Last reply Reply Quote 0
              • L
                Lucky_ESA Developer Most Active @Roelli last edited by

                @roelli Kann mit Bildern die ich nicht öffnen kann nicht anfangen. Bitte auf debug stellen, 1 Minute laufen lassen und dann sofort wieder auf info stellen. Dann bitte mal die Loginfos hier posten.

                Gruß//Lucky

                R bahnuhr 2 Replies Last reply Reply Quote 0
                • R
                  Roelli @Lucky_ESA last edited by

                  @lucky_esa sagte in Test Adapter ioBroker.imap v0.1.1 latest/stable:

                  @roelli Kann mit Bildern die ich nicht öffnen kann nicht anfangen. Bitte auf debug stellen, 1 Minute laufen lassen und dann sofort wieder auf info stellen. Dann bitte mal die Loginfos hier posten.

                  Gruß//Lucky

                  Irgendwie läuft es jetzt stabil.
                  Neustarten und nur den Datenpunkt abfragen wieviel neue emails da sind... das funktioniert nun einwandfrei. Cool!

                  1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @Lucky_ESA last edited by

                    @lucky_esa

                    Muss jetzt auch mal fragen:
                    Ich lasse mir per Fritzbox den Text auf dem AB per Mail senden.
                    Sieht dann so aus:
                    f3ac8dd7-8a4b-4b16-adb6-cf5d0cabf234-image.png

                    Und die Mail stand dann bei den Objekten unter email_01
                    Und der Text war dann immer unter: imap.0.ppc_dbrp-mueller_de.email.email_01.text

                    Per Script habe ich diesen dann weiter bearbeitet.

                    Nun ist mir aufgefallen dass bei den mails im Adapter dann unter dem o.g. DP nichts mehr drin steht.
                    Hinter kommt dann bei text und texthtml:
                    48078454-689c-4cad-8ad5-69d0e9b526fe-image.png

                    Instanz habe ich nun auch mal auf debug umgestellt.
                    Im log ist aber nichts auffälliges.

                    Frage:
                    Warum klappt das nicht mehr?
                    Habt ihr eine Idee warum da nichts mehr unter text kommt; bzw. was man ändern muss damit es wieder klappt ?

                    mfg
                    Dieter

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      Lucky_ESA Developer Most Active @bahnuhr last edited by

                      @bahnuhr Hast du die aktuelle Version 0.1.1 installiert? Habe da was in der Instanz Config geändert um den Ramverbrauch zu reduzieren. Wenn diese Felder benötigt werden muss du in der Checkbox "ATT" einen Haken setzen.

                      Gruß//Lucky

                      bahnuhr 1 Reply Last reply Reply Quote 0
                      • bahnuhr
                        bahnuhr Forum Testing Most Active @Lucky_ESA last edited by

                        @lucky_esa sagte in Test Adapter ioBroker.imap v0.1.1 latest/stable:

                        Version 0.1.1

                        na klar

                        Bei "normalem" Text / einfache Mail kommt bei den DP auch was an.

                        ATT probier ich aus.

                        1 Reply Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active last edited by bahnuhr

                          so mit att wird in text etwas angezeigt.

                          Aber nun nächster Fehler:

                          Dieser Scriptteil funktioniert nicht mehr:

                          var i, result, j, json;
                           
                          sendTo("imap.0", "getIMAPRequest", {
                            name: "abc@xxx.de",
                             max: 20,
                             search: '["ALL"]',
                             fetch:  JSON.parse('{"fetch": true, "seqno": [23063]}'),
                             bodie: '{bodies: "", markSeen: false}',
                             parse: true,
                          }, async function (result) {
                              for (var i_index in result) {
                              i = result[i_index];
                              var j_list = getAttr(i, 'body.attachments');
                              for (var j_index in j_list) {
                                j = j_list[j_index];
                                json = JSON.stringify(getAttr(j, 'content'));
                                // Dein Anhang als Buffer
                                console.log(getAttr(json, 'data'));
                              }
                            }
                            });
                          

                          Im log kommt:

                          
                          imap.0
                          2023-11-05 07:03:35.405	warn	Finde keine Übersetzung für Missing fetch.
                          

                          hast du ne Info für mich, was ich da ändern muss ?

                          1 Reply Last reply Reply Quote 0
                          • L
                            Lucky_ESA Developer Most Active last edited by

                            @bahnuhr Wenn du eine eMail suchst dann muss das so aussehen.

                            fetch:  JSON.parse('{"fetch": true, "uid": [23063]}'),
                            

                            Wenn du die letzten 20 eMails duchsuchen willst muss es so aussehen

                            fetch:  JSON.parse('{"fetch": false, "seqno": [23063]}'),
                            

                            Danke für die Meldung. Fehlt tatsächlich in der Translate Datei. Diese Meldung kommt aber nicht wenn du die Request von oben anwendest.

                            Gruß//Lucky

                            bahnuhr 1 Reply Last reply Reply Quote 0
                            • bahnuhr
                              bahnuhr Forum Testing Most Active @Lucky_ESA last edited by

                              @lucky_esa
                              Das hab ich alles schon probiert.

                              Der fetch klappt nicht.

                              Bin aber einen Schritt weiter. Habe den result auseinander genommen.
                              Habe nun den Buffer.
                              Aber das Schreiben als Datei klappt nicht.

                              12:17:25.851	info	javascript.0 (655) script.js.Scripte.test4: [120,159,62,34,56,11,1,6,144,8,0,4,0,0,0,0,0,1,0,1,0,1,7,144,6,0,8,0,0,0,228,4,0,0,0,0,0,0,232,0,1,8,129,168,22,218,93,240,137,44,92,2,1,250,15,1,0,0,0,16,0,0,0,140,215,39,216,124,209,115,79,168,22,218,93,240,137,44,92,3,0,254,15,7,0,0,0,3,0,13,52,253,63,165,14,3,0,15,52,253,63,165,14,15,49]
                              12:17:25.854	info	javascript.0 (655) script.js.Scripte.test4: winmail.dat
                              12:17:25.858	error	javascript.0 (655) script.js.Scripte.test4: Error: Parameter "data" needs to be a Buffer but type "object" has been passed
                              
                              L 1 Reply Last reply Reply Quote 0
                              • L
                                Lucky_ESA Developer Most Active @bahnuhr last edited by Lucky_ESA

                                @bahnuhr Wie genau versuchst du zu schreiben? Weiter oben ist ja das Script fürs schreiben.

                                > var i, result, j, json;
                                > sendTo("imap.0", "getIMAPRequest", {
                                >   name: "ppc@xxx",
                                >    max: 20,
                                >    search: '["ALL"]',
                                >    fetch:  JSON.parse('{"fetch": true, "uid": [21954]}'),
                                >    bodie: '{bodies: "", markSeen: false}',
                                >    parse: true,
                                > }, async function (result) {
                                >     if (!result) {
                                >         console.log("No result found!");
                                >         return;
                                >     }
                                >     for (var i_index in result) {
                                >     i = result[i_index];
                                >     var j_list = getAttr(i, 'body.attachments');
                                >     for (var j_index in j_list) {
                                >       j = j_list[j_index];
                                >       json = JSON.stringify(getAttr(j, 'content'));
                                >       // Dein Anhang als Buffer
                                >       // console.log(getAttr(json, 'data'));
                                >       console.log(getAttr(j, 'filename'));
                                >       writeFile('vis.0', getAttr(j, 'filename'), getAttr(json, 'data'), function (error) {
                                >         if(error) {
                                >             console.log('Fehler beim Speichern von Datei ' + getAttr(json, 'filename') +'   Fehler:' + error, 'warn');
                                >         } else {
                                >            console. log('Datei ' + getAttr(j, 'filename') +' wurde gespeichert');
                                > 		   // Hier an Telegram senden
                                > 		       delFile('vis.0', getAttr(j, 'filename'), function (error) {
                                > 				if(!error) console.log('Datei ' + getAttr(j, 'filename') +' gelöscht');
                                > 		       });
                                >         }
                                >       });
                                >     }
                                >   }
                                >   });
                                > ```
                                bahnuhr 1 Reply Last reply Reply Quote 0
                                • bahnuhr
                                  bahnuhr Forum Testing Most Active @Lucky_ESA last edited by bahnuhr

                                  @lucky_esa
                                  writeFile funktioniert nicht.
                                  probiert habe ich oben bei fetch: seqno oder uid -> beides klappt nicht.

                                  
                                  
                                  var i, result, j, json;
                                  sendTo("imap.0", "getIMAPRequest", {
                                      name: "ppc@dbrp-mueller.de",
                                      max: 20,
                                      search: '["ALL", ["HEADER", "FROM", "dieter@dbrp-mueller.de"]]',
                                      fetch:  JSON.parse('{"fetch": false, "seqno": [23066]}'),
                                      bodie: '{bodies: "", markSeen: false}',
                                      parse: true,
                                  }, async function (result) {
                                      if (!result) {
                                          console.log("No result found!");
                                          return;
                                      }
                                      for (var i_index in result) {
                                          i = result[i_index];
                                          var j_list = getAttr(i, 'body.attachments');
                                          for (var j_index in j_list) {
                                              j = j_list[j_index];
                                          var test =  getAttr(i, 'attrs.uid');
                                              if (test == 23066) {
                                                  json = JSON.stringify(getAttr(j, 'content'));
                                                  // Dein Anhang als Buffer
                                                  console.log(getAttr(json, 'data'));
                                                  console.log(getAttr(j, 'filename'));
                                  
                                      writeFile('vis.0', getAttr(j, 'filename'), getAttr(json, 'data'), function (error) {
                                          if(error) {
                                              console.log('Fehler beim Speichern von Datei ' + getAttr(json, 'filename') +'   Fehler:' + error, 'warn');
                                          } else {
                                             console. log('Datei ' + getAttr(j, 'filename') +' wurde gespeichert');
                                          }
                                      });
                                      } } }
                                  });
                                  

                                  In der Mitte hab ich sowas eingebaut, damit ich nur die einzige bekomme, die ich brauche:

                                          var test =  getAttr(i, 'attrs.uid');
                                              if (test == 23066) {
                                  ...
                                  ...
                                  

                                  Und dann kommt folgends im log:

                                  15:26:42.374	error	javascript.0 (655) script.js.Scripte.test4: Error: Parameter "data" needs to be a Buffer but type "object" has been passed
                                  
                                  L 1 Reply Last reply Reply Quote 0
                                  • L
                                    Lucky_ESA Developer Most Active @bahnuhr last edited by

                                    @bahnuhr Muss ich mir mal anschauen. Hatt aber nichts mit dem Adapter zu tun. Melde mich.

                                    bahnuhr 1 Reply Last reply Reply Quote 0
                                    • bahnuhr
                                      bahnuhr Forum Testing Most Active @Lucky_ESA last edited by

                                      @lucky_esa sagte in Test Adapter ioBroker.imap v0.1.1 latest/stable:

                                      Hatt aber nichts mit dem Adapter zu tun.

                                      Dass der fetch nicht funktioniert aber schon.

                                      L 1 Reply Last reply Reply Quote 0
                                      • L
                                        Lucky_ESA Developer Most Active @bahnuhr last edited by Lucky_ESA

                                        @bahnuhr So sollte es funktionieren. Mit fetch muss ich noch prüfen.

                                        var i, result, j, json;
                                        sendTo("imap.0", "getIMAPRequest", {
                                            name: "github@luckyskills.de",
                                            max: 20,
                                            search: '["ALL", ["HEADER", "FROM", "1234@hotmail.com"]]',
                                            fetch:  JSON.parse('{"fetch": false, "seqno": [23066]}'),
                                            bodie: '{bodies: "", markSeen: false}',
                                            parse: true,
                                        }, async function (result) {
                                            if (!result) {
                                                console.log("No result found!");
                                                return;
                                            }
                                            for (var i_index in result) {
                                                i = result[i_index];
                                                var j_list = getAttr(i, 'body.attachments');
                                                for (var j_index in j_list) {
                                                    j = j_list[j_index];
                                                    var test =  getAttr(i, 'attrs.uid');
                                                    console.log(test);
                                                    if (test == 84) {
                                                        json = JSON.stringify(getAttr(j, 'content'));
                                                        // Dein Anhang als Buffer
                                                        console.log(getAttr(json, 'data'));
                                                        console.log(getAttr(j, 'filename'));
                                                        writeFile('vis.0', getAttr(j, 'filename'), JSON.stringify(getAttr(json, 'data')), function (error) {
                                                            if(error) {
                                                                console.log('Fehler beim Speichern von Datei ' + getAttr(json, 'filename') +'   Fehler:' + error, 'warn');
                                                            } else {
                                                                console. log('Datei ' + getAttr(j, 'filename') +' wurde gespeichert');
                                                            }
                                                        });
                                                    }
                                                }
                                            }
                                        });
                                        

                                        Fetch funktionier auch:

                                        var i, result, j, json;
                                        sendTo("imap.0", "getIMAPRequest", {
                                            name: "github@luckyskills.de",
                                            max: 20,
                                            search: '["ALL", ["HEADER", "FROM", "1234@hotmail.com"]]',
                                            fetch:  JSON.parse('{"fetch": true, "uid": [84]}'),
                                            bodie: '{bodies: "", markSeen: false}',
                                            parse: true,
                                        }, async function (result) {
                                            if (!result) {
                                                console.log("No result found!");
                                                return;
                                            }
                                            for (var i_index in result) {
                                                i = result[i_index];
                                                var j_list = getAttr(i, 'body.attachments');
                                                for (var j_index in j_list) {
                                                    j = j_list[j_index];
                                                    var test =  getAttr(i, 'attrs.uid');
                                                    console.log(test);
                                                    if (test == 84) {
                                                        json = JSON.stringify(getAttr(j, 'content'));
                                                        // Dein Anhang als Buffer
                                                        console.log(getAttr(json, 'data'));
                                                        console.log(getAttr(j, 'filename'));
                                                        writeFile('vis.0', getAttr(j, 'filename'), JSON.stringify(getAttr(json, 'data')), function (error) {
                                                            if(error) {
                                                                console.log('Fehler beim Speichern von Datei ' + getAttr(json, 'filename') +'   Fehler:' + error, 'warn');
                                                            } else {
                                                                console. log('Datei ' + getAttr(j, 'filename') +' wurde gespeichert');
                                                            }
                                                        });
                                                    }
                                                }
                                            }
                                        });
                                        
                                        bahnuhr 2 Replies Last reply Reply Quote 0
                                        • bahnuhr
                                          bahnuhr Forum Testing Most Active @Lucky_ESA last edited by

                                          @lucky_esa
                                          Hallo, ich muss nochmal fragen.

                                          Script funktioniert, es wird eine Datei gespeichert.

                                          nur Problem: Die wav wird nicht abgespielt.

                                          Ablauf:
                                          Ich lasse mir per fritzbox den ab Text senden. Sieht so aus:
                                          bd69c971-fb08-4ff8-9d08-2b46193fbe99-image.png
                                          Die Datei lässt sich am pc per outlook einwandfrei abspielen. (wav Datei)
                                          Bei den Objekten wird bei attach 1 angezeigt.
                                          Dann Script gestartet:

                                          
                                          // Datei vom Anrufbeantworter speichern und per telegram senden
                                          
                                          function weiter() {
                                          
                                          // Variablen
                                              var i, result, j, json, fs = require('fs'), vText = "", vUser = "Dieter";
                                              var uid = getState("imap.0.ppc_dbrp-mueller_de.email.email_01.uid").val;
                                              var subject = getState("imap.0.ppc_dbrp-mueller_de.email.email_01.subject").val;
                                              var text = getState("imap.0.ppc_dbrp-mueller_de.email.email_01.text").val;
                                          
                                          // Script
                                              if (text.indexOf("Anrufbeantworter") > - 1) {           // Anrufbeantworter ist im Text enthalten
                                                  // Variablen
                                                      var Anruf_von = text.substring(text.indexOf("Der Anrufer:") + 13, text.indexOf("hat für Sie") - 1)
                                                      var Datum = text.substring(text.indexOf("Datum:") + 7, text.indexOf("Uhrzeit") - 1)
                                                      var Uhrzeit = text.substring(text.indexOf("Uhrzeit:") + 9, text.indexOf("Aufnahme") - 1)
                                                      var Laenge = text.substring(text.indexOf("Aufnahme") + 15, text.indexOf("Die Weiter") - 2) + " (min/sek)"
                                                  // Datei speichern
                                                      sendTo("imap.0", "getIMAPRequest", { name: "ppc@dbrp-mueller.de", max: 20, search: '["ALL"]',
                                                          fetch:  JSON.parse('{"fetch": true, "uid": [' + uid + ']}'), bodie: '{bodies: "", markSeen: false}', parse: true,
                                                      }, async function (result) { if (!result) { log("No result found!"); return; }
                                                      for (var i_index in result) { i = result[i_index]; var j_list = getAttr(i, 'body.attachments');
                                                      for (var j_index in j_list) { j = j_list[j_index]; json = JSON.stringify(getAttr(j, 'content'));
                                                      //log(getAttr(j, 'filename'));
                                                      writeFile('vis.0', '/Anrufe/'+ getAttr(j,'filename'), JSON.stringify(getAttr(json, 'data')), function (error) {
                                                          if(error) { log('Fehler beim Speichern von Datei ' + getAttr(json, 'filename') +'   Fehler:' + error, 'warn');
                                                          } else { log('Datei: ' + getAttr(j, 'filename') +' wurde gespeichert'); }
                                                      });
                                                      // Datei kopieren mit anderem Filenamen
                                                          setTimeout(function() { Datei_kopieren("/opt/iobroker/iobroker-data/files/vis.0/Anrufe/" + getAttr(j, 'filename'), "/opt/iobroker/iobroker-data/files/vis.0/Anrufe/Anrufbeantworter.wav"); }, 3000);
                                                      // Datei wieder löschen    
                                                      setTimeout(function() {
                                                          fs.unlink("/opt/iobroker/iobroker-data/files/vis.0/Anrufe/" + getAttr(j, 'filename'), function (err) { if (err) throw err;
                                                              log('Datei: ' + getAttr(j, 'filename') + ' wurde gelöscht.'); });
                                                          fs.unlink("/opt/iobroker/iobroker-data/files/vis.0/Anrufe/Anrufbeantworter.wav", function (err) { if (err) throw err;
                                                              log('Datei: Anrufbeantworter.wav wurde gelöscht.'); });
                                                      }, 10000);
                                                      // Datei per telegram versenden
                                                          setTimeout(function() {
                                                              vText = "Anruf von: " + Anruf_von + "\nDatum: " + Datum + "\nUhrzeit: " + Uhrzeit + "\nAufnahme: " + Laenge;
                                                              log (vText);
                                                              //vText = "test";
                                                              sendTo('telegram.0', {user: vUser, text: '/opt/iobroker/iobroker-data/files/vis.0/Anrufe/Anrufbeantworter.wav', caption: vText});
                                                          }, 5000);
                                                      } } });
                                              } else {
                                                  log ("Anrufbeantworter ist im Text nicht enthalten; Script wird abgebrochen.");
                                              }
                                          }
                                          
                                          on({id: "imap.0.ppc_dbrp-mueller_de.email.email_01.uid", change: "ne"}, function(obj) {     // uid von Email 1 hat sich geändert
                                              log("Auslöser Email imap hat sich geändert; UID= " + obj.state.val);
                                              weiter();
                                          }); 
                                          
                                          weiter();
                                          
                                          

                                          Es wird eine Datei erzeugt; diese ist aber nicht abspielbar.
                                          Siehst du irgendeinen Fehler.

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            Lucky_ESA Developer Most Active last edited by

                                            @bahnuhr Wo genau nicht abspielbar? Telegram oder hast du diese Datei auf dein PC geladen und dort funktioniert es auch nicht?

                                            Gruß//Lucky

                                            bahnuhr 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            806
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            26
                                            406
                                            56330
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo