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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Min /Max Temperatursensor

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

[gelöst] Min /Max Temperatursensor

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
43 Beiträge 12 Kommentatoren 13.0k Aufrufe 1 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.
  • F Offline
    F Offline
    Farmer-cb
    schrieb am zuletzt editiert von
    #27

    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

    smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

    5 x Echo Show, 2 x Echo Dot

    1 Antwort Letzte Antwort
    0
    • ThisoftT Offline
      ThisoftT Offline
      Thisoft
      schrieb am zuletzt editiert von
      #28

      Zeigst Du bitte mal die Einstellungen deines SQL-Adapters?

      22 HM-Geräte; PivCCU2 auf RasPi

      ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

      1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        Haus
        schrieb am zuletzt editiert von
        #29

        @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…....

        js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

        admin: 3.6.0

        javascript: 4.1.10

        web: 2.4.1 vis: 1.1.10

        cloud: 2.6.2

        Server: DELL FX170 / linux: Debian 9.5 Stretch

        Adapter: MegaD-2561, Mega-ES…

        1 Antwort Letzte Antwort
        0
        • ThisoftT Offline
          ThisoftT Offline
          Thisoft
          schrieb am zuletzt editiert von
          #30

          @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…

          22 HM-Geräte; PivCCU2 auf RasPi

          ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            mctom
            schrieb am zuletzt editiert von
            #31

            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 Antwort Letzte Antwort
            0
            • H Offline
              H Offline
              Haus
              schrieb am zuletzt editiert von
              #32

              @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);
              }
              

              js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

              admin: 3.6.0

              javascript: 4.1.10

              web: 2.4.1 vis: 1.1.10

              cloud: 2.6.2

              Server: DELL FX170 / linux: Debian 9.5 Stretch

              Adapter: MegaD-2561, Mega-ES…

              1 Antwort Letzte Antwort
              0
              • F Offline
                F Offline
                Farmer-cb
                schrieb am zuletzt editiert von
                #33

                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 :D

                hab jetzt nur noch diese Fehlermeldung in der Log :cry: :

                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

                smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

                5 x Echo Show, 2 x Echo Dot

                1 Antwort Letzte Antwort
                1
                • D Offline
                  D Offline
                  der_Auge
                  schrieb am zuletzt editiert von Jey Cee
                  #34

                  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

                  Master: DN2820FYKH (4GB) Linux NUC 4.4.0-22-generic #40-Ubuntu x86_64

                  Slave: Linux RPi2-1 4.1.19-v7+ #858 v4.4.3 # 2.15.1

                  SQL-DB : Linux DS 3.10.77 #7321 x86_64 synology412+

                  Test : DS916+ VM Debian

                  Test : Tinker mit piVCCU

                  1 Antwort Letzte Antwort
                  0
                  • ThisoftT Offline
                    ThisoftT Offline
                    Thisoft
                    schrieb am zuletzt editiert von
                    #35

                    @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.

                    22 HM-Geräte; PivCCU2 auf RasPi

                    ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      der_Auge
                      schrieb am zuletzt editiert von
                      #36

                      @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

                      Master: DN2820FYKH (4GB) Linux NUC 4.4.0-22-generic #40-Ubuntu x86_64

                      Slave: Linux RPi2-1 4.1.19-v7+ #858 v4.4.3 # 2.15.1

                      SQL-DB : Linux DS 3.10.77 #7321 x86_64 synology412+

                      Test : DS916+ VM Debian

                      Test : Tinker mit piVCCU

                      1 Antwort Letzte Antwort
                      0
                      • F Offline
                        F Offline
                        Farmer-cb
                        schrieb am zuletzt editiert von
                        #37

                        Mahlzeit

                        ich nutze mysql, da gehts

                        smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

                        5 x Echo Show, 2 x Echo Dot

                        1 Antwort Letzte Antwort
                        0
                        • Q Offline
                          Q Offline
                          Qlink
                          schrieb am zuletzt editiert von
                          #38

                          @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 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            der_Auge
                            schrieb am zuletzt editiert von
                            #39

                            @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

                            Master: DN2820FYKH (4GB) Linux NUC 4.4.0-22-generic #40-Ubuntu x86_64

                            Slave: Linux RPi2-1 4.1.19-v7+ #858 v4.4.3 # 2.15.1

                            SQL-DB : Linux DS 3.10.77 #7321 x86_64 synology412+

                            Test : DS916+ VM Debian

                            Test : Tinker mit piVCCU

                            1 Antwort Letzte Antwort
                            0
                            • ThisoftT Offline
                              ThisoftT Offline
                              Thisoft
                              schrieb am zuletzt editiert von
                              #40

                              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.

                              22 HM-Geräte; PivCCU2 auf RasPi

                              ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                              1 Antwort Letzte Antwort
                              0
                              • umbmU Offline
                                umbmU Offline
                                umbm
                                schrieb am zuletzt editiert von
                                #41

                                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 Antwort Letzte Antwort
                                0
                                • paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von paul53
                                  #42

                                  @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.

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  1 Antwort Letzte Antwort
                                  0
                                  • B Offline
                                    B Offline
                                    bloop
                                    schrieb am zuletzt editiert von
                                    #43

                                    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 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

                                    623

                                    Online

                                    32.4k

                                    Benutzer

                                    81.4k

                                    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