Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JSON zu Objekte

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    14
    1
    180

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

JSON zu Objekte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
26 Beiträge 3 Kommentatoren 1.9k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • K Kellerassel75

    @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 Offline
    E Offline
    ente34
    schrieb am zuletzt editiert von
    #17

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

    1 Antwort Letzte Antwort
    0
    • K Kellerassel75

      @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

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #18

      @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?

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      K 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @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 Offline
        K Offline
        Kellerassel75
        schrieb am zuletzt editiert von
        #19

        @paul53
        Ich denke 4 Anrufe sollte reichen!

        1 Antwort Letzte Antwort
        0
        • K Kellerassel75

          Hallo.
          Ich bin Falko und habe schon eine Menge Zeit hier verbracht.

          Ich bin vor einem Jahr von FHEM zu ioBroker gewechselt. Die Umstellung hat eine Weile gedauert.
          Mit Blockly komme ich schon ganz gut zurecht. Java ist schwer für mich.

          Ich versuche aus einer JSON Tabelle Werte in Objekte zu schreiben.
          Einige Beispiele aus diesem Forum konnte ich ganz gut nachstellen bei mir.
          Aber mit meiner Tabelle funktioniert das alles nicht.

          Hier mal meine JSON:

          [{"id":4097,"type":"2","caller":"****","called":"SIP: ****","callednumber":"****","name":"","numbertype":"sip","device":"","port":"-1","date":"23.01.21 23:01","duration":"0:00","count":"","path":"","sym":"x","external":"*****"},{"id":4096,"type":"2","caller":"******","called":"SIP: ****","callednumber":"*******","name":"","numbertype":"sip","device":"","port":"-1","date":"23.01.21 22:21","duration":"0:00","count":"","path":"","sym":"x","external":"******"},{"id":4083,"type":"2","caller":"*****","called":"SIP: *****","callednumber":"****","name":"","numbertype":"sip","device":"","port":"-1","date":"21.01.21 11:38","duration":"0:00","count":"","path":"","sym":"x","external":"******"}]
          

          Das ist die JSON von tr-064. Dort möchte ich gerne die caller, date und name in Objekte schreiben.

          Solange nur ein Anruf ist:

          {"id":4097,"type":"2","caller":"****","called":"SIP: ****","callednumber":"****","name":"","numbertype":"sip","device":"","port":"-1","date":"23.01.21 23:01","duration":"0:00","count":"","path":"","sym":"x","external":"*****"}
          

          Bekomme ich das hin. Sobald die"[ ]"dazu kommt und noch weitere Anrufe geht nichts.

          Beispiel:

          //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";
          
          on(json, function(dp) {
          
             var obj = JSON.parse(dp.state.val);
          
             setState(Nummer, parseFloat(obj.caller));
          
             setState(Datum, parseFloat(obj.date)); 
          
             setState(Name, parseFloat(obj.name));  
          
          });
          

          Wer kann helfen dass meine Objekte (jeder Anruf einzeln) erstellt werden.

          Vielen Dank!
          Falko

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #20

          @kellerassel75 sagte: Solange nur ein Anruf ist:

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

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          K 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @kellerassel75 sagte: Solange nur ein Anruf ist:

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

            K Offline
            K Offline
            Kellerassel75
            schrieb am zuletzt editiert von
            #21

            @paul53
            Nein das habe ich so geändert!

            E paul53P 2 Antworten Letzte Antwort
            0
            • K Kellerassel75

              @paul53
              Nein das habe ich so geändert!

              E Offline
              E Offline
              ente34
              schrieb am zuletzt editiert von
              #22

              @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 Antwort Letzte Antwort
              0
              • E ente34

                @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 Offline
                K Offline
                Kellerassel75
                schrieb am zuletzt editiert von
                #23

                @ente34
                Danke! Ich werde es Versuchen!

                1 Antwort Letzte Antwort
                0
                • K Kellerassel75

                  @paul53
                  Nein das habe ich so geändert!

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #24

                  @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);
                      }
                  });
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  E K 2 Antworten Letzte Antwort
                  0
                  • paul53P 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 Offline
                    E Offline
                    ente34
                    schrieb am zuletzt editiert von
                    #25

                    @paul53
                    Mir gefällt es ...

                    1 Antwort Letzte Antwort
                    0
                    • paul53P 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);
                          }
                      });
                      
                      K Offline
                      K Offline
                      Kellerassel75
                      schrieb am zuletzt editiert von
                      #26

                      @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!

                      :clap:

                      Ich werde hier noch viel lernen hoffe ich!

                      :grinning:

                      Falko

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      287

                      Online

                      32.7k

                      Benutzer

                      82.4k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe