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
    15
    1
    204

  • 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.
  • 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

              312

              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