Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. JSON Daten auslesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    JSON Daten auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      Ingo1977 last edited by

      Hallo,

      ich habe einen Sensor, der seine Werte hier speichert.

      http://x.x.x.x/JSON

      Mit welchem Adapter lese ich die am besten aus und bringe die Werte nach ioBroker?

      Grüße Ingo

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        https://forum.iobroker.net/viewtopic.php?f=20&t=6491&p=66916#p66916 für Javascript.

        1 Reply Last reply Reply Quote 0
        • I
          Ingo1977 last edited by

          Geht leider nicht

          Daten sehen unter der URL so aus:

          {

          "Hardware-Version":1.3,

          "Firmware-Version":1.5,

          }

          Wie mach ich das?

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            const request = require('request');
            const link = 'http://x.x.x.x/JSON';
            
            function versionen() {
                request(link, function(error,response, body) {
                    if(error) log('Fehler request: ' + error, 'error');
                    else {
                        var obj = JSON.parse(body);
                        log('Hardware-Version: ' + obj.Hardware-Version);
                        log('Firmware-Version: ' + obj.Firmware-Version);
                    }    
                });
            }
            
            versionen(); // Skriptstart
            
            
            1 Reply Last reply Reply Quote 0
            • K
              Karl_999 last edited by

              @Ingo1977:

              Mit welchem Adapter lese ich die am besten aus und bringe die Werte nach ioBroker? Eine Möglichkeit ist die Nutzung des systeminfo-Adapters [https://github.com/frankjoke/ioBroker.s … /README.md](https://github.com/frankjoke/ioBroker.systeminfo/blob/master/README.md) > It handles text, HTML, json and XML data types wizh special query mechanisms.

              …

              json for json data to be parsed, on Web entries this means that the received text will be handled as json directly and the regexp/filter will be a JsonParse statement/filter. `

              1 Reply Last reply Reply Quote 0
              • I
                Ingo1977 last edited by

                22:05:17.706 javascript.0 Stop script script.js.common.Skript1

                22:05:18.385 javascript.0 Start javascript script.js.common.Skript1

                22:05:18.385 javascript.0 script.js.common.Skript1 compile failed: at script.js.common.Skript1:1

                ??

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  Poste bitte Dein Skript (in code tags).

                  1 Reply Last reply Reply Quote 0
                  • I
                    Ingo1977 last edited by

                    1:1 der Code, der oben steht… nur die IP Adresse angepasst.

                    An was liegts?

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      @Ingo1977:

                      An was liegts? `
                      Nicht am Skript, denn ich habe es gerade getestet und erhalte keinen Fehler "compile failed", sondern

                      script.js.common.Test2: Fehler request: Error: connect ETIMEDOUT 192.168.178.10:80
                      

                      da kein Gerät an der IP-Adresse vorhanden ist.

                      1 Reply Last reply Reply Quote 0
                      • I
                        Ingo1977 last edited by

                        Danke, scheint zu funktionieren.

                        Wie erzeuge ich nun Einträge unter den Objekten, die ich dann weiterverwenden kann?

                        1 Reply Last reply Reply Quote 0
                        • P
                          pix last edited by

                          Hallo,

                          createState() und setState() sind die Befehle. Ich empfehle dir diese Dokumentation

                          http://www.iobroker.net/docu/?page_id=2786&lang=de

                          und speziell http://www.iobroker.net/docu/?page_id=5385&lang=de

                          Einführung in die Programmierung mit JavaScript

                          Ebenso den Blick in andere Skripte hier im Forum.

                          Pix

                          1 Reply Last reply Reply Quote 0
                          • I
                            Ingo1977 last edited by

                            Common oder Global Script?

                            Das hier geht nicht…

                            var request = require('request');

                            function versionen() {

                            request('http://x.x.x.x/json', function(error,response, body) {

                            if(error) log('Fehler request: ' + error, 'error');

                            else {

                            var obj = JSON.parse(body);

                            log('Hardware-Version' + obj.Hardware-Version);

                            log('Firmware-Version' + obj.Firmware-Version);

                            }

                            });

                            }

                            versionen(); // Skriptstart

                            1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 last edited by

                              @Ingo1977:

                              Common oder Global Script? `
                              <u>Nicht</u> in der Gruppe global !

                              Unter common ist OK.

                              1 Reply Last reply Reply Quote 0
                              • I
                                Ingo1977 last edited by

                                Bekomme folgende Fehler…

                                13:11:26.315 javascript.0 Start javascript script.js.Scripts.Skript1

                                13:11:26.316 javascript.0 script.js.Scripts.Skript1: registered 0 subscriptions and 0 schedules

                                13:11:26.354 javascript.0 ReferenceError: Version is not defined at Request._callback (script.js.Scripts.Skript1:9:51) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22) at emitTwo (events.js:126:13) at Request.emit (events.js:214:7) at Request. (/opt/iobroker/node_modules/request/request.js:1163:10) at emitOne (events.js:116:13) at Request.emit (events.js:211:7) at IncomingMessage. (/opt/iobroker/node_modules/request/request.js:1085:12) at Object.onceWrapper (events.js:313:30) at emitNone (events.js:111:20)

                                13:11:26.384 Caught by controller[0]: at Request._callback (script.js.Scripts.Skript1:9:51)

                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 last edited by

                                  @Ingo1977:

                                  ReferenceError: Version is not defined at Request._callback (script.js.Scripts.Skript1:9:51) `
                                  In meinem Skript gibt es keine Zeichenpostion 51 in Zeile 9. Sorry, habe meine Glaskugel verlegt.

                                  Bitte Programm-Code und Log-Ausgaben in Code tags (5. Button ) posten !

                                  1 Reply Last reply Reply Quote 0
                                  • I
                                    Ingo1977 last edited by

                                    Hier der Code…

                                    var request = require('request');
                                    
                                    function versionen() {
                                        request('http://192.168.178.21/json', function(error,response, body) {
                                            if(error) log('Fehler request: ' + error, 'error');
                                            else {
                                                var obj = JSON.parse(body);
                                                log('Hardware-Version' + obj.Hardware-Version);
                                                log('Firmware-Version' + obj.Firmware-Version);
                                            }    
                                        });
                                    }
                                    
                                    versionen(); // Skriptstart
                                    
                                    

                                    Und hier das Log dazu…

                                    07:34:07.094
                                    [info]
                                    javascript.0 Stop script script.js.Scripts.Skript1
                                    07:51:45.909
                                    [info]
                                    javascript.0 Start javascript script.js.Scripts.Skript1
                                    07:51:45.909
                                    [info]
                                    javascript.0 script.js.Scripts.Skript1: registered 0 subscriptions and 0 schedules
                                    07:51:45.974
                                    [error]
                                    javascript.0 ReferenceError: Version is not defined at Request._callback (script.js.Scripts.Skript1:9:51) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22) at emitTwo (events.js:126:13) at Request.emit (events.js:214:7) at Request. (/opt/iobroker/node_modules/request/request.js:1163:10) at emitOne (events.js:116:13) at Request.emit (events.js:211:7) at IncomingMessage. (/opt/iobroker/node_modules/request/request.js:1085:12) at Object.onceWrapper (events.js:313:30) at emitNone (events.js:111:20) 
                                    07:51:46.004
                                    [error]
                                    Caught by controller[0]: at Request._callback (script.js.Scripts.Skript1:9:51)
                                    
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • Stabilostick
                                      Stabilostick last edited by

                                      Randbemerkung für JavaScript -> Objektbezeichner, Funktionen, Variablen. Bei selbst vergebenen Namen gelten folgende Regeln:

                                      sie dürfen keine Leerzeichen enthalten

                                      sie dürfen nur aus Buchstaben und Ziffern bestehen - das erste Zeichen muss ein Buchstabe sein; es sind Groß- und Kleinbuchstaben erlaubt. Groß- und Kleinschreibung werden unterschieden!

                                      sie dürfen keine deutschen Umlaute oder scharfes S enthalten

                                      sie dürfen als einziges Sonderzeichen den Unterstrich "_" enthalten

                                      sie dürfen nicht mit einem reservierten Wort identisch sein.

                                      1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 last edited by

                                        @Stabilostick:

                                        sie dürfen als einziges Sonderzeichen den Unterstrich "_" enthalten `
                                        Stimmt, - ist nicht zulässig. Bei unzulässigen Bezeichnern muss man eine andere Schreibweise verwenden.

                                                    log('Hardware-Version ' + obj['Hardware-Version']);
                                                    log('Firmware-Version ' + obj['Firmware-Version']);
                                        
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 last edited by paul53

                                          @Stabilostick:

                                          Bei selbst vergebenen Namen gelten folgende Regeln:

                                          Die Regeln sind nicht ganz korrekt. Genauer:

                                          Ein Bezeichner darf nur aus Buchstaben, Dezimalziffern (0-9), dem Dollarzeichen ($) sowie dem Unterstrich (_) bestehen. Jedes dieser Zeichen darf an beliebiger Stelle vorkommen, mit Ausnahme der Ziffern, welche nicht an erster Stelle stehen dürfen. Groß- und Kleinbuchstaben werden unterschieden. Bezeichner dürfen nicht mit einem reservierten Wort identisch sein.

                                          1 Reply Last reply Reply Quote 0
                                          • Stabilostick
                                            Stabilostick last edited by

                                            Da war selfHTML (Quelle) wohl etwas lax. Einfach das $ zu unterschlagen 🙂

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            678
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            27
                                            9574
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo