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

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

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

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

[gelöst] Min /Max Temperatursensor

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
43 Beiträge 12 Kommentatoren 13.1k 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.
  • 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

        759

        Online

        32.4k

        Benutzer

        81.5k

        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