Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JSON zu Objekte

    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

    JSON zu Objekte

    This topic has been deleted. Only users with topic management privileges can see it.
    • E
      ente34 @Kellerassel75 last edited by

      @kellerassel75
      Schon klar, mein Script filtert ja die verpassten Anrufe heute aus. Mit der "1||" bekommst Du wieder alle, um zu kontrollieren, ob alles soweit funktioniert.
      Alternativ kannst Du Dich auch selbst anrufen (nicht abheben!).

      K 1 Reply Last reply Reply Quote 0
      • K
        Kellerassel75 @ente34 last edited by

        @ente34
        Gut! Er schreibt nun die Anrufe von heute! Das funktioniert!

        Aber ich wollte richtige Datenpunte - Zahlen nicht JSON!

        Also:
        Datenpunt letzter - caller
        Datenpunt letzter - date
        Datenpunt letzter - name

        Datenpunt vorletzter- caller
        Datenpunt vorletzter- date
        Datenpunt vorletzter- name

        Falko

        E paul53 2 Replies Last reply Reply Quote 0
        • E
          ente34 @Kellerassel75 last edited by

          @kellerassel75
          wie bereits oben gesagt, in Zeile 19 hast Du das obj in der Hand ...

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

            @kellerassel75 sagte: richtige Datenpunte - Zahlen nicht JSON!

            Du meinst Zeichenketten?

            @kellerassel75 sagte in JSON zu Objekte:

            Datenpunt vorletzter- caller
            Datenpunt vorletzter- date
            Datenpunt vorletzter- name

            Wieweit sollen sie zurück reichen?

            K 1 Reply Last reply Reply Quote 0
            • K
              Kellerassel75 @paul53 last edited by

              @paul53
              Ich denke 4 Anrufe sollte reichen!

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

                @kellerassel75 sagte: Solange nur ein Anruf ist:

                Ist es wirklich so, dass es dann nur ein Objekt ohne Array-Klammern ist ?

                K 1 Reply Last reply Reply Quote 0
                • K
                  Kellerassel75 @paul53 last edited by

                  @paul53
                  Nein das habe ich so geändert!

                  E paul53 2 Replies Last reply Reply Quote 0
                  • E
                    ente34 @Kellerassel75 last edited by

                    @kellerassel75

                    Kannst Du es dann selber erweitern?

                    //Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
                    //Idee: Chaot
                    // Umsetzung: paul53
                    
                    var json = "tr-064.0.calllists.missed.json";
                    var Nummer = "javascript.0.Nummer";
                    var Datum = "javascript.0.Datum";
                    var Name = "javascript.0.Name";
                    const MaxAnrufe = 4;
                    
                    on(json, function(dp) {
                       var obj = JSON.parse(dp.state.val);
                       const i_end = obj.length < MaxAnrufe ? obj.length : MaxAnrufe;
                       for (let i=0; i<i_end; i++) {
                           const o = obj[i];
                           console.warn(o);
                           const dp_nummer = Nummer+"_"+i;
                           console.warn(dp_nummer);
                           setState(dp_nummer,o.caller);
                       }
                    //    setState(Nummer, parseFloat(obj.caller));
                    //    setState(Datum, parseFloat(obj.date)); 
                    //    setState(Name, parseFloat(obj.name));  
                    
                    });
                    
                    for (let i=0; i<MaxAnrufe; i++) {
                        const dp_nummer = Nummer+"_"+i;
                        createState(dp_nummer);
                    }
                    
                    K 1 Reply Last reply Reply Quote 0
                    • K
                      Kellerassel75 @ente34 last edited by

                      @ente34
                      Danke! Ich werde es Versuchen!

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

                        @kellerassel75 sagte: 4 Anrufe sollte reichen!

                        Vorschlag (nicht getestet):

                        const idJson = "tr-064.0.calllists.missed.json";
                        const path = "0_userdata.0.Telefon.verpasst-";
                        
                        if(!existsState(path + '0.Nummer')) {
                            for(let i = 0; i < 4; i++) {
                                createState(path + i + '.Nummer', '', {type: 'string', name: 'Nummer', role: 'info'});
                                createState(path + i + '.Datum', '', {type: 'string', name: 'Datum, Uhrzeit', role: 'info'}); 
                                createState(path + i + '.Name', '', {type: 'string', name: 'Name', role: 'info'});
                            }
                        }
                         
                        on(idJson, function(dp) {
                            let arr = JSON.parse(dp.state.val);
                            let anzahl = arr.length;
                            if(anzahl > 4) anzahl = 4;
                            for(let i = 0; i < anzahl; i++) {
                                setState(path + i + '.Nummer', arr[i].caller, true);
                                setState(path + i + '.Datum', arr[i].date, true); 
                                setState(path + i + '.Name', arr[i].name, true);
                            }
                        });
                        
                        E K 2 Replies Last reply Reply Quote 0
                        • E
                          ente34 @paul53 last edited by

                          @paul53
                          Mir gefällt es ...

                          1 Reply Last reply Reply Quote 0
                          • K
                            Kellerassel75 @paul53 last edited by

                            @paul53
                            Danke passt!

                            Echt Super! Ich bin begeistert! Danke an alle!
                            Ich hätte nicht gedacht das ich so schnell Hilfe bekomme!
                            Ihr seid Super! Macht weiter so!

                            👏

                            Ich werde hier noch viel lernen hoffe ich!

                            😀

                            Falko

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            850
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            3
                            26
                            859
                            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