Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    161

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    184

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    879

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
4 Beiträge 2 Kommentatoren 501 Aufrufe 1 Beobachtet
  • Ä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

          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

          Registrieren Anmelden
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          369

          Online

          32.8k

          Benutzer

          82.7k

          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