Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Email auslesen und gewissen Inhalt in Datenpunkt

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Email auslesen und gewissen Inhalt in Datenpunkt

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bug77 last edited by

      Hallo zusammen,

      ich möchte EMail eines bestimmten Absenders (beispiel@gmx.de) bei Emfang auslesen.
      Diese enthält immer eine Bestellbestätigung und beinhaltet immer sowas:

      Montag, 27.01.2020
      1x - GE Hähnchenbrustfilet mit Sauce und (03) Blumenkohl in feiner Creme (M) dazu Kartoffeln (Menü K1)
      
      Dienstag, 28.01.2020
      1x - V Käsespätzle (ohne Zwiebeln) (G,a,Ei,M) Blattsalat Dressing (SO2,01,03,05) (Menü K2)
      
      

      Nun möchte ich genau diese Daten in Datenpunkte schreiben, damit ich sie im VIS darstellen kann.

      Kann mir jemand vielleicht erklären, wie ich das hinbekommen könnte?

      PS: die Bestellseite kann ich zwar auch im IFRAME darstellen, jedoch muss man sich da einloggen und dadurch nicht auf Dauer lauffähig.

      1 Reply Last reply Reply Quote 0
      • B
        bug77 last edited by

        ok ich habe dieses Script installiert:
        https://github.com/chirag04/mail-listener2

        Es funktioniert. Ich habe nun den ganzen Text der Email in einem Datenpunkt.

        Nun muss ich den Text den ich brauche so extrahieren, das er wieder sauber geloggt wird (history.0?)
        Mir fällt da nur ein, es wahrscheinlich mit dem Parser zu machen? Regex, aber da bin ich totaler Anfänger.

        Meine Vorstellung:

        • Datenpunkt mit parser auslesen
        • in datenpunkt ergebnisse schreiben
        • mit history loggen
        • im VIS einbinden
        liv-in-sky 1 Reply Last reply Reply Quote -1
        • liv-in-sky
          liv-in-sky @bug77 last edited by liv-in-sky

          @bug77 wie hast du das installiert über npm und einfach in der javascript instanz im setting angegeben

          kannst du schon mails empfangen ?

          1 Reply Last reply Reply Quote 0
          • B
            bug77 last edited by bug77

            Jap genau so. Zuerst hat es nicht getan, im log Stand ein Fehler wegen fehlenden Rechten.

            Dazu muss im Gmail Axxount IMAP aktiviert werden und auch der Zugriff für drittapps ohne 2-Faktor aktiviert werden, dann kommt alles rein.

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

              @bug77 das bedeutet, du bekommst jetzt einen datensatz, wenn ein mail ankommt - jetzt müßte was aussortiert werden

              • email absender oder subject - wie erkennst du das richtige mail
              • anschliessend , wenn das richtige mail da ist, den inhalt noch aufbereiten und wohin und wie speichern - nur in einen datenpunkt oder eine art tabelle mit first in last out

              kannst du mal eine solche angekommende nachricht loggen und posten

              1 Reply Last reply Reply Quote 0
              • B
                bug77 last edited by

                Ja ich bekomme auch Absender und Titel in separaten Datenpunkten.
                Jedoch reicht der Datenpunkt mit dem Text, da man auf den Inhalt triggern kann.

                So sieht es immer aus, es ist immer die gleiche Mail, ich muss halt die Tage extrahieren und in eine Tabelle eingetragen bekommen:

                
                vielen Dank für ihre Bestellung. Ihre Bestellung für den Zeitraum vom 27.01.2020 bis zum 02.02.2020 setzt sich wie folgt zusammen:
                
                Montag, 27.01.2020
                1x - GE Hähnchenbrustfilet mit Sauce und (03) Blumenkohl in feiner Creme (M) dazu Kartoffeln (Menü K1)
                
                Dienstag, 28.01.2020
                1x - V Käsespätzle (ohne Zwiebeln) (G,a,Ei,M) Blattsalat Dressing (SO2,01,03,05) (Menü K2)
                
                Donnerstag, 30.01.2020
                1x - R Burgerpattie (Sen) Burgerbrötchen (G,a,Ses) dazu Salatgurke und Tomate mit Senf (Sen) und Ketchup (Menü K1)
                
                
                Für Rückfragen steht Ihnen unser Kundenservice gern zur Verfügung.
                
                

                Diese Bestellungen sollen getriggert werden.
                .... setzt sich wie folgt zusammen:
                Und
                .... Für Rückfragen steht Ihnen....

                Ist immer in allen Mails gleich. Könnte man also triggern.

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

                  @bug77

                  das hier alles ist zu suchen

                  Montag, 27.01.2020
                  1x - GE Hähnchenbrustfilet mit Sauce und (03) Blumenkohl in feiner Creme (M) dazu Kartoffeln (Menü K1)
                   
                  Dienstag, 28.01.2020
                  1x - V Käsespätzle (ohne Zwiebeln) (G,a,Ei,M) Blattsalat Dressing (SO2,01,03,05) (Menü K2)
                   
                  Donnerstag, 30.01.2020
                  1x - R Burgerpattie (Sen) Burgerbrötchen (G,a,Ses) dazu Salatgurke und Tomate mit Senf (Sen) und Ketchup (Menü K1)
                  
                  1 Reply Last reply Reply Quote 0
                  • B
                    bug77 last edited by

                    Ja, aber ich weiß nicht wie ich das umsetzen soll.
                    JavaScript kann ich leider nicht und blockly erscheint mir auch nicht so sinnvoll.

                    Sollte jeder Tag wo gefunden wird als Json gespeichert werden und in Datenpunkt geschrieben werden.

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

                      @bug77

                      noch eine frage . die daten hast du in einem datenpunkt - ich frage wegen der zeilenumbrüche - die sind ja im datenpunkt nicht drin

                      1 Reply Last reply Reply Quote 0
                      • B
                        bug77 last edited by

                        Ja der ganze email Text ist in einem Datenpunkt.

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

                          @bug77 ok einen teil hab ich schon

                          1 Reply Last reply Reply Quote 0
                          • B
                            bug77 last edited by

                            👍👍👍 super

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

                              @bug77 mußte noch was anderes machen

                              versuche mal das script mit deinem datenpunkt (ganz oben einsetzen) - im log müßtest du was sehen - wenn der datenpunkt den selben inhalt hat, wie meiner

                              später kann man das in blockly einsetzen

                              var str =getState("controll-own.0.AAATEST.TestString1").val
                               
                              
                              str=str.replace(/  viel.*zusammen:/g,"");
                              //log("mein string :  "+str)
                              
                              
                              //log(str)
                              var myWerteDate=str.match(/ {3}.+?, \d+\.\d+\.\d\d\d\d/g)
                              var myWerteBestHelp=str.match(/\d+\.\d+\.\d\d\d\d.*?\(Menü .*?\)/g)
                              var myWerteBest=[];
                              
                              for(var i=0;i<myWerteBestHelp.length;i++){
                                    myWerteBest.push(myWerteBestHelp[i].replace(/\d+\.\d+\.\d\d\d\d /g,"" ));
                              }
                              
                              log(myWerteDate.toString())
                              log(myWerteBest.toString())
                              
                              log("3. Bestellung: "+myWerteDate[2] + " -- "+ myWerteBest[2])
                              
                              

                              bei mir sieht das log so aus:

                              Image 5.png

                              die 3.te bestellung ist aus einzelene segmenten zusammengesetzt - die können dann in alles mögliche verwandelt werden - html tabelle oder hson

                              1 Reply Last reply Reply Quote 0
                              • B
                                bug77 last edited by

                                wenn ich es starte bekomme ich fehlermeldungen:
                                error.png

                                Der Datenpunkt sieht so aus, doch mit zeilenumbrüchen?

                                datenpunkt.png

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

                                  @bug77 dann kann es nicht funktionieren - ich schau nochmal

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    bug77 last edited by

                                    @liv-in-sky said in Email auslesen und gewissen Inhalt in Datenpunkt:

                                    die 3.te bestellung ist aus einzelene segmenten zusammengesetzt - die können dann in alles mögliche verwandelt werden - html tabelle oder hson

                                    Kannst du die Ausgabe dann auch gleich in einen Datenpunkt z.b. "javascript.0.Email.Bestellungen" legen? Weil ich triggere dann mit history darauf und habe dann meine Tabelle für die VIS.
                                    Weil es kommen ja jede Woche bestellungen dazu und dann wird die HTML/Json Tabelle überschrieben, ich möchte aber eine fortlaufende Liste

                                    liv-in-sky 2 Replies Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @bug77 last edited by liv-in-sky

                                      @bug77 da kommt dann später -erstmal richtig filtern

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

                                        @bug77 ich brauche bitte den genauen inhalt - oben sind leerzeiche oder eine leere zeile darin - in deinem letzten bild nicht

                                        also den datenpunkt in eine textdatei kopieren und diese hier posten

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          bug77 last edited by bug77

                                          ok ist gelöscht

                                          liv-in-sky 2 Replies Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @bug77 last edited by liv-in-sky

                                            @bug77 kanns tdu wieder löschen, wenn du das nicht im forum haben willst

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            664
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript template
                                            3
                                            28
                                            2779
                                            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