, jetzt funktionierts.
Hier nochmal der komplette Code für die Berechnung des Taupunkts und der absoluten Luftfeuchtigkeit
Code: Alles auswählen
/**
* Logik zum Berechnen des Taupunkts. Der Taupunkt ist ein guter Wert um Aussenluft und Innenluft miteinander zu vergleichen um zu prüfen ob Lüften zur Feuchtigkeitsreduktion sinnvoll ist.
* Die Entstehtung der Logik wurde hier besprochen:https://forum.timberwolf.io/viewtopic.php?f=24&t=4725
* Die Formeln wurden von folgendem Post abgeleitet: http://dl8aap.koch-carsten.de/2020/07/taupunkt-berechnen/
* Erklärung der Variablen aus der ursprünglichen Formel
* var t = temperature;
* var r = humidity;
* var tp = 0.000;
* // Konstante
* var mw = 18.016; //Molekulargewicht des Wasserdampfes (kg/kmol)
* var gk = 8314.3; // universelle Gaskonstante (J/(kmol*K))
* var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin)
* var tk = t + t0; // Temperatur in Kelvin
* Temp größer gleich 0 Grad:
* a = 7.5;
* b = 237.3;
* Temp kleiner 0 Grad:
* a = 7.6;
* b = 240.7;
*
* V2: Integration Berechnung absoute Luftfeuchtigkeit in g/m3
* Formel wurde hier entnommen: https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/
*/
{
"_Meta": { // Optional
"Description": "",
"Version": "2.0",
"Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
},
"Input": [
["Temperatur","Temperatur des zu berechnenden Raumes","$temp","c" ],
["Luftfeuchtigkeit","Luftfeuchtigkeit des zu berechnenden Raumes","$feuchte","c" ]
],
"Output": [
["Taupunkt","Berechneter Taupunkt","$taupunkt","a"],
["Absolute Luftfeuchtigkeit","Berechnete Absolute Luftfeuchtigkeit in g/m3","$absfeuchte","a"]
],
"Level": [
//Ein-Ausgänge
["$temp","float",0.0],
["$feuchte","float",0.0],
["$taupunkt","float",0.0],
["$absfeuchte","float",0.0],
//Formeln
["$formelinbenutzung","string","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"], //Reservierung des Speicherplatzes, sonst werden nur 14 Zeichen reserviert
//Formel jeweils einmal mit den Konstanten für Temperaturen >0 Grad, und einmal für Temperaturen <0 Grad
//var sdd = 6.1078 * Math.pow(10, (a*t)/(b+t));
["$formel1plus","string","6.1078 * 10^((7.5*X1)/(237.3+X1))"],
["$formel1minus","string","6.1078 * 10^((7.6*X1)/(240.7+X1))"],
//var dd = sdd * (r/100);
["$formel2plus","string","X1 * (X2/100)"],
["$formel2minus","string","X1 * (X2/100)"],
//var af = Math.pow(10,5) * mw/gk * dd/tk;
["$formel3plus","string","10^5 * 18.016/8314.3 * X1/(X2 + 273.15)"],
["$formel3minus","string","10^5 * 18.016/8314.3 * X1/(X2 + 273.15)"],
//var v = Math.log10(dd/6.1078);
["$formel4plus","string","log10(X1/6.1078)"],
["$formel4minus","string","log10(X1/6.1078)"],
//tp = Math.round( ((b*v) / (a-v))*100)/100;
["$formel5plus","string","((237.3*X1) / (7.5-X1))*100/100"],
["$formel5minus","string","((240.7*X1) / (7.6-X1))*100/100"],
//Formel zur Berechnung der abs. Feuchte
["$formelabsfeuchte","string","(6.112 * exp((17.67 * X1)/(X1+243.5)) * X2 * 18.02)/((273.15+X1) * 100 * 0.08314)"],
//Variablen für die Berechnungen
["$schwellwert","float",0.0],
["$schwellwertueberschreitung","bool",false],
["$schwellwertueberschreitungint","integer",0],
["$sdd","float",0.0],
["$dd","float",0.0],
["$af","float",0.0],
["$v","float",0.0]
],
"Module": [
//Comparator, prüft ob die Temp postiv oder negativ ist, True bei Plusgraden, False bei Minusgraden
["Comparator" , "$temp" , "$schwellwertueberschreitung" , "$schwellwert"],
//Formel 1
["Multiplexer", ["$formel1minus", "$formel1plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$temp"], "$sdd", "$formelinbenutzung"],
//Formel 2
["Multiplexer", ["$formel2minus", "$formel2plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$sdd","$feuchte"], "$dd", "$formelinbenutzung"],
//Formel 3
["Multiplexer", ["$formel3minus", "$formel3plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$dd","$temp"], "$af", "$formelinbenutzung"],
//Formel 4
["Multiplexer", ["$formel4minus", "$formel4plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$dd"], "$v", "$formelinbenutzung"],
//Formel 5
["Multiplexer", ["$formel5minus", "$formel5plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
["CalcFormula",["$v"], "$taupunkt", "$formelinbenutzung"],
//Abs. Feuchte
["CalcFormula",["$temp","$feuchte"], "$absfeuchte", "$formelabsfeuchte"]
]
}