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 Werte in Datenpunkte

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    497

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

JSON Werte in Datenpunkte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
18 Beiträge 4 Kommentatoren 4.5k 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.
  • A Offline
    A Offline
    andre1979
    schrieb am zuletzt editiert von
    #1

    Hallo Leute,

    ich lese hier schon sehr lange mit und habe bis jetzt fast alle Probleme mit Hilfe des Forums lösen können.

    Jetzt stehe ich an einer Sache an und komme nicht weiter, daher habe ich mich jetzt mal angemeldet unf hoffe ihr könnt mir ein wenig helfen…

    Nun zum Problem:

    Ich nutze für eine meiner Klimaanlagen einen Sensibo Sky Adapter. Es ist möglich die aktuellen Einstellung über eine URL abzufragen. Das klappt soweit auch. Was leider nicht klappt, ist das zerlegen in die einzelnen Datenpunkte...

    Hier die Antwort der URL in einem Browser:

    {"status": "success", "moreResults": true, "result": [{"status": "Success", "reason": "UserRequest", "acState": {"on": false, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "YfW8tx7HND", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["targetTemperature"], "id": "AjGJjSuvHX", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 77, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 25, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["targetTemperature"], "id": "jdrfSqMWYD", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "HQvfSiJosK", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": false, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "LxE4dT59Hb", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "wmPZngxUuY", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": false, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "gf4Ye7waWu", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "DsXUNFuh8m", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": false, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "D5KratY3vr", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["fanLevel"], "id": "JE4DhCUodg", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "medium", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["fanLevel"], "id": "fy2E7fVLMz", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "medium_low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["fanLevel"], "id": "wbxgs2QKFX", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["swing"], "id": "F8FYwDyhnr", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "stopped"}, "changedProperties": ["swing"], "id": "vzFJx2sNia", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedTop"}, "changedProperties": ["swing"], "id": "s8MKwEBf2v", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedMiddleTop"}, "changedProperties": ["swing"], "id": "wDis4aUxvw", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedMiddle"}, "changedProperties": ["swing"], "id": "AR5krPydeZ", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedMiddleBottom"}, "changedProperties": ["swing"], "id": "rEWXkbNrhN", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedBottom"}, "changedProperties": ["swing"], "id": "sdVjPCnGbE", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["swing"], "id": "YKJemgmtE5", "failureReason": null}]}
    

    Hier das Script, es werden aber keine Datenpunkte erstellt…

    `var request = require('request');
    
     Intervall = setInterval(SendRequest,10000);
    
    function SendRequest(){
    
        var options = {
            url: 'https://home.sensibo.com/api/v2/pods/2mXar2sZ/acStates?apiKey=rBQm5j58LKw76FrUzLIU5KhgYoP2Rz',
        };
    
        request(options, function (error, response, body){
    
            if (!error){
                CreateDevices(JSON.parse(body));
                console.log(body);
            }
    
            else{ console.error(error);}
    
        });
    
    }//End of Function SendRequest
    
    function CreateDevices(data){
    
    if ("undefined" !== typeof  data.response){    
    
        var Group_by='name';
    
        for (i = 0; i < data.response.length; i++) {
    
                     for (var ObjName in data.response[i]) {
    
                         if (!getObject('javascript.0.tests.Devices.'+data.response[i][Group_by].toString().replace(/\s+/g, '_')+'.'+ObjName)){
    
                             createState('javascript.0.tests.Devices.'+data.response[i][Group_by].toString().replace(/\s+/g, '_')+'.'+ObjName,data.response[i][ObjName],{type: typeof data.response[i][ObjName], role: ObjName});
    
                             console.log('ERSTELLT');
                         }
    
                         else{setState('javascript.0.tests.Devices.'+data.response[i][Group_by].toString().replace(/\s+/g, '_')+'.'+ObjName,data.response[i][ObjName],akt=true)}
                     }
        }
    }
    else{console.warn('Response in JSON nicht gefunden ! ')}
    
    }//End of Function CreateDevices` 
    
    Das Problem ist, das in "function CreateDevices(data)" direkt zu "else{console.warn('Response in JSON nicht gefunden ! ')}" geht und in den Log eingetragen wird. Datenpunkte werden keine erstellt..
    
    Für mich sind momentan nur die Werte aus result/0/ wichtig, da dies die aktuellen Sollwerte sind.
    
    Wäre super, wenn ihr mir einen Tipp geben könnt, warum mein Script nicht geht....
    
    Vielen Dank im Voraus an die Community![/i][/i][/i][/i][/i][/i][/i]
    
    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #2

      @andre1979:

      Das Problem ist, das in "function CreateDevices(data)" direkt zu "else{console.warn('Response in JSON nicht gefunden ! ')}" geht und in den Log eingetragen wird. Datenpunkte werden keine erstellt..

      Für mich sind momentan nur die Werte aus result/0/ wichtig, da dies die aktuellen Sollwerte sind.

      Wäre super, wenn ihr mir einen Tipp geben könnt, warum mein Script nicht geht….

      Vielen Dank im Voraus an die Community! `

      Du übergibst Deiner Funktion CreateDevices(data) den body, sprich den Inhalt, den Du oben als Rückmeldung gepostet hast.

      Dort ist kein Response drin, auf den Du in der Funktion CreateDevices(data) testes. Damit kommst Du in den else Zweig der if Abfrage und es werden keine Datenpunkte angelegt.

      Im weiteren Verlauf verwendest Du weiter response. Es muss aus meiner Sicht immer result sein. Result kommt im übergebenen json vor.

      Dann sucht Du immer im json unter result ."name".

      statt

      data.response__[Group_by]

      muss hier

      data.result__[ObjName]

      response gibt es nicht => result

      Group_by ist bei Dir immer "name"

      ObjName ist der Name des jeweiligen Datenpunks aus dem JSON.

      Dann kommen noch ein paar Probleme in Deiner Funktion (Arrays innerhalb des Objekts, null, …).____

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        @andre1979:

        Jetzt stehe ich an einer Sache an und komme nicht weiter, daher habe ich mich jetzt mal angemeldet unf hoffe ihr könnt mir ein wenig helfen… `

        Ach ja… und herzlich willkommen im Forum :-)

        Viel Spaß mit ioBroker!

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          andre1979
          schrieb am zuletzt editiert von
          #4

          Hallo Ruhr70,

          vielen Dank für deine Erklärung. Wie Du dir vielleicht vorstellen kannst, bin ich jetzt als Nicht-Profi nicht wirklich in der Lage Dir zu folgen.. :D

          Wenn möglich kannst Du mir die Stellen, an den die Änderung hin muss in meinem Script markieren. Wenn ich genau wüsste wo die Änderung hin muss, kann ich es bestimmt auch besser nachvollziehen.

          Vielen Dank schon mal für deinen Support!

          1 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            andre1979
            schrieb am zuletzt editiert von
            #5

            So, habe noch etwas rum probiert und habe es hinbekommen.

            `var request = require('request');
            
             Intervall = setInterval(SendRequest,1000);
            
            function SendRequest(){
            
                var options = {
                    url: 'https://home.sensibo.com/api/v2/pods/2mXar2sZ/acStates?apiKey=rBQm5j58LKw76FrUzLIU5KhgYoP2Rz',
                };
            
                request(options, function (error, response, body){
            
                    if (!error){
                        CreateDevices(JSON.parse(body));
                        console.log(body);
                    }
            
                    else{ console.error(error);}
            
                });
            
            }//End of Function SendRequest
            
            function CreateDevices(data){
            
            if ("undefined" !== typeof  data.result){    
            
                for (i = 0; i < data.result.length; i++) {
            
                             for (var ObjName in data.result[i].acState) {
            
                                 if (!getObject('javascript.0.KlimaEsszimmer.States.' +i +'.acState' +'.' +ObjName)){
            
                                     createState('javascript.0.KlimaEsszimmer.States.' +i +'.acState' +'.' +ObjName,data.result[i].acState[ObjName],{type: typeof data.result[i].acState[ObjName], role: ObjName});
            
                                     console.log('ERSTELLT');
                                 }
            
                                 else{setState('javascript.0.KlimaEsszimmer.States.' +i +'.acState' + '.' +ObjName,data.result[i].acState[ObjName],akt=true)}
                             }
                }
            }
            else{console.warn('Response in JSON nicht gefunden ! ')}
            
            }//End of Function CreateDevices`[/i][/i][/i][/i]
            
            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #6

              @andre1979:

              So, habe noch etwas rum probiert und habe es hinbekommen. `

              Top! :-)

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • KevinK Offline
                KevinK Offline
                Kevin
                schrieb am zuletzt editiert von
                #7

                Hallo zusammen,
                Ich bin ganz neu in der Welt des ioBrokers und Umsteiger von fhem.

                Ich versuche gerade auch eine Json von meinem 3D Drucker auszulesen und die entsprechenden Datensätze selbst anlegen zulassen. Leider komme ich nicht weiter:

                Das ist der Output von meiner URL von dem 3D Drucker.

                {"status":"P","coords":{"axesHomed":[1,1,1,1,1,1],"wpl":1,"xyz":[160.851,108.581,27.592,45.000,2.000,24.000],"machine":[115.842,58.395,33.482,45.000,2.000,18.110],"extr":[20722.2,0.0,0.0,0.0]},"speeds":{"requested":40.0,"top":40.0},"currentTool":0,"params":{"atxPower":-1,"fanPercent":[0,100,-1,90,100,0,100,0,100,50],"speedFactor":100.0,"extrFactors":[100.0,100.0,100.0,100.0],"babystep":0.000},"seq":2,"sensors":{"probeValue":0,"fanRPM":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},"temps":{"bed":{"current":90.0,"active":90.0,"standby":0.0,"state":2,"heater":0},"current":[90.0,235.4,30.4,31.9,32.7],"state":[2,2,0,0,0],"tools":{"active":[[235.0],[0.0],[0.0],[0.0]],"standby":[[235.0],[0.0],[0.0],[0.0]]},"extra":[]},"time":45569.0,"currentLayer":138,"currentLayerTime":77.1,"extrRaw":[20698.6,0.0,0.0,0.0],"fractionPrinted":88.1,"filePosition":16983003,"firstLayerDuration":749.6,"firstLayerHeight":0.20,"printDuration":24418.6,"warmUpDuration":397.2,"timesLeft":{"file":3431.8,"filament":2551.1,"layer":6133.5}}
                

                Das ist dazu mein Script:

                var request = require('request');
                
                 
                 Intervall = setInterval(SendRequest,5000);
                 
                function SendRequest(){
                 
                    var options = {
                        url: 'http://URLVON3DRUCKER',
                    };
                 
                    request(options, function (error, response, body){
                 
                        if (!error){
                            CreateDevices(JSON.parse(body));
                            console.log(body);
                        }
                 
                        else{ console.error(error);}
                 
                    });
                 
                }//End of Function SendRequest
                 
                function CreateDevices(data){
                 
                if ("undefined" !== typeof  data.result){    
                 
                    for (i = 0; i < data.result.length; i++) {
                 
                                 for (var ObjName in data.result[i].acState) {
                 
                                     if (!getObject('0_userdata.0.3DPrinter.' +i +'.acState' +'.' +ObjName)){
                 
                                         createState('0_userdata.0.3DPrinter.' +i +'.acState' +'.' +ObjName,data.result[i].acState[ObjName],{type: typeof data.result[i].acState[ObjName], role: ObjName});
                 
                                         console.log('ERSTELLT');
                                     }
                 
                                     else{setState('0_userdata.0.3DPrinter.' +i +'.acState' + '.' +ObjName,data.result[i].acState[ObjName],akt=true)}
                                 }
                    }
                }
                else{console.warn('Response in JSON nicht gefunden ! ')}
                 
                }//End of Function CreateDevices
                

                Dann bekomme ich folgende Meldung in dem Log:

                javascript.0	2020-07-29 20:53:50.291	warn	(24214) script.js.common.3D_Printer: Response in JSON nicht gefunden !
                javascript.0	2020-07-29 20:53:45.258	info	(24214) script.js.common.3D_Printer: {"status":"P","coords":{"axesHomed":[1,1,1,1,1,1],"wpl":1,"xyz":[164.129,107.010,27.592,45.000,2.000,24.000],"machine":[123.229,61.852,33.48
                

                An was kann das liegen?

                Die Werte einzeln an ioBroker zu schreiben bekomme ich über ein anderes Skript hin. Nur hätte ich gerne alle Werte automatisch angelegt.

                paul53P 1 Antwort Letzte Antwort
                0
                • KevinK Kevin

                  Hallo zusammen,
                  Ich bin ganz neu in der Welt des ioBrokers und Umsteiger von fhem.

                  Ich versuche gerade auch eine Json von meinem 3D Drucker auszulesen und die entsprechenden Datensätze selbst anlegen zulassen. Leider komme ich nicht weiter:

                  Das ist der Output von meiner URL von dem 3D Drucker.

                  {"status":"P","coords":{"axesHomed":[1,1,1,1,1,1],"wpl":1,"xyz":[160.851,108.581,27.592,45.000,2.000,24.000],"machine":[115.842,58.395,33.482,45.000,2.000,18.110],"extr":[20722.2,0.0,0.0,0.0]},"speeds":{"requested":40.0,"top":40.0},"currentTool":0,"params":{"atxPower":-1,"fanPercent":[0,100,-1,90,100,0,100,0,100,50],"speedFactor":100.0,"extrFactors":[100.0,100.0,100.0,100.0],"babystep":0.000},"seq":2,"sensors":{"probeValue":0,"fanRPM":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},"temps":{"bed":{"current":90.0,"active":90.0,"standby":0.0,"state":2,"heater":0},"current":[90.0,235.4,30.4,31.9,32.7],"state":[2,2,0,0,0],"tools":{"active":[[235.0],[0.0],[0.0],[0.0]],"standby":[[235.0],[0.0],[0.0],[0.0]]},"extra":[]},"time":45569.0,"currentLayer":138,"currentLayerTime":77.1,"extrRaw":[20698.6,0.0,0.0,0.0],"fractionPrinted":88.1,"filePosition":16983003,"firstLayerDuration":749.6,"firstLayerHeight":0.20,"printDuration":24418.6,"warmUpDuration":397.2,"timesLeft":{"file":3431.8,"filament":2551.1,"layer":6133.5}}
                  

                  Das ist dazu mein Script:

                  var request = require('request');
                  
                   
                   Intervall = setInterval(SendRequest,5000);
                   
                  function SendRequest(){
                   
                      var options = {
                          url: 'http://URLVON3DRUCKER',
                      };
                   
                      request(options, function (error, response, body){
                   
                          if (!error){
                              CreateDevices(JSON.parse(body));
                              console.log(body);
                          }
                   
                          else{ console.error(error);}
                   
                      });
                   
                  }//End of Function SendRequest
                   
                  function CreateDevices(data){
                   
                  if ("undefined" !== typeof  data.result){    
                   
                      for (i = 0; i < data.result.length; i++) {
                   
                                   for (var ObjName in data.result[i].acState) {
                   
                                       if (!getObject('0_userdata.0.3DPrinter.' +i +'.acState' +'.' +ObjName)){
                   
                                           createState('0_userdata.0.3DPrinter.' +i +'.acState' +'.' +ObjName,data.result[i].acState[ObjName],{type: typeof data.result[i].acState[ObjName], role: ObjName});
                   
                                           console.log('ERSTELLT');
                                       }
                   
                                       else{setState('0_userdata.0.3DPrinter.' +i +'.acState' + '.' +ObjName,data.result[i].acState[ObjName],akt=true)}
                                   }
                      }
                  }
                  else{console.warn('Response in JSON nicht gefunden ! ')}
                   
                  }//End of Function CreateDevices
                  

                  Dann bekomme ich folgende Meldung in dem Log:

                  javascript.0	2020-07-29 20:53:50.291	warn	(24214) script.js.common.3D_Printer: Response in JSON nicht gefunden !
                  javascript.0	2020-07-29 20:53:45.258	info	(24214) script.js.common.3D_Printer: {"status":"P","coords":{"axesHomed":[1,1,1,1,1,1],"wpl":1,"xyz":[164.129,107.010,27.592,45.000,2.000,24.000],"machine":[123.229,61.852,33.48
                  

                  An was kann das liegen?

                  Die Werte einzeln an ioBroker zu schreiben bekomme ich über ein anderes Skript hin. Nur hätte ich gerne alle Werte automatisch angelegt.

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

                  @Kevin sagte:

                  An was kann das liegen?

                  Das Objekt enthält keine Eigenschaft result und ist auch kein Array.
                  Versuche es mal so:

                  function iter(name, obj) {
                     for(let i in obj) {
                        if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]);
                        else {
                           log(name + '.' + i + ': ' + obj[i]);
                           if(existsState(name + '.' + i)) setState(name + '.' + i, obj[i]);
                           else createState(name + '.' + i, obj[i]); // type: "mixed"
                        }
                     }
                  }
                  
                  function SendRequest(){
                      var options = {
                          url: 'http://URLVON3DRUCKER'
                      };
                      request(options, function (error, response, body){
                          if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body));
                          else console.error(error);
                      });
                  }
                  
                  schedule('*/5 * * * * *', SendRequest);
                  

                  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

                  KevinK 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @Kevin sagte:

                    An was kann das liegen?

                    Das Objekt enthält keine Eigenschaft result und ist auch kein Array.
                    Versuche es mal so:

                    function iter(name, obj) {
                       for(let i in obj) {
                          if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]);
                          else {
                             log(name + '.' + i + ': ' + obj[i]);
                             if(existsState(name + '.' + i)) setState(name + '.' + i, obj[i]);
                             else createState(name + '.' + i, obj[i]); // type: "mixed"
                          }
                       }
                    }
                    
                    function SendRequest(){
                        var options = {
                            url: 'http://URLVON3DRUCKER'
                        };
                        request(options, function (error, response, body){
                            if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body));
                            else console.error(error);
                        });
                    }
                    
                    schedule('*/5 * * * * *', SendRequest);
                    
                    KevinK Offline
                    KevinK Offline
                    Kevin
                    schrieb am zuletzt editiert von
                    #9

                    @paul53 said in JSON Werte in Datenpunkte:

                                                                                                                                                function iter(name, obj) {                                                                                                                                                                               for(let i in obj) {                                                                                                                                                                                  if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]);                                                                                                                                                                                  else {                                                                                                                                                                                     log(name + '.' + i + ': ' + obj[i]);                                                                                                                                                                                     if(existsState(name + '.' + i) setState(name + '.' + i, obj[i]);                                                                                                                                                                                     else createState(name + '.' + i, obj[i]); // type: "mixed"                                                                                                                                                                                  }                                                                                                                                                                               }                                                                                                                                                                            }                                                                                                                                                                                                                                                                                                                                                         function SendRequest(){                                                                                                                                                                                var options = {                                                                                                                                                                                    url: 'http://URLVON3DRUCKER',                                                                                                                                                                                };                                                                                                                                                                                request(options, function (error, response, body){                                                                                                                                                                                    if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body));                                                                                                                                                                                    else console.error(error);                                                                                                                                                                                });                                                                                                                                                                            }                                                                                                                                                                                                                                                                                                                                                         schedule('*/5 * * * * *', SendRequest);                                            
                    

                    Danke schon mal für dein Hilfe :)

                    Leider hat es nicht ganz funktioniert:

                    javascript.0	2020-07-29 22:56:55.543	error	(24214) at process._tickCallback (internal/process/next_tick.js:68:7)
                    javascript.0	2020-07-29 22:56:55.543	error	(24214) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                    javascript.0	2020-07-29 22:56:55.542	error	(24214) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                    javascript.0	2020-07-29 22:56:55.542	error	(24214) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17)
                    javascript.0	2020-07-29 22:56:55.542	error	(24214) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1124:17)
                    javascript.0	2020-07-29 22:56:55.541	error	(24214) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1533:17)
                    javascript.0	2020-07-29 22:56:55.541	error	(24214) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1480:37)
                    javascript.0	2020-07-29 22:56:55.541	error	(24214) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1257:28)
                    javascript.0	2020-07-29 22:56:55.540	error	(24214) at Object.createScript (vm.js:277:10)
                    javascript.0	2020-07-29 22:56:55.540	error	(24214) at new Script (vm.js:83:7)
                    javascript.0	2020-07-29 22:56:55.540	error	(24214) SyntaxError: Unexpected identifier
                    javascript.0	2020-07-29 22:56:55.539	error	(24214) ^^^^^^^^
                    javascript.0	2020-07-29 22:56:55.539	error	(24214) if(existsState(name + '.' + i) setState(name + '.' + i, obj[i]);
                    javascript.0	2020-07-29 22:56:55.539	error	at script.js.common.Skript_1:6
                    javascript.0	2020-07-29 22:56:55.539	error	(24214) script.js.common.Skript_1 compile failed:
                    
                    paul53P 1 Antwort Letzte Antwort
                    0
                    • KevinK Kevin

                      @paul53 said in JSON Werte in Datenpunkte:

                                                                                                                                                  function iter(name, obj) {                                                                                                                                                                               for(let i in obj) {                                                                                                                                                                                  if(typeof obj[i] == 'object') iter(name + '.' + i, obj[i]);                                                                                                                                                                                  else {                                                                                                                                                                                     log(name + '.' + i + ': ' + obj[i]);                                                                                                                                                                                     if(existsState(name + '.' + i) setState(name + '.' + i, obj[i]);                                                                                                                                                                                     else createState(name + '.' + i, obj[i]); // type: "mixed"                                                                                                                                                                                  }                                                                                                                                                                               }                                                                                                                                                                            }                                                                                                                                                                                                                                                                                                                                                         function SendRequest(){                                                                                                                                                                                var options = {                                                                                                                                                                                    url: 'http://URLVON3DRUCKER',                                                                                                                                                                                };                                                                                                                                                                                request(options, function (error, response, body){                                                                                                                                                                                    if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body));                                                                                                                                                                                    else console.error(error);                                                                                                                                                                                });                                                                                                                                                                            }                                                                                                                                                                                                                                                                                                                                                         schedule('*/5 * * * * *', SendRequest);                                            
                      

                      Danke schon mal für dein Hilfe :)

                      Leider hat es nicht ganz funktioniert:

                      javascript.0	2020-07-29 22:56:55.543	error	(24214) at process._tickCallback (internal/process/next_tick.js:68:7)
                      javascript.0	2020-07-29 22:56:55.543	error	(24214) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                      javascript.0	2020-07-29 22:56:55.542	error	(24214) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                      javascript.0	2020-07-29 22:56:55.542	error	(24214) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:616:17)
                      javascript.0	2020-07-29 22:56:55.542	error	(24214) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1124:17)
                      javascript.0	2020-07-29 22:56:55.541	error	(24214) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1533:17)
                      javascript.0	2020-07-29 22:56:55.541	error	(24214) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1480:37)
                      javascript.0	2020-07-29 22:56:55.541	error	(24214) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:1257:28)
                      javascript.0	2020-07-29 22:56:55.540	error	(24214) at Object.createScript (vm.js:277:10)
                      javascript.0	2020-07-29 22:56:55.540	error	(24214) at new Script (vm.js:83:7)
                      javascript.0	2020-07-29 22:56:55.540	error	(24214) SyntaxError: Unexpected identifier
                      javascript.0	2020-07-29 22:56:55.539	error	(24214) ^^^^^^^^
                      javascript.0	2020-07-29 22:56:55.539	error	(24214) if(existsState(name + '.' + i) setState(name + '.' + i, obj[i]);
                      javascript.0	2020-07-29 22:56:55.539	error	at script.js.common.Skript_1:6
                      javascript.0	2020-07-29 22:56:55.539	error	(24214) script.js.common.Skript_1 compile failed:
                      
                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #10

                      @Kevin sagte:

                      Leider hat es nicht ganz funktioniert:

                      existsState(id) wird anscheinend angemeckert. Welche Version des Javascript-Adapters ?

                      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

                      KevinK 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @Kevin sagte:

                        Leider hat es nicht ganz funktioniert:

                        existsState(id) wird anscheinend angemeckert. Welche Version des Javascript-Adapters ?

                        KevinK Offline
                        KevinK Offline
                        Kevin
                        schrieb am zuletzt editiert von
                        #11

                        @paul53 Sollte eigentlich die aktuellste Version sein: 4.6.21

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • KevinK Kevin

                          @paul53 Sollte eigentlich die aktuellste Version sein: 4.6.21

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

                          @Kevin
                          Sorry, da fehlt eine schließende Klammer vor setState. Habe sie ergänzt.

                          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

                          KevinK 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @Kevin
                            Sorry, da fehlt eine schließende Klammer vor setState. Habe sie ergänzt.

                            KevinK Offline
                            KevinK Offline
                            Kevin
                            schrieb am zuletzt editiert von
                            #13

                            @paul53 Perfekt danke für die schnelle Hilfe. Genau wie ich es mir vorgestellt habe.

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • KevinK Kevin

                              @paul53 Perfekt danke für die schnelle Hilfe. Genau wie ich es mir vorgestellt habe.

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

                              @Kevin sagte:

                              Genau wie ich es mir vorgestellt habe.

                              Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].

                              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

                              KevinK 1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @Kevin sagte:

                                Genau wie ich es mir vorgestellt habe.

                                Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].

                                KevinK Offline
                                KevinK Offline
                                Kevin
                                schrieb am zuletzt editiert von
                                #15

                                @paul53 Ich habe noch eine Frage :)

                                Lässt sich verhindern, dass die Abfrage durchgeführt wird, wenn der Drucker ausgeschaltet ist?

                                javascript.0	2020-07-31 07:08:11.796	error	(24214) Request error: Error: connect ETIMEDOUT 91.15.159.27:8000
                                javascript.0	2020-07-31 07:08:11.795	error	(24214) script.js.common.3D_Printer: {'errno':'ETIMEDOUT','code':'ETIMEDOUT','syscall':'connect','address':'IP','port':8000}
                                
                                paul53P 1 Antwort Letzte Antwort
                                0
                                • KevinK Kevin

                                  @paul53 Ich habe noch eine Frage :)

                                  Lässt sich verhindern, dass die Abfrage durchgeführt wird, wenn der Drucker ausgeschaltet ist?

                                  javascript.0	2020-07-31 07:08:11.796	error	(24214) Request error: Error: connect ETIMEDOUT 91.15.159.27:8000
                                  javascript.0	2020-07-31 07:08:11.795	error	(24214) script.js.common.3D_Printer: {'errno':'ETIMEDOUT','code':'ETIMEDOUT','syscall':'connect','address':'IP','port':8000}
                                  
                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von paul53
                                  #16

                                  @Kevin sagte:

                                  wenn der Drucker ausgeschaltet ist?

                                  Wie kann man das feststellen ? Nur ping ?

                                  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

                                  KevinK 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @Kevin sagte:

                                    wenn der Drucker ausgeschaltet ist?

                                    Wie kann man das feststellen ? Nur ping ?

                                    KevinK Offline
                                    KevinK Offline
                                    Kevin
                                    schrieb am zuletzt editiert von
                                    #17

                                    @paul53 Ich könnte es über einen Datenpunkt an der Fritzbox abfragen. Dann wäre Datenpunkt 3Drucker.active auf true sobald er im netzwerk ist

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • KevinK Kevin

                                      @paul53 Ich könnte es über einen Datenpunkt an der Fritzbox abfragen. Dann wäre Datenpunkt 3Drucker.active auf true sobald er im netzwerk ist

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

                                      @Kevin sagte:

                                      über einen Datenpunkt an der Fritzbox abfragen

                                      Dann mache die Abfrage als erstes in der Funktion SendRequest().

                                      function SendRequest(){
                                        if(getState('abc.0.xyz.3Drucker.active').val) {
                                          var options = {
                                              url: 'http://URLVON3DRUCKER'
                                          };
                                          request(options, function (error, response, body){
                                              if (!error) iter('0_userdata.0.3DPrinter', JSON.parse(body));
                                              else console.error(error);
                                          });
                                        }
                                      }
                                      

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


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      465

                                      Online

                                      32.6k

                                      Benutzer

                                      81.9k

                                      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