Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. [gelöst]nodered mail empfangen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst]nodered mail empfangen

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky last edited by liv-in-sky

      @mickym

      könntest du mir einen tipp geben - nodered nutze ich so gut wie nie - lese eine mailbox aus

      Image 093.png

      ich "switche" bestimmte topics (subjects) und diese mails sollen als json-dp gespeichert werden - im debug werden alle mails, die ich brauche angezeigt - im dp steht aber immer nur ein mail-subject - wie sammelt man das ?

      wie macht man das, dass alle gefundenen mails als json in einen dp geschrieben werden

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @liv-in-sky last edited by mickym

        @liv-in-sky Eine JSON Node dahinter bzw. vor die iobroker-OUT Node klemmen. 😉 Musst nicht mal was konfigurieren - die erkennt automatisch am Input was sie machen muss. 😉

        liv-in-sky 1 Reply Last reply Reply Quote 0
        • liv-in-sky
          liv-in-sky @mickym last edited by

          @mickym

          das ändert nix - es wird kein json erzeugt und es immer noch nur die letze mail

          Image 094.png

          irgendwie fehlt da was, was die einzelnen mails sammelt und dann erst in den dp schreibt

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @liv-in-sky last edited by mickym

            @liv-in-sky Was machst du in der Change node? Du hast doch die Debug Node direkt mit der switch Node verbunden und gesagt da ist alles drin. Wenn Du mit dem zufrieden bist - dann schmeiss doch die Change Node weg. Die macht irgendwas kaputt. Ich seh halt nicht was. 😉

            Entweder ist in der Debug Node alles drin oder nur jeweils eine einzelne Nachricht. Sehe ja das Debug Fenster nicht, aber gehe nun davin aus. 😉 Wenn Du die in einem Array gesammelt haben willst dann musst halt noch eine JOIN Node vorher sammeln. Dann am besten ein Zeitlimit erstellen - da Du ja nicht weisst wieviele Nachrichten.

            6b4e55bc-aad0-4bf5-bf1b-d905fe279259-image.png

            liv-in-sky 2 Replies Last reply Reply Quote 1
            • liv-in-sky
              liv-in-sky @mickym last edited by

              @mickym die change node brauche ich, da sonst nur der email-text kommt

              Image 095.png

              ohne kommt halt der text der letzten mail - ich brauche aber das subject der mails - json wird auch nicht erzeugt

              der output im debug sieht so aus - man sieht alle mails - letztlich wird sehr sehr schnell jedes mails-subject in den dp geschrieben - und so bleibt das letzte übrig:

              Image 096.png

              Image 097.png

              mickym 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @mickym last edited by

                @mickym sagte in nodered mail empfangen:

                JOIN Node vorher

                jetzt sieht es besser aus - habe ein array - leider noch nicht perfekt, da im subject immer ein komma ist - das heißt ich kann das nicht verarbeiten in javascript - aber das komma kann ich ersetzen

                die json node macht übrigens garnix -

                Image 098.png

                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @liv-in-sky last edited by mickym

                  @liv-in-sky Nein - ich verstehe zwar was Du willst - da die iobroker-Out Node nur eine payload verarbeitet. Aber mach halt mal eine E-Mail - die vom Inhalt unkritisch ist auf - und zwar komplett. - Wenn Du das topic drin haben willst - und die originale payload den mail text?? Ich habs gerade nicht im Kopf.

                  Dann machst Du erst mal folgendes und änderst erst mal die Change Node wie folgt

                  eec4c72d-2808-4d61-9b14-ba6aad6cf3f6-image.png

                  Dann die Nachrichten via JOIN sammeln und konvertieren und schreiben.

                  ac02cc98-6feb-4488-8094-579d9a5b6e9d-image.png

                  Wenn du das topic zuerst in den Eigenschaften haben willst - musst die Change Node leicht abändern:

                  5c0c01cf-2560-4a89-ad78-06dbba25bf30-image.png

                  Kommas spielen keine Rolle:

                  09a2f7c8-7e40-4f0a-962b-9b28a47d63bf-image.png

                  EDIT:

                  Hier zum Import:

                  [
                     {
                         "id": "bc0a996e6d52e555",
                         "type": "join",
                         "z": "289f539dcc33814e",
                         "name": "",
                         "mode": "custom",
                         "build": "array",
                         "property": "payload",
                         "propertyType": "msg",
                         "key": "topic",
                         "joiner": "\\n",
                         "joinerType": "str",
                         "accumulate": false,
                         "timeout": "2",
                         "count": "",
                         "reduceRight": false,
                         "reduceExp": "",
                         "reduceInit": "",
                         "reduceInitType": "",
                         "reduceFixup": "",
                         "x": 490,
                         "y": 2980,
                         "wires": [
                             [
                                 "843cf6dfa5be2318",
                                 "ef8dd5a29a584cf5"
                             ]
                         ]
                     },
                     {
                         "id": "76cad86e32344135",
                         "type": "change",
                         "z": "289f539dcc33814e",
                         "name": "",
                         "rules": [
                             {
                                 "t": "move",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "text",
                                 "tot": "msg"
                             },
                             {
                                 "t": "move",
                                 "p": "topic",
                                 "pt": "msg",
                                 "to": "payload.topic",
                                 "tot": "msg"
                             },
                             {
                                 "t": "move",
                                 "p": "text",
                                 "pt": "msg",
                                 "to": "payload.text",
                                 "tot": "msg"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 310,
                         "y": 2980,
                         "wires": [
                             [
                                 "bc0a996e6d52e555"
                             ]
                         ]
                     },
                     {
                         "id": "843cf6dfa5be2318",
                         "type": "json",
                         "z": "289f539dcc33814e",
                         "name": "",
                         "property": "payload",
                         "action": "",
                         "pretty": false,
                         "x": 670,
                         "y": 2980,
                         "wires": [
                             [
                                 "7dd8e8c7e6a67a86"
                             ]
                         ]
                     }
                  ]
                  

                  ... musst also nur noch Deine Switch Node vorne und die iobroker-OUT Node hinten dran klemmen. Und natürlich wird nur die payload von der JSON Node bearbeitet. 😉

                  1f61a85a-fa0a-44a1-a05a-cf3985b9332f-image.png

                  Die iobroker-OUT Node schreibt NUR die payload weg - alles andere wird ignoriert - Ich hoffe Du hast den Datenpunkt wohin es geschrieben werden soll - in der iobroker-OUT Node definiert. In JS auf der anderen Seite einfach wieder mit JSON.parse - das Objekt rekonstruieren. 😉

                  liv-in-sky 1 Reply Last reply Reply Quote 1
                  • liv-in-sky
                    liv-in-sky @mickym last edited by

                    @mickym tausend dank - wußte doch, dass du da der richtige bist

                    jetzt passt der output

                    Image 099.png

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @liv-in-sky last edited by

                      @liv-in-sky Ja und wenns mal mehr sind - halt in der JOIN Node die Sekunden erhöhen. Man kann das zwar auch mit einem trigger machen - aber warum soll man alles unnötig komplizieren, da Du ja NodeRed sonst nicht weiter einsetzt. 😉

                      liv-in-sky 3 Replies Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @mickym last edited by

                        @mickym

                        habe 10 sekunden eingegeben - dass reicht locker und das ganze ist nicht zeit-abhängig

                        leider funktionieren die mail-listener nodes nicht mehr (für javascript) seit dem neuen node update und ich finde es einfacher, mails mit nodered zu lesen - nachdem ich jetzt weiß, wie es funktioniert

                        nochmals danke

                        1 Reply Last reply Reply Quote 1
                        • liv-in-sky
                          liv-in-sky @mickym last edited by

                          @mickym

                          ich nochmal - ich bräuchte das ganze in anderer reihenfolge - im moment ist das aktuelle mail an letzter stelle - ich würde das ganze gerne in einem inventwo json widget anzeigen und die neuste mai oben haben . macht man da eine function mit z.b array.reverse() oder hast du eine andere idee ?

                          1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @mickym last edited by

                            @mickym

                            ich habe es so gemacht - oder gibt es dafür eine einstellung oder node ?

                            Image 103.png

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @liv-in-sky last edited by mickym

                              @liv-in-sky Nein - das passt schon - ansonsten würde man es mit einer Change-Node und JSONATA machen - aber kommt aufs Gleiche raus:

                              0c2d5b87-2412-4036-8050-ce0564d17499-image.png

                              Ach noch eine Ergänzung - da ja lieber JS machst, kannst Du natürlich auch alles in JS in function Nodes codieren - dann brauchst Du gar keine Nodes mehr bzw. nur noch Ein- und Ausgabe. 😉 - Geht in meinen Augen zwar der Sinn von der grafischen Darstellung verloren, aber für jemand dem das Codieren mehr liegt hättest Du den ganzen Flow auch in eine Function Node packen können. 😉

                              1 Reply Last reply Reply Quote 0
                              • D3ltoroxp
                                D3ltoroxp last edited by D3ltoroxp

                                Ich hänge mich hier mal mit an, @liv-in-sky hat mir das gezeigt. Ich möchte auch gern auf Mails reagieren und zwar die von meinen Kids, wenn sie über Teams Nachrichten bekommen. Ich möchte nicht immer die Accounts switchen um zu schauen obs da was neues gibt. Daher würde ich da gern was auf der VIS machen und Benachrichtigt werden, wenn einer von Ihnen was neues im Account hat.

                                Müsste ich hiernach filtern ?

                                e8a01b65-7887-445d-b424-bcb72833d43f-grafik.png

                                So steht das immer im Topic / Betreff drin, also Teams und noch ein Standard Text dazu.

                                EDIT:

                                Sieht schon mal nicht schlecht aus.
                                22456dfa-4d2d-49fa-a940-2580eadac328-grafik.png

                                liv-in-sky 1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @D3ltoroxp last edited by liv-in-sky

                                  @d3ltoroxp

                                  mach ich auch so - imsubject steht immer ein bestimmtes wort - danach filtere ich und bekome aus der mailbox nur diese subjects mit diesem wort

                                  ein wenig komplizierter wird es , wenn in der mailbox mehrere solcher mails sind - dann muss man das ganze in einem javascript/blockly weiterverarbeiten, damit man nur eine nachricht empfängt, wenn es eine neue mail ist! man muss also die schon gelesenen mails in einer kleinen datenbank (json) mitverwalten um einen vergleich zu haben - wenn es immer nur eine mail in der mailbox gibt, wird das einfacher

                                  oder evtl kann man das auch über einen datumsvergleich regeln

                                  mickym D3ltoroxp 2 Replies Last reply Reply Quote 1
                                  • mickym
                                    mickym Most Active @liv-in-sky last edited by mickym

                                    gelöscht

                                    liv-in-sky 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @mickym last edited by

                                      @mickym

                                      das ist mir klar - aber ich markiere manchmal alte mails als ungelesen um diese im postfach leicht zu finden - daher nicht so schnell urteilen 😞 ich habe mir schon was dabei gedacht

                                      mickym 1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @liv-in-sky last edited by mickym

                                        gelöscht

                                        liv-in-sky 1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @mickym last edited by

                                          @mickym

                                          dann übernimm du hier - dann brauchen wir auch nicht rum zu diskutierne

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @liv-in-sky last edited by mickym

                                            gelöscht

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            918
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            56
                                            2307
                                            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