Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Vorh. Tabelle aus MySQL-Datenbank anbinden und auslesen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Vorh. Tabelle aus MySQL-Datenbank anbinden und auslesen

Vorh. Tabelle aus MySQL-Datenbank anbinden und auslesen

Scheduled Pinned Locked Moved Skripten / Logik
8 Posts 4 Posters 1.2k Views 3 Watching
  • 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.
  • A Offline
    A Offline
    Atlantis
    wrote on last edited by
    #1

    Ich habe eine vorhandene Tabelle in einer MYSQL Datenbank, welche ich gerne in Teilen via JS oder Blocky in Form von SQL Statements auslesen und weiterverarbeiten möchte.

    Die vorhandenen IOBROKER STD- SQL Anbindung zum Datenloggen in die gleiche MY SQL Datenbank
    soll davon unberührt bleiben.

    Unbenannt.PNG

    Leider enden alle hier im Forum gefunedenen Anfragen in dieser Richtung bei "Nutze die IO Broker dB."

    Wenn ich die STD Implementierung für eine MySQL dB Connection als JS nutzen möchte

    var mysql = require('mysql2');
    //var mysql = require('mysql'); funktioniert auch nicht
    var con = mysql.createConnection({
      host: "192.168.X.Y:3303",
      user: "USER",
      password: "PW"
    });
    
    con.connect(function(err) {
      if (err) throw err;
      console.log("Connected!");
    });
    

    bekomme ich bereits verschiedene Fehlermeldungen.

    Hier die Fehlermeldung mit mysql2:

    sourceanalytix.0 (2200) Objects user redis pmessage */cfg.o.script.js.common.1_Running_Files.SQLdBCon:{"common":{"name":"SQLdBCon","expert":true,"engineType":"Javascript/js","engine":"system.adapter.javascript.0","source":"var mysql = require('mysql2');\r\n\r\nvar con = mysql.createConnection({\r\n host: "192.168.X.Y:3303",\r\n user: "USERDNAME",\r\n password: "PASSWORT"\r\n});\r\n\r\ncon.connect(function(err) {\r\n if (err) throw err;\r\n console.log("Connected!");\r\n});","debug":false,"verbose":false,"enabled":true},"type":"script","from":"system.adapter.admin.0","user":"system.user.admin","ts":1690141347794,"_id":"script.js.common.1_Running_Files.SQLdBCon","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}

    Hier die Fehlermeldung mit mysql:
    22:02:48.031 error javascript.0 (326872) script.js.common.1_Running_Files.SQLdBCon: Error: Cannot find module 'mysql'
    22:02:48.033 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:1:13
    22:02:48.034 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:13:3
    22:02:48.038 error javascript.0 (326872) script.js.common.1_Running_Files.SQLdBCon: TypeError: Cannot read properties of undefined (reading 'createConnection')
    22:02:48.038 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:3:17
    22:02:48.039 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:13:3

    Habe zur Lösung versucht per npm install mysql das Problem zu beheben.
    Mit scheint, ich hätte noch ein paar Options mit angeben müssen.
    Kann hier jemand kurz auf die Sprünge helfen?

    Gruss
    AtlantisUnion

    mickymM F T 3 Replies Last reply
    0
    • A Atlantis

      Ich habe eine vorhandene Tabelle in einer MYSQL Datenbank, welche ich gerne in Teilen via JS oder Blocky in Form von SQL Statements auslesen und weiterverarbeiten möchte.

      Die vorhandenen IOBROKER STD- SQL Anbindung zum Datenloggen in die gleiche MY SQL Datenbank
      soll davon unberührt bleiben.

      Unbenannt.PNG

      Leider enden alle hier im Forum gefunedenen Anfragen in dieser Richtung bei "Nutze die IO Broker dB."

      Wenn ich die STD Implementierung für eine MySQL dB Connection als JS nutzen möchte

      var mysql = require('mysql2');
      //var mysql = require('mysql'); funktioniert auch nicht
      var con = mysql.createConnection({
        host: "192.168.X.Y:3303",
        user: "USER",
        password: "PW"
      });
      
      con.connect(function(err) {
        if (err) throw err;
        console.log("Connected!");
      });
      

      bekomme ich bereits verschiedene Fehlermeldungen.

      Hier die Fehlermeldung mit mysql2:

      sourceanalytix.0 (2200) Objects user redis pmessage */cfg.o.script.js.common.1_Running_Files.SQLdBCon:{"common":{"name":"SQLdBCon","expert":true,"engineType":"Javascript/js","engine":"system.adapter.javascript.0","source":"var mysql = require('mysql2');\r\n\r\nvar con = mysql.createConnection({\r\n host: "192.168.X.Y:3303",\r\n user: "USERDNAME",\r\n password: "PASSWORT"\r\n});\r\n\r\ncon.connect(function(err) {\r\n if (err) throw err;\r\n console.log("Connected!");\r\n});","debug":false,"verbose":false,"enabled":true},"type":"script","from":"system.adapter.admin.0","user":"system.user.admin","ts":1690141347794,"_id":"script.js.common.1_Running_Files.SQLdBCon","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}

      Hier die Fehlermeldung mit mysql:
      22:02:48.031 error javascript.0 (326872) script.js.common.1_Running_Files.SQLdBCon: Error: Cannot find module 'mysql'
      22:02:48.033 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:1:13
      22:02:48.034 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:13:3
      22:02:48.038 error javascript.0 (326872) script.js.common.1_Running_Files.SQLdBCon: TypeError: Cannot read properties of undefined (reading 'createConnection')
      22:02:48.038 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:3:17
      22:02:48.039 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:13:3

      Habe zur Lösung versucht per npm install mysql das Problem zu beheben.
      Mit scheint, ich hätte noch ein paar Options mit angeben müssen.
      Kann hier jemand kurz auf die Sprünge helfen?

      Gruss
      AtlantisUnion

      mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by
      #2

      @atlantis Überlege Dir ob Du nicht lieber NodeRed nutzen willst, da gibts fertige Nodes.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Reply Last reply
      0
      • A Atlantis

        Ich habe eine vorhandene Tabelle in einer MYSQL Datenbank, welche ich gerne in Teilen via JS oder Blocky in Form von SQL Statements auslesen und weiterverarbeiten möchte.

        Die vorhandenen IOBROKER STD- SQL Anbindung zum Datenloggen in die gleiche MY SQL Datenbank
        soll davon unberührt bleiben.

        Unbenannt.PNG

        Leider enden alle hier im Forum gefunedenen Anfragen in dieser Richtung bei "Nutze die IO Broker dB."

        Wenn ich die STD Implementierung für eine MySQL dB Connection als JS nutzen möchte

        var mysql = require('mysql2');
        //var mysql = require('mysql'); funktioniert auch nicht
        var con = mysql.createConnection({
          host: "192.168.X.Y:3303",
          user: "USER",
          password: "PW"
        });
        
        con.connect(function(err) {
          if (err) throw err;
          console.log("Connected!");
        });
        

        bekomme ich bereits verschiedene Fehlermeldungen.

        Hier die Fehlermeldung mit mysql2:

        sourceanalytix.0 (2200) Objects user redis pmessage */cfg.o.script.js.common.1_Running_Files.SQLdBCon:{"common":{"name":"SQLdBCon","expert":true,"engineType":"Javascript/js","engine":"system.adapter.javascript.0","source":"var mysql = require('mysql2');\r\n\r\nvar con = mysql.createConnection({\r\n host: "192.168.X.Y:3303",\r\n user: "USERDNAME",\r\n password: "PASSWORT"\r\n});\r\n\r\ncon.connect(function(err) {\r\n if (err) throw err;\r\n console.log("Connected!");\r\n});","debug":false,"verbose":false,"enabled":true},"type":"script","from":"system.adapter.admin.0","user":"system.user.admin","ts":1690141347794,"_id":"script.js.common.1_Running_Files.SQLdBCon","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}

        Hier die Fehlermeldung mit mysql:
        22:02:48.031 error javascript.0 (326872) script.js.common.1_Running_Files.SQLdBCon: Error: Cannot find module 'mysql'
        22:02:48.033 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:1:13
        22:02:48.034 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:13:3
        22:02:48.038 error javascript.0 (326872) script.js.common.1_Running_Files.SQLdBCon: TypeError: Cannot read properties of undefined (reading 'createConnection')
        22:02:48.038 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:3:17
        22:02:48.039 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:13:3

        Habe zur Lösung versucht per npm install mysql das Problem zu beheben.
        Mit scheint, ich hätte noch ein paar Options mit angeben müssen.
        Kann hier jemand kurz auf die Sprünge helfen?

        Gruss
        AtlantisUnion

        F Offline
        F Offline
        fastfoot
        wrote on last edited by fastfoot
        #3

        @atlantis erstelle eine zweite Instanz des sql-adapters, trage dort deine DB ein und frage dann mit den iobroker Standard-Tools ab was immer du möchtest

        sendTo("sql.1", "query", "select * from deine_db.deine_tabelle", (erg) => {
            log(erg)
        })
        

        zu deinem urspr. Versuch:

        const mysql = require('mysql2');
        const con = mysql.createConnection({
            host: "deine_ip",
            user: "user",
            password: "passwort"
        });
        
        con.connect(function (err) {
            if (err) log(err);
            console.log("Connected!");
        });
        
        con.query("select * from deine_db.deine_tabelle", (err, erg, fld) => {
            log(erg)
        })
        

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        A 1 Reply Last reply
        0
        • A Atlantis

          Ich habe eine vorhandene Tabelle in einer MYSQL Datenbank, welche ich gerne in Teilen via JS oder Blocky in Form von SQL Statements auslesen und weiterverarbeiten möchte.

          Die vorhandenen IOBROKER STD- SQL Anbindung zum Datenloggen in die gleiche MY SQL Datenbank
          soll davon unberührt bleiben.

          Unbenannt.PNG

          Leider enden alle hier im Forum gefunedenen Anfragen in dieser Richtung bei "Nutze die IO Broker dB."

          Wenn ich die STD Implementierung für eine MySQL dB Connection als JS nutzen möchte

          var mysql = require('mysql2');
          //var mysql = require('mysql'); funktioniert auch nicht
          var con = mysql.createConnection({
            host: "192.168.X.Y:3303",
            user: "USER",
            password: "PW"
          });
          
          con.connect(function(err) {
            if (err) throw err;
            console.log("Connected!");
          });
          

          bekomme ich bereits verschiedene Fehlermeldungen.

          Hier die Fehlermeldung mit mysql2:

          sourceanalytix.0 (2200) Objects user redis pmessage */cfg.o.script.js.common.1_Running_Files.SQLdBCon:{"common":{"name":"SQLdBCon","expert":true,"engineType":"Javascript/js","engine":"system.adapter.javascript.0","source":"var mysql = require('mysql2');\r\n\r\nvar con = mysql.createConnection({\r\n host: "192.168.X.Y:3303",\r\n user: "USERDNAME",\r\n password: "PASSWORT"\r\n});\r\n\r\ncon.connect(function(err) {\r\n if (err) throw err;\r\n console.log("Connected!");\r\n});","debug":false,"verbose":false,"enabled":true},"type":"script","from":"system.adapter.admin.0","user":"system.user.admin","ts":1690141347794,"_id":"script.js.common.1_Running_Files.SQLdBCon","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}

          Hier die Fehlermeldung mit mysql:
          22:02:48.031 error javascript.0 (326872) script.js.common.1_Running_Files.SQLdBCon: Error: Cannot find module 'mysql'
          22:02:48.033 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:1:13
          22:02:48.034 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:13:3
          22:02:48.038 error javascript.0 (326872) script.js.common.1_Running_Files.SQLdBCon: TypeError: Cannot read properties of undefined (reading 'createConnection')
          22:02:48.038 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:3:17
          22:02:48.039 error javascript.0 (326872) at script.js.common.1_Running_Files.SQLdBCon:13:3

          Habe zur Lösung versucht per npm install mysql das Problem zu beheben.
          Mit scheint, ich hätte noch ein paar Options mit angeben müssen.
          Kann hier jemand kurz auf die Sprünge helfen?

          Gruss
          AtlantisUnion

          T Do not disturb
          T Do not disturb
          ticaki
          wrote on last edited by ticaki
          #4

          @atlantis

          benutze einfach den Adapter. Mußt wohl darauf achten das der iobroker user auch auf die weitere DB zugreifen darf

                     result = await sendToAsync('sql.0', 'query', 'SELECT enum, name FROM iobroker.rooms WHERE enum = "' + r + '";')        
                      if (result.result[0] && result.result[0].length != 0) { 
                          if (result.result[0].name != room) {
                          await sendToAsync('sql.0', 'query', 'UPDATE iobroker.rooms set name = "'+room+'" WHERE enum = "' + r + '";')
                          }
                      } else {
                          await sendToAsync('sql.0', 'query', 'INSERT INTO iobroker.rooms (enum, name) VALUES ("' + r + '", "' + room + '");')
                      }       
          
          

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          1 Reply Last reply
          0
          • F fastfoot

            @atlantis erstelle eine zweite Instanz des sql-adapters, trage dort deine DB ein und frage dann mit den iobroker Standard-Tools ab was immer du möchtest

            sendTo("sql.1", "query", "select * from deine_db.deine_tabelle", (erg) => {
                log(erg)
            })
            

            zu deinem urspr. Versuch:

            const mysql = require('mysql2');
            const con = mysql.createConnection({
                host: "deine_ip",
                user: "user",
                password: "passwort"
            });
            
            con.connect(function (err) {
                if (err) log(err);
                console.log("Connected!");
            });
            
            con.query("select * from deine_db.deine_tabelle", (err, erg, fld) => {
                log(erg)
            })
            
            A Offline
            A Offline
            Atlantis
            wrote on last edited by
            #5

            @fastfoot
            Habe die dB eingebunden, Verbindungsversuch erfolgt ohne Fehler.

            Habe dann mal versucht die Werte eine Teabelle zu lesen:

            sendTo("sql.1", "query", "select * from FREISCHALTUNG", (erg) => {
            
                log(erg)
            
            })
            

            Bekomme folgende Fehlermeldung in den Protokollen:

            sourceanalytix.0 (2200) Objects user redis pmessage */cfg.o.script.js.common.1_Running_Files.SQLdBCon:{"common":{"name":"SQLdBCon","expert":true,"engineType":"Javascript/js","engine":"system.adapter.javascript.0","source":"sendTo(\"sql.1\", \"query\", \"select * from FREISCHALTUNG\", (erg) => {\r\n\r\n log(erg)\r\n\r\n})","debug":false,"verbose":false,"enabled":false},"type":"script","from":"system.adapter.admin.0","user":"system.user.admin","ts":1690230804235,"_id":"script.js.common.1_Running_Files.SQLdBCon","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
            

            Habe folgende Rechte eingestellt:
            45bef692-6211-4dd1-b3aa-21c48d47a73c-grafik.png

            F 1 Reply Last reply
            0
            • A Atlantis

              @fastfoot
              Habe die dB eingebunden, Verbindungsversuch erfolgt ohne Fehler.

              Habe dann mal versucht die Werte eine Teabelle zu lesen:

              sendTo("sql.1", "query", "select * from FREISCHALTUNG", (erg) => {
              
                  log(erg)
              
              })
              

              Bekomme folgende Fehlermeldung in den Protokollen:

              sourceanalytix.0 (2200) Objects user redis pmessage */cfg.o.script.js.common.1_Running_Files.SQLdBCon:{"common":{"name":"SQLdBCon","expert":true,"engineType":"Javascript/js","engine":"system.adapter.javascript.0","source":"sendTo(\"sql.1\", \"query\", \"select * from FREISCHALTUNG\", (erg) => {\r\n\r\n log(erg)\r\n\r\n})","debug":false,"verbose":false,"enabled":false},"type":"script","from":"system.adapter.admin.0","user":"system.user.admin","ts":1690230804235,"_id":"script.js.common.1_Running_Files.SQLdBCon","acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
              

              Habe folgende Rechte eingestellt:
              45bef692-6211-4dd1-b3aa-21c48d47a73c-grafik.png

              F Offline
              F Offline
              fastfoot
              wrote on last edited by
              #6

              @atlantis was hat das mit sourceanalytics zu tun? wie sind deine Einstellungen für sql.1?

              du kannst doch auch mein anderes Beispiel nutzen, wobei das hier auch funktioniert wenn du richtige settings nutzt

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              A 1 Reply Last reply
              0
              • F fastfoot

                @atlantis was hat das mit sourceanalytics zu tun? wie sind deine Einstellungen für sql.1?

                du kannst doch auch mein anderes Beispiel nutzen, wobei das hier auch funktioniert wenn du richtige settings nutzt

                A Offline
                A Offline
                Atlantis
                wrote on last edited by
                #7

                @fastfoot Was das mit sourceanalytics zu tun hat kann ich leider nicht sagen.
                Immer wenn ich das JS ausführe aber auch wenn ich es stoppe mit dem Pausen Symbol kommt diese "Silly"-Meldung komlett so wie ich sie hier reincopiert habe.
                Ich hätte erwartet dass dann im LOG das Ergebnis der Anfrage steht, oder?

                0def1c61-9c50-4ef0-895b-251ee5a31914-grafik.png

                Der SQL Adapter läuft sonst so weit...
                c18dbf7d-3f07-4cb2-adbf-a04e3210ca77-grafik.png

                Settings wie folgt:
                9b5b422d-c060-4a0d-8d70-bcbf02a37ac5-grafik.png

                477e5b5b-cfa7-4823-bb23-0bf24cb29f49-grafik.png

                Was mich irritiert ist dass er eine Tabelle anlegen möchte???
                b4885bb2-6819-496f-b660-aacb5e2abe61-grafik.png

                F 1 Reply Last reply
                0
                • A Atlantis

                  @fastfoot Was das mit sourceanalytics zu tun hat kann ich leider nicht sagen.
                  Immer wenn ich das JS ausführe aber auch wenn ich es stoppe mit dem Pausen Symbol kommt diese "Silly"-Meldung komlett so wie ich sie hier reincopiert habe.
                  Ich hätte erwartet dass dann im LOG das Ergebnis der Anfrage steht, oder?

                  0def1c61-9c50-4ef0-895b-251ee5a31914-grafik.png

                  Der SQL Adapter läuft sonst so weit...
                  c18dbf7d-3f07-4cb2-adbf-a04e3210ca77-grafik.png

                  Settings wie folgt:
                  9b5b422d-c060-4a0d-8d70-bcbf02a37ac5-grafik.png

                  477e5b5b-cfa7-4823-bb23-0bf24cb29f49-grafik.png

                  Was mich irritiert ist dass er eine Tabelle anlegen möchte???
                  b4885bb2-6819-496f-b660-aacb5e2abe61-grafik.png

                  F Offline
                  F Offline
                  fastfoot
                  wrote on last edited by fastfoot
                  #8

                  @atlantis Hast du denn Sourceanalytics installiert? Wenn ja, mal stoppen für den test! Die Abfrage muss beim mysql die DB enthalten, wie in meinem Beispiel auch gezeigt. Dass er Tabellen erstellen will(und hoffentlich auch kann?) liegt daran dass der sql adapter glaubt dass er für iobroker da ist und da müssen dann natürlich auch die Tabellen da sein. Du wirst die aber nicht verwenden und auch nicht löschen! Der sql adapter wird hier für deine eigene Datenbank missbraucht

                  was ich so gar nicht verstehe ist dass du mein 2tes Beispiel ohne den SQL Adapter erst gar nicht probiert hast wo das doch dein ursprünglicher Ansatz war, der halt auch schon Fehler enthalten hatte

                  iobroker läuft unter Docker auf QNAP TS-451+
                  SkriptRecovery: https://forum.iobroker.net/post/930558

                  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

                  619

                  Online

                  32.4k

                  Users

                  81.3k

                  Topics

                  1.3m

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

                  • Don't have an account? Register

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