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

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

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[gelöst] Min /Max Temperatursensor

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
43 Beiträge 12 Kommentatoren 13.3k 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
    #14

    Hallo

    das script ist genau das was ich suche, wo muss ich das einstellen oder wird es nur in einem HTML-Widget aufgerufen.

    (bin neu im iobroker, bisher nur php-programmierung)

    mfg

    @Thisoft:

    Ja, hast du auch wieder Recht.

    Aber wenn wir gerade dabei sind das eigentliche Problem des TE zu kapern ;) :

    Man muss die Werte der letzten 24h durchaus nicht extra in einem "Schieberegister", Array oder wie auch immer speichern. Das erledigt ganz nebenbei die SQL-Datenbank (oder ggf. History genauso) mit. Hat außerdem den Vorteil dass nicht der ganze Tageswert flöten geht wenn aus irgendeinem Grund der JS-Adapter neustartet (oder man dieses Array mit noch mehr Aufwand persistieren muss). Z.B. in etwa so:

    var id = "mqtt.0.GrillDuino01.TemperaturLuft"/*GrillDuino01/TemperaturLuft*/;
    
    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 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 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);
    }
    ```` ` 

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

      @HomeChristian:

      Hallo nochmal zusammen,

      ich habe jetzt nochmal viel getestet und ich wurde auf ein paar Ideen gebracht.

      Wann ging das Scipt nich am Wochenende.

      Warum, weil ich da immer Updates eingespielt habe neugestartet etc.

      Da habe ich mir warscheinlich die Variablen geschossen.

      mit dem Tipp von htrecksler sollte es jetzt gehen.

          var Max = getState("javascript.0.MinMax.Max_24").val;
          var Min = getState("javascript.0.MinMax.Min_24").val; 
      

      Vielen Dank nochmal an alle!!

      Gruß

      Christian `

      Hi Christian,

      ich wäre auch an dem Script interessiert.

      Eventuell kannst du die finale Version hier nochmal posten. Toll wäre auch wenn du das Script mit Kommentaren versehen könntest, damit "nicht-script-profis" wie ich die einzelnen Zeilen besser nachvollziehen können.

      Ich würde das Script dann auch gerne noch erweitern mit "Monats Min Max" und "Jahres Min Max".

      Muss ich dazu dann nur die dt variable entsprechend anpassen, oder noch mehr ?

      Danke für die Unterstützung.

      Beste Grüße

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

        @Farmer-cb:

        Hallo

        das script ist genau das was ich suche, wo muss ich das einstellen oder wird es nur in einem HTML-Widget aufgerufen.

        (bin neu im iobroker, bisher nur php-programmierung)

        mfg `

        Hallo Farmer-cb

        Scripte werden im Javascript-Adapter geschrieben und ausgeführt. Dazu musst du dir zuerst eine Instanz des Javascript-Adapters installieren, diese ggf. mit entsprechenden Einstellungen versehen und starten. Dann noch im Admin den Reiter "Skripte" einblenden und schon kannst Du dort ein neues Skript anlegen wo du den Code hineinkopierst ;) Achja - dann musst du das Skript noch starten (aktivieren).

        Kommst du bis dahin klar? Wenn nicht einfach nochmal fragen…

        22 HM-Geräte; PivCCU2 auf RasPi

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

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

          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

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

            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…

            22 HM-Geräte; PivCCU2 auf RasPi

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

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

              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

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

                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

                22 HM-Geräte; PivCCU2 auf RasPi

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

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

                  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)
                  
                  

                  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
                  • ThisoftT Offline
                    ThisoftT Offline
                    Thisoft
                    schrieb am zuletzt editiert von
                    #22

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

                    22 HM-Geräte; PivCCU2 auf RasPi

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

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

                      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

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

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

                        22 HM-Geräte; PivCCU2 auf RasPi

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

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

                          Mahlzeit

                          ich hab doch SQL aktiv!!

                          4639_history.gif

                          oder versteh ich da was falsch

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

                            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.

                            22 HM-Geräte; PivCCU2 auf RasPi

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

                            1 Antwort Letzte Antwort
                            0
                            • 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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          756

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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