Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. SQL Modul wird nicht erkannt

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    SQL Modul wird nicht erkannt

    This topic has been deleted. Only users with topic management privileges can see it.
    • Marlon Gemmer
      Marlon Gemmer last edited by

      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

      UncleSam 1 Reply Last reply Reply Quote 0
      • UncleSam
        UncleSam Developer @Marlon Gemmer last edited by

        @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 Gemmer 1 Reply Last reply Reply Quote 0
        • Marlon Gemmer
          Marlon Gemmer @UncleSam last edited by

          @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

          UncleSam 2 Replies Last reply Reply Quote 0
          • UncleSam
            UncleSam Developer @Marlon Gemmer last edited by

            @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

            1 Reply Last reply Reply Quote 0
            • UncleSam
              UncleSam Developer @Marlon Gemmer last edited by 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 Gemmer 1 Reply Last reply Reply Quote 0
              • Marlon Gemmer
                Marlon Gemmer @UncleSam last edited by

                @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 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                598
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                2
                6
                227
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo