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. Hardware
  4. ESPHome: Wandfeuchte messen-Schimmel vermeiden+Anwendungen

NEWS

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

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

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

ESPHome: Wandfeuchte messen-Schimmel vermeiden+Anwendungen

Geplant Angeheftet Gesperrt Verschoben Hardware
122 Beiträge 6 Kommentatoren 17.3k Aufrufe 4 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.
  • K klassisch

    So, verstehe diese Form von embedded JS nicht wirklich und habe es jetzt mal mäßig quick aber sehr dirty umgeschrieben
    Edit: Quelle des Algo: http://www.TH80.de/

    /*  Calculate Humidity and moisture data **********************
    
     Calculations of Humidity and water content in air 
     modifications of http://www.TH80.de/
    
    Purpose:
    * Input values:
      ** Temp: temperaure of air
      ** Hrel: humidity in air at the same location (measured by the same sensor) SHT35 or SHT85 recommende for precise data
      ** T_wall: wall temperature. measured e.g. by a contact thermometer. To minimize calculation errors, it is reommended, to locate the T/H sensor close to the wall and contact T-sensor
    
    * Output data:
    
      **  TH70 Air: temperature to acieve a relative humidity of 70%
      **  TH80 Air: temperature to acieve a relative humidity of 80%
      **  TH90 Air: temperature to acieve a relative humidity of 90%
      **  T_dew Air: temperature to achieve a relative humidity of 100% (dew point, TH100)
      **  H_abs Mass: of water in grams in 1 m³ of air
      **  H_standard: Value of the relative humidity @20°C (standardized humidity)
      **  P_vaporSatur: Current water vapor saturation pressure in Pa
      **  P_vapor: Current water vapor pressure in Pa
      **  H_wall: Current wall moisture: relative humidty @ T-wall.
      **  P_vaporSaturWall: vapor saturation pressure at T_wall
     
    
    ***************************************/
    
    const debugLogOn = true;
    const nameOfThisScript = name.split('.')[name.split('.').length - 1];
    
    
    // test Variables 
    var Temp = 14;
    var Hrel = 8;
    var T_wall = 12;
    //=20.13°C humidity=56.55%
    // temperature=20.52°C humidity=55.44%
    
    
    // end test variables
    
    
    
    
    
    var Hrel = Hrel
    var P_vaporSatur;
    var P_vaporSaturWall;
    var P_vapor;
    var T_dew;
    var TH70;
    var TH80;
    var TH90;
    var H_abs;
    var H_standard;
    var H_wall;
    
    var P_vaporSaturRound;
    var P_vaporRound;
    var T_dewRound;
    var TH70Round;
    var	TH80Round;
    var	TH90Round;
    var H_absRound;
    var H_standardRound;
    var H_wallRound;
    		
    
    function calculateHumidityValues() {
    		P_vaporSatur = 611*Math.pow(10,7.5*Temp/(237.3+Temp));
    		P_vaporSaturWall = 611*Math.pow(10,7.5*T_wall/(237.3+T_wall));
    		P_vapor = Hrel/100*P_vaporSatur;
    		T_dew = 237.3*Math.log(P_vapor/610.78)/Math.log(10)/(7.5-Math.log(P_vapor/610.78)/Math.log(10));
    		TH70 = 237.3*Math.log(P_vapor/(610.78*0.7))/Math.log(10)/(7.5-Math.log(P_vapor/(610.78*0.7))/Math.log(10));
    		TH80 = 237.3*Math.log(P_vapor/(610.78*0.8))/Math.log(10)/(7.5-Math.log(P_vapor/(610.78*0.8))/Math.log(10));
    		TH90 = 237.3*Math.log(P_vapor/(610.78*0.9))/Math.log(10)/(7.5-Math.log(P_vapor/(610.78*0.9))/Math.log(10));
    		H_abs = 1000*18.016/8314.3*P_vapor/(Temp+273.15);
    		H_standard = P_vaporSatur*Hrel/2340;
    		H_wall = (P_vapor / P_vaporSaturWall)*100;
    
    		P_vaporSaturRound = Math.round(P_vaporSatur);
    		P_vaporRound = Math.round(P_vapor);
    		T_dewRound = Math.round(T_dew*100)/100;
    		TH70Round = Math.round(TH70*100)/100;
    		TH80Round = Math.round(TH80*100)/100;
    		TH90Round = Math.round(TH90*100)/100;
    		H_absRound = Math.round(H_abs*100)/100;
    		H_standardRound = Math.round(H_standard*100)/100;
       		H_wallRound = Math.round(H_wall*100)/100;
    
    };
    
    
    
    // start calculation using the predefined data
       calculateHumidityValues();
       
    // output    
    
       if(debugLogOn)console.log('Temp: ' +Temp+';  Hrel: ' + Hrel + ';  T_wall: ' + T_wall);
       if(debugLogOn)console.log('T bei 70% ' + TH70Round);
       if(debugLogOn)console.log('T bei 80% ' + TH80Round);
       if(debugLogOn)console.log('T bei 90% ' + TH90Round);
       if(debugLogOn)console.log('T_dewRound: ' + T_dewRound);  
       if(debugLogOn)console.log('Habs: ' + H_absRound);
       if(debugLogOn)console.log('H_standard ' + H_standardRound);
       if(debugLogOn)console.log('Saettigungsdampfdruck: ' + P_vaporSaturRound);
       if(debugLogOn)console.log('Partialdruck: ' + P_vaporRound);
       if(debugLogOn)console.log('H_wall: ' + H_wallRound);
    
    
    
    
    
    
    //end script
    
    
    
    
    
    
    
    

    Schätze mal, daß der PWM Dimmer um 100Hz hat.

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #34

    @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

    mal mäßig quick aber sehr dirty umgeschrieben

    Danke erstmal dafür, setze ich nachher mal um

    @opensourcenomad sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

    damit das Sterben zu verlangsamen finde ich sehr altruistisch

    so bin ich halt.
    Habe davon zuviel im Fachhandel erlebt, wo es inzwischen nur noch sehr schwer ist Händler zu finden.
    Herrn Bezos möchte ich nicht unbedingt unterstützen.

    @opensourcenomad sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

    der Homematic PWM-Dimmer hat eine Ausgangsfrequenz von ca. 400 Hz

    Danke dafür!

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • OpenSourceNomadO OpenSourceNomad

      @homoran said in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

      bestellen mache ich aus Prinzip nur hier

      Wenn du bereits bist ein vielfaches zu zahlen damit das (immer) in fern Ost produzierte Teil einen extra Zwischenstopp in Bayern einlegt kannst du hier ein mosfet board (ohne esp!) für 5€ erstehen. :moneybag:

      Zum Vergleich direkt aus dem Erzeugerland:
      e55ae585-2d30-4c19-abac-1862e4cf93d1-image.png

      Deine Konsequenz die (noch) existieren Zwischenhändler zu subventionieren und damit das Sterben zu verlangsamen finde ich sehr altruistisch.

      Ich habe nie Verstanden welchen Mehrwert ich habe von einem Zwischenhändler für das identische (:warning:) Produkt mehr zu zahlen. Wenn irgendwie Möglich kaufe ich immer direkt vom Produzenten.

      @homoran said in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

      Ist der hier
      https://de.elv.com/homematic-led-funk-dimmer-1-fach-12-24v-pwm-hm-lc-dim1pwm-cv-fuer-smart-home-hausautomation-099444
      Habe da keine Frequenz gefunden

      Im Forum berichtet ein Kunde von einem erkennbaren 200Hz flimmern

      ELV selber dazu:

      der Homematic PWM-Dimmer hat eine Ausgangsfrequenz von ca. 400 Hz. Dieses reicht in der Regel völlig aus, da Flimmern ab 200 Hz vom Menschen normalerweise nicht mehr wahrgenommen werden kann.

      Von den 60 Euronen für das Gerät waren wohl nach Personalkosten (und Gewinn) nur noch 2,5€ pro Stück über um die Hardware aus China einzukaufen (vorausgesetzt die Geräte werden überhaupt in DE zusammengeschraubt) :grimacing:

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #35

      @opensourcenomad sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

      vorausgesetzt die Geräte werden überhaupt in DE zusammengeschraubt)

      Werden sie, und zwar von mir

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      1
      • K klassisch

        So, verstehe diese Form von embedded JS nicht wirklich und habe es jetzt mal mäßig quick aber sehr dirty umgeschrieben
        Edit: Quelle des Algo: http://www.TH80.de/

        /*  Calculate Humidity and moisture data **********************
        
         Calculations of Humidity and water content in air 
         modifications of http://www.TH80.de/
        
        Purpose:
        * Input values:
          ** Temp: temperaure of air
          ** Hrel: humidity in air at the same location (measured by the same sensor) SHT35 or SHT85 recommende for precise data
          ** T_wall: wall temperature. measured e.g. by a contact thermometer. To minimize calculation errors, it is reommended, to locate the T/H sensor close to the wall and contact T-sensor
        
        * Output data:
        
          **  TH70 Air: temperature to acieve a relative humidity of 70%
          **  TH80 Air: temperature to acieve a relative humidity of 80%
          **  TH90 Air: temperature to acieve a relative humidity of 90%
          **  T_dew Air: temperature to achieve a relative humidity of 100% (dew point, TH100)
          **  H_abs Mass: of water in grams in 1 m³ of air
          **  H_standard: Value of the relative humidity @20°C (standardized humidity)
          **  P_vaporSatur: Current water vapor saturation pressure in Pa
          **  P_vapor: Current water vapor pressure in Pa
          **  H_wall: Current wall moisture: relative humidty @ T-wall.
          **  P_vaporSaturWall: vapor saturation pressure at T_wall
         
        
        ***************************************/
        
        const debugLogOn = true;
        const nameOfThisScript = name.split('.')[name.split('.').length - 1];
        
        
        // test Variables 
        var Temp = 14;
        var Hrel = 8;
        var T_wall = 12;
        //=20.13°C humidity=56.55%
        // temperature=20.52°C humidity=55.44%
        
        
        // end test variables
        
        
        
        
        
        var Hrel = Hrel
        var P_vaporSatur;
        var P_vaporSaturWall;
        var P_vapor;
        var T_dew;
        var TH70;
        var TH80;
        var TH90;
        var H_abs;
        var H_standard;
        var H_wall;
        
        var P_vaporSaturRound;
        var P_vaporRound;
        var T_dewRound;
        var TH70Round;
        var	TH80Round;
        var	TH90Round;
        var H_absRound;
        var H_standardRound;
        var H_wallRound;
        		
        
        function calculateHumidityValues() {
        		P_vaporSatur = 611*Math.pow(10,7.5*Temp/(237.3+Temp));
        		P_vaporSaturWall = 611*Math.pow(10,7.5*T_wall/(237.3+T_wall));
        		P_vapor = Hrel/100*P_vaporSatur;
        		T_dew = 237.3*Math.log(P_vapor/610.78)/Math.log(10)/(7.5-Math.log(P_vapor/610.78)/Math.log(10));
        		TH70 = 237.3*Math.log(P_vapor/(610.78*0.7))/Math.log(10)/(7.5-Math.log(P_vapor/(610.78*0.7))/Math.log(10));
        		TH80 = 237.3*Math.log(P_vapor/(610.78*0.8))/Math.log(10)/(7.5-Math.log(P_vapor/(610.78*0.8))/Math.log(10));
        		TH90 = 237.3*Math.log(P_vapor/(610.78*0.9))/Math.log(10)/(7.5-Math.log(P_vapor/(610.78*0.9))/Math.log(10));
        		H_abs = 1000*18.016/8314.3*P_vapor/(Temp+273.15);
        		H_standard = P_vaporSatur*Hrel/2340;
        		H_wall = (P_vapor / P_vaporSaturWall)*100;
        
        		P_vaporSaturRound = Math.round(P_vaporSatur);
        		P_vaporRound = Math.round(P_vapor);
        		T_dewRound = Math.round(T_dew*100)/100;
        		TH70Round = Math.round(TH70*100)/100;
        		TH80Round = Math.round(TH80*100)/100;
        		TH90Round = Math.round(TH90*100)/100;
        		H_absRound = Math.round(H_abs*100)/100;
        		H_standardRound = Math.round(H_standard*100)/100;
           		H_wallRound = Math.round(H_wall*100)/100;
        
        };
        
        
        
        // start calculation using the predefined data
           calculateHumidityValues();
           
        // output    
        
           if(debugLogOn)console.log('Temp: ' +Temp+';  Hrel: ' + Hrel + ';  T_wall: ' + T_wall);
           if(debugLogOn)console.log('T bei 70% ' + TH70Round);
           if(debugLogOn)console.log('T bei 80% ' + TH80Round);
           if(debugLogOn)console.log('T bei 90% ' + TH90Round);
           if(debugLogOn)console.log('T_dewRound: ' + T_dewRound);  
           if(debugLogOn)console.log('Habs: ' + H_absRound);
           if(debugLogOn)console.log('H_standard ' + H_standardRound);
           if(debugLogOn)console.log('Saettigungsdampfdruck: ' + P_vaporSaturRound);
           if(debugLogOn)console.log('Partialdruck: ' + P_vaporRound);
           if(debugLogOn)console.log('H_wall: ' + H_wallRound);
        
        
        
        
        
        
        //end script
        
        
        
        
        
        
        
        

        Schätze mal, daß der PWM Dimmer um 100Hz hat.

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #36

        @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

        sehr dirty umgeschrieben

        ich hab es versucht noch dirtier zu machen:
        TP_80_01.png

        muss da bei der ID noch irgendwo ein .val oder so rein?

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        K 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

          sehr dirty umgeschrieben

          ich hab es versucht noch dirtier zu machen:
          TP_80_01.png

          muss da bei der ID noch irgendwo ein .val oder so rein?

          K Offline
          K Offline
          klassisch
          Most Active
          schrieb am zuletzt editiert von
          #37

          @homoran var Temp = getState('DeineID').val;

          HomoranH 1 Antwort Letzte Antwort
          1
          • K klassisch

            @homoran var Temp = getState('DeineID').val;

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #38

            @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

            getState

            Danke - läuft!

            19:35:07.082	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: Taupunkt: 10.548477384785869
            19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: Saettigungsdampfdruck: 2090.4541817975487
            19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: Partialdruck: 1275.1770508965046
            19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: Habs: 9.484498607491766
            19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: T bei 80% 14.182271687551786
            19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: T bei 70% 16.064102027198793
            

            dann will ich mal sehen, ob ich damit noch etwas meine js-Kenntnisse aufbessern kann. (z.B. DP anlegen und befüllen)

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            K 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

              getState

              Danke - läuft!

              19:35:07.082	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: Taupunkt: 10.548477384785869
              19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: Saettigungsdampfdruck: 2090.4541817975487
              19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: Partialdruck: 1275.1770508965046
              19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: Habs: 9.484498607491766
              19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: T bei 80% 14.182271687551786
              19:35:07.083	info	javascript.1 (6588) script.js.Wetter_und_Klima.Werkstatt_TP80: T bei 70% 16.064102027198793
              

              dann will ich mal sehen, ob ich damit noch etwas meine js-Kenntnisse aufbessern kann. (z.B. DP anlegen und befüllen)

              K Offline
              K Offline
              klassisch
              Most Active
              schrieb am zuletzt editiert von
              #39

              @homoran Anlegen erst mal manuell über Admin. Beschreiben via

              setState('DeineId',variable);
              
              HomoranH 1 Antwort Letzte Antwort
              0
              • K klassisch

                @homoran Anlegen erst mal manuell über Admin. Beschreiben via

                setState('DeineId',variable);
                
                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #40

                @klassisch wollte ich doch machen :cry:

                DANKE!

                was ist denn habs?
                die Werte, die dabei rauskommen passen nicht zum Raumklima Skript.
                kann es z.B. sein, dass hier g/Cubicmeter und nicht g/kg gerechnet wird
                hier kommt 9,48 heraus, beim Lüftungsskript 7,6

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                K 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @klassisch wollte ich doch machen :cry:

                  DANKE!

                  was ist denn habs?
                  die Werte, die dabei rauskommen passen nicht zum Raumklima Skript.
                  kann es z.B. sein, dass hier g/Cubicmeter und nicht g/kg gerechnet wird
                  hier kommt 9,48 heraus, beim Lüftungsskript 7,6

                  K Offline
                  K Offline
                  klassisch
                  Most Active
                  schrieb am zuletzt editiert von
                  #41

                  @homoran Habs ist die Absolute Feuchte in g/m³. Die bevorzugte Einheit, weil man da den Luftdruck nicht braucht.

                  HomoranH 1 Antwort Letzte Antwort
                  1
                  • K klassisch

                    @homoran Habs ist die Absolute Feuchte in g/m³. Die bevorzugte Einheit, weil man da den Luftdruck nicht braucht.

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von Homoran
                    #42

                    @klassisch
                    Nochmals Danke für deine Unterstützung.
                    Hab es jetzt implementiert bekommen und hoffentlich auch den Trigger korrekt gesetzt.
                    Datenpunkte werden korrekt gefüllt und den offset des Raumsensors ("kalibriert" mit den neuen Senosren) hab ich auch drin. Werte passen jetzt mit dem Raumklima übereinander.

                    Jetzt wird es langsam unübersichtlich
                    Klima_allgemein.png

                    Ausschnitt Werkstatt:
                    Klima_Werkstatt.png

                    Der aw 70 liegt aber verdammt dicht an der Wandtemperatur.
                    Da muss ich mal mein Entfeuchter/Heizprogramm nochmal durchdenken.

                    EDIT:
                    @klassisch
                    hier mein Machwerk:

                    // Luftfeuchteberechnungen
                    // modifiziert nach https://www.pb-schilling.de/baubiologie/luftfeuchte-rechner/ 
                    
                    const debugLogOn = true;
                    
                    // Testvariablen 
                    var Temp = getState('hm-rpc.0.JEQ0046663.1.TEMPERATURE').val/*Klima Werkstatt:1 TEMPERATURE*/;
                    var Hrel = (getState('hm-rpc.0.JEQ0046663.1.HUMIDITY').val)-2.5/*Klima Werkstatt:1 HUMIDITY*/;
                    // end Testvariablen
                    
                    Luftfeuchteberechnungen(Temp,Hrel);
                    
                    
                    
                    function Luftfeuchteberechnungen(myTemp,myHrel){ 
                      Luftfeuchtevorbereitung(myTemp, myHrel);
                      taupunktTemperatur();
                      //if(debugLogOn)console.log('Taupunkt: ' + taupunktTemperatur());  
                      wasserdampfSaettingungsdruck();
                      //if(debugLogOn)console.log('Saettigungsdampfdruck: ' + wasserdampfSaettingungsdruck());
                      wasserdampfTeildruck();
                      //if(debugLogOn)console.log('Partialdruck: ' + wasserdampfTeildruck());
                      wassergehaltLuft();
                      //if(debugLogOn)console.log('Habs: ' + wassergehaltLuft());
                      awWert80();
                      //if(debugLogOn)console.log('T bei 80% ' + awWert80());
                      awWert70();
                      //if(debugLogOn)console.log('T bei 70% ' + awWert70());
                    }
                    
                    
                    
                       function Luftfeuchtevorbereitung( theta, phi) {
                         this.theta = theta;
                         this.phi = phi;
                         if (this.phi > 1) {
                           this.phi = this.phi / 100;
                         }
                         if (this.phi > 1) {
                           this.phi = 1;
                         }
                       };
                    
                    
                       function taupunktTemperatur() {
                         return Math.pow(this.phi, 0.1247) * (109.8 + this.theta) - 109.8;
                       };
                    
                    
                       function wasserdampfSaettingungsdruck() {
                         if (this.theta > 0) {
                           return 288.68 * Math.pow(1.098 + this.theta / 100, 8.02);
                         } else {
                           return 4.689 * Math.pow(1.486 + this.theta / 100, 12.3);
                         }
                       };
                    
                    
                       function wasserdampfTeildruck() {
                         return this.phi * wasserdampfSaettingungsdruck();
                       };
                    
                       function wassergehaltLuft() {
                         return 216.7 * wasserdampfTeildruck() * 0.01 / (this.theta + 273.15);
                       };
                    
                    
                       function awWert80() {
                         var oben, unten;
                         oben = 237.3 * Math.log(611 * Math.pow(10, 7.5 * this.theta / (237.3 + this.theta) * this.phi) / 488.62) / Math.LN10;
                         unten = 7.5 - Math.log(611 * Math.pow(10, 7.5 * this.theta / (237.3 + this.theta) * this.phi) / 488.62) / Math.LN10;
                         return oben / unten;
                       };
                    
                       function awWert70() {
                         var oben, unten;
                         oben = 237.8 * Math.log(wasserdampfTeildruck() / (610.78 * 0.7)) / Math.LN10;
                         unten = 7.5 - Math.log(wasserdampfTeildruck() / (610.78 * 0.7)) / Math.LN10;
                         return oben / unten;
                       };
                    
                    
                    setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw70',Math.round(awWert70()*10)/10, true);
                    setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw80',Math.round(awWert80()*10)/10, true);
                    
                    
                    on('javascript.1.Raumklima.Raum.Werkstatt.Taupunkt',Luftfeuchteberechnungen); // triggert bei Wertänderung;
                    
                    //end script
                    

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    1
                    • HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #43

                      @klassisch
                      ich brauche doch nochmal deine Hilfe.
                      Entweder ich habe den Trigger nicht richtig gesetzt, oder da ist noch was falsch.
                      beim Scriptstart klappt alles, aber entweder die Triggersyntax passt nicht, was mich nicht wundern würde, oder ich rufe die falsche Funktion auf, oder in der Funktion fehlt was (vobereitung()).

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      K 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        @klassisch
                        ich brauche doch nochmal deine Hilfe.
                        Entweder ich habe den Trigger nicht richtig gesetzt, oder da ist noch was falsch.
                        beim Scriptstart klappt alles, aber entweder die Triggersyntax passt nicht, was mich nicht wundern würde, oder ich rufe die falsche Funktion auf, oder in der Funktion fehlt was (vobereitung()).

                        K Offline
                        K Offline
                        klassisch
                        Most Active
                        schrieb am zuletzt editiert von
                        #44

                        @homoran ich sehe nichts

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • K klassisch

                          @homoran ich sehe nichts

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #45

                          @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                          @homoran ich sehe nichts

                          keinen Fehler oder nicht das Skript im Spoiler?

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          K 1 Antwort Letzte Antwort
                          0
                          • HomoranH Homoran

                            @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                            @homoran ich sehe nichts

                            keinen Fehler oder nicht das Skript im Spoiler?

                            K Offline
                            K Offline
                            klassisch
                            Most Active
                            schrieb am zuletzt editiert von klassisch
                            #46

                            @homoran So, habe jetzt den Spoiler gefunden

                            on({id: 'javascript.1.Raumklima.Raum.Werkstatt.Taupunkt', change: "any"}, function() { // löst bei jeder Aktualisierung aus
                             Temp = getState('hm-rpc.0.JEQ0046663.1.TEMPERATURE').val/*Klima Werkstatt:1 TEMPERATURE*/;
                             Hrel = getState('hm-rpc.0.JEQ0046663.1.HUMIDITY').val - 2.5/*Klima Werkstatt:1 HUMIDITY*/;
                             Luftfeuchteberechnungen(Temp,Hrel);
                             setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw70',Math.round(awWert70()*10)/10, true);
                             setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw80',Math.round(awWert80()*10)/10, true);
                            });
                            
                            
                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • K klassisch

                              @homoran So, habe jetzt den Spoiler gefunden

                              on({id: 'javascript.1.Raumklima.Raum.Werkstatt.Taupunkt', change: "any"}, function() { // löst bei jeder Aktualisierung aus
                               Temp = getState('hm-rpc.0.JEQ0046663.1.TEMPERATURE').val/*Klima Werkstatt:1 TEMPERATURE*/;
                               Hrel = getState('hm-rpc.0.JEQ0046663.1.HUMIDITY').val - 2.5/*Klima Werkstatt:1 HUMIDITY*/;
                               Luftfeuchteberechnungen(Temp,Hrel);
                               setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw70',Math.round(awWert70()*10)/10, true);
                               setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw80',Math.round(awWert80()*10)/10, true);
                              });
                              
                              
                              HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #47

                              @klassisch danke!
                              und ich dachte ich hätte etwas mehr js gelernt :cry:

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              K 1 Antwort Letzte Antwort
                              0
                              • HomoranH Homoran

                                @klassisch danke!
                                und ich dachte ich hätte etwas mehr js gelernt :cry:

                                K Offline
                                K Offline
                                klassisch
                                Most Active
                                schrieb am zuletzt editiert von
                                #48

                                @homoran Ich kratze da auch nur an der Oberfläche. Und gewisse Dinge plappere ich nach wie ein Papagei, ohne mich mal grundegend mit der Struktur beschäftigt zu haben. Das Triggern durch "on" gehört dazu

                                Warum triggerst Du eigentlich auf den Taupunkt, der ja bereits ein verarbeiteter Wert ist und nicht auf einen direkten Sensorwert wie z.B.
                                hm-rpc.0.JEQ0046663.1.TEMPERATURE
                                ?

                                HomoranH 1 Antwort Letzte Antwort
                                0
                                • K klassisch

                                  @homoran Ich kratze da auch nur an der Oberfläche. Und gewisse Dinge plappere ich nach wie ein Papagei, ohne mich mal grundegend mit der Struktur beschäftigt zu haben. Das Triggern durch "on" gehört dazu

                                  Warum triggerst Du eigentlich auf den Taupunkt, der ja bereits ein verarbeiteter Wert ist und nicht auf einen direkten Sensorwert wie z.B.
                                  hm-rpc.0.JEQ0046663.1.TEMPERATURE
                                  ?

                                  HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #49

                                  @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                                  Warum triggerst Du eigentlich auf den Taupunkt,

                                  weil ich faul bin.
                                  die Änderung des Taupunktes beinhalter mögliche Änderungen von Temperatur und/oder Feuchte.
                                  Damit erschlage ich beides (denke ich zumindest)

                                  Das mit dem Papagei ist genau mein Thema. Aber ich muss es verstanden haben um nicht immer wieder irgendwo nachsehen zu müssen.
                                  Deswegen arbeite ich mit Blockly, weil ich nichtmal die Syntax hinbekomme.

                                  Inzwischen hat sich der Wert zumindest einmal geändert und getriggert!

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  K 1 Antwort Letzte Antwort
                                  1
                                  • HomoranH Homoran

                                    @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                                    Warum triggerst Du eigentlich auf den Taupunkt,

                                    weil ich faul bin.
                                    die Änderung des Taupunktes beinhalter mögliche Änderungen von Temperatur und/oder Feuchte.
                                    Damit erschlage ich beides (denke ich zumindest)

                                    Das mit dem Papagei ist genau mein Thema. Aber ich muss es verstanden haben um nicht immer wieder irgendwo nachsehen zu müssen.
                                    Deswegen arbeite ich mit Blockly, weil ich nichtmal die Syntax hinbekomme.

                                    Inzwischen hat sich der Wert zumindest einmal geändert und getriggert!

                                    K Offline
                                    K Offline
                                    klassisch
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #50

                                    @homoran sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                                    die Änderung des Taupunktes beinhalter mögliche Änderungen von Temperatur und/oder Feuchte.
                                    Damit erschlage ich beides (denke ich zumindest)

                                    Der HM-Sensor wird wohl eh beides gleichzeitig einliefern, vermute ich.

                                    Das mit dem Papagei ist genau mein Thema. Aber ich muss es verstanden haben um nicht immer wieder irgendwo nachsehen zu müssen.

                                    Den Anspruch habe ich nicht an mich. Habe mir einen Spickzettel in Notepad++ aufgemacht, wo die häufigsten Dinge als Beispiele drin stehen und ein paar Links zur Doku.
                                    Für Grobschlosser-Programmierung braucht man gar nicht sooo viel.
                                    Und bei den recht seltenen und langsamen Brechnungen muß ich nicht wirklich optimieren. Habe ja nicht den Anspruch, Adapter-Entwickler zu sein.
                                    Habe mir auch deshalb ein i5-6300U Notebook, der nebenbei auch ioBroker macht, für 160 EUR incl. Windows gegönnt.

                                    Deswegen arbeite ich mit Blockly, weil ich nichtmal die Syntax hinbekomme.

                                    Ich bekomme mit "Rules" gar nichts hin. Nicht gleich kapiert, sofort verworfen.

                                    Blockly hat den Spickzettel eingebaut. Das ist praktisch. Aber ich komme mit dem graphischen Zeug immer an die Grenzen. Das wird bei mir recht schnell unübersichtlich.
                                    Deshalb habe ich mich auf JS festgelegt. Da findet man auch viele Beispiele bei selfhtml und mediaevent.de

                                    Inzwischen hat sich der Wert zumindest einmal geändert und getriggert!

                                    Das sieht doch nach einem Erfolg aus! Glückwunsch!

                                    Man kann ja mit dem console.log notfalls mitverfolgen, was er tut.
                                    Dazu habe ich die constante debugLogOn eingeführt. Während der Entwicklung setze ich die auf true und wenn alles läuft auf false.

                                    HomoranH 1 Antwort Letzte Antwort
                                    0
                                    • K klassisch

                                      @homoran sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                                      die Änderung des Taupunktes beinhalter mögliche Änderungen von Temperatur und/oder Feuchte.
                                      Damit erschlage ich beides (denke ich zumindest)

                                      Der HM-Sensor wird wohl eh beides gleichzeitig einliefern, vermute ich.

                                      Das mit dem Papagei ist genau mein Thema. Aber ich muss es verstanden haben um nicht immer wieder irgendwo nachsehen zu müssen.

                                      Den Anspruch habe ich nicht an mich. Habe mir einen Spickzettel in Notepad++ aufgemacht, wo die häufigsten Dinge als Beispiele drin stehen und ein paar Links zur Doku.
                                      Für Grobschlosser-Programmierung braucht man gar nicht sooo viel.
                                      Und bei den recht seltenen und langsamen Brechnungen muß ich nicht wirklich optimieren. Habe ja nicht den Anspruch, Adapter-Entwickler zu sein.
                                      Habe mir auch deshalb ein i5-6300U Notebook, der nebenbei auch ioBroker macht, für 160 EUR incl. Windows gegönnt.

                                      Deswegen arbeite ich mit Blockly, weil ich nichtmal die Syntax hinbekomme.

                                      Ich bekomme mit "Rules" gar nichts hin. Nicht gleich kapiert, sofort verworfen.

                                      Blockly hat den Spickzettel eingebaut. Das ist praktisch. Aber ich komme mit dem graphischen Zeug immer an die Grenzen. Das wird bei mir recht schnell unübersichtlich.
                                      Deshalb habe ich mich auf JS festgelegt. Da findet man auch viele Beispiele bei selfhtml und mediaevent.de

                                      Inzwischen hat sich der Wert zumindest einmal geändert und getriggert!

                                      Das sieht doch nach einem Erfolg aus! Glückwunsch!

                                      Man kann ja mit dem console.log notfalls mitverfolgen, was er tut.
                                      Dazu habe ich die constante debugLogOn eingeführt. Während der Entwicklung setze ich die auf true und wenn alles läuft auf false.

                                      HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von Homoran
                                      #51

                                      @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                                      Das sieht doch nach einem Erfolg aus! Glückwunsch!

                                      ist großteils deine Leistung. ich hab nur die Rundung und die states eingebaut.

                                      Das mit dem Trigger ärgert mich jetzt.
                                      also entweder alles notwendige in einer Funktion (z.B. main()) und diese im Trigger aufrufen, oder im Zrigger innerhalb einer eigenen Funktion (??) alle notwendigen Schritte abarbeiten? Wobei ich diese Syntax nicht auf Anhieb zusammenbekomme.

                                      Irgendwann in diesem Leben will ich js können, so!

                                      @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                                      und wenn alles läuft auf false.

                                      und ich Idiot kommentiere sie aus, weil ich das nicht erkannt habe.

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      K 1 Antwort Letzte Antwort
                                      0
                                      • HomoranH Homoran

                                        @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                                        Das sieht doch nach einem Erfolg aus! Glückwunsch!

                                        ist großteils deine Leistung. ich hab nur die Rundung und die states eingebaut.

                                        Das mit dem Trigger ärgert mich jetzt.
                                        also entweder alles notwendige in einer Funktion (z.B. main()) und diese im Trigger aufrufen, oder im Zrigger innerhalb einer eigenen Funktion (??) alle notwendigen Schritte abarbeiten? Wobei ich diese Syntax nicht auf Anhieb zusammenbekomme.

                                        Irgendwann in diesem Leben will ich js können, so!

                                        @klassisch sagte in ESPHome: Wandfeuchte messen - Schimmel vermeiden:

                                        und wenn alles läuft auf false.

                                        und ich Idiot kommentiere sie aus, weil ich das nicht erkannt habe.

                                        K Offline
                                        K Offline
                                        klassisch
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #52

                                        @homoran Das on hat halt obrflächlich betrachtet eine blöde Syntax (für mich, der ich nach dem Papageienprinzip arbeite. Wenn man das richtig durchdringt, sieht das vielleicht anders aus. Aber lohnt sich dieser Einarbeitungsaufwand für die paar Zeilen Code, die ich schreibe?)

                                        Man könnte irgendwo ausserhalb des on Blocks eine Funktion definieren, die die Daten holt, die Umrechnung aufruft und dann die neuen Daten schreibt. Also alles, was jetzt im on Block steht in eine Funktion packen und dann im On-Block nur diese Funktion aufrufen. Vielleicht eleganter.
                                        Da es aber nur ein paar Zeilen sind, kann man es auch zwischen die {} des on Blocks schreiben. Das habe ich hier teils aus Bequemlichkeit gemacht teils um die Veränderung genauer zu zeigen.

                                        Könnte also auch so aussehen:

                                        
                                        function LuftfeuchteProzessierung(){
                                         Temp = getState('hm-rpc.0.JEQ0046663.1.TEMPERATURE').val/*Klima Werkstatt:1 TEMPERATURE*/;
                                         Hrel = (getState('hm-rpc.0.JEQ0046663.1.HUMIDITY').val)-2.5/*Klima Werkstatt:1 HUMIDITY*/;
                                         Luftfeuchteberechnungen(Temp,Hrel);
                                         setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw70',Math.round(awWert70()*10)/10, true);
                                         setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw80',Math.round(awWert80()*10)/10, true);
                                        }; 
                                        
                                        on({id: 'hm-rpc.0.JEQ0046663.1.TEMPERATURE', change: "any"}, function() { // löst bei jeder Aktualisierung aus
                                          LuftfeuchteProzessierung();
                                        });
                                        
                                        

                                        Viel wichtiger wäre es mir aber, Ids in Constante zu verfrachten, also zu abstrahieren, und aus dem Code wegzubekommen. Denn dadurch hat man weniger Geschäft, wenn man z.B. einen Sensor wechselt oder das Programm für einen anderen Raum modifiziert.

                                        Also in etwa so:

                                        const temperatureSensorId = 'hm-rpc.0.JEQ0046663.1.TEMPERATURE';
                                        
                                        .....
                                        on({id: temperatureSensorId, change: "any"}, function() { // löst bei jeder Aktualisierung aus
                                          LuftfeuchteProzessierung();
                                        });
                                        
                                        1 Antwort Letzte Antwort
                                        0
                                        • michl75M Offline
                                          michl75M Offline
                                          michl75
                                          schrieb am zuletzt editiert von michl75
                                          #53

                                          Guten Morgen, habe nur eben kurz drübergelesen da Zeitdruck habe... aber letzten Endes gehts hier doch um feuchte in und auf der Mauer sowie Luft und dementsprechende Ablagerung auf kalte Bauteiloberflächen.

                                          kurz zur Berechnung - schaut euch das mal an... das ist Bauphysik und danach machen:
                                          https://building-physics.net/webfm_send/439
                                          und vorallem das:
                                          https://building-physics.net/webfm_send/767

                                          (Dies als Beispiel, gibt viele andere Ausarbeitungen von TU's)

                                          Wie gesagt, eben nur drübergeflogen... aber mal den Link der PDF's anschauen

                                          Viel Erfolg

                                          HomoranH 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

                                          698

                                          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