Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Skript] Absolute Feuchte berechnen

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Skript] Absolute Feuchte berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jsc last edited by

      also erstmal zu meinem Fehler mit meinem Codestück von eben. Das hier kommt als Fehler: (ioBroker macht garnichts in keinem log und er speichert auch nichts)
      1789_error.png

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

        Nimm doch mal Zeile für Zeile weg, bis es funktioniert.

        Dann kannst Du das schon einmal auf eine Zeile beschränken.

        1 Reply Last reply Reply Quote 0
        • J
          jsc last edited by

          Ok. Danke an alle. Das Problem liegt im Adapter, nicht in diesem Skript. Entsprechend habe ich im Forum beim javascript-Adapter mal nachgefragt. Der ist an dieser Stelle im Code (tab.js) m.E. buggy. Weiss jemand von euch, wer den geschrieben hat?

          Für hier reicht es aus, allen Zeilen die mit einem "//" beginnen ein Leerzeichen voranzustellen. Dann parst der Adapter das anders. Wenn jemand Interesse an einer Lösungsfindung hier hat, antwortet er gerne an der andern Forumsstelle (http://forum.iobroker.net/viewtopic.php?f=21&t=4719)

          Nun läuft das Skript also. Super! Ich finde mich mal ein und melde mich bei weiteren Fragen nochmals.

          Gruß jsc

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

            Aber warum passiert das nur bei dir?

            Kein andere konnte das bisher reproduzieren.

            Irgendetwas muss dann an deiner Umgebung anders sein.

            Gruß

            Rainer

            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              Hallo zusammen.

              Ich habe jetzt einen TH-O in der Sauna montiert. Dort kommt es natürlich zu erheblichem Wassergehalt.

              Was mich wundert ist nur die doch deutliche Abweichung zu dem Skript das ich auf der CCU (ebenfalls nach @paul53) erstellt habe und dem was hier herauskommt.

              Wenn ich es noch richtig im Kopf habe kommt bei der CCU etwa 27g/kg heraus, während mit diesem Skript dann 37g/kg angegeben wird.

              Die Daten für rel. Feuchte und Temperatur sind jeweils identisch (20%; 65-70°C)

              Was ist jetzt richtig?

              Gruß

              Rainer

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

                Hallo Rainer,

                @Homoran:

                Wenn ich es noch richtig im Kopf habe kommt bei der CCU etwa 27g/kg heraus, während mit diesem Skript dann 37g/kg angegeben wird.

                Die Daten für rel. Feuchte und Temperatur sind jeweils identisch (20%; 65-70°C) `
                hast Du tatsächlich nur eine rel. Luftfeuchte von 20%? Ich hätte, gerade bei einer Sauna, mit mehr gerechnet.

                Sind die Einheiten gleich? Es gibt Berechnungen mit g/m3 und g/kg.

                Wenn ich mir in Internet mal einige Online-Rechner dazu ansehe und Deine Werte eingebe, komme ich auf Ergebnisse so um die 35 g/kg.

                Gruß,

                Eric

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  @eric2905:

                  hast Du tatsächlich nur eine rel. Luftfeuchte von 20%? `
                  YEPP, selbst mit automatischer Befeuchtung.

                  Aber wie du anscheinend richtig gerechnet hast ist der Wassergehalt dann etwa 35g/kg, und IIRC lag der Taupunkt bei ca. 36°C. Das ist schon gewaltig Wasser.

                  @eric2905:

                  Sind die Einheiten gleich? Es gibt Berechnungen mit g/m3 und g/kg. `
                  das habt ihr aber erst später eingefügt. Ich hatte damals alles auf g/kg und die JSON-Tabelle zeigt auch im Header g/kg an.
                  144_saunakabine.png
                  Im Moment ist da kaum ein Unterschied.

                  Gruß

                  Rainer

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

                    @Homoran:

                    Was mich wundert ist nur die doch deutliche Abweichung zu dem Skript das ich auf der CCU (ebenfalls nach @paul53) erstellt habe und dem was hier herauskommt.
                    Wenn ich es noch richtig im Kopf habe kommt bei der CCU etwa 27g/kg heraus, während mit diesem Skript dann 37g/kg angegeben wird.
                    Die Daten für rel. Feuchte und Temperatur sind jeweils identisch (20%; 65-70°C)

                    Verwendest Du auf der CCU das https://homematic-forum.de/forum/viewtopic.php?f=43&t=9835&p=71400&hilit=Feuchte#p71326, das nur bis 34 °C richtige Werte liefert ?

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by

                      Hallo Paul,
                      @paul53:

                      Verwendest Du auf der CCU das Skript mit der Näherungsformel, das nur bis 34 °C richtige Werte liefert ? `
                      Das würde eine Abweichung erklären.

                      Ehrlich ich weiß es nicht, ist zu lange her und ich bin doch Skript-Legastheniker:

                      ! ````
                      ! Lokale Variablen
                      real t; ! Temperatur in °C
                      integer rf; ! relative Feuchte in %
                      real af; ! absolute feuchte in g/kg
                      ! ! Werte einlesen
                      t = dom.GetObject("BidCos-RF.JEQ0064523:1.TEMPERATURE").Value();
                      rf = dom.GetObject("BidCos-RF.JEQ0064523:1.HUMIDITY").Value();
                      !rf = (0.95 * rf);
                      ! ! Berechnung
                      if (t < 0.0) {t = 0.0;}
                      if (t < 10.0)
                      { af = (3.78 + (0.285 * t) + (0.0052 * t * t) + (0.0005 * t * t * t));
                      }
                      else
                      { af = (7.62 + (0.524 * (t-10.0)) + (0.0131 * (t-10.0) * (t-10.0)) + (0.00048 * (t-10.0) * (t-10.0) * (t-10.0)));
                      }

                      af = (af * rf) / (100.0 + af * (100.0 - rf) / 622);

                      ! !In Systemvariable schreiben
                      dom.GetObject("Abs_Feuchte_Bad").State(af);

                      
                      Aber:
                      ~~@paul53:~~ 
                      
                      > in guter Näherung. Oberhalb von 34°C beträgt die Abweichung mehr als 0,1 g/kg. `  
                      10 sind auch mehr als 0,1 :mrgreen:
                      
                      Danke für den Hinweis.
                      
                      ich nehme an, dass das an den limitierten Fähigkeiten der CCU-Skripte liegt, dass sie komplexere Rechenformeln nicht umsetzen können.
                      
                      Dann muss ich doch mal alles umbauen :(
                      
                      ich habe eh noch so viele Pläne (und so wenig Zeit)
                      
                      Gruß
                      
                      Rainer
                      1 Reply Last reply Reply Quote 0
                      • lobomau
                        lobomau last edited by

                        @Homoran:

                        Hallo zusammen.

                        Ich habe jetzt einen TH-O in der Sauna montiert. Dort kommt es natürlich zu erheblichem Wassergehalt.

                        Was mich wundert ist nur die doch deutliche Abweichung zu dem Skript das ich auf der CCU (ebenfalls nach @paul53) erstellt habe und dem was hier herauskommt.

                        Wenn ich es noch richtig im Kopf habe kommt bei der CCU etwa 27g/kg heraus, während mit diesem Skript dann 37g/kg angegeben wird.

                        Die Daten für rel. Feuchte und Temperatur sind jeweils identisch (20%; 65-70°C)

                        Was ist jetzt richtig?

                        Gruß

                        Rainer `
                        Die 37g/kg kommen der Realität ziemlich nahe. Siehe dazu folgendes h1+x-Diagramm (leider nur bis 35g/kg):

                        http://www.itt.kit.edu/downloads/h1x_Di … eitert.pdf

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

                          @Homoran:

                          ich nehme an, dass das an den limitierten Fähigkeiten der CCU-Skripte liegt, dass sie komplexere Rechenformeln nicht umsetzen können.

                          Ja, daran liegt es.

                          @Homoran:

                          Dann muss ich doch mal alles umbauen

                          Das Skript hatte ich schon vor längerer Zeit durch die Berechnung des CUxD Thermostat Device ersetzt. Man kann ja die Umstellung auf die Sauna beschränken, da das wohl der einzige Raum mit Temperaturen über 34 °C ist; evtl. noch die Außenfeuchte.

                          EDIT: Oder Du deaktivierst die Skripte in der CCU und beschreibst die Systemvariablen durch ioBroker.

                          1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators last edited by

                            Danke für alle Tipps!
                            @paul53:

                            Oder Du deaktivierst die Skripte in der CCU und beschreibst die Systemvariablen durch ioBroker. `
                            Das war der Plan!

                            und entsprechend alle OIDs in vis ändern.

                            Gruß

                            Rainer

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators last edited by

                              Hier nur mal kurz zur Vollständigkeit der aktuelle Screenshot:
                              144_saunakabine02.jpg

                              Damit man weiß wovon ich rede.

                              Noch nichts angepasst.

                              Gruß

                              Rainer

                              1 Reply Last reply Reply Quote 0
                              • T
                                tesso last edited by

                                Hallo,

                                ich habe eben das Skript aus dem ersten Beitrag genommen und meine Datenpunkte angepasst.

                                Leider erhalte ich ständig Meldungen der Art:````
                                14:10:20.306 [error] javascript.1 script.js.Luftfeuchte.Lueften: Cannot use sync getState, use callback instead getState("hm-rpc.0.LEQ0594610.1.TEMPERATURE", function (err, state){});
                                14:10:22.809 [error] javascript.1 script.js.Luftfeuchte.Lueften: Cannot use sync getState, use callback instead getState("Raumklima.Raum.Aussen.Feuchtegehalt_Absolut", function (err, state){});

                                
                                Ich habe zu wenig Ahnung, um zu verstehen was ich dagegen tun kann.
                                1 Reply Last reply Reply Quote 0
                                • T
                                  tempestas last edited by

                                  Guten morgen zusammen,

                                  danke an alle Beteiligten für das tolle Skript. Ich bewundere immer wieder, was so einige hier können. Es gibt viel viel zu lernen :idea:

                                  Da ich (zufällig) gesehen habe, dass die v.0.6.4 hier im Thread verfügbar ist möchte ich anregen, diese auch vorne im ersten Posting anzupinnen, denn dort steht noch die 0.5.2 als aktueller Stand.

                                  Ich habe bei mir (sicherlich etwas grobschlächtig in der Umsetzung) noch eingebaut, dass die Lüftungsempfehlung nicht nur in Abhängigkeit der absoluten Feuchtigkeit stattfindet sondern in Abhängigkeit der relativen Feuchtigkeit (innen je nach Raum), sofern denn überhaupt gelüftet werden sollte bzw kann, eine Empfehlung zum Lüften in unterschiedlichen Dringlichkeiten dargestellt wird;

                                  d.h.

                                  <40% = grau, es kann gelüftet werden aber ggf Luft unangenehm trocken

                                  40-60% = grün, es kann gelüftet werden

                                  60 <70 = orange, es sollte gelüftet werden

                                  70 = rot, es muss gelüftet werden (Schimmelgefahr).

                                  Zwei Fragen habe ich:

                                  1. ich nutze Homematic IP Thermostaten / Feuchtigkeitsmesser. Diese zeigen mir quer durch alle Räume immer ca 5% MEHR rH an, als meine alten TFA Dostmann Dinger.

                                  Im Skript steht ja auch, man solle die Offsets kalibrieren - aber wie? Wie finde ich denn raus, was "echt" ist, um die Kalibrierung vorzunehmen? Habt ihr alle irgendwelche Profigeräte zu Hause, mit denen ihr messt?

                                  1. Zum Code des Skript wäre ich dankbar, wenn mich jemand zu diesem Abschnitt erleuchten könnte:
                                      // Klimadaten in allen Räumen berechnen 									##### VERSTANDEN
                                      function calcAll() {
                                          for (var raum in raeume) {
                                              calcDelayed(raum,delayRooms);       // Räume verzögert nacheinander abarbeiten
                                          }
                                      }																				
                                  
                                      // finde anhand der Sensor ID einen zugeordneten Raum							##### BITTE ERKLÄREN. WIE KANN ICH DIES z.B: IN ANDEREN SKRIPTEN NUTZEN?
                                      function findRoom(sensor) {
                                          for (var raum in raeume) {
                                              if (raeume[raum].Sensor_TEMP == sensor) return raum;						###### IST "sensor" beliebig ersetzbar? 
                                              if (raeume[raum].Sensor_HUM == sensor) return raum;
                                          }
                                          return null;
                                      }
                                  
                                      // Änderung eines Sensors (Temperatur oder Luftfeuchtigkeit)						####### GREIFT AUF FINDROOM ZU, VERSTANDEN
                                      function valChange(obj) {
                                          var raumname = findRoom(obj.id);
                                          if (raumname) {
                                              if (debug) log('**Änderung:' + raumname + ": " + obj.id + ": " + obj.state.val + '**');
                                              calcDelayed(raumname,delayRooms);
                                          }
                                  
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators last edited by

                                    @tempestas:

                                    Wie finde ich denn raus, was "echt" ist, um die Kalibrierung vorzunehmen? `
                                    Am einfachsten siehst du es demokratisch und nimmst die Werte der Mehrheit, zumal du ja nur vergleichen willst.

                                    Am ehesten den wahren Wert erfährst du indem du dir ein Haarhygrometer besorgst und es entsprechend kalbrierst (Feuchte Kammer)

                                    Gruß

                                    Rainer

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      tempestas last edited by

                                      Hallo Rainer,

                                      danke. Es ist wirklich so, dass meine alten Sensoren grundsätzlich immer 5% weniger rH anzeigen.

                                      Ich tendiere dazu, einfach die HmIP Werte zu glauben, schon aus Vorsichtsgründen (lieber einmal mehr lüften, gerade im Neubau…)

                                      Kannst du mir bei meiner Code Frage auch weiterhelfen?

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

                                        Moin,

                                        was genau möchtest Du denn zu dem Codesegment wissen?

                                        Bzgl. der Version im ersten Posting schaue ich mal nach, wenn ich wieder zu Hause bin (morgen Abend).

                                        Gleiches gilt für den Offset.

                                        Gruß,

                                        Eric

                                        Von unterwegs getippert

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          tempestas last edited by

                                          Hallo eric,

                                          danke für deine Rückmeldung.

                                          Ich hatte probiert, basierend auf dem Feuchtigkeitsscrip ein anderes Skript für Temperaturen zu bauen. Das man das ggf. alles in eins verarbeiten kann ist klar, aber ich lagere Dinge immer gerne erstmal aus, um zu lernen.

                                          ! ````
                                          ! // **************************************************************************************************
                                          // SKRIPT ZUM AUSWERTEN DER IST-TEMPERATUREN UND SOLL TEMPERATUREN
                                          // SCHREIBT WERTE IN ERZEUGTE DATENPUNKTE; DIESE KÖNNEN DANN IN ANDEREN SKRIPTEN GENUTZT WERDEN
                                          // zusammengeschustert basierend auf dem Feuchtigkeitsskript von Solear, Paul53, ruhr70, eric2905
                                          // **************************************************************************************************
                                          ! // ***********************************************************************
                                          // Einstellungen
                                          // ***********************************************************************
                                          var debug = true; // Loggin mit true ein- bzw mit false ausschalten
                                          // ***********************************************************************
                                          // Parameter Variablen
                                          // ***********************************************************************
                                          var defaultMinTemp = 18.00; // Default TEMP_Minimum, wenn im Raum nicht angegeben (Auskühlschutz, tiefer soll eine Raumtemperatur durchs lüften nicht sinken)
                                          var pfad = "Raumklima.Temperatur.Raum.";
                                          var delayRooms = 500; // Zeit in MS Verzögerung zwischen Berechnungen der Räume
                                          ! // ***********************************************************************
                                          // Räume anlegen (Räume werden in Array geschrieben und dann für createState genutzt)
                                          // ***********************************************************************
                                          var raeume = { // Keine Leerzeichen (Name wird als Datenpunktname verwendet!)

                                              // Erdgeschoss
                                          
                                              "FlurEG" : {
                                                  "Temp_Ist"              :   "hm-rpc.1.000E57098F208F.1.ACTUAL_TEMPERATURE"/*HmIP Temperatur und Feuchtigkeitsmesser Flur HWR:1.ACTUAL_TEMPERATURE*/,
                                                  "Temp_Soll"             :   "hm-rpc.1.000E57098F208F.1.SET_POINT_TEMPERATURE"/*HmIP Temperatur und Feuchtigkeitsmesser Flur HWR:1.SET_POINT_TEMPERATURE*/,
                                                  "TEMP_Minimum"          :   defaultMinTemp, // oder Zieltemperatur in Form von: 20.00 angeben
                                              },
                                              "Wohnzimmer" : {
                                                  "Temp_Ist"              :   "hm-rpc.1.000E57098F207E.1.ACTUAL_TEMPERATURE"/*HmIP Temperatur und Feuchtigkeitsmesser Wohn Ess:1.ACTUAL_TEMPERATURE*/,
                                                  "Temp_Soll"             :   "hm-rpc.1.000E57098F207E.1.SET_POINT_TEMPERATURE"/*HmIP Temperatur und Feuchtigkeitsmesser Wohn Ess:1.SET_POINT_TEMPERATURE*/,
                                                  "TEMP_Minimum"          :   defaultMinTemp, // oder Zieltemperatur in Form von: 20.00 angeben
                                              },   
                                              "Gaestebad" : {
                                                  "Temp_Ist"              :   "hm-rpc.0.NEQ1640752.4.ACTUAL_TEMPERATURE"/*Gaestebad Thermostat:4.ACTUAL_TEMPERATURE*/,
                                                  "Temp_Soll"             :   "hm-rpc.0.NEQ1640752.4.SET_TEMPERATURE"/*Gaestebad Thermostat:4.SET_TEMPERATURE*/,
                                                  "TEMP_Minimum"          :   defaultMinTemp, // oder Zieltemperatur in Form von: 20.00 angeben
                                              },   
                                          
                                              // Obergeschoss
                                          
                                              "Schlafzimmer" : {
                                                  "Temp_Ist"              :   "hm-rpc.1.000E57098F20A8.1.ACTUAL_TEMPERATURE",
                                                  "Temp_Soll"             :   "hm-rpc.1.000E57098F20A8.1.SET_POINT_TEMPERATURE"/*HmIP Temperatur und Feuchtigkeitsmesser Schlafzimmer:1.SET_POINT_TEMPERATURE*/,
                                                  "TEMP_Minimum"          :   defaultMinTemp, // oder Zieltemperatur in Form von: 20.00 angeben
                                              },
                                              "BadOG" : {
                                                  "Temp_Ist"              :   "hm-rpc.1.000393C99A1CDE.1.ACTUAL_TEMPERATURE"/*Badezimmer oben Thermostat Handtuchhalter:1.ACTUAL_TEMPERATURE*/,
                                                  "Temp_Soll"             :   "hm-rpc.1.000393C99A1CDE.1.SET_POINT_TEMPERATURE"/*Badezimmer oben Thermostat Handtuchhalter:1.SET_POINT_TEMPERATURE*/,
                                                  "TEMP_Minimum"          :   defaultMinTemp, // oder Zieltemperatur in Form von: 20.00 angeben
                                              },
                                          };
                                          

                                          ! // ***********************************************************************
                                          // Raumvariablen --> werden als Unterpunkte in die createState geschrieben
                                          // ***********************************************************************
                                          ! var raumDatenpunkte = {
                                          "tempSoll" : {
                                          "DpName" : "Soll_Temperatur",
                                          "init": 0,
                                          "dp": {
                                          "name": 'Soll Temperatur',
                                          "desc": 'manuell eingestellt oder via HM',
                                          "type": 'number',
                                          "role": 'value',
                                          "unit": '°C'
                                          }
                                          },

                                              "tempIst" : {
                                                  "DpName" : "Ist_Temperatur",
                                                  "init": 0,
                                                  "dp": {
                                                      "name": 'Aktuelle Temperatur',
                                                      "desc": 'fakt',
                                                      "type": 'number',
                                                      "role": 'value',
                                                      "unit": '°C'
                                                  }
                                              }
                                          

                                          };
                                          // ***********************************************************************
                                          // Funktionen
                                          // ***********************************************************************

                                          // finde anhand der Sensor ID einen zugeordneten Raum <<<<<<<<<<<<<<<<<< HIER DENKE ICH LIEGT MEIN FEHLER!!
                                          function findRoom(sensor) {
                                          for (var raum in raeume) {
                                          if (raeume[raum].Temp_Ist == sensor) return raum;
                                          if (raeume[raum].Temp_Soll == sensor) return raum;
                                          }
                                          return null;
                                          }
                                          // Änderung eines Sensors (Temperatur ISt oder Soll) <<<<<<<<<<<<<<<<< oder hier, aber diese benötigt ja die Function findRoom, d.h. wahrscheinlich dort mein Fehler
                                          function valChange(obj) {
                                          var raumname = findRoom(obj.id);
                                          if (raumname) {
                                          if(debug) log('Änderung:' + raumname + ": " + obj.id + ": " + obj.state.val + '');
                                          calcDelayed(raumname, delayRooms);
                                          }
                                          }
                                          // Berechnung verzögern, damit die Räume nacheinander abgearbeitet werden
                                          function calcDelayed(raum, delay) {
                                          setTimeout(function () {
                                          calc(raum);
                                          }, delay || 0);
                                          }

                                          // Berechnung
                                          function calc(raum) {
                                          var ist = getState(raeume[raum].Temp_Ist).val; // Temperatur IST auslesen
                                          var soll = getState(raeume[raum].Temp_Soll).val; // Temperatur SOLL auslesen

                                              if(debug) log("Temperatur IST in "+raum +" beträgt "+ist);
                                              if(debug) log("Temperatur Soll in "+raum +" beträgt "+soll);        
                                          
                                              var idSoll  = pfad + raum + "."+raumDatenpunkte['tempSoll'].DpName;   // Pfad für nachfolgendes setState zusammenbauen
                                              var idIst   = pfad + raum + "."+raumDatenpunkte['tempIst'].DpName;
                                          
                                              setState(idSoll, soll);
                                              setState(idIst, ist);
                                          

                                          }

                                          // Berechnung
                                          function calcAll() {
                                          for (var raum in raeume) {
                                          calcDelayed(raum,delayRooms); // Räume verzögert nacheinander abarbeiten
                                          }
                                          }

                                          // Anlegen der Datenpunkte --> legt Datenpunkte an mit Raum(name) und den Sub-Dps
                                          function createDp() {
                                          var name;
                                          var init;
                                          var forceCreation;
                                          var common;
                                          for (var raum in raeume) {
                                          for (var datenpunktID in raumDatenpunkte) {
                                          name = pfad + raum + "." + raumDatenpunkte[datenpunktID].DpName;
                                          init = raumDatenpunkte[datenpunktID].init;
                                          forceCreation = false; // Init der Datenpunkte wird nur beim ersten Star angelegt. Danach bleiben die Wert auch nach Skritpstart enthalten.
                                          common = raumDatenpunkte[datenpunktID].dp;
                                          createState(name, init , forceCreation, common);
                                          if(debug) log("neuer Datenpunkt: " + name);
                                          }
                                          }
                                          }

                                          ! // START
                                          createDp(); // Datenpunkte anlegen
                                          setTimeout(calcAll, 3000); // Zum Skriptstart ausführen
                                          ! ````

                                          Leider funktioniert das nicht, es wird nicht auf Änderungen der IST oder Soll Temperatur reagiert. Diese sollten ja eigentlich als Auslöser dienen.

                                          D.h. irgendwie muss ich einen (Verständnis-)fehler in den Funktionen findRoom oder valChange (welche ja findRoom nutzt) haben; aber diesen finde ich nicht.

                                          Mein Problem besteht sicherlich auch darin, dass ich in Sachen Javascript trotz mehrfachem Lesens des "Eloquent JS" Buchs (bzw Teilen davon), die Funktionen wohl noch nicht zu 100% durchsteige.

                                          z.B. oben im "findRoom" steht == sensor <– was ist das "sensor" hier?

                                          Danke für deine Hilfe, ich will das unbedingt verstehen! 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            galferiz last edited by

                                            Moin Leute,

                                            Ich hab Eurer Skript mal bei mir eingesetzt und wunder mich etwas was die Lüftungsempfehlung angeht.

                                            Hab die Daten die letzten Tage beobachtet und hab seid gut einer Woche eine dauerhafte Lüftungsempfehlung.

                                            alle Datenpunkt werden gelistet und die Min/Maxwerte hab ich eingestellt.

                                            Wann emfiehlt er denn nicht zu lüften ??? Irgendwas passt doch da nicht. 😄

                                            Grüße

                                            Thomas

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            95
                                            738
                                            166642
                                            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