Navigation

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

    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

    FritzBox json

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

      Hallo zusammen,

      ich würde gerne aus einer bestehenden JSON-Tabelle nur bestimmte Werte extrahieren. Ich weiß das dies mit Java-Script

      und der Funktion json parse funktioniert. Leider bekomme ich das aber nicht so hin wie ich es gerne hätte.

      Der aktuelle Datenpunkt der Fritzbox liefert liefert folgende Werte:

      [{"date":"07.10.18 18:00:02","externalNumber":"0155000000","callSymbolColor":"** ->>**","extensionLine":"10","ownNumber":"8209500","lineType":"SIP1","durationForm":"     44"},{"date":"07.10.18 17:58:29","externalNumber":"015000000","callSymbolColor":"** ->X**","extensionLine":"","ownNumber":"8209500","lineType":"SIP1","durationForm":"      -"},{"date":"06.10.18 16:37:14","externalNumber":"025000","callSymbolColor":"** ->X**","extensionLine":"","ownNumber":"8209500","lineType":"SIP1","durationForm":"      -"},{"date":"06.10.18 11:47:59","externalNumber":"0175000000","callSymbolColor":"** ->>**","extensionLine":"10","ownNumber":"8209500","lineType":"SIP1","durationForm":"   2:33"}]
      

      Ich hätte gerne davon gerne nur die Werte date, externalNumber, callSymbolColor, durationForm in jeweils eingene Datenpunkte.

      Hoffe ihr könnte mir auf die Sprünge helfen.

      Gruß

      Damich

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

        @Damich:

        gerne nur die Werte date, externalNumber, callSymbolColor, durationForm in jeweils eingene Datenpunkte. `
        Diese Werte liegen 4 mal vor, denn es ist ein Array mit 4 gleichen Objekten, die unterschiedliche Werte enthalten.

        1 Reply Last reply Reply Quote 0
        • D
          Damich last edited by

          @paul53:

          @Damich:

          gerne nur die Werte date, externalNumber, callSymbolColor, durationForm in jeweils eingene Datenpunkte. Diese Werte liegen 4 mal vor, denn es ist ein Array mit 4 gleichen Objekten, die unterschiedliche Werte enthalten.

          Okay, das hätte ich sehen müssen. Aber weiter geholfen ist mir damit nicht wirklich.

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

            Die Frage ist, welche Werte Du in Datenpunkte schreiben möchtest: Alle 4 * 4 in 16 Datenpunkte oder nur die letzten Werte in 4 Datenpunkte. Beispiel für die letzten Werte (Datenpunkte von Typ "string" liegen unter javascript.0):

               var obj = JSON.parse(json)[0]; // Objekt mit den letzten Werten
               setState('Fritzbox.Datum', obj.date, true);
               setState('Fritzbox.Rufnummer', obj.externalNumber, true);
               setState('Fritzbox.Symbol', obj.callSymbolColor, true);
               setState('Fritzbox.Dauer', obj.durationForm, true);
            
            
            1 Reply Last reply Reply Quote 0
            • D
              Damich last edited by

              Genau am liebsten alle 16 Datenpunkte. Kann man die Tabelle die im Vis nicht einfacher formatieren, dass diese einfach die gewünschten Spalten nur hat ?

              Gruß

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

                @Damich:

                am liebsten alle 16 Datenpunkte `
                Das sollte etwa so funktionieren:

                 `var arr = JSON.parse(json);
                   var cnt = arr.length;
                   if(cnt > 4) cnt = 4;
                   for(let i = 0; i < cnt; i++) {
                      var obj = arr[i];
                      setState('Fritzbox.' + i + '-Datum', obj.date, true);
                      setState('Fritzbox.' + i + '-Rufnummer', obj.externalNumber, true);
                      setState('Fritzbox.' + i + '-Symbol', obj.callSymbolColor, true);
                      setState('Fritzbox.' + i + '-Dauer', obj.durationForm, true);
                   }` 
                Mit Vis kenne ich mich nicht aus.[/i]
                
                1 Reply Last reply Reply Quote 0
                • D
                  Damich last edited by

                  @paul53:

                  @Damich:

                  am liebsten alle 16 Datenpunkte `
                  Das sollte etwa so funktionieren:

                   `var arr = JSON.parse(json);
                     var cnt = arr.length;
                     if(cnt > 4) cnt = 4;
                     for(let i = 0; i < cnt; i++) {
                        var obj = arr[i];
                        setState('Fritzbox.' + i + '-Datum', obj.date, true);
                        setState('Fritzbox.' + i + '-Rufnummer', obj.externalNumber, true);
                        setState('Fritzbox.' + i + '-Symbol', obj.callSymbolColor, true);
                        setState('Fritzbox.' + i + '-Dauer', obj.durationForm, true);
                     }` 
                  Mit Vis kenne ich mich nicht aus.
                  
                  Danke für deine Hilfe. Dann habe ich schon mal eine Lösung. Falls sich jemand noch zu VIS äußern könnte, wäre das perfekt.
                  
                  Gruß
                  
                  Damich[/i]
                  ``` ` 
                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 last edited by

                    @Damich:

                    Falls sich jemand noch zu VIS äußern könnte, wäre das perfekt. `
                    Dazu solltest Du unter der Rubrik ioBroker.vis Adapter nachfragen, da es hier leicht übersehen wird.

                    1 Reply Last reply Reply Quote 0
                    • D
                      Damich last edited by

                      @paul53:

                      @Damich:

                      Falls sich jemand noch zu VIS äußern könnte, wäre das perfekt. Dazu solltest Du unter der Rubrik __ioBroker.vis Adapter__ nachfragen, da es hier leicht übersehen wird.

                      Mache ich 😉

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      923
                      Online

                      31.7k
                      Users

                      79.9k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      912
                      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