Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] JSON Wert extrahieren

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    247

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

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

[gelöst] JSON Wert extrahieren

Scheduled Pinned Locked Moved Skripten / Logik
3 Posts 2 Posters 616 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Stuti
    wrote on last edited by
    #1

    Hallo,

    leider hatte ich in FB keinen Erfolg, deswegen die Frage noch einmal hier:

    Ich versuche Min, Max und Mittelwerte aus der SQL Datenbank zu bekommen.

        sendTo('sql.0', 'query', 'select avg(val) from ioBroker.ts_number where id = 21 and ts/1000 >= Unix_TIMESTAMP(CURDATE())', function (avgval) {
        if (avgval.error) {
            console.error(avgval.error);
        } else {
            // show result
             log('Rows: ' + JSON.stringify(avgval.result));
             var test = JSON.stringify(avgval.result).avg(val);
             log(test);
        }
        })
    
    

    Ergibt:

    16:29:43.270	info	javascript.0 script.js.Datenbankabfragen.Tagesmittelwert: Rows: [{"avg(val)":-2.0713963963963966}]
    16:29:43.270	error	javascript.0 ReferenceError: val is not defined at Object.cb (script.js.Datenbankabfragen.Tagesmittelwert:7:55) at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3386:71) at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30) at Socket.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20) at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:278:10) at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12) at Manager. <anonymous>(/opt/iobroker/node_modules/component-bind/index.js:21:15) at Manager.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20) at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8) at Decoder. <anonymous>(/opt/iobroker/node_modules/component-bind/index.js:21:15)</anonymous></anonymous></anonymous>
    

    Also prinzipiell funktionert die Rückgabe ja, aber ich schaffe es nicht den Wert raus zu bekommen.

    log(avgval.result[1].avg(val)) gibt auch immer die Meldung, das "val" nicht definiert ist.

    Kann mir jemand helfen?

    NUC i5 mit Proxmox - KVM für ioBroker
    Rest in Docker. z.B. KNXD, Pi-Hole, MySQL, Grafana, PostgreSQL, Wiki.js, Prometheus, Loki.

    KNX mit GIRA Homeserver, aber auch Shelly´s und Zigbee

    1 Reply Last reply
    0
    • P Offline
      P Offline
      pix
      wrote on last edited by
      #2

      Vielleicht liege ich völlig falsch, aber was soll im stringify der letzte ".avg(val)"? Das kannst du eigentlich nicht einfach anhängen.

      Also versuch mal so:

      sendTo('sql.0', 'query', 'select avg(val) from ioBroker.ts_number where id = 21 and ts/1000 >= Unix_TIMESTAMP(CURDATE())', function (avgval) {
          if (avgval.error) {
              console.error(avgval.error);
          } else {
              // show result
               log('Rows: ' + JSON.stringify(avgval.result));
               var test = JSON.stringify(avgval.result[0].avg(val));
               log(test);
          }
          })
      
      

      Vielleicht sind auch die runden Klammern im Namen ein Problem, dann probier mal

      var test = JSON.stringify(avgval.result[0].["avg(val)"]);
      

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Reply Last reply
      0
      • S Offline
        S Offline
        Stuti
        wrote on last edited by
        #3

        Hallo,

        ich hatte mich irgendwann gewundert warum es in eckigen Klammern zurückgegeben wurde, also: [{"avg(val)":-2.0713963963963966}]

        Demnach ist das dann wohl ein Array…

        Es funktioniert: avgval.result[0]["avg(val)"]

        bzw am Ende: setState('Datenbank.TagesTempMittel', (avgval.result[0]["avg(val)"]).toFixed(2));

        Ob man JSON.stringify davor schreibt oder es lässt macht soweit ich gesehen hab keinen Unterschied.

        Danke für die Hilfe. Ich markier das hier als gelöst.

        NUC i5 mit Proxmox - KVM für ioBroker
        Rest in Docker. z.B. KNXD, Pi-Hole, MySQL, Grafana, PostgreSQL, Wiki.js, Prometheus, Loki.

        KNX mit GIRA Homeserver, aber auch Shelly´s und Zigbee

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        Support us

        ioBroker
        Community Adapters
        Donate

        226

        Online

        32.7k

        Users

        82.5k

        Topics

        1.3m

        Posts
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Home
        • Recent
        • Tags
        • Unread 0
        • Categories
        • Unreplied
        • Popular
        • GitHub
        • Docu
        • Hilfe