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. [gelöst] Datenbankabfragen nach Wechsel von sqlite zu MySQL

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[gelöst] Datenbankabfragen nach Wechsel von sqlite zu MySQL

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
4 Beiträge 2 Kommentatoren 475 Aufrufe 1 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.
  • C Offline
    C Offline
    CaneTLOTW
    schrieb am zuletzt editiert von CaneTLOTW
    #1

    Ich nutze seit Ewigkeiten die Arte der Datenbankabfrage, wie in dem alten verlinkten Beitrag:
    Re: [gelöst] Min /Max Temperatursensor

    Beispiel aus meiner Abfrage, die unter sqlite problemlos lief und jetzt nicht mehr will:

    //-----  SQL-Abfrage durchführen
    function SQLAbfrage () {
        log('2. ) Datenpunkt => ' + id);
        log('2a.) Abfrage    => SELECT * FROM datapoints WHERE name = \'' + id + '\'');
        sendTo('sql.0', 'query', 'SELECT * FROM datapoints WHERE name = \'' + id + '\'', GetResults);
    }
    //---------------------------------------
    
    function GetResults (dpoint) {
        log('3. ) Funktion -> GetResults aufrufen');
        var end_time =   new Date().getTime();
        var start_time = new Date().getTime() - dt;
        log('3a.) Startzeit : ' + start_time);
        log('3b.) Endzeit   : ' + end_time);
        log('     Datenpunkt: ' + dpoint.result);
        log('3c.) result    : ' + JSON.stringify(dpoint.result) + ' -//- ' + start_time);
        log('     Datenpunkt: ' + dpoint.result[0].id + ' ---//--- ' + dpoint.result[0].name);
        sendTo('sql.0', 'query', 'SELECT Round(Avg(val),1) As AvgVal FROM ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',average);
        sendTo('sql.0', 'query', 'SELECT Round(Max(val),1) As MaxVal FROM ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum);
        sendTo('sql.0', 'query', 'SELECT Round(Min(val),1) As MinVal FROM ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum);
    }
    

    Nach der Umstellung auf MySQL klappt dies jedoch nicht mehr.

    Hier die Meldung:

    javascript.0 (559) TypeError: Cannot read property 'val' of undefined at Object.GetResults [as cb] (script.js.common.Wind_hourly:36:45) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4694:71) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:224:41) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) 
    

    Das lässt sich doch bestimmt beheben ;)

    Vielen Dank!

    SegwayS 1 Antwort Letzte Antwort
    0
    • C CaneTLOTW

      Ich nutze seit Ewigkeiten die Arte der Datenbankabfrage, wie in dem alten verlinkten Beitrag:
      Re: [gelöst] Min /Max Temperatursensor

      Beispiel aus meiner Abfrage, die unter sqlite problemlos lief und jetzt nicht mehr will:

      //-----  SQL-Abfrage durchführen
      function SQLAbfrage () {
          log('2. ) Datenpunkt => ' + id);
          log('2a.) Abfrage    => SELECT * FROM datapoints WHERE name = \'' + id + '\'');
          sendTo('sql.0', 'query', 'SELECT * FROM datapoints WHERE name = \'' + id + '\'', GetResults);
      }
      //---------------------------------------
      
      function GetResults (dpoint) {
          log('3. ) Funktion -> GetResults aufrufen');
          var end_time =   new Date().getTime();
          var start_time = new Date().getTime() - dt;
          log('3a.) Startzeit : ' + start_time);
          log('3b.) Endzeit   : ' + end_time);
          log('     Datenpunkt: ' + dpoint.result);
          log('3c.) result    : ' + JSON.stringify(dpoint.result) + ' -//- ' + start_time);
          log('     Datenpunkt: ' + dpoint.result[0].id + ' ---//--- ' + dpoint.result[0].name);
          sendTo('sql.0', 'query', 'SELECT Round(Avg(val),1) As AvgVal FROM ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',average);
          sendTo('sql.0', 'query', 'SELECT Round(Max(val),1) As MaxVal FROM ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum);
          sendTo('sql.0', 'query', 'SELECT Round(Min(val),1) As MinVal FROM ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum);
      }
      

      Nach der Umstellung auf MySQL klappt dies jedoch nicht mehr.

      Hier die Meldung:

      javascript.0 (559) TypeError: Cannot read property 'val' of undefined at Object.GetResults [as cb] (script.js.common.Wind_hourly:36:45) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4694:71) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:224:41) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) 
      

      Das lässt sich doch bestimmt beheben ;)

      Vielen Dank!

      SegwayS Offline
      SegwayS Offline
      Segway
      schrieb am zuletzt editiert von
      #2

      @CaneTLOTW
      Mhhh, das ist ein alter Thread ... evtl. ist da bei der Forumsmigration was "verschütt" gegangen ?

      Gruß Dirk
      Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

      1 Antwort Letzte Antwort
      0
      • C Offline
        C Offline
        CaneTLOTW
        schrieb am zuletzt editiert von
        #3

        Weiß nicht genau, was du damit meinst. Lief ja alles bis zur heutigen Umstellung der Datenbank.

        Der ausgelesene Wert - ID des Datenpunkts in der Datenbank kommt schienbar unter MySQL als undefined zurück und kann daher nicht weiter ausgewertet werden...

        Antwort:

        	script.js.common.Temp_24_Min_Max: Datenpunkt: undefined
        
        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          CaneTLOTW
          schrieb am zuletzt editiert von
          #4

          Ok, selber die Lösung gefunden!

          War sogar in dem alten Beitrag enthalten....

          Es muss der Verweis auf den Namen der DB hinzugefügt werden!

          iobroker.datapoints anstelle von datapoints

          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

          335

          Online

          32.6k

          Benutzer

          82.0k

          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