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.
    • Homoran
      Homoran Global Moderator Administrators @klassisch last edited by Homoran

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

      Ist das hier der Fall?

      ja!

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

      Also kommen die Temperatur und die rel Feuchte, die in das Skript eingehen von diesem Wandthermostat?

      nein 😉 sondern beides kommt vom TH-I, der rechts oben auf dem Schrank steht

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

        @homoran d.h.

        • die rote und die blaue Kurve kommen von diesem Sensor.
        • Aus diesen wird dann der Taupunkt (dunkelviolett-aubergine) mit dem Raumklimaskript berechnet
        • die grünliche Kurve "Decke Auffahrt" ist das zugehörige Kontaktthermometer, dessen Werte ebenfalls ins Skript eingehen

        richtig?

        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+Anwendungen:

          richtig?

          sorry, meine Unpräzision!
          Ja, rot und mittelblau kommen vom Sensor und danach wird AW70/80100 berechnet

          grün ist "nur" ein Thermometer dessen Temperatur-Wert unter der Schwelle von aw70 liegt.
          Wird für keine Berechnug benutzt.

          Oder müsste das irgendwo rein?

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

            @homoran
            So, habe jetzt mal das Skript mit der Webseite verglichen. Anhand von ein paar Werten, die so in etwa auf Deinem Diagramm sind

            25f2c21d-3cd1-42a5-8f26-98a2b16c1603-grafik.png

            Das Programm (Script) erreichnet die gleichen Werte wie die Webseite

            Edit: Script entfernt, da fehlerhaft

            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+Anwendungen:

              die so in etwa auf Deinem Diagramm sind

              Danke (aber auch hier Asche über mein Haupt. Ich hab da noch ein Offset in der Feuchte eingebaut 😳 )

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

              Das Programm (Script) erreichnet die gleichen Werte wie die Webseite

              Das ist schon mal super - hätte ich ja auch drauf kommen können. Ist heut nicht mein Tag

              Aber verstehen muss ich es trotzdem nicht, dass aw70 und 80 nahezu identisch werden, aber der Taupunkt weiter den "gleichen" Abstand zu aw70 hat.

              Muss ich mal den Taupunkt nach der Berechnung auf der Website mit der vom Raumklimaskript vergleichen.

              Danke für deine Mühen!

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

                @homoran Es gibt eine Auffälligkeit
                Bei der Zeile 18°C 40% ist T80 höher als T70
                Das erscheint unplausibel. Die Webseite zeigt das aber genauso.

                Nur: diese TF80 kommt zu einem anderen Ergebnis. Und das nicht nur dort. Die Formel für TF80 der ersten Website scheint also fehlerhaft zu sein. Die ist auch mit der TF70 Formel nicht wirklich vergleichbar.
                Mit welchem Trick hast Du der Website den Quelltext entlockt?

                Zweite TF80 zeigt das auch

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

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

                  Mit welchem Trick hast Du der Website den Quelltext entlockt?

                  Wenn ich das noch wüsste.
                  Hacking by Trying bis ich was sehe, was brauchbar sein könnte.

                  rechte Maustaste
                  Quelltext anzeigen

                  danach F12 (Browserkonsole) und dort den Aufbau der Seite verfolgen bzw. die eingebetteten js ansehen

                  Ich such mal auf der andern Seite - danke für den Link

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

                    @klassisch im Quelltext habe ich da folgendes gesehen:

                    function berechnen() {
                    	with (rechner) {
                    		var temp = parseFloat(temperatur.value)
                    		var tempbauteil = parseFloat(bauteiltemperatur.value)
                    		var rel = parseFloat(relative_luftfeuchte.value)
                    		var wdsd = 611*Math.pow(10,7.5*temp/(237.3+temp))
                    		var wdsdbauteil = 611*Math.pow(10,7.5*tempbauteil/(237.3+tempbauteil))
                    		var wdd = rel/100*wdsd
                    		var tp = 237.3*Math.log(wdd/610.78)/Math.log(10)/(7.5-Math.log(wdd/610.78)/Math.log(10))
                    		var tf70 = 237.3*Math.log(wdd/(610.78*0.7))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.7))/Math.log(10))
                    		var tf80 = 237.3*Math.log(wdd/(610.78*0.8))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.8))/Math.log(10))
                    		var tf90 = 237.3*Math.log(wdd/(610.78*0.9))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.9))/Math.log(10))
                    		var abs = 1000*18.016/8314.3*wdd/(temp+273.15)
                    		var normfeu = wdsd*rel/2340
                    		wasserdampfsaettigungsdruck.value = Math.round(wdsd)
                    		wasserdampfdruck.value = Math.round(wdd)
                    		taupunkt.value = Math.round(tp*10)/10
                    		tf70wert.value = Math.round(tf70*10)/10
                    		tf80wert.value = Math.round(tf80*10)/10
                    		tf90wert.value = Math.round(tf90*10)/10
                    		absolute_luftfeuchtigkeit.value = Math.round(abs*10)/10
                    		normierte_feuchte.value = Math.round(normfeu*10)/10
                    		aw_wert.value = (wdd / wdsdbauteil)
                    		aw_wert.value = Math.round(aw_wert.value*100)/100
                    		if (aw_wert.value > 1) {
                    		aw_wert.value = 1.00
                    		}
                    	}
                    }
                    
                    berechnen()
                    
                    
                    K 1 Reply Last reply Reply Quote 0
                    • K
                      klassisch Most Active @Homoran last edited by klassisch

                      @homoran Ah, google chrome. Im Firefox finde ich nichts - oder verwirrend viel

                      Die Berechnung sieht schon viel aufgeräumter aus.

                      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+Anwendungen:

                        Die Berechnung sieht schon viel aufgeräumter aus.

                        geht wahrscheinlich am ehesten um diese Formeln:

                        		var tp = 237.3*Math.log(wdd/610.78)/Math.log(10)/(7.5-Math.log(wdd/610.78)/Math.log(10))
                        		var tf70 = 237.3*Math.log(wdd/(610.78*0.7))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.7))/Math.log(10))
                        		var tf80 = 237.3*Math.log(wdd/(610.78*0.8))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.8))/Math.log(10))
                        		var tf90 = 237.3*Math.log(wdd/(610.78*0.9))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.9))/Math.log(10))
                        		var abs = 1000*18.016/8314.3*wdd/(temp+273.15)
                        
                        K 1 Reply Last reply Reply Quote 0
                        • K
                          klassisch Most Active @Homoran last edited by

                          @homoran Mal auf die Schnelle.

                          
                          // Calculations of Humidity and water content in air 
                          // modifications of http://www.tf80.de/
                          
                          const debugLogOn = true;
                          
                          // test Variables 
                          var Temp = 18;
                          var Hrel = 40;
                          //=20.13°C humidity=56.55%
                          // temperature=20.52°C humidity=55.44%
                          
                          
                          // end test variables
                          
                          // global Variables
                            var this_theta, this_phi;
                            var temp_dew, vaporPressureSaturated, vaporPartialPressure, H_abs, temp_for_Hrel_70, temp_for_Hrel_80;
                          // end global Variables
                          
                          
                          
                          
                          var temp = Temp; 
                          var tempbauteil;
                          var rel = Hrel
                          var wdsd;
                          var wdsdbauteil;
                          var wdd;
                          var tp;
                          var tf70;
                          var tf80;
                          var tf90;
                          var abs;
                          var normfeu;
                          var wasserdampfsaettigungsdruck;
                          var wasserdampfdruck = Math.round(wdd);
                          var taupunkt;
                          var tf70wert;
                          var	tf80wert;
                          var	tf90wert;
                          var absolute_luftfeuchtigkeit;
                          var normierte_feuchte;
                          var aw_wert;
                          		
                          
                          function calculateHumidityValues() {
                          		wdsd = 611*Math.pow(10,7.5*temp/(237.3+temp));
                          		wdsdbauteil = 611*Math.pow(10,7.5*tempbauteil/(237.3+tempbauteil));
                          		wdd = rel/100*wdsd;
                          		tp = 237.3*Math.log(wdd/610.78)/Math.log(10)/(7.5-Math.log(wdd/610.78)/Math.log(10));
                          		tf70 = 237.3*Math.log(wdd/(610.78*0.7))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.7))/Math.log(10));
                          		tf80 = 237.3*Math.log(wdd/(610.78*0.8))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.8))/Math.log(10));
                          		tf90 = 237.3*Math.log(wdd/(610.78*0.9))/Math.log(10)/(7.5-Math.log(wdd/(610.78*0.9))/Math.log(10));
                          		abs = 1000*18.016/8314.3*wdd/(temp+273.15);
                          		normfeu = wdsd*rel/2340;
                          		wasserdampfsaettigungsdruck = Math.round(wdsd);
                          		wasserdampfdruck = Math.round(wdd);
                          		taupunkt = Math.round(tp*10)/10;
                          		tf70wert = Math.round(tf70*10)/10;
                          		tf80wert = Math.round(tf80*10)/10;
                          		tf90wert = Math.round(tf90*10)/10;
                          		absolute_luftfeuchtigkeit = Math.round(abs*10)/10;
                          		normierte_feuchte = Math.round(normfeu*10)/10;
                          		aw_wert = (wdd / wdsdbauteil);
                          		aw_wert = Math.round(aw_wert*100)/100;
                          		if (aw_wert > 1) {
                          		   aw_wert = 1.00
                          		}
                          }
                          
                          
                          
                          
                             calculateHumidityValues();
                             if(debugLogOn)console.log('temp: ' +temp+';  Hrel: ' + rel);
                             if(debugLogOn)console.log('Taupunkt: ' + taupunkt);  
                             if(debugLogOn)console.log('Saettigungsdampfdruck: ' + wasserdampfsaettigungsdruck);
                             if(debugLogOn)console.log('Partialdruck: ' + wasserdampfdruck);
                             if(debugLogOn)console.log('Habs: ' + absolute_luftfeuchtigkeit);
                             if(debugLogOn)console.log('T bei 70% ' + tf70wert);
                             if(debugLogOn)console.log('T bei 80% ' + tf80wert);
                             if(debugLogOn)console.log('T bei 90% ' + tf90wert);
                          
                          
                          
                          
                          
                          
                          //end script
                          
                          
                          
                          
                          
                          
                          

                          Muß natürlich noch alles internationalisiert und etwas schöner bzw. modularer gemacht werden. Bei Gelegenheit.
                          Und bei Gelegenheit in das ESP-Programm eingearbeitet.

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

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

                            Mal auf die Schnelle.

                            dann schreib ich damit mal ganz schnell das letzte um

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

                              @klassisch tp70 ist identisch, tp80 ist 1 Grad niedriger bei aktueller Temperatur/Feuchte

                              nur den Trigger hab ich wieder nich hinbekommen
                              alt:

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

                              Versuch neu:

                              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*/;
                               calculateHumidityValues;
                               setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw70',Math.round(tf70wert()*10)/10, true);
                               setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw80',Math.round(tf80wert()*10)/10, true);
                              });
                              
                              K 1 Reply Last reply Reply Quote 0
                              • K
                                klassisch Most Active @Homoran last edited by klassisch

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

                                Tests mal das:

                                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*/;
                                 rel = getState('hm-rpc.0.JEQ0046663.1.HUMIDITY').val - 2.5/*Klima Werkstatt:1 HUMIDITY*/;
                                 calculateHumidityValues();
                                 setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw70',Math.round(tf70wert()*10)/10, true);
                                 setState('javascript.1.Raumklima.Raum.Werkstatt.DETAILS.aw80',Math.round(tf80wert()*10)/10, true);
                                });
                                
                                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+Anwendungen:

                                  Tests mal das:

                                  die () hinter der Funktion habe ich gerade selber eingefügt und warte

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

                                    @homoran Die Funktion erwartet aktuelle Variablen temp und rel. Das will ich noch bei der Internationalisierung glattziehen

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

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

                                      @homoran Die Funktion erwartet aktuelle Variablen temp und rel. Das will ich noch bei der Internationalisierung glattziehen

                                      Aaaah andere variablennamen
                                      da kam gerade :20:15:38.531 error javascript.1 (6588) at Object.<anonymous> (script.js.Wetter_und_Klima.TF80_neu:94:75)

                                      hab jetzt deinen Trigger genommen

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

                                        @klassisch DANKE!!

                                        scheint zu laufen, die Abstände der Werte 70-80-100 gefallen mir jetzt auch optisch besser 😉

                                        Anscheinend hat das Script beim setState die Klammern hinter der Variable nicht gemocht:

                                        Math.round(tf70wert()*10)/10, true);

                                        nach Entfernen läuft jetzt alles

                                        An der Decke dürfte der tf70 nich ganz so kritisch sein, da es hier gut belüftet ist, und der tf80 ist jetzt erst mal weiter weg

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

                                          @homoran Ja, wahrscheinlich hattest Du noch das erste Script implementiert, wo alles übr functions geregelt war. Das ist in diesem Script anders, da ist alles stur runterprogrammert, ohne Funktionen. die vielen Funktionen. Damit sind die Werte Variable und keine Funktionen mehr, also kein () nach dem Namen.

                                          Aber prima, daß es jetzt klappt. Ich muß mir das Skript bei Gelegenheit näher anschauen. Wahrscheinlich kann man damit dann noch ganz einfach das Thema Wandfeuchte über "wdsbauteil" lösen.
                                          Wahrscheinlich noch eine Division dazu und alles wäre elegant aus einem Guss integriert.

                                          1 Reply Last reply Reply Quote 1
                                          • michl75
                                            michl75 @Homoran last edited by

                                            @homoran Also wenn ich mir deine Bilder so ansehe, befürchte ich 🙂 die Natur gewinnt immer .....
                                            Wo Innen das Wasser "raus" kommt ist relativ, hast du mittlerweile den Eintritt gefunden?

                                            Diese Dämmplatten waren früher an der kompletten Decke? Die Luftschicht zwischen Platten und Beton ist wie hoch?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            779
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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