Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Felder aus Text auslesen

    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

    [gelöst] Felder aus Text auslesen

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

      Hallo,

      Da mein Abfalldienstleister keine ICS Datei zur Verfügung stellt, habe ich mir mit Ifttt die Mail in meinen iobroker als Text einstellen lassen:

      Guten Tag,
      wir erinnern Sie an den nächsten Termin für die Müllabfuhr.
      
      Teststaße 12
      Restmüll: Donnerstag, 05.09.2018
      
      Ihren Infomail Eintrag können Sie hier ändern: Daten Ändern 
      
      Mit freundlichen Grüßen
      Ihre Stadtreiniger Kassel
      
      

      Wie kann ich jetzt mit einen Skript (am liebsten wäre mir blocky, aber wenn das nicht geht, nehme ich auch anderes) das Feld wo Restmüll steht und das dahinterstehende Datum auslesen und in einen anderen Status schreiben?

      Vielen Dank im voraus.

      Mitch

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

        on('myEmail', obj => {
            var text = obj.state.val;
            var location = text.replace(/\r\n|\n/, '%%').match(/%%%(.*)?%Restmüll:/)[1];
            console.log(location);
        });
        
        
        1 Reply Last reply Reply Quote 0
        • M
          Mitch last edited by

          Hallo Bluefox,

          erstmal vielen Dank das Du mir so schnell geantwortet hast. Ich habe mir schonmal die Doku zu JavaScript angesehen. Ich denke ich werde mich da einarbeiten müssen:

          http://www.iobroker.net/docu/?page_id=5385&lang=de

          Jetzt sieht mein Skript so aus (er soll ja iftt überwachen=:

          on('cloud.0.services.ifttt', obj => {
              var text = obj.state.val;
              var location = text.replace(/\r\n|\n/, '%%').match(/%%%(.*)?%Restmüll:/)[1];
              console.log(location);
          });
          

          Leider bringt er bei mir diesen Fehler:

          javascript.0 2018-09-05 11:44:53.733 error at Object.obj (script.js.Meine_Informationen.IFTTT:3:77)

          javascript.0 2018-09-05 11:44:53.732 error Error in callback: TypeError: Cannot read property '1' of null

          Und mir ist auch noch nicht ganz klar, wo location gespeichert werden soll. Ich würde erwarten, das ich es dann irgendwo unter Objekten finde. Muss ich vielleicht location und textg unter javascript.0 anlegen?

          Gruss,

          Mitch

          1 Reply Last reply Reply Quote 0
          • M
            Mitch last edited by

            Vielleich that noch jemand eine Idee. Ich brauche ja erst mal ein Event, also wenn cloud.0.services.ifttt sich ändert. Rchtig? Dann soll das Skript laufen.

            Im MOment sieht meins so aus, aber ich bekomme einen Fehler:

            on({id: 'cloud.0.services.ifttt'}, function (obj) {
                var text = obj.state.val;
                var location = text.replace(/\r\n|\n/, '%%').match(/%%%(.*)?%Restmüll:/)[1];
                console.log(location);
            });
            

            Leider bekomme ich folgende Fehlermeldung:

            javascript.0	2018-09-08 08:11:34.842	error	at Object. <anonymous>(script.js.Meine_Informationen.IFTTT:3:77)
            javascript.0	2018-09-08 08:11:34.841	error	Error in callback: TypeError: Cannot read property '1' of null</anonymous>
            
            1 Reply Last reply Reply Quote 0
            • M
              Mitch last edited by

              Hier anbei nochmal den Text, der wirklich im IFTTT Feld drin steht:

              Guten Tag,
              
              wir erinnern Sie an den nächsten Termin für die Müllabfuhr.
              
              Am Enkeberg 34
              
              Biomüll: Montag, 10.09.2018
              
              Ihren Infomail Eintrag können Sie hier ändern: [Daten Ändern](https://abfallkalenderkassel.insert-infotech.de/kalender.php?action=edit&UniqueUserID=7b8464a6-b005-4c5c-9a79-9208d591c033)
              
              Mit freundlichen Grüßen
              
              Ihre Stadtreiniger Kassel
              
              

              Man müsste jetzt mittels JavaScript die 6. Zeile in eine neue Variable übertragen. Dann von hinten das 6 letzte Zeichen bis zum 15 letzten Zeichen wäre das Datum. Und Zeilen Anfang bis zum : wäre die Müllart.

              Aber ich finde die Lösung nicht, trotz Internetrecherche. Kennt jemand gute Seiten dafür? Oder evtl. die Lösung?

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

                Versuche es mal so.

                    var location = text.split('
                ')[5];
                
                
                1 Reply Last reply Reply Quote 0
                • M
                  Mitch last edited by

                  Vielen Dank, das war genau der richtige Hinweis. Jetzt hat es klick gemacht und ich habe folgendes Skript gebaut:

                  on({id: "cloud.0.services.ifttt", change: "any"}, function (obj) 
                  { 
                    setState('meinedp.0.ifttt.timestamp', formatDate(new Date(obj.state.ts), "TT.MM.JJJJ hh:mm:ss")); 
                    var text = getState("cloud.0.services.ifttt").val;
                    var line = text.split('
                  ')[5];
                    var type = line.split(':')[0];
                    setState('meinedp.0.ifttt.type', type); 
                    var date = line.split(', ')[1];
                    setState('meinedp.0.ifttt.date', date); 
                  });
                  

                  Danke nochmal an alle, die mir hier geholfen haben!

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  421
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  664
                  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