Komme nicht weiter..
Code: Alles auswählen
! Raum_Schlafzimmer Berechnung der Schimmelwarnung und Lüftungsempfehlung
object oTHi = dom.GetObject("HM-TC-IT-WM-W-EU Schlafzimmer:1");
object oTi = oTHi.DPByHssDP("TEMPERATURE");
object oHi = oTHi.DPByHssDP("HUMIDITY");
object oSchimmel = dom.GetObject("SZ_Schimmel");
object oLueften = dom.GetObject("SZ_Lueften");
object oTHa = dom.GetObject("Klima_Aussen:1");
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 > 20.5))
{oLueften.State(true);}
else
{ if ((afau >= (afin - 0.3)) || (tau >= (tin - 0.3)) || (tin <= 17.5))
{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 / 1.000) * (ta - ti)); ! Rges = 1.000 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);}
}
Das ist die Ausgabe:
Code: Alles auswählen
{
"oHi": "BidCos-RF.LEQ0002712:1.HUMIDITY",
"sessionId": "",
"tau": "6.400000",
"STDOUT": "",
"tin": "18.600000",
"t": "17.014000",
"oTHa": "Klima_Aussen:1",
"oTa": "BidCos-RF.KEQ0054269:1.TEMPERATURE",
"ta": "6.400000",
"rfau": "75",
"rfin": "59",
"afa": "9.644739",
"rf": "80",
"oHa": "BidCos-RF.KEQ0054269:1.HUMIDITY",
"oSchimmel": "SZ_Schimmel",
"oLueften": "SZ_Lueften",
"tw": "17.014000",
"oTHi": "HM-TC-IT-WM-W-EU Schlafzimmer:1",
"oTi": "BidCos-RF.LEQ0002712:1.TEMPERATURE",
"ti": "18.600000",
"afau": "4.468582",
"afw": "8.439146",
"afin": "7.876413",
"httpUserAgent": ""
}
So sehen die Variablen aus:
Das Ergebniss: nicht Lüften:
Ich werd Irre, habe ich etwas vergessen anzulegen?
Jetzt schon mal danke für die Mühe.