Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. ESPHome: Wandfeuchte messen-Schimmel vermeiden+Anwendungen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    ESPHome: Wandfeuchte messen-Schimmel vermeiden+Anwendungen

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      klassisch Most Active @Homoran last edited by

      @homoran cool, clever! Dann werden awWert70 und awWert80 das sein.
      Muß jetzt leider weg. Muß ich mir heute abend anschauen, kenne mich mit protype etc leider nicht aus.

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

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

        Die einfachste Methode ist wohl die Verwendung von entsprechenden Lüftern mit 4 Pin-Anschluß, siehe Elektronik Kompendium

        die Seite hatte ich wohl selber gefunden gehabt.
        Leider habe ich überhaupt keine Ahnung wie ich das Ganze verdrahten müsste und vor allem mit welchem Controller?

        OpenSourceNomad 1 Reply Last reply Reply Quote 0
        • OpenSourceNomad
          OpenSourceNomad Most Active @Homoran last edited by OpenSourceNomad

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

          Leider habe ich überhaupt keine Ahnung wie ich das Ganze verdrahten müsste und vor allem mit welchem Controller?

          Ein esp und ein mosfet genügt... dann ist es gleich "smart" 💡

          Gibts auch schon fertig auf 'nem pcb mit Schraubterminals (ca. 5€ aus dem Herstellungsland):
          702663a1-954c-4e2b-9a6f-dcb095ec3354-image.png

          Damit solltest du auch deine vorhanden PC Lüfter (mit nur zwei Strippen) problemlos dimmen können....

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

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

            Gibts auch schon fertig auf 'nem pcb mit Schraubterminals:

            hast du dazu einen (deutschen) Link für mich?

            OpenSourceNomad 1 Reply Last reply Reply Quote 0
            • OpenSourceNomad
              OpenSourceNomad Most Active @Homoran last edited by

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

              hast du dazu einen (deutschen) Link für mich?

              Zur Technik (pwm via mosfet) kannst du zum Einstieg mal den Wikipediartikel Pulsdauermodulation lesen. Zum Gerät selber sind mir keine deutschen Auswüchse bekannt 😉

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

                @opensourcenomad
                Danke!
                Theorie ist mir klar - ich denke dass der dämliche HM-Dimmer viel zu langsam ist (ist auch PWM!) bestellen mache ich aus Prinzip nur hier, auch wenn es (etwas) teurer ist

                OpenSourceNomad 2 Replies Last reply Reply Quote 0
                • OpenSourceNomad
                  OpenSourceNomad Most Active @Homoran last edited by

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

                  Theorie ist mir klar - ich denke dass der dämliche HM-Dimmer viel zu langsam ist (ist auch PWM!)

                  Kennst du denn zufällig die Frequenz? Die von mir vorgeschlagene Hardware (esp mcu) kann natürlich beliebig programmiert werden. Ich verwende einige von diesen Gerätschaften für verschiedene Zwecke u.a. das dimmen von LEDs und Lüftern. Bei mir läuft ja bekanntlich alles auf esphome und dieses unterstützt mittels pwm das setzten beliebiger Frequenzen (Standard ist 1000 Herz).

                  bestellen mache ich aus Prinzip nur hier, auch wenn es (etwas) teurer ist

                  Wo genau ist denn hier? Halle? Sachsen? Deutschland? Europa? 🗺

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

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

                    Wo genau ist denn hier?

                    Bin ich Staplerfahrer?
                    ständig Halle-Hof und zurück 😂

                    Aber D oder vielleicht EU ist schon korrekt (auch wenn deren Karam auch aus Asien kommt.

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

                    Kennst du denn zufällig die Frequenz?

                    leider nein.

                    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

                    1 Reply Last reply Reply Quote 0
                    • K
                      klassisch Most Active last edited by 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.

                      Homoran 2 Replies Last reply Reply Quote 0
                      • OpenSourceNomad
                        OpenSourceNomad Most Active @Homoran last edited by 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. 💰

                        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 (⚠) 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) 😬

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

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

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

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

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

                            Werden sie, und zwar von mir

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

                              @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 1 Reply Last reply Reply Quote 0
                              • K
                                klassisch Most Active @Homoran last edited by

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

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

                                  @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 1 Reply Last reply Reply Quote 0
                                  • K
                                    klassisch Most Active @Homoran last edited by

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

                                    setState('DeineId',variable);
                                    
                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @klassisch last edited by

                                      @klassisch wollte ich doch machen 😢

                                      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 1 Reply Last reply Reply Quote 0
                                      • K
                                        klassisch Most Active @Homoran last edited by

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

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

                                          @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
                                          

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

                                            @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 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            819
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            122
                                            13067
                                            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