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
    181

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

    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

    E paul53P 3 Antworten 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

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

      @kellerassel75
      Macht nichts, ich bin auch noch nicht lange dabei.

      Jeder Anruf einzeln, Du hast aber nur drei DP für einen Anruf.
      Hier mein Script, dass die verpassten Anrufe heute ausfiltert:

      'use strict';
      
      const id_telefon_missed = 'tr-064.0.calllists.missed.json';
      const id_telefon_today  = 'javascript.0.telefon.missed_today.json';
      
      function filterJsonByDate(state) {
          console.debug("filterJsonByDate");
          if (state && state.val) {
              const tab = state.val;
              console.debug(tab);
              try {
                  let obj = JSON.parse(tab);
                  let date = formatDate(new Date(), 'DD.MM.YY');
                  let result = [];
                  for (const el of obj) {
                      const el_date = el.date.toString().substring(0, 8);
                      console.debug(el_date + " === " + date + " ?");
                      if (el_date === date) {
                          console.debug(el);
                          result.push(el);
                      }
                  }
                  let json = JSON.stringify(result);
                  setState(id_telefon_today, json);
                  console.debug(json);
              } catch (e) {
                  console.error(e);
              }
          }
      }
      
      //Script Start
      if (!existsState(id_telefon_today)) {
          createState(id_telefon_today, JSON.stringify([]), () => {
              filterJsonByDate(getState(id_telefon_missed));
          });
      } else {
          filterJsonByDate(getState(id_telefon_missed));
      }
      
      
      on({ id: id_telefon_missed, change: "ne" }, function (obj) {
          console.warn(obj.state);
          filterJsonByDate(obj.state);
      });
      
      
      //00:00 Neuer Tag, Telefonliste updaten
      schedule("00 00 * * *", function () {
          filterJsonByDate(getState(id_telefon_missed));
      });
      

      Wenn Du willst, kann ich Dir das vis-Widget auch raussuchen.

      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

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

        @kellerassel75
        Hier das widget
        JSON als Tabelle ist hier beschrieben

        K 1 Antwort Letzte Antwort
        0
        • E ente34

          @kellerassel75
          Hier das widget
          JSON als Tabelle ist hier beschrieben

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

          @ente34
          Danke für die schnelle Antwort!

          Fehler:

          javascript.0	2021-01-31 14:45:21.675	warn	(27920) script.js.test: {'val':'[{\'id\':4097,\'type\':\'2\',\'caller\':\'****\',\'called\':\'SIP: ****\',\'callednumber\':\'****\',\'name\':\'\',\'numbertype\':\'sip\',\'device\':\'\',\'port\':\'-1\
          javascript.0	2021-01-31 14:43:58.384	error	(27920) script.js.test: Please disable that setting or use "getState" with a callback, e.g.: getState("tr-064.0.calllists.missed.json", (err, state) => { ... });
          javascript.0	2021-01-31 14:43:58.383	error	(27920) script.js.test: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
          

          Und ich wollte richtige Datenpunte - Zahlen nicht JSON!

          Falko

          E paul53P 3 Antworten Letzte Antwort
          0
          • K Kellerassel75

            @ente34
            Danke für die schnelle Antwort!

            Fehler:

            javascript.0	2021-01-31 14:45:21.675	warn	(27920) script.js.test: {'val':'[{\'id\':4097,\'type\':\'2\',\'caller\':\'****\',\'called\':\'SIP: ****\',\'callednumber\':\'****\',\'name\':\'\',\'numbertype\':\'sip\',\'device\':\'\',\'port\':\'-1\
            javascript.0	2021-01-31 14:43:58.384	error	(27920) script.js.test: Please disable that setting or use "getState" with a callback, e.g.: getState("tr-064.0.calllists.missed.json", (err, state) => { ... });
            javascript.0	2021-01-31 14:43:58.383	error	(27920) script.js.test: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
            

            Und ich wollte richtige Datenpunte - Zahlen nicht JSON!

            Falko

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

            @kellerassel75
            Wo startest Du Dein Script?
            Was für eine Hardware verwendest Du? Version IoBroker?

            Bei mir kommt die Ausgabe unter dem javascript adapter:

            javascript.0	2021-01-31 15:05:09.774	info	(16568) script.js.Anruf: registered 1 subscription and 1 schedule
            javascript.0	2021-01-31 15:05:09.758	info	(16568) Start javascript script.js.Anruf```
            1 Antwort Letzte Antwort
            0
            • K Kellerassel75

              @ente34
              Danke für die schnelle Antwort!

              Fehler:

              javascript.0	2021-01-31 14:45:21.675	warn	(27920) script.js.test: {'val':'[{\'id\':4097,\'type\':\'2\',\'caller\':\'****\',\'called\':\'SIP: ****\',\'callednumber\':\'****\',\'name\':\'\',\'numbertype\':\'sip\',\'device\':\'\',\'port\':\'-1\
              javascript.0	2021-01-31 14:43:58.384	error	(27920) script.js.test: Please disable that setting or use "getState" with a callback, e.g.: getState("tr-064.0.calllists.missed.json", (err, state) => { ... });
              javascript.0	2021-01-31 14:43:58.383	error	(27920) script.js.test: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
              

              Und ich wollte richtige Datenpunte - Zahlen nicht JSON!

              Falko

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

              @kellerassel75 sagte: because the adapter setting "Do not subscribe to all states on start" is enabled.

              Haken in der Konfiguration der Javascript-Instanz entfernen!

              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 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @kellerassel75 sagte: because the adapter setting "Do not subscribe to all states on start" is enabled.

                Haken in der Konfiguration der Javascript-Instanz entfernen!

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

                @paul53
                Danke!
                Was bewirkt der Haken?

                paul53P 1 Antwort Letzte Antwort
                0
                • E ente34

                  @paul53
                  Danke!
                  Was bewirkt der Haken?

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

                  @ente34 sagte: Was bewirkt der Haken?

                  Der Haken bewirkt, dass Zustände nicht in der JS-Instanz gepuffert werden, und deshalb die synchrone Version von

                  var state = getState(id); // synchrone Version ohne Callback
                  

                  nicht verwendet werden kann.

                  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

                  1 Antwort Letzte Antwort
                  0
                  • E Offline
                    E Offline
                    ente34
                    schrieb am zuletzt editiert von
                    #9

                    @paul53
                    Fast verstanden, wofür könnte das gut sein (Speicherplatz sparen?)

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • E ente34

                      @paul53
                      Fast verstanden, wofür könnte das gut sein (Speicherplatz sparen?)

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

                      @ente34 sagte: wofür könnte das gut sein (Speicherplatz sparen?)

                      Ja.
                      Bisher ist mir hier im Forum noch kein Script aufgefallen, das die asynchrone Version von getstate(id, callback) verwendet.

                      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

                      1 Antwort Letzte Antwort
                      0
                      • K Kellerassel75

                        @ente34
                        Danke für die schnelle Antwort!

                        Fehler:

                        javascript.0	2021-01-31 14:45:21.675	warn	(27920) script.js.test: {'val':'[{\'id\':4097,\'type\':\'2\',\'caller\':\'****\',\'called\':\'SIP: ****\',\'callednumber\':\'****\',\'name\':\'\',\'numbertype\':\'sip\',\'device\':\'\',\'port\':\'-1\
                        javascript.0	2021-01-31 14:43:58.384	error	(27920) script.js.test: Please disable that setting or use "getState" with a callback, e.g.: getState("tr-064.0.calllists.missed.json", (err, state) => { ... });
                        javascript.0	2021-01-31 14:43:58.383	error	(27920) script.js.test: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
                        

                        Und ich wollte richtige Datenpunte - Zahlen nicht JSON!

                        Falko

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

                        @kellerassel75
                        In Zeile 19 hast Du das obj in der Hand:

                        setState(Nummer,el.caller)
                        ....
                        setState(Name,el.name)
                        

                        kannst Du Dir einen Anruf ausfiltern

                        1 Antwort Letzte Antwort
                        0
                        • K Offline
                          K Offline
                          Kellerassel75
                          schrieb am zuletzt editiert von Kellerassel75
                          #12

                          @ente34
                          Also Haken ist raus! Fehler ist behoben!
                          Hardware ist Raspi4. Versin ioBroker.admin 4.1.11!
                          Falko

                          16:06:40.026	info	javascript.0 (12175) Start javascript script.js.test
                          16:06:40.064	info	javascript.0 (12175) script.js.test: registered 1 subscription and 1 schedule
                          

                          Unter Objekt ist dann nur "[]"!

                          E 1 Antwort Letzte Antwort
                          0
                          • K Kellerassel75

                            @ente34
                            Also Haken ist raus! Fehler ist behoben!
                            Hardware ist Raspi4. Versin ioBroker.admin 4.1.11!
                            Falko

                            16:06:40.026	info	javascript.0 (12175) Start javascript script.js.test
                            16:06:40.064	info	javascript.0 (12175) script.js.test: registered 1 subscription and 1 schedule
                            

                            Unter Objekt ist dann nur "[]"!

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

                            @kellerassel75
                            Na ja, hast Du verpasste Anrufe heute?
                            Sonst Zeile 18:

                            if (1 || el_date === date)
                            
                            K 1 Antwort Letzte Antwort
                            0
                            • E ente34

                              @kellerassel75
                              Na ja, hast Du verpasste Anrufe heute?
                              Sonst Zeile 18:

                              if (1 || el_date === date)
                              
                              K Offline
                              K Offline
                              Kellerassel75
                              schrieb am zuletzt editiert von Kellerassel75
                              #14

                              16:17:09.144 error javascript.0 (12519) script.js.test compile failed: at script.js.test:45

                              Sorry mein Fehler { vergessen!

                              Nun schreibt er mir die ganze Tabelle nach javascript.0.telefon.missed_today.json!

                              Im Log steht:

                              javascript.0	2021-01-31 16:17:09.150	error	(12519) at processTicksAndRejections (internal/process/task_queues.js:97:5)
                              javascript.0	2021-01-31 16:17:09.150	error	(12519) at runMicrotasks (<anonymous>)
                              javascript.0	2021-01-31 16:17:09.150	error	(12519) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
                              javascript.0	2021-01-31 16:17:09.149	error	(12519) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                              javascript.0	2021-01-31 16:17:09.149	error	(12519) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17
                              javascript.0	2021-01-31 16:17:09.149	error	(12519) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1140:17
                              javascript.0	2021-01-31 16:17:09.149	error	(12519) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1559:17
                              javascript.0	2021-01-31 16:17:09.146	error	(12519) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1503:37)
                              javascript.0	2021-01-31 16:17:09.146	error	(12519) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1280:28)
                              javascript.0	2021-01-31 16:17:09.146	error	(12519) at Object.createScript (vm.js:261:10)
                              javascript.0	2021-01-31 16:17:09.146	error	(12519) at new Script (vm.js:88:7)
                              javascript.0	2021-01-31 16:17:09.145	error	(12519) SyntaxError: Missing catch or finally after try
                              javascript.0	2021-01-31 16:17:09.145	error	(12519) ^
                              javascript.0	2021-01-31 16:17:09.145	error	(12519) }
                              javascript.0	2021-01-31 16:17:09.144	error	at script.js.test:45
                              javascript.0	2021-01-31 16:17:09.144	error	(12519) script.js.test compile failed: 
                              
                              E 1 Antwort Letzte Antwort
                              0
                              • K Kellerassel75

                                16:17:09.144 error javascript.0 (12519) script.js.test compile failed: at script.js.test:45

                                Sorry mein Fehler { vergessen!

                                Nun schreibt er mir die ganze Tabelle nach javascript.0.telefon.missed_today.json!

                                Im Log steht:

                                javascript.0	2021-01-31 16:17:09.150	error	(12519) at processTicksAndRejections (internal/process/task_queues.js:97:5)
                                javascript.0	2021-01-31 16:17:09.150	error	(12519) at runMicrotasks (<anonymous>)
                                javascript.0	2021-01-31 16:17:09.150	error	(12519) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
                                javascript.0	2021-01-31 16:17:09.149	error	(12519) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                                javascript.0	2021-01-31 16:17:09.149	error	(12519) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17
                                javascript.0	2021-01-31 16:17:09.149	error	(12519) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1140:17
                                javascript.0	2021-01-31 16:17:09.149	error	(12519) at /opt/iobroker/node_modules/iobroker.javascript/main.js:1559:17
                                javascript.0	2021-01-31 16:17:09.146	error	(12519) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1503:37)
                                javascript.0	2021-01-31 16:17:09.146	error	(12519) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1280:28)
                                javascript.0	2021-01-31 16:17:09.146	error	(12519) at Object.createScript (vm.js:261:10)
                                javascript.0	2021-01-31 16:17:09.146	error	(12519) at new Script (vm.js:88:7)
                                javascript.0	2021-01-31 16:17:09.145	error	(12519) SyntaxError: Missing catch or finally after try
                                javascript.0	2021-01-31 16:17:09.145	error	(12519) ^
                                javascript.0	2021-01-31 16:17:09.145	error	(12519) }
                                javascript.0	2021-01-31 16:17:09.144	error	at script.js.test:45
                                javascript.0	2021-01-31 16:17:09.144	error	(12519) script.js.test compile failed: 
                                
                                E Offline
                                E Offline
                                ente34
                                schrieb am zuletzt editiert von
                                #15

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

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

                                  @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 paul53P 2 Antworten 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

                                    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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          242

                                          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