NEWS
ESPHome: Wandfeuchte messen-Schimmel vermeiden+Anwendungen
-
@homoran Dank, denn ich verstehe den Verlauf des Taupunkts nicht. Der sinkt gegen Ende sehr stark ab und ich sehe nicht, warum er das tut. Die Feuchte und die Temperatur ändern sich nicht sooo stark.
-
@klassisch sagte in ESPHome: Wandfeuchte messen-Schimmel vermeiden+Anwendungen:
ich verstehe den Verlauf des Taupunkts nicht
da sehe ich kein Problem.
Der Entfeuchter springt an, die aw70 und aw 100 aka Taupunkt sinken ab.Der Sensor für die rH ist etwas träger, aber sinkt ebenfalls ab (mittelblau)
Die rH (dunkelblau) ist der Wandthermostat, der sich unter den Unterschränlken direkt an der Wand unter der Erde befindet. deswegen glaube ich ja, dass man daraus keinen Taupunkt berechnen kann.Jetzt komme ich gerade aus der Werkstatt und habe Fotos gemacht, natürlich nicht dir richtigen:
gegenüber befindet sich der Entfeuchter, der die trockene Luft im Raum verteilen soll
Diese soll die Decke Enlang hinter die Wandschränke "strömen" können
-
@homoran Die Berechnung geht davon aus, daß rel Feuchte und Temperatur vom selben Sensor kommen. Ist das hier der Fall? Also kommen die Temperatur und die rel Feuchte, die in das Skript eingehen von diesem Wandthermostat?
-
@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
-
@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?
-
@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 berechnetgrü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?
-
@homoran
So, habe jetzt mal das Skript mit der Webseite verglichen. Anhand von ein paar Werten, die so in etwa auf Deinem Diagramm sindDas Programm (Script) erreichnet die gleichen Werte wie die Webseite
Edit: Script entfernt, da fehlerhaft
-
@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!
-
@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
-
@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 anzeigendanach 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
-
@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()
-
@homoran Ah, google chrome. Im Firefox finde ich nichts - oder verwirrend viel
Die Berechnung sieht schon viel aufgeräumter aus.
-
@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)
-
@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. -
@klassisch sagte in ESPHome: Wandfeuchte messen-Schimmel vermeiden+Anwendungen:
Mal auf die Schnelle.
dann schreib ich damit mal ganz schnell das letzte um
-
@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); });
-
@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); });
-
@klassisch sagte in ESPHome: Wandfeuchte messen-Schimmel vermeiden+Anwendungen:
Tests mal das:
die () hinter der Funktion habe ich gerade selber eingefügt und warte
-
@homoran Die Funktion erwartet aktuelle Variablen temp und rel. Das will ich noch bei der Internationalisierung glattziehen
-
@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