Ich habe ein paar Fragen.
Die Skriptprüfung im WebUI meldet keine Fehler, und die Aussage des Programms ist "ist falsch/keine Gefahr"
Allerdings weiss ich nicht, ob das Programm wirklich durchlüft, aus verschiedenen Gründen:
Mein RT hat Leerzeichen "RT Schlafzimmer unten"
Ich habe keinen Aussenfühler, sondern eine Variable "OpenWeather Luftfeuchte (rel.)", die als Zahl definiert ist.
Sollte das klappen?
Z.ZZZ habe ich mit 0.268 übernommen
Wie kann ich prüfen, ob das Programm irgendwas berechnet?
Danke, ueffchen
Code: Alles auswählen
! RT Schlafzimmer unten Berechnung der Schimmelwarnung und Lüftungsempfehlung
object oTHi = dom.GetObject("RT Schlafzimmer unten_Raumregler:1");
object oTi = oTHi.DPByHssDP("TEMPERATURE");
object oHi = oTHi.DPByHssDP("HUMIDITY");
object oSchimmel = dom.GetObject("RT Schlafzimmer unten_Schimmel");
object oLueften = dom.GetObject("RT Schlafzimmer unten_Lueften");
object oTHa = dom.GetObject("OpenWeather Luftfeuchte (rel.)");
object oTa = oTHa.DPByHssDP("TEMPERATURE");
object oHa = oTHa.DPByHssDP("HUMIDITY");
! Programmteil Lüftungsempfehlung
! Lokale Variablen
real tin = oTi.Value(); ! Temperatur in °C innen
integer rfin = oHi.Value(); ! relative Feuchte in % innen
real afin; ! absolute feuchte in g/kg innen
real tau = oTa.Value(); ! Temperatur in °C außen
integer rfau = oHa.Value(); ! relative Feuchte in % außen
real afau; ! absolute feuchte in g/kg außen
! Berechnung der absoluten Feuchte innen
if (tin < 0.0) {tin = 0.0;}
if (tin < 10.0)
{ afin = (3.78 + (0.29 * tin) + (0.0046 * tin * tin) + (0.00051 * tin * tin * tin)) * 0.01 * rfin;
}
else
{ afin = (7.62 + (0.51 * (tin-10.0)) + (0.0143 * (tin-10.0) * (tin-10.0)) + (0.00045 * (tin-10.0) * (tin-10.0) * (tin-10.0))) * 0.01 * rfin;
}
! Berechnung der absoluten Feuchte außen
if (tau < 0.0) {tau = 0.0;}
if (tau < 10.0)
{ afau = (3.78 + (0.29 * tau) + (0.0046 * tau * tau) + (0.00051 * tau * tau * tau)) * 0.01 * rfau;
}
else
{ afau = (7.62 + (0.51 * (tau-10.0)) + (0.0143 * (tau-10.0) * (tau-10.0)) + (0.00045 * (tau-10.0) * (tau-10.0) * (tau-10.0))) * 0.01 * rfau;
}
! Berechnung der Lüftungsempfehlung mit 0,5 g/kg und 0,7 K Hysterese
if ((afau <= (afin - 0.8)) && (tau <= (tin - 1.0)) && (tin > 25.0))
{oLueften.Variable(true);}
else
{ if ((afau >= (afin - 0.3)) || (tau >= (tin - 0.3)) || (tin <= 10.0))
{oLueften.Variable(false);}
}
! Programmteil Schimmelwarnung
! Berechnung der Oberflächentemperatur der Außenwandecke
real tw; ! Oberfächentemperatur der Außenwandecke in °C
real ta = oTa.Value(); ! Außentemperatur in °C
real ti = oTi.Value(); ! Raumtemperatur in °C
tw = ti + ((0.13 / 0.268) * (ta - ti)); ! Rges = 0.268 empirisch ermittelt
! Lokale Variablen
real t; ! Temperatur in °C
integer rf; ! relative Feuchte in %
real afw; ! Schimmelwarn-Grenzfeuchte in g/kg
real afa; ! Schimmelalarm-Grenzfeuchte in g/kg
t = tw;
! Berechnung Warn-Grenzfeuchte
rf = 70;
if (t < 0.0) {t = 0.0;}
if (t < 10.0)
{ afw = (3.78 + (0.29 * t) + (0.0046 * t * t) + (0.00051 * t * t * t)) * 0.01 * rf;
}
else
{ afw = (7.62 + (0.51 * (t-10.0)) + (0.0143 * (t-10.0) * (t-10.0)) + (0.00045 * (t-10.0) * (t-10.0) * (t-10.0))) * 0.01 * rf;
}
! Berechnung Alarm-Grenzfeuchte
rf = 80;
if (t < 0.0) {t = 0.0;}
if (t < 10.0)
{ afa = (3.78 + (0.29 * t) + (0.0046 * t * t) + (0.00051 * t * t * t)) * 0.01 * rf;
}
else
{ afa = (7.62 + (0.51 * (t-10.0)) + (0.0143 * (t-10.0) * (t-10.0)) + (0.00045 * (t-10.0) * (t-10.0) * (t-10.0))) * 0.01 * rf;
}
! Schimmelwarnung
! 0 - keine Gefahr
! 1 - Warnung
! 2 - Alarm
if (afin > afa) {oSchimmel.Variable(2);}
else {
if (afin > afw) {oSchimmel.Variable(1);}
else {oSchimmel.Variable(0);}
}