Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Skript - JS und SQL Abfrage - Erg undifined

    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

    [gelöst] Skript - JS und SQL Abfrage - Erg undifined

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @michl75 last edited by paul53

      @michl75
      Wie man mit dem Blockly-sendTo eine query-Abfrage macht, weiß ich auch nicht. Das Ergebnis steht jedenfalls nicht in Wert, sondern in einer Variable result.

      Versuche es mal so:

      Bild_2021-03-06_115212.png

      Funktion abfrage(t):

      let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")";
      sendTo('sql.0', 'query', _sql, auswertung);
      
      michl75 1 Reply Last reply Reply Quote 0
      • michl75
        michl75 @paul53 last edited by michl75

        @paul53 Erstmal danke für deine Mühe... Habe erst mal meins verworfen und NEU wie deins aufgebaut....

        io1.PNG

        Der Code dazu... genau so...

        let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")";
        sendTo('sql.0', 'query', _sql, auswertung);
        {1}
        

        und Ergebnis:
        io1.PNG

        Hätte ich nur mehr Ahnung davon...

        EDIT .. das Doppelte {1} ... keine ahnugn woher das kommt, steht aber nicht so in meinem Code...

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @michl75 last edited by paul53

          @michl75 sagte: Hätte ich nur mehr Ahnung davon...

          Ich hatte anfangs noch einen Fehler drin, den ich nachträglich korrigiert habe: Die Funktion auswertung(result) muss den Parameter result erhalten.

          Bild_2021-03-06_120824.png

          michl75 1 Reply Last reply Reply Quote 0
          • michl75
            michl75 @paul53 last edited by michl75

            @paul53 ok moment ich teste

            EDIT: Es tut sich was auch wenn noch kein Ergebnis... aber ... so sieht die Ausgabe nun aus:
            io1.PNG

            ...und so versucht er es auch mit setState in die Variable zu schreiben - klar bleibt 0 ist ja text und keine Zahl

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @michl75 last edited by paul53

              @michl75 sagte:

              so sieht die Ausgabe nun aus:

              Das sieht schon gut aus. Mach mal weiter:

              Bild_2021-03-06_122115.png

              Nun müsste noch obj['AVG(val)'] ermittelt werden, was wohl so wegen der Klammern in Blockly nicht funktioniert.

              Dann besser gleich eine JS-Funktion mit Ergebnis:

              return res.result[0]['AVG(val)'];
              

              Blockly_temp.JPG

              michl75 1 Reply Last reply Reply Quote 0
              • michl75
                michl75 @paul53 last edited by

                @paul53 sieht nun so aus...
                io1.PNG

                glaub wir kommen dem ergebnis näher 🙂
                das AVG muss noch weg iwie

                paul53 2 Replies Last reply Reply Quote 0
                • paul53
                  paul53 @michl75 last edited by

                  @michl75 sagte in Skript - JS-Funktion und SQL Abfrage - Ergebnis undifined:

                  das AVG muss noch weg

                  Das Problem sind die Klammern (unzulässige Zeichen).

                  Blockly_temp.JPG

                  Funktion average(res):

                  return res.result[0]['AVG(val)'];
                  
                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @michl75 last edited by paul53

                    @michl75
                    Man kann die Aufschlüsselung des Abfrageergebnisses auch gleich in die Funktion abfrage(t) packen:

                    let _sql = "SELECT AVG(val) FROM iobroker.ts_number where id = 218 and ts > (" + t + ")";
                    sendTo('sql.0', 'query', _sql, function(res) {
                        if(!res.error) auswertung(res.result[0]['AVG(val)']);
                    });
                    

                    Blockly_temp.JPG

                    michl75 1 Reply Last reply Reply Quote 0
                    • michl75
                      michl75 @paul53 last edited by michl75

                      @paul53 SUPER ... vielen herzlichen Dank!!! Es funktioniert!!!

                      vielen herzlichen Dank !!!

                      io1.PNG

                      [gelöst]

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @michl75 last edited by

                        @michl75 sagte: Es funktioniert!!!

                        Die Konvertierung "nach Zahl" sollte nicht erforderlich sein.
                        Markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        955
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        2
                        15
                        326
                        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