Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Min /Max Temperatursensor

    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] Min /Max Temperatursensor

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Farmer-cb last edited by

      da kommt auch nicht mehr raus:

      javascript.0	2018-01-03 15:00:00.226	info	script.js.common.minmax.Aussentemp: {"error":"Error: ER_NO_DB_ERROR: No database selected"}
      javascript.0	2018-01-03 15:00:00.158	info	script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT id, name FROM datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
      javascript.0	2018-01-03 14:55:00.184	info	script.js.common.minmax.Aussentemp: {"error":"Error: ER_NO_DB_ERROR: No database selected"}
      javascript.0	2018-01-03 14:55:00.157	info	script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT id, name FROM datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
      javascript.0	2018-01-03 14:50:00.221	info	script.js.common.minmax.Aussentemp: {"error":"Error: ER_NO_DB_ERROR: No database selected"}
      javascript.0	2018-01-03 14:50:00.158	info	script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT id, name FROM datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
      
      

      in der Tabelle steht etwas
      4639_sql.gif

      1 Reply Last reply Reply Quote 0
      • Thisoft
        Thisoft last edited by

        Zeigst Du bitte mal die Einstellungen deines SQL-Adapters?

        1 Reply Last reply Reply Quote 0
        • H
          Haus last edited by

          @Farmer-cb:

          da kommt auch nicht mehr raus:

          javascript.0	2018-01-03 15:00:00.226	info	script.js.common.minmax.Aussentemp: {"error":"Error: ER_NO_DB_ERROR: No database selected"}
          javascript.0	2018-01-03 15:00:00.158	info	script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT id, name FROM datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
          javascript.0	2018-01-03 14:55:00.184	info	script.js.common.minmax.Aussentemp: {"error":"Error: ER_NO_DB_ERROR: No database selected"}
          javascript.0	2018-01-03 14:55:00.157	info	script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT id, name FROM datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
          javascript.0	2018-01-03 14:50:00.221	info	script.js.common.minmax.Aussentemp: {"error":"Error: ER_NO_DB_ERROR: No database selected"}
          javascript.0	2018-01-03 14:50:00.158	info	script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT id, name FROM datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
          
          

          in der Tabelle steht etwas

          sql.gif `

          sendTo('sql.0', 'query', 'SELECT id, name FROM iobroker.datapoints WHERE nam…....

          1 Reply Last reply Reply Quote 0
          • Thisoft
            Thisoft last edited by

            @Haus:

            sendTo('sql.0', 'query', 'SELECT id, name FROM iobroker.datapoints WHERE nam….... `

            JA, das wäre einen Versuch wert. Unter anderem deshalb hatte ich ja (bisher erfolglos 😉 ) gefragt welche Db denn der TE im Einsatz hat…

            1 Reply Last reply Reply Quote 0
            • M
              mctom last edited by

              jetzt häng ich mich auch noch mal dran…

              folgenden Code habe ich jetzt als Test im Einsatz:

              function SQLAbfrage () {
              log(id);
              
                sendTo('sql.0', 'query', 'SELECT id, name FROM iobroker.datapoints WHERE name = \'' + id + '\'', function(result){
                  log(JSON.stringify(result));
                  // GetResults(result);
                  });
              
              //  sendTo('sql.0', 'query', 'SELECT * FROM iobroker.datapoints WHERE name = \'' + id + '\'', GetResults);
              }
              

              und das kommt im LOG:

              16:50:00.943	[info]	javascript.1 script.js.Test.Test2: hm-rpc.0.IEQ0023353.1.TEMPERATURE
              16:50:00.947	[info]	javascript.1 script.js.Test.Test2: {"error":null,"result":[{"id":21,"name":"hm-rpc.0.IEQ0023353.1.TEMPERATURE"}]}
              

              Woher kommt der Error?

              Was mach ich falsch ?

              Gruß

              Michael

              1 Reply Last reply Reply Quote 0
              • H
                Haus last edited by

                @mctom:

                jetzt häng ich mich auch noch mal dran…

                folgenden Code habe ich jetzt als Test im Einsatz:

                function SQLAbfrage () {
                log(id);
                
                  sendTo('sql.0', 'query', 'SELECT id, name FROM iobroker.datapoints WHERE name = \'' + id + '\'', function(result){
                    log(JSON.stringify(result));
                    // GetResults(result);
                    });
                
                //  sendTo('sql.0', 'query', 'SELECT * FROM iobroker.datapoints WHERE name = \'' + id + '\'', GetResults);
                }
                

                und das kommt im LOG:

                16:50:00.943	[info]	javascript.1 script.js.Test.Test2: hm-rpc.0.IEQ0023353.1.TEMPERATURE
                16:50:00.947	[info]	javascript.1 script.js.Test.Test2: {"error":null,"result":[{"id":21,"name":"hm-rpc.0.IEQ0023353.1.TEMPERATURE"}]}
                

                Woher kommt der Error?

                Was mach ich falsch ?

                Gruß

                Michael `

                createState('Statistik.Luft1.Max24', 0);
                createState('Statistik.Luft1.Min24', 0);
                
                var id = "hm-rpc.0.IEQ0023353.1.TEMPERATURE";
                var maxid = 'javascript.0.Statistik.Luft1.Max24';
                var minid = 'javascript.0.Statistik.Luft1.Min24';
                var dt = 24;//Zeitraum in Stunden
                    dt = dt*3600*1000;
                
                schedule("*/5 * * * *", function(){
                    SQLAbfrage(id);
                });
                
                SQLAbfrage(id);
                
                // maximum, minimum
                function minimum(result) {
                    ///log(JSON.stringify(result.result));
                    setState(minid, result.result[0].MinVal);
                }
                
                function maximum(result) {
                    ///log('Fn Max'+ JSON.stringify(result.result));
                    setState(maxid, result.result[0].MaxVal);
                }
                
                function SQLAbfrage () {
                    ///log(id);
                    sendTo('sql.0', 'query', 'SELECT * FROM iobroker.datapoints WHERE name = \'' + id + '\'', GetResults);
                }
                
                function GetResults (dpoint) {
                    var end_time = new Date().getTime();
                    var start_time = new Date().getTime() - dt;
                    ///log(JSON.stringify(dpoint.result)+'//'+start_time);
                    ///log(dpoint.result[0].id + '---//---' + dpoint.result[0].name);
                    sendTo('sql.0', 'query', 'SELECT Round(Min(val),1) As MinVal FROM iobroker.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum);
                    sendTo('sql.0', 'query', 'SELECT Round(Max(val),1) As MaxVal FROM iobroker.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum);
                }
                
                1 Reply Last reply Reply Quote 0
                • F
                  Farmer-cb last edited by

                  juhu

                  so funktioniert es jetzt

                  var id = "s7.0.DBs.DB100.Aussentemp";
                  
                  //var maxid = 'javascript.0.Statistik.Luft1.Max24';
                  //var minid = 'javascript.0.Statistik.Luft1.Min24';
                  var maxid = "javascript.0.scriptEnabled.common.minmax.Statistik.Aussentemp.max24";/*max24*/
                  var minid = "javascript.0.scriptEnabled.common.minmax.Statistik.Aussentemp.min24";/*min24*/
                  
                  var dt = 24;//Zeitraum in Stunden
                    dt = dt*3600*1000;
                  
                  schedule("*/5 * * * *", function(){SQLAbfrage(id);});
                  
                  SQLAbfrage(id);
                  
                  // minimum
                  function minimum(result) 
                      {
                        log('Fn Min'+JSON.stringify(result.result));
                        setState(minid, result.result[0].MinVal);
                      }
                  
                  // maximum
                  function maximum(result) 
                      {
                        log('Fn Max'+ JSON.stringify(result.result));
                        setState(maxid, result.result[0].MaxVal);
                      }
                  
                  function SQLAbfrage () 
                      {
                      log('Name: '+id);
                      sendTo('sql.0', 'query', 'SELECT * FROM iobroker.datapoints WHERE name = \'' + id + '\'', GetResults);
                      }
                  
                  function GetResults (dpoint) 
                      {
                        var end_time = new Date().getTime();
                        var start_time = new Date().getTime() - dt;
                        log('startzeit: '+start_time);
                        log('endzeit: '+end_time);
                        log(JSON.stringify(dpoint.result));
                        log('id: '+dpoint.result[0].name);
                  
                        //log(JSON.stringify(dpoint.result)+'//'+start_time);
                        //log(dpoint.result[0].id + '---//---' + dpoint.result[0].name);
                        sendTo('sql.0', 'query', 'SELECT Round(Min(val),1) As MinVal FROM iobroker.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum);
                        sendTo('sql.0', 'query', 'SELECT Round(Max(val),1) As MaxVal FROM iobroker.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum);
                  
                      }
                  
                  

                  meldung im Log:

                  18:26:27.313	[info]	javascript.0 Stop script script.js.common.minmax.Aussentemp
                  18:26:27.352	[info]	javascript.0 Start javascript script.js.common.minmax.Aussentemp
                  18:26:27.353	[info]	javascript.0 script.js.common.minmax.Aussentemp: schedule(cron=*/5 * * * *)
                  18:26:27.354	[info]	javascript.0 script.js.common.minmax.Aussentemp: Name: s7.0.DBs.DB100.Aussentemp
                  18:26:27.354	[info]	javascript.0 script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT * FROM iobroker.datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
                  18:26:27.355	[info]	javascript.0 script.js.common.minmax.Aussentemp: registered 0 subscriptions and 1 schedule
                  18:26:27.472	[info]	javascript.0 script.js.common.minmax.Aussentemp: startzeit: 1514913987450
                  18:26:27.472	[info]	javascript.0 script.js.common.minmax.Aussentemp: endzeit: 1515000387450
                  18:26:27.473	[info]	javascript.0 script.js.common.minmax.Aussentemp: [{"id":11,"name":"s7.0.DBs.DB100.Aussentemp","type":0}]
                  18:26:27.474	[info]	javascript.0 script.js.common.minmax.Aussentemp: id: s7.0.DBs.DB100.Aussentemp
                  18:26:27.475	[info]	javascript.0 script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT Round(Min(val),1) As MinVal FROM iobroker.ts_number WHERE ts >= 1514913987450 AND id=11 GROUP BY id")
                  18:26:27.475	[info]	javascript.0 script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT Round(Max(val),1) As MaxVal FROM iobroker.ts_number WHERE ts >= 1514913987450 AND id=11 GROUP BY id")
                  18:26:28.007	[info]	javascript.0 script.js.common.minmax.Aussentemp: Fn Max[{"MaxVal":6.2}]
                  18:26:28.008	[info]	javascript.0 script.js.common.minmax.Aussentemp: setForeignState(id=javascript.0.scriptEnabled.common.minmax.Statistik.Aussentemp.max24, state=6.2)
                  18:26:28.029	[info]	javascript.0 script.js.common.minmax.Aussentemp: Fn Min[{"MinVal":1.5}]
                  18:26:28.030	[info]	javascript.0 script.js.common.minmax.Aussentemp: setForeignState(id=javascript.0.scriptEnabled.common.minmax.Statistik.Aussentemp.min24, state=1.5)
                  
                  

                  finde keine error ausgabe, sollte also funzn

                  Vielen Dank bis hierhin schon mal und für die Geduld 😄

                  hab jetzt nur noch diese Fehlermeldung in der Log 😢 :

                  admin.0	2018-01-03 18:26:28.047	error	change ID is empty: {"common":{"enabled":1.5},"from":"system.adapter.javascript.0","ts":1515000388026,"_id":null}
                  cloud.0	2018-01-03 18:26:28.037	error	change ID is empty: {"common":{"enabled":1.5},"from":"system.adapter.javascript.0","ts":1515000388026,"_id":null}
                  sql.0	2018-01-03 18:26:28.036	error	change ID is empty: {"common":{"enabled":1.5},"from":"system.adapter.javascript.0","ts":1515000388026,"_id":null}
                  javascript.0	2018-01-03 18:26:28.035	error	change ID is empty: {"common":{"enabled":1.5},"from":"system.adapter.javascript.0","ts":1515000388026,"_id":null}
                  web.0	2018-01-03 18:26:28.033	error	change ID is empty: {"common":{"enabled":1.5},"from":"system.adapter.javascript.0","ts":1515000388026,"_id":null}
                  sql.0	2018-01-03 18:26:28.021	error	change ID is empty: {"common":{"enabled":6.2},"from":"system.adapter.javascript.0","ts":1515000388010,"_id":null}
                  javascript.0	2018-01-03 18:26:28.023	error	change ID is empty: {"common":{"enabled":6.2},"from":"system.adapter.javascript.0","ts":1515000388010,"_id":null}
                  cloud.0	2018-01-03 18:26:28.022	error	change ID is empty: {"common":{"enabled":6.2},"from":"system.adapter.javascript.0","ts":1515000388010,"_id":null}
                  web.0	2018-01-03 18:26:28.018	error	change ID is empty: {"common":{"enabled":6.2},"from":"system.adapter.javascript.0","ts":1515000388010,"_id":null}
                  
                  

                  die Werte stehen aber im Datenpunkt
                  4639_datenpunkt_minmax.gif

                  mach ich da noch etwas verkehrt

                  hab die error-meldungen mal in ein eigenen Thread gesetzt

                  http://forum.iobroker.net/viewtopic.php?f=8&t=10313

                  1 Reply Last reply Reply Quote 1
                  • D
                    der_Auge last edited by Jey Cee

                    super

                    nun habe ich es verstanden.

                    der Datenbankname der im Adapter hinterlegt wurde muss mit angegeben werden.

                    // -----------------------------------------------------------------------------
                    // ----- Abfragen von Werten aus der Datenbank (SQL) ---------------------------
                    // -----------------------------------------------------------------------------
                    // ----- Datenpunkt der ausgelesen werden soll ---------------------------------
                    var id = "javascript.0.eBus.Temperatur.FlowTemp"/*Vorlauf */;
                    // ----- Datenpunkte in die gespeichert werden soll ----------------------------
                    var maxid = 'javascript.0.Statistik.FlowTemp.Max24';
                    var minid = 'javascript.0.Statistik.FlowTemp.Min24';
                    var dt = 24;                // Zeitraum in Stunden
                       dt = dt*3600*1000;      // Zeitraum umrechnen in ??
                    // ----- Datenpunkte anlegen ---------------------------------------------------
                    createState(maxid, " ");
                    createState(minid, " ");
                    log('1\. ) Datenpunkte angelegt ');
                    SQLAbfrage(id);
                    //-----  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 ioBmaster.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(Min(val),1) As MinVal FROM ioBmaster.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum);
                       sendTo('sql.0', 'query', 'SELECT Round(Max(val),1) As MaxVal FROM ioBmaster.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum);
                    }
                    //-----  Werte schreiben (maximum, minimum)
                    //-----  minimum
                    function minimum(result) {
                     log('min )Funktion -> ' + JSON.stringify(result.result));
                     setState(minid, result.result[0].MinVal);
                    }
                    //-----  maximum
                    function maximum(result) {
                       log('max )Funktion -> ' + JSON.stringify(result.result));
                       setState(maxid, result.result[0].MaxVal);
                       log('---- fertig -----------------------------------------');
                    
                    }
                    //---------------------------------------
                    // ----- Funktion jede Minute aufrufen
                    schedule("*/1 * * * *", function(){SQLAbfrage(id);});
                    

                    Nun kann ich weiter versuchen die Tages, Wochen, Jahres-Werte aus der Datenbank abzufragen

                    Gruß

                    Jürgen

                    1 Reply Last reply Reply Quote 0
                    • Thisoft
                      Thisoft last edited by

                      @der_Auge:

                      der Datenbankname der im Adapter hinterlegt wurde muss mit angegeben werden. `

                      Könnt Ihr mir bitte noch verraten welche Db ihr verwendet? Bei meiner (MSSQL) darf ich den nämlich nicht mit angeben sonst sagt er mir die Tabelle sei unbekannt.

                      1 Reply Last reply Reply Quote 0
                      • D
                        der_Auge last edited by

                        @Thisoft:

                        @der_Auge:

                        der Datenbankname der im Adapter hinterlegt wurde muss mit angegeben werden. `

                        Könnt Ihr mir bitte noch verraten welche Db ihr verwendet? Bei meiner (MSSQL) darf ich den nämlich nicht mit angeben sonst sagt er mir die Tabelle sei unbekannt. `
                        3361_sql_db.png

                        1 Reply Last reply Reply Quote 0
                        • F
                          Farmer-cb last edited by

                          Mahlzeit

                          ich nutze mysql, da gehts

                          1 Reply Last reply Reply Quote 0
                          • Q
                            Qlink last edited by

                            @der_Auge:

                            Nun kann ich weiter versuchen die Tages, Wochen, Jahres-Werte aus der Datenbank abzufragen

                            Gruß

                            Jürgen `

                            Hi Jürgen,

                            könntest du dein Script hier reinstellen, sobald du es um die Tages, Wochen und Jahres Werte erweitert hast ?

                            Das wäre toll.

                            Beste Grüße

                            1 Reply Last reply Reply Quote 0
                            • D
                              der_Auge last edited by

                              @Qlink:

                              @der_Auge:

                              Nun kann ich weiter versuchen die Tages, Wochen, Jahres-Werte aus der Datenbank abzufragen

                              Gruß

                              Jürgen `
                              Hi Jürgen,

                              könntest du dein Script hier reinstellen, sobald du es um die Tages, Wochen und Jahres Werte erweitert hast ?

                              Das wäre toll.

                              Beste Grüße `

                              Das werde ich machen.

                              Habe aber bereits festgestellt, das es nicht so einfach ist mit den SQL Befehlen.

                              sendTo('sql.0', 'query', 'SELECT * As MinVal FROM ioBmaster.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum);
                              sendTo('sql.0', 'query', 'SELECT * As MaxVal FROM ioBmaster.ts_number WHERE ts >= ' + start_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',maximum);
                              
                              

                              Hiermit muss ich ja die Werte "von" / "bis" abfragen

                              Vielleicht hat ja jemand eine Idee?

                              Werde es aber weiter versuchen.

                              Gruß

                              Jürgen

                              1 Reply Last reply Reply Quote 0
                              • Thisoft
                                Thisoft last edited by

                                Tja, also im SQL ist's eigentlich einfach:

                                sendTo('sql.0', 'query', 'SELECT * As MinVal FROM ioBmaster.ts_number WHERE ts >= ' + start_time + ' AND ts <= ' + end_time + ' AND id=' + dpoint.result[0].id + ' GROUP BY id',minimum);
                                

                                Du mußt dann nur die beiden Variablen "start_time" und "end_time" vorher korrekt befüllen.

                                1 Reply Last reply Reply Quote 0
                                • umbm
                                  umbm last edited by

                                  Da ich mich dem Thema der Min/Max Ermittlung auf einem anderen Weg nähern wollte, mal eine Frage:

                                  Wie sieht es mit der Systemlast aus, wenn die Datenbank jede Minute abgefragt wird?

                                  Ich wollte das prinzipiell nur so mit Datenpunkten machen, wie es im ersten Beitrag des TE beschrieben ist.

                                  Also eigentlich völlig ohne Array oder häufige DB-Abfrage.

                                  Erzeugt die ursprüngliche Lösung nicht wesentlich weniger Systemlast, wenn nun zwischen den Datenpunkten seit Mitternacht verglichen wird?

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

                                    @umbm:

                                    Wie sieht es mit der Systemlast aus, wenn die Datenbank jede Minute abgefragt wird?
                                    Erzeugt die ursprüngliche Lösung nicht wesentlich weniger Systemlast, wenn nun zwischen den Datenpunkten seit Mitternacht verglichen wird?

                                    Ja, eine Datenbankabfrage erzeugt eine höhere Systemlast, zumal sich auch noch der Temperaturwert seltener als jede Minute ändert.

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      bloop last edited by

                                      Liebe Community,

                                      Ich würde zu diesem Thema eure hilfe benötigen.
                                      Bin noch kompletter Rookie und habe versucht das hier angegebene Skript einzubauen.
                                      Datenpunkte sind erstellt, MySQL läuft und dennoch erhalte ich eine Fehlermeldung.
                                      Kann mir bitte jemand weiter helfen?

                                      var id = 'mqtt.0.Temp_Keller.VL_Heizung.temperature';
                                       
                                      var maxid = 'mqtt.0.Temp_Keller.VL_Heizung.Max24';
                                      var minid = 'mqtt.0.Temp_Keller.VL_Heizung.Min24';
                                      var dt = 24;//Zeitraum in Stunden
                                        dt = dt*3600*1000;
                                       
                                      schedule("*/5 * * * *", function(){
                                          SQLAbfrage(id);
                                      });
                                       
                                      SQLAbfrage(id);
                                       
                                      // maximum, minimum
                                      function minimum(result) 
                                      {
                                        log(JSON.stringify(result.result));
                                        setState(minid, result.result[0].MinVal);
                                      }
                                       
                                      function maximum(result) 
                                      {
                                        log('Fn Max'+ JSON.stringify(result.result));
                                        setState(maxid, result.result[0].MaxVal);
                                      }
                                       
                                      function SQLAbfrage () 
                                      {
                                      log('Name: '+id);
                                        sendTo('sql.0', 'query', 'SELECT * FROM datapoints WHERE name = \'' + id + '\'', GetResults);
                                      }
                                       
                                      function GetResults (dpoint) {
                                        var end_time = new Date().getTime();
                                        var start_time = new Date().getTime() - dt;
                                        log('startzeit: '+start_time);
                                        log('endzeit: '+end_time);
                                        log('id: '+dpoint.result[0].name);
                                       
                                        //log(JSON.stringify(dpoint.result)+'//'+start_time);
                                        //log(dpoint.result[0].id + '---//---' + dpoint.result[0].name);
                                        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);
                                        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);
                                      }
                                      

                                      Ich erhalte folgenden Fehler:

                                      24.1.2021, 16:16:57.511	[info ]: javascript.0 (8747) Start javascript script.js.common.Temp_VL-min_max
                                      24.1.2021, 16:16:57.538	[info ]: javascript.0 (8747) script.js.common.Temp_VL-min_max: Name: mqtt.0.Temp_Keller.VL_Heizung.temperature
                                      24.1.2021, 16:16:57.540	[info ]: javascript.0 (8747) script.js.common.Temp_VL-min_max: registered 0 subscriptions and 1 schedule
                                      24.1.2021, 16:16:57.554	[info ]: javascript.0 (8747) script.js.common.Temp_VL-min_max: startzeit: 1611415017554
                                      24.1.2021, 16:16:57.555	[info ]: javascript.0 (8747) script.js.common.Temp_VL-min_max: endzeit: 1611501417554
                                      24.1.2021, 16:16:57.576	[warn ]: javascript.0 (8747) TypeError: Cannot read property '0' of undefined
                                          at Object.GetResults [as cb] (script.js.common.Temp_VL-min_max:39:27)
                                          at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5297:71)
                                          at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:234:41)
                                          at processImmediate (internal/timers.js:461:21)
                                      

                                      Wenn ich das richtig Interpretiere findet er in der Datenbank des Datenpunkes keine Werte. MySQL ist für den Punkt jedoch aktiviert...

                                      c51a3e7b-bcca-4ca8-be3a-3b7265bd9c4e-image.png

                                      Da ich bei den Skripts nur bedingt Durchblicke und mich in den meisten Fällen mit Copy/Paste und Blockly durch Schummle wäre ich sehr dankbar über eure Hilfe!

                                      Herzlichen Dank!!

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      851
                                      Online

                                      31.8k
                                      Users

                                      80.0k
                                      Topics

                                      1.3m
                                      Posts

                                      12
                                      43
                                      11052
                                      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