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. JavaScript
  5. SQL Modul wird nicht erkannt

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

SQL Modul wird nicht erkannt

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 2 Kommentatoren 261 Aufrufe 2 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.
  • Marlon GemmerM Offline
    Marlon GemmerM Offline
    Marlon Gemmer
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,
    ich würde gerne per IoBroker und Javascript Daten aus meiner SQL Datenbank auslesen und diese mir per Spracheausgabe von dem Raspberry vorlesen lassen. Ich habe allerdings das Problem, dass Javascript das Sql modul nicht erkennt und somit immer einen Fehler ausspuckt.
    error javascript.0 (4604) script.js.Test compile failed:
    Weiß jemand zufällig wie ich den Fehler beheben kann? Das Modul habe ich in den Einstellungen von dem Javascript Adapter hinzugefügt.
    Danke euch schonmal

    UncleSamU 1 Antwort Letzte Antwort
    0
    • Marlon GemmerM Marlon Gemmer

      Hallo zusammen,
      ich würde gerne per IoBroker und Javascript Daten aus meiner SQL Datenbank auslesen und diese mir per Spracheausgabe von dem Raspberry vorlesen lassen. Ich habe allerdings das Problem, dass Javascript das Sql modul nicht erkennt und somit immer einen Fehler ausspuckt.
      error javascript.0 (4604) script.js.Test compile failed:
      Weiß jemand zufällig wie ich den Fehler beheben kann? Das Modul habe ich in den Einstellungen von dem Javascript Adapter hinzugefügt.
      Danke euch schonmal

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von
      #2

      @marlon-gemmer Sollen wir jetzt raten?

      Kannst du mal dein Skript posten und die gesamte Fehlermeldung (was nach dem Doppelpunkt kommt). Welches SQL Modul verwendest du?

      Ginge das nicht auch mit dem SQL Adapter?

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      Marlon GemmerM 1 Antwort Letzte Antwort
      0
      • UncleSamU UncleSam

        @marlon-gemmer Sollen wir jetzt raten?

        Kannst du mal dein Skript posten und die gesamte Fehlermeldung (was nach dem Doppelpunkt kommt). Welches SQL Modul verwendest du?

        Ginge das nicht auch mit dem SQL Adapter?

        Marlon GemmerM Offline
        Marlon GemmerM Offline
        Marlon Gemmer
        schrieb am zuletzt editiert von
        #3

        @unclesam

        var mysql = require('mysql'); 
        const hostname = "Test1";
        const username = "Test2";
        const password = "Test3";
        const database = "Test4";
        const con = mysql.createConnection({​​​​​
        "host": hostname,
        "user": username,
        "password": password,
        "database": database
        }​​​​​);
        console.log("running");
        
        on({id: 'shelly.0.SHSW-1##1.Relay0.Switch', val: true, ack: true}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (compareTime("21:00", "null", "<") && compareTime("08:00", "null", ">=")) {
            setState("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false);
            setState("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false);
          } else {
            setStateDelayed("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false, 120000, false);
            setStateDelayed("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false, 120000, false);
          }
          exec('/home/pi/raspberry-remote/./send 11111 2 1');
        
        con.query("select k.name as keyword, a.housenumber, s.name as street, c.name as city from ffo_alarm a " +
        "inner join ffo_street s on a.street = s.id " +
        "inner join ffo_city c on s.cityID = c.id  " +
        "inner join ffo_code_alarm_keyword k on k.shortname=a.keyword " +
        "where a.date = NOW() and a.time >= SUBTIME(NOW(), '3:00') " +
        "order by id desc;", (err, rows) => {
            if(err) {
                console.log(err);
                  setState("sayit.0.tts.text", "" + ('Fehler' + ''));
            }
        
            if(rows && rows.length == 1)
              setState("sayit.0.tts.text", "" + (`${rows[0].keyword} ${rows[0].street} ${rows[0].housenumber} in ${rows[0].city} `));
            else
              setState("sayit.0.tts.text", "" + ('Kein Eintrag' + ''));
        });
          var timeout = setTimeout(function () {
            exec('/home/pi/raspberry-remote/./send 11111 2 0');
          }, 15000);
        });
        

        Das ist mein Code. Bei z.b. dem Hostname steht bei mir schon der richtige drin. Für das Forum hier habe ich ihn geändert.
        Ich verwende das Modul "mysql"
        Mit dem SQL Adapter geht das nicht. Damit logge ich ja nur die einzelnen Zustände in der Datenbank aber kann ja keine konkreten Abfragen machen.

        So sieht die Konfiguration im Adapter aus:
        Screenshot 2021-02-11 200602.png

        Der Fehlercode schaut so aus:
        error javascript.0 (6151) script.js.Test compile failed: at script.js.Test:6

        Ich hoffe das hilft.
        Danke schonmal

        UncleSamU 2 Antworten Letzte Antwort
        0
        • Marlon GemmerM Marlon Gemmer

          @unclesam

          var mysql = require('mysql'); 
          const hostname = "Test1";
          const username = "Test2";
          const password = "Test3";
          const database = "Test4";
          const con = mysql.createConnection({​​​​​
          "host": hostname,
          "user": username,
          "password": password,
          "database": database
          }​​​​​);
          console.log("running");
          
          on({id: 'shelly.0.SHSW-1##1.Relay0.Switch', val: true, ack: true}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (compareTime("21:00", "null", "<") && compareTime("08:00", "null", ">=")) {
              setState("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false);
              setState("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false);
            } else {
              setStateDelayed("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false, 120000, false);
              setStateDelayed("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false, 120000, false);
            }
            exec('/home/pi/raspberry-remote/./send 11111 2 1');
          
          con.query("select k.name as keyword, a.housenumber, s.name as street, c.name as city from ffo_alarm a " +
          "inner join ffo_street s on a.street = s.id " +
          "inner join ffo_city c on s.cityID = c.id  " +
          "inner join ffo_code_alarm_keyword k on k.shortname=a.keyword " +
          "where a.date = NOW() and a.time >= SUBTIME(NOW(), '3:00') " +
          "order by id desc;", (err, rows) => {
              if(err) {
                  console.log(err);
                    setState("sayit.0.tts.text", "" + ('Fehler' + ''));
              }
          
              if(rows && rows.length == 1)
                setState("sayit.0.tts.text", "" + (`${rows[0].keyword} ${rows[0].street} ${rows[0].housenumber} in ${rows[0].city} `));
              else
                setState("sayit.0.tts.text", "" + ('Kein Eintrag' + ''));
          });
            var timeout = setTimeout(function () {
              exec('/home/pi/raspberry-remote/./send 11111 2 0');
            }, 15000);
          });
          

          Das ist mein Code. Bei z.b. dem Hostname steht bei mir schon der richtige drin. Für das Forum hier habe ich ihn geändert.
          Ich verwende das Modul "mysql"
          Mit dem SQL Adapter geht das nicht. Damit logge ich ja nur die einzelnen Zustände in der Datenbank aber kann ja keine konkreten Abfragen machen.

          So sieht die Konfiguration im Adapter aus:
          Screenshot 2021-02-11 200602.png

          Der Fehlercode schaut so aus:
          error javascript.0 (6151) script.js.Test compile failed: at script.js.Test:6

          Ich hoffe das hilft.
          Danke schonmal

          UncleSamU Offline
          UncleSamU Offline
          UncleSam
          Developer
          schrieb am zuletzt editiert von
          #4

          @marlon-gemmer sagte in SQL Modul wird nicht erkannt:

          Mit dem SQL Adapter geht das nicht. Damit logge ich ja nur die einzelnen Zustände in der Datenbank aber kann ja keine konkreten Abfragen machen.

          Wieso nicht?
          https://github.com/ioBroker/ioBroker.sql#custom-queries

          Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
          ♡-lichen Dank an meine Sponsoren

          1 Antwort Letzte Antwort
          0
          • Marlon GemmerM Marlon Gemmer

            @unclesam

            var mysql = require('mysql'); 
            const hostname = "Test1";
            const username = "Test2";
            const password = "Test3";
            const database = "Test4";
            const con = mysql.createConnection({​​​​​
            "host": hostname,
            "user": username,
            "password": password,
            "database": database
            }​​​​​);
            console.log("running");
            
            on({id: 'shelly.0.SHSW-1##1.Relay0.Switch', val: true, ack: true}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              if (compareTime("21:00", "null", "<") && compareTime("08:00", "null", ">=")) {
                setState("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false);
                setState("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false);
              } else {
                setStateDelayed("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false, 120000, false);
                setStateDelayed("shelly.0.SHSW-1##1.Relay0.Switch"/*Switch*/, false, 120000, false);
              }
              exec('/home/pi/raspberry-remote/./send 11111 2 1');
            
            con.query("select k.name as keyword, a.housenumber, s.name as street, c.name as city from ffo_alarm a " +
            "inner join ffo_street s on a.street = s.id " +
            "inner join ffo_city c on s.cityID = c.id  " +
            "inner join ffo_code_alarm_keyword k on k.shortname=a.keyword " +
            "where a.date = NOW() and a.time >= SUBTIME(NOW(), '3:00') " +
            "order by id desc;", (err, rows) => {
                if(err) {
                    console.log(err);
                      setState("sayit.0.tts.text", "" + ('Fehler' + ''));
                }
            
                if(rows && rows.length == 1)
                  setState("sayit.0.tts.text", "" + (`${rows[0].keyword} ${rows[0].street} ${rows[0].housenumber} in ${rows[0].city} `));
                else
                  setState("sayit.0.tts.text", "" + ('Kein Eintrag' + ''));
            });
              var timeout = setTimeout(function () {
                exec('/home/pi/raspberry-remote/./send 11111 2 0');
              }, 15000);
            });
            

            Das ist mein Code. Bei z.b. dem Hostname steht bei mir schon der richtige drin. Für das Forum hier habe ich ihn geändert.
            Ich verwende das Modul "mysql"
            Mit dem SQL Adapter geht das nicht. Damit logge ich ja nur die einzelnen Zustände in der Datenbank aber kann ja keine konkreten Abfragen machen.

            So sieht die Konfiguration im Adapter aus:
            Screenshot 2021-02-11 200602.png

            Der Fehlercode schaut so aus:
            error javascript.0 (6151) script.js.Test compile failed: at script.js.Test:6

            Ich hoffe das hilft.
            Danke schonmal

            UncleSamU Offline
            UncleSamU Offline
            UncleSam
            Developer
            schrieb am zuletzt editiert von UncleSam
            #5

            @marlon-gemmer ... und wenn's dann unbedingt per Script sein muss, dann halte dich an das Beispiel hier: https://www.npmjs.com/package/mysql#introduction

            Du hast Sachen in "..." geschrieben, die nicht so sein sollten. Im obigen Beispiel ist es korrekt dargestellt.

            Und ein connect() habe ich auch nicht gesehen.

            Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
            ♡-lichen Dank an meine Sponsoren

            Marlon GemmerM 1 Antwort Letzte Antwort
            0
            • UncleSamU UncleSam

              @marlon-gemmer ... und wenn's dann unbedingt per Script sein muss, dann halte dich an das Beispiel hier: https://www.npmjs.com/package/mysql#introduction

              Du hast Sachen in "..." geschrieben, die nicht so sein sollten. Im obigen Beispiel ist es korrekt dargestellt.

              Und ein connect() habe ich auch nicht gesehen.

              Marlon GemmerM Offline
              Marlon GemmerM Offline
              Marlon Gemmer
              schrieb am zuletzt editiert von
              #6

              @unclesam Vielen Dank für den Hinweis. Ich hatte damals beim Adapter einfach nicht genau gelesen, weil in der Kurbeschreibung im ioBroker nur steht, dass man damit Datenbanken loggen kann. Mit dem Adapter geht es jetzt. Per Code hat es weiterhin nicht funktioniert. Connect hat auch nichts gebracht. Das "mysql" Modul wurde einfach nicht gefunden.
              Naja. Jetzt geht alles wie gewünscht.
              Vielen Dank

              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

              735

              Online

              32.6k

              Benutzer

              82.1k

              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