Seite 16 von 22

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 24.09.2018, 20:21
von User 17410
Ok also die Luftfeuchtigkeit usw macht dann das Script und zieht sich diese aus den Geräten, korrekt?

Was trage ich denn dann bei der Bedienung am besten ein?

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 25.09.2018, 21:25
von User 17410
@peissl.at welches Gerät und welche Temperatur nehme ich dazu am besten?

Danke!

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 25.09.2018, 21:35
von peissl.at
Hallo User,

wenn Du den Auslöser des Programmes meinst, dann ist das eigentlich egal. Ein Temperatursensor sendet ca. alle 3 Minuten einen neuen Wert. Wenn Du auf Aktualisierung triggerst, wird auch das Programm in diesem Zeitabständen ausgeführt.

Also einfach:

Wenn: Temperatur > 0C auf Aktualisierung
Dann: sofort Script

Sonnige Grüße!
Robert

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 25.09.2018, 21:47
von User 17410
Dabei ist es egal ob es das Thermostat für außen oder innen ist?

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 25.09.2018, 22:13
von peissl.at
Ja, denn es dient nur als Timer der das Programm auslöst. Wichtig ist, dass Du im Script die richtige TEMPERATURE und HUMIDITY verwendest.

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 26.09.2018, 07:50
von User 17410
Die muss ich da manuell einstellen?

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 26.09.2018, 08:56
von peissl.at
Na klar!

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 26.09.2018, 09:00
von User 17410
Oh weia :D welche werten stellt man da am besten ein?

Re: Script zur Berechnung der absoluten Feuchte

Verfasst: 10.10.2018, 11:49
von hanan
erledigt...
JPS hat geschrieben:
22.12.2012, 21:00

Hier das korrigierte Beispiel-Script, in dem auch die Lüftungsempfehlung mit 0,5 g/kg und 0,7 K Hysterese eingebaut ist. Wer das Script von oben nutzt, sollte diese korrigierte Version übernehmen:

Code: Alles auswählen

    ! RaumXY Berechnung der Schimmelwarnung und Lüftungsempfehlung 
    object oTHi = dom.GetObject("RaumXY_Raumregler:1");
    object oTi = oTHi.DPByHssDP("TEMPERATURE");
    object oHi = oTHi.DPByHssDP("HUMIDITY");
    object oSchimmel = dom.GetObject("RaumXY_Schimmel");
	object oLueften = dom.GetObject("RaumXY_Lueften");
    object oTHa = dom.GetObject("Aussen_TempFeuSens: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 > XX.X))
	{oLueften.Variable(true);}
	else
	{ if ((afau >= (afin - 0.3)) || (tau >= (tin - 0.3)) || (tin <= YY.Y))
	{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 / Z.ZZZ) * (ta - ti)); ! Rges = Z.ZZZ 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);}
        }
Individuell an die eigenen Gegebenheiten anzupassen sind folgende Werte:

Zeile 02 (Name des Sensors innen):
RaumXY_Raumregler

Zeile 05 (Systemvariable für das Lüften - Werteliste: keine Gefahr;Warnung;Alarm):
RaumXY_Schimmel

Zeile 06 (Systemvariable für die Lüftungsempfehlung - Logikwert: wahr = ist wahr, falsch = ist falsch):
RaumXY_Lueften

Zeile 07 (Name des Sensors außen):
Aussen_TempFeuSens

Zeile 35 (oberer Raumtemperaturgrenzwert in °C):
XX.X

Zeile 38 (unterer Raumtemperaturgrenzwert in °C, siehe oben):
YY.Y

Zeile 46 (Mittels eigener Messung ermittelter Gesamtübergangswiderstand Rges, siehe oben):
Z.ZZZ
Hallo zusammen
Ich habe mal das Skript an kopiert und versucht, leider läuft es bei mir nicht durch, da die beiden angelegten SVs nicht beschrieben werden.

Code: Alles auswählen

! RaumXY Berechnung der Schimmelwarnung und Lüftungsempfehlung 
    object oTHi = dom.GetObject("LEQ059xxxx:1");
    object oTi = oTHi.DPByHssDP("TEMPERATURE");
    object oHi = oTHi.DPByHssDP("HUMIDITY");
    object oSchimmel = dom.GetObject("Wohnzimmer_Schimmel");
	object oLueften = dom.GetObject("Wohnzimmer_Lueften");
    object oTHa = dom.GetObject("NEQ164xxxx: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 > 25.0))
	{oLueften.Variable(true);}
	else
	{ if ((afau >= (afin - 0.3)) || (tau >= (tin - 0.3)) || (tin <= 16.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.555) * (ta - ti)); ! Rges = Z.ZZZ 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);}
        }
SVs.jpg
Hat mir jemand bitte einen Tipp?

Liebe Grüsse aus der Schweiz

Re: Script zur Berechnung des Feuchtegehalts

Verfasst: 11.10.2018, 16:17
von hanan
erledigt...

Hallo zusammen
Habe jetzt das Skript so angepasst, dass es bei mir durchläuft.
Leider werden die beiden SVs nicht beschrieben.

Hat mir hier jemand bitte noch einen Tipp?

Code: Alles auswählen

! RaumXY Berechnung der Schimmelwarnung und Lüftungsempfehlung 
   
    object oTi = dom.GetObject("BidCos-RF.LEQ059xxxx:1.TEMPERATURE");
    object oHi = dom.GetObject("BidCos-RF.LEQ059xxxx:1.HUMIDITY");
    object oTa = dom.GetObject("BidCos-RF.NEQ164xxxx:1.TEMPERATURE");
    object oHa = dom.GetObject("BidCos-RF.NEQ164xxxx:1.HUMIDITY");
    object oSchimmel = dom.GetObject("Wohnzimmer_Schimmel");
    object oLueften = dom.GetObject("Wohnzimmer_Lueften");

	! 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 <= 16.0))
	{oLueften.Variable(false);}
	}
WriteLine(afau);
	! 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.555) * (ta - ti)); ! Rges = Z.ZZZ 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);}
}
SVs.jpg
Besten Dank imVoraus.
Liebe Grüsse aus der Schweiz