Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    777

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.4k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    5.6k

JSON zu Objekte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
26 Beiträge 3 Kommentatoren 2.8k Aufrufe 2 Beobachtet
  • Ä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: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

          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!

              👏

              Ich werde hier noch viel lernen hoffe ich!

              😀

              Falko

              1 Antwort Letzte Antwort
              0

              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

              Registrieren Anmelden
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              422

              Online

              33.0k

              Benutzer

              83.5k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2026
              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