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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [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

      Servus

      hab das ganze jetzt mal getestet, leider nicht erfolgreich

      var id = "s7.0.DBs.DB100.Aussentemp";
      
      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('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);
      }
      
      

      4639_fehler_minmax.gif

      wenn ich es richtig interpretiere,

      gibt es hier ein Problem

      function SQLAbfrage () 
      {
      log('Name: '+id);
        sendTo('sql.0', 'query', 'SELECT * FROM datapoints WHERE name = \'' + id + '\'', GetResults);
      }
      
      

      aber dann verliesen die Ideen mich, wie kann ich den Fehler eingrenzen

      mfg

      Christian

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

        Welche Datenbank hast du denn im Einsatz??

        Stimmt die Bezeichnung deines Datenpunkts exakt (sind die Punkte alle so korrekt)? Hast Du für Deinen Datenpunkt auch die SQL-Historie aktiviert und sind da auch schon Werte vorhanden?

        Der Fehler sieht ganz danach aus dass in deiner Db kein Wert mit deiner id vorhanden ist…

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

          Servus

          der Datenpunkt ist vorhanden (S7)
          4639_history.gif

          , auch in der DB vorhanden
          4639_db-datapoints.gif

          Daten sind auch drinn
          4639_db_number.gif

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

            Hmm - ändere bitte mal den folgenden Bereich mit der Loggingausgabe:

            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);
              .
              .
              .
            
            

            und poste dann nochmal das Log

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

              Servus

              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 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);
                }
              
              
              00:05:04.263	[info]	javascript.0 Stop script script.js.common.minmax.Aussentemp
              00:05:04.301	[info]	javascript.0 Start javascript script.js.common.minmax.Aussentemp
              00:05:04.301	[info]	javascript.0 script.js.common.minmax.Aussentemp: schedule(cron=*/5 * * * *)
              00:05:04.308	[info]	javascript.0 script.js.common.minmax.Aussentemp: 1 Name: s7.0.DBs.DB100.Aussentemp
              00:05:04.308	[info]	javascript.0 script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT id as id FROM datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
              00:05:04.309	[info]	javascript.0 script.js.common.minmax.Aussentemp: registered 0 subscriptions and 1 schedule
              00:05:04.320	[info]	javascript.0 script.js.common.minmax.Aussentemp: startzeit: 1514847904311
              00:05:04.320	[info]	javascript.0 script.js.common.minmax.Aussentemp: endzeit: 1514934304311
              00:05:04.321	[info]	javascript.0 script.js.common.minmax.Aussentemp: undefined
              00:05:04.321	[error]	javascript.0 TypeError: Cannot read property '0' of undefined at Object.GetResults [as cb] (script.js.common.minmax.Aussentemp:42:27) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3151:71) at RedisClient. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:104:25) at emitThree (events.js:116:13) at RedisClient.emit (events.js:194:7) at return_pub_sub (/opt/iobroker/node_modules/redis/index.js:794:18) at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:833:9) at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18) at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12) at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
              
              
              1 Reply Last reply Reply Quote 1
              • Thisoft
                Thisoft last edited by

                Dat Ding wehrt sich aber auch - müssen wir uns rantasten… Ändere mal bitte das Codestück wie folgt:

                function SQLAbfrage (id) {
                  sendTo('sql.0', 'query', 'SELECT id, name FROM datapoints WHERE name = \'' + id + '\'', function(result){
                    log(JSON.stringify(result));
                    //GetResults(result);
                    });
                }
                
                1 Reply Last reply Reply Quote 0
                • F
                  Farmer-cb last edited by

                  ergebnis

                  08:51:29.085	[info]	javascript.0 Stop script script.js.common.minmax.Aussentemp
                  08:51:29.128	[info]	javascript.0 Start javascript script.js.common.minmax.Aussentemp
                  08:51:29.129	[info]	javascript.0 script.js.common.minmax.Aussentemp: schedule(cron=*/5 * * * *)
                  08:51:29.130	[info]	javascript.0 script.js.common.minmax.Aussentemp: sendTo(adapter=sql.0, cmd=query, msg="SELECT id, name FROM datapoints WHERE name = 's7.0.DBs.DB100.Aussentemp'")
                  08:51:29.131	[info]	javascript.0 script.js.common.minmax.Aussentemp: registered 0 subscriptions and 1 schedule
                  08:51:29.167	[info]	javascript.0 script.js.common.minmax.Aussentemp: {"error":"Error: ER_NO_DB_ERROR: No database selected"}
                  
                  

                  mir kommt es so vor, als ob die weitergabe des Ergebnisses nicht funktioniert

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

                    Natürlich wird das Ergebnis jetzt nicht weitergegeben - hab ich ja auskommentiert 😉

                    Und der springende Punkt ist:

                    "Error: ER_NO_DB_ERROR: No database selected"
                    

                    Jetzt wo ich nochmal auf deine Screenshots schaue fällt es mir auch wie Schuppen aus den Haaren 😉

                    Du hast ja gar keinen SQL-Adapter sondern nur die History aktiviert! (Hatte ich auch weiter vorn schon mal danach gefragt…)

                    Dann wird das so nix. Kann ich dir aber auch aus dem Stegreif nicht weiterhelfen. History habe und hatte ich nie im Einsatz. Evtl. kann ich heute abend mal schauen was man da umbauen müsste...

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

                      Mahlzeit

                      ich hab doch SQL aktiv!!

                      4639_history.gif

                      oder versteh ich da was falsch

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

                        Na Prost Mahlzeit 😉

                        stimmt auch wieder - du hast ja beides installiert. Jetzt weiß ich aber auf Anhieb aus der Ferne auch nicht mehr zu raten…

                        Die Fehlermeldung sagt aber relativ deutlich dass der sendTo-Befehl auf den Adapter "SQL.0" keine Datenbank zuordnen kann :!: :?: :?

                        Bekommst du denn Werte angezeigt wenn du im Historien-Fenster auf Tabelle oder Grafik gehst?

                        Ansonsten vielleicht mal noch das LogLevel des SQL-Adapters auf "Debug" stellen und schauen ob da beim Ausführen des Scripts noch was aussagekräftiges geloggt wird.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            686
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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