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. JavaScript
  5. Json einlesen und verarbeiten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Json einlesen und verarbeiten

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 3 Kommentatoren 617 Aufrufe 3 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.
  • W Offline
    W Offline
    w2kscout
    schrieb am zuletzt editiert von w2kscout
    #1

    Hallo ich versuche mich an Json nur leider bekomme ich es nicht hin. Ich habe eine json die ich im Browser über http://192.168.X.X/start.json aufrufe. Das Ergebnis ist:

    {
    "time":"08:13:08",
    "date":"23.05.2019",
    "fw":"1.0.0",
    "cpu_temp":"33.96",
    "sensor1_qual":"0",
    "sensor1":"16.38",
    "sensor1_name":"Wassertemperatur",
    "sensor2_qual":"0",
    "sensor2":"11.94",
    "sensor2_name":"Außentemperatur",
    "sensor3_qual":"1",
    "sensor3":"4095.94",
    "sensor3_name":"Sensor 3",
    "sensor4_qual":"1",
    "sensor4":"4095.94",
    "sensor4_name":"Sensor 4",
    "relais1":"0",
    "relais1_name":"Filterpumpe",
    "relais2":"2",
    "relais2_name":"Solar",
    "relais3":"2",
    "relais3_name":"Heizung"
    }
    

    Jetzt wollte ich mir die Daten (Sensor 1 und Sensor 2) in zwei Variablen hinterlegen. Doch leider funktioniert es nicht.

    // Pool
    
    createState('javascript.0.PoolController.sensor1',0, {type: 'number',name: 'sensor1',unit: '°C', read: true,write: true,role: 'per Script'});
    createState('javascript.0.PoolController.sensor2',0, {type: 'number',name: 'sensor2',unit: '°C', read: true,write: true,role: 'per Script'});
    // Werte holen ------------------------------------------------------------------------------------------------------------------------
    
    function weiter() {
        var request = require('request');
        request('http://192.168.178.75/start.json', function (error, response, body) {
            if (!error && response.statusCode == 200) {
                log ("json = " + body);
                var obj = JSON.parse(body);
                   
                    setState('javascript.0.PoolController.sensor1', obj.sensor1);
                    setState('javascript.0.PoolController.sensor2', obj.sensor2);
                    
                    
            });
    }
    }
    // alle 2 Minuten ------------------------------------------------------------------------------------------------------------------------
    
    schedule("*/2 * * * *", function () {
        weiter();           // Werte holen
       
    });
    
    

    Was habe ich falsch gemacht?

    paul53P 1 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      dna909
      schrieb am zuletzt editiert von
      #2

      Du solltest die Funktion "weiter" auch aufrufen.
      Dann sollte es funktionieren.

      Gruß

      dna909

      Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

      1 Antwort Letzte Antwort
      0
      • W Offline
        W Offline
        w2kscout
        schrieb am zuletzt editiert von
        #3

        Sorry das habe ich nicht verstanden! Was meinst du mit "weiter"? Ich habe von Java keine Ahnung!!!

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          dna909
          schrieb am zuletzt editiert von
          #4

          Du hast die Funktion "weiter" in deinem Code --> function weiter() { ...

          Diese muss aber auch aufgerufen werden, ansonsten passiert da nix.

          Schreib ganz am Ende einfach mal noch ein weiter() hin, dann sollte die Funktion auch aufgerufen werden.

          P.S.: das hier ist Javascript nicht Java :-)

          Gruß

          dna909

          Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

          1 Antwort Letzte Antwort
          0
          • W Offline
            W Offline
            w2kscout
            schrieb am zuletzt editiert von
            #5

            So habe ich verändert nun bekomme ich einen Fehler: error javascript.0 script.js.Garten.Pool compile failed:
            at script.js.Garten.Pool:34

            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              dna909
              schrieb am zuletzt editiert von
              #6

              Ups, hatte den Code nicht bis zum Ende gelesen.
              Vergiss das geschriebene.

              Du erstellst die Datenpunkte als type: number. Im JSON ist der type aber String.
              Ändere beim createState den type mal auf string oder mixed.

              Dann sollte das eigentlich funktionieren.

              Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

              1 Antwort Letzte Antwort
              0
              • W w2kscout

                Hallo ich versuche mich an Json nur leider bekomme ich es nicht hin. Ich habe eine json die ich im Browser über http://192.168.X.X/start.json aufrufe. Das Ergebnis ist:

                {
                "time":"08:13:08",
                "date":"23.05.2019",
                "fw":"1.0.0",
                "cpu_temp":"33.96",
                "sensor1_qual":"0",
                "sensor1":"16.38",
                "sensor1_name":"Wassertemperatur",
                "sensor2_qual":"0",
                "sensor2":"11.94",
                "sensor2_name":"Außentemperatur",
                "sensor3_qual":"1",
                "sensor3":"4095.94",
                "sensor3_name":"Sensor 3",
                "sensor4_qual":"1",
                "sensor4":"4095.94",
                "sensor4_name":"Sensor 4",
                "relais1":"0",
                "relais1_name":"Filterpumpe",
                "relais2":"2",
                "relais2_name":"Solar",
                "relais3":"2",
                "relais3_name":"Heizung"
                }
                

                Jetzt wollte ich mir die Daten (Sensor 1 und Sensor 2) in zwei Variablen hinterlegen. Doch leider funktioniert es nicht.

                // Pool
                
                createState('javascript.0.PoolController.sensor1',0, {type: 'number',name: 'sensor1',unit: '°C', read: true,write: true,role: 'per Script'});
                createState('javascript.0.PoolController.sensor2',0, {type: 'number',name: 'sensor2',unit: '°C', read: true,write: true,role: 'per Script'});
                // Werte holen ------------------------------------------------------------------------------------------------------------------------
                
                function weiter() {
                    var request = require('request');
                    request('http://192.168.178.75/start.json', function (error, response, body) {
                        if (!error && response.statusCode == 200) {
                            log ("json = " + body);
                            var obj = JSON.parse(body);
                               
                                setState('javascript.0.PoolController.sensor1', obj.sensor1);
                                setState('javascript.0.PoolController.sensor2', obj.sensor2);
                                
                                
                        });
                }
                }
                // alle 2 Minuten ------------------------------------------------------------------------------------------------------------------------
                
                schedule("*/2 * * * *", function () {
                    weiter();           // Werte holen
                   
                });
                
                

                Was habe ich falsch gemacht?

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

                @w2kscout Zeile 8 kann ab JS Version 3.3.4 entfallen.

                Ändere bitte ab Zeile 14

                            setState('javascript.0.PoolController.sensor1', parseFloat(obj.sensor1));
                            setState('javascript.0.PoolController.sensor2', parseFloat(obj.sensor2));
                        } else log(error, 'error');
                    }); // Ende request
                } // Ende function
                

                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
                • W Offline
                  W Offline
                  w2kscout
                  schrieb am zuletzt editiert von
                  #8

                  Man was soll ich sagen vielen Dank! Es funktioniert ... Ich wünsche einen schöne Tag.

                  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

                  669

                  Online

                  32.6k

                  Benutzer

                  82.1k

                  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