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. [Frage] SQL-Abfrage und Zugriff auf einen Wert des results

NEWS

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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    554

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

[Frage] SQL-Abfrage und Zugriff auf einen Wert des results

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
13 Beiträge 3 Kommentatoren 1.2k Aufrufe
  • Ä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.
  • G Offline
    G Offline
    George_Best
    schrieb am zuletzt editiert von
    #4

    @Dutchman:

    was bekommst du den jetzt in deinem log, wird der SQL query als JSON zurueck geschrieben ? `
    Die Zeile````
    console.log('Rows: ' + JSON.stringify(result.result));

    javascript.0 script.js.test.TEST_SQL_Abfrage: Rows: [{"id":1,"max(from_unixtime((ts / 1000)))":"2018-01-01 20:26:43.8890","val":18.5,"ack":1,"_from":1,"q":0}]

    Bei allen anderen "console.log"-Anweisungen erscheint im Log
    

    javascript.0 script.js.test.TEST_SQL_Abfrage: undefined

    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #5

      ok also wird var myJSON nicht gefuellt mit

      var myJSON = JSON.stringify(result.result);
      

      Probier mal diesen zu ersetzen mit:

      var myJSON = JSON.parse(results);
      

      was sagt dein log dan ?

      1 Antwort Letzte Antwort
      0
      • G Offline
        G Offline
        George_Best
        schrieb am zuletzt editiert von
        #6

        @Dutchman:

        Probier mal diesen zu ersetzen mit:

        var myJSON = JSON.parse(results);
        

        was sagt dein log dan ? `

        Dann kommt eine Fehlermeldung:

        	javascript.0 SyntaxError: Unexpected token o in JSON at position 1 at Object.parse (native) at Object.cb (script.js.test.TEST_SQL_Abfrage:10:23) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3151:71) at RedisClient. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:104:25) at emitThree (events.js:116:13) at RedisClient.emit (events.js:194:7) at return_pub_sub (/opt/iobroker/node_modules/redis/index.js:794:18) at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:833:9) at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18) at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
        

        ` > ok also wird var myJSON nicht gefuellt mit

        var myJSON = JSON.stringify(result.result);
        ```` `  
        

        Ich glaube das funktioniert schon. Denn bei

         var myJSON = JSON.stringify(result.result);
         console.log(myJSON);
        

        erscheint im Log````
        [{"id":1,"max(from_unixtime((ts / 1000)))":"2018-01-01 21:26:43.8920","val":18.5,"ack":1,"_from":1,"q":0}]

        
        Aber nun weiß ich einfach nicht, wie ich auf einen konkreten Wert (z.B. val) zugreifen kann.
        1 Antwort Letzte Antwort
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          schrieb am zuletzt editiert von
          #7

          ah ! dan hatte ich was falsch verstanden sorry !

          probierl mal:

          log(myJSON.result.val
          
          1 Antwort Letzte Antwort
          0
          • G Offline
            G Offline
            George_Best
            schrieb am zuletzt editiert von
            #8

            [quote="Dutchman"

            probierl mal:

            log(myJSON.result.val
            

            Hm… bei````
            console.log(myJSON.result.val);

            kommt wieder eine Fehlermeldung````
            javascript.0 TypeError: Cannot read property 'val' of undefined at Object.cb (script.js.test.TEST_SQL_Abfrage:12:33) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3151:71) at RedisClient. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:104:25) at emitThree (events.js:116:13) at RedisClient.emit (events.js:194:7) at return_pub_sub (/opt/iobroker/node_modules/redis/index.js:794:18) at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:833:9) at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18) at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12) at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
            
            1 Antwort Letzte Antwort
            0
            • DutchmanD Offline
              DutchmanD Offline
              Dutchman
              Developer Most Active Administrators
              schrieb am zuletzt editiert von
              #9

              entferne.

              Probiere es mal so:

              sendTo('sql.0', 'query', 'SELECT `id`, max(from_unixtime((`ts` / 1000))), `val`, `ack`, `_from`, `q` FROM `ioBroker`.`ts_number` WHERE (`id` = 1)', function (result) {
                  if (result.error) {
                      console.error(result.error);
                  } else {
                     // show result
                       console.log('Rows: ' + JSON.stringify(result.result));
                       var myJSON = JSON.stringify(result.result);
              		 var test = myJSON.substring(1, myJSON.length-1);
                       testString = JSON.parse(test);
                       console.log(testString.val);
                  }
              });
              
              

              jetzt sollte das JSON auslesen einfach gehen und kannst du anstatt .val auch .id usw nehmen (werte konform deines querys)

              ~Dutch

              1 Antwort Letzte Antwort
              0
              • apollon77A Offline
                apollon77A Offline
                apollon77
                schrieb am zuletzt editiert von
                #10

                Result ist ein Array mit Objekten drin und KEIN JSON!!

                Also ein result.result[0].val

                sollte genau das sein was Du brauchst

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                1 Antwort Letzte Antwort
                0
                • G Offline
                  G Offline
                  George_Best
                  schrieb am zuletzt editiert von
                  #11

                  @apollon77:

                  Result ist ein Array mit Objekten drin und KEIN JSON!!

                  Also ein result.result[0].val

                  sollte genau das sein was Du brauchst `
                  Danke!! Genau das hat funktioniert! :D

                  @Dutchman:

                  entferne.t `

                  Auch vielen Dank hierfür! Auch das hat geklappt.

                  Jetzt hab ich trotzdem leider noch eine Frage. Mit````
                  var myJSON = JSON.stringify(result.result);

                  1 Antwort Letzte Antwort
                  0
                  • DutchmanD Offline
                    DutchmanD Offline
                    Dutchman
                    Developer Most Active Administrators
                    schrieb am zuletzt editiert von
                    #12

                    Denn substring habe ich benutzt um die [] zu entfernen mir ging die json Abfrage nicht

                    –-----------------------

                    Send from mobile device

                    Das schöne ios hat Auto Korrektur zum k****

                    Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                    1 Antwort Letzte Antwort
                    0
                    • apollon77A Offline
                      apollon77A Offline
                      apollon77
                      schrieb am zuletzt editiert von
                      #13

                      JSON ist eine Textform der Datenstruktur, das heisst nacj JSON.stringify is es einfach ein Text-String. Da kannst Du auf nichts mehr zugreifen :-)

                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                      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

                      386

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      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