ich habe die Logik getestet, funktioniert bei mir einwandfrei. Ich habe mal noch den Text und die Version angepasst.
Code: Alles auswählen
/**
* Logik zur Berechnung von Taupunkt und absoluter Luftfeuchtigkeit. Zusätzlich kann ein Taupunktalarm anhand eines Referenzwerts ausgegeben werden.
* Anwendungsfälle:
* Lüftung zur Reduktion von Feuchtigkeit im Haus durch Vergleich von Aussenluft und Raumluft
* Alarm wenn in einem Raum der Taupunkt über die Raumtemperatur steigt und damit Kondensat entstehen kann, dazu auf den Eingang "Referenztemperatur" die Raumtemperatur hinzufügen. Über Offset TPA kann der Alarm schon z.B. 2 Kelvin vor erreichen des Taupunkts ausgelöst werden. Um ein "Zappeln" bei leichten Änderungen nahe am Taupunkt zu vermeiden kann eine Hysterese zum Ausschalten des Taupunktalarms vorgegeben werden.
*
*
* 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/
* Die Logikerweiterung um den Taupunktalarm wurde vom User ThomasD entwickelt
*
*
* 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/
* V3: Integration eines Taupunktalarms durch den User ThomasD
*/
{
"_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" ],
["Referenz Temperatur","Temperaturbezug für Taupunkt z.B. Fussbodentemperatur","$RefTemp","c" ],
["Offset TPA","Offeset zum Taupunkt für Alarm","$TaupunktAlarmTemperatur","c" ],
["Hysterese TPA","Hysterese","$Hysterese","c"]
],
"Output": [
["Taupunkt","Berechneter Taupunkt","$taupunkt","a"],
["Absolute Luftfeuchtigkeit","Berechnete Absolute Luftfeuchtigkeit in g/m3","$absfeuchte","a"],
["TPA Temp.","Taupunkt Alarm Temperatur","$TPA","a"],
//Unterschwelle nur für DEBUGGING
//["Unterschwelle (Temp).","Anzeige Unterschwelle nur Temporär","$Unterschwelle","a"],
["Taupunktalarm","Taupunktalarm Ausgabe","$TaupunktAlarm","c"]
],
"Level": [
//Ein-Ausgänge
["$temp","float",0.0],
["$feuchte","float",0.0],
["$taupunkt","float",0.0],
["$absfeuchte","float",0.0],
["$RefTemp","float",0.0],
["$TaupunktAlarmTemperatur","float",0.0],
["$TaupunktAlarm","bool",false],
["$Hysterese","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)"],
//Formel zur Berechnung offset TaupunktalarmTemperatur
["$FormelTPA","string","X1+X2"],
["$FormelHysterese","string","X1+X2"],
//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],
["$TPA","float",0.0],
["$Unterschwelle","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"],
//Taupunktalarm
["CalcFormula",["$taupunkt","$TaupunktAlarmTemperatur"], "$TPA", "$FormelTPA"],
["CalcFormula",["$TPA","$Hysterese"],"$Unterschwelle","$FormelHysterese"],
["Comparator" , "-$RefTemp" , "$TaupunktAlarm" ,["-$Unterschwelle","-$TPA"]]
]
}
Könntest du bitte auf der ersten Seite nochmal auf diesen Post verlinken? Hier wird noch auf den Post 37 Version 2 verlinkt. Vielen Dank