Script zur Berechnung des Feuchtegehalts

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Benutzeravatar
joni-blue
Beiträge: 1171
Registriert: 04.01.2012, 12:20
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von joni-blue » 17.01.2021, 20:27

Hallo zusammen,

Code: Alles auswählen

	! 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.5) * (ta - ti)); ! Rges = 0.268 empirisch ermittelt
Rges = 0.268 verstehe ich das richtig das ich hier einen Mittelwert der kältesten stelle auf meiner Aussenwand eintragen muss?

lg aus Hannover
Reboot tut gut ! ! !

schlichi
Beiträge: 385
Registriert: 26.08.2016, 19:26
System: Alternative CCU (auf Basis OCCU)
Wohnort: Erding
Hat sich bedankt: 60 Mal
Danksagung erhalten: 26 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von schlichi » 17.01.2021, 21:06

Hallo,
das hat nichts mit Mittelwert zu tun!
Den Gesamtdurchgangswiderstand (in m²*K/W) kann man berechnen, wenn man den genauen Aufbau der Außenwand kennt oder man kann ihn experimentell ermitteln (Messen aller 3 Temperaturen im Winter).
Siehe hier: viewtopic.php?p=71539#p71539.

Code: Alles auswählen

! Berechnung der Oberflächentemperatur der Außenwandecke
real tw;      ! Oberfächentemperatur der Außenwandecke in °C
real ta;      ! Außentemperatur in °C
real ti;      ! Raumtemperatur in °C
real Rges;    ! gesamter Wärmedurchgangswiderstand der Außenwandecke in m²*K/W

tw = ti + ((0.13 / Rges) * (ta - ti));
Am einfachsten ist im Winter messen!

Gruß
schlichi
... inzwischen autodidakter, fortgeschrittener Anfänger mit bestandener Einstiegsprüfung für den Expertenmodus Teil 3 (erfahrener Anwender) :roll:

Benutzeravatar
joni-blue
Beiträge: 1171
Registriert: 04.01.2012, 12:20
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von joni-blue » 17.01.2021, 21:15

schlichi hat geschrieben:
17.01.2021, 21:06

Am einfachsten ist im Winter messen!
hi,

ich glaube ich bin heute zu blöd dazu.
wo messe ich welche drei Temperaturen?
Innenraum habe ich an dem Wandthermostat,
aussen habe ich am Aussenfühler,
und dann muss ich noch irgendwie irgendwo die Temperatur der Außenwand eintragen oder nicht?

sorry aber würde mich sehr freuen wenn du ihr mich da aufklärt
Reboot tut gut ! ! !

schlichi
Beiträge: 385
Registriert: 26.08.2016, 19:26
System: Alternative CCU (auf Basis OCCU)
Wohnort: Erding
Hat sich bedankt: 60 Mal
Danksagung erhalten: 26 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von schlichi » 17.01.2021, 21:42

Hallo,

hast Du noch ein herkömmliches Thermometer? Messe mit diesem die kälteste Stelle der Aussenwand (meist knapp oberhalb des Fussbodens) im Innenraum (entspricht tw). Dann nimmst du dein Script und kopierst es in Programme..->Script testen, vervollständigst es mit dem folgenden Scriptschnitzel "Ausgabe" (die Ausgaben Writeline entsprechend setzen; ! entfernen) testet es (Fehler!) und führst es aus.

Ausgabe

Code: Alles auswählen

!
!WriteLine(" ");
!WriteLine(" xxx Wohnzimmer xxxxx ");
!WriteLine("Temperatur innen: " + tin);
!WriteLine("abs.Feuchte innen; " + afMin);
!WriteLine("abs.Feuchte innen alt: " + afMin_alt);
!WriteLine("Temperatur innen Fenster: " + tw);
!WriteLine("Tendenz: " + tendenz);
!WriteLine("Anzeige: " + awerte);
!
!WriteLine(" ");
!WriteLine("abs.Feuchte außen < innen -1.0, lüften : " +afMau -afMin-1.0);
!WriteLine("abs.Feuchte außen >= innen -0.5, nicht lüften : " +afMau -afMin-0.5);
!
!WriteLine(" ");
!WriteLine(" xxx Außen xxxxx ");
!WriteLine("Temperatur außen: " + tau);
!WriteLine("abs.Feuchte außen: " + afMau);
!
!WriteLine(" ");
!WriteLine(" xxx Lüftungsempfehlung & Schimmelwarnung xxxx ");
!WriteLine("Warn: " + afw);
!WriteLine("Alarm: " + afa);
!WriteLine("Lüftungsempfehlung: " + oLueften.Variable());
!WriteLine("Schimmelwarnung: " + oSchimmel.Variable());
!
Der Wert tw (den Du gemessen hast) sollte dadurch erreicht werden, daß Du den Wert Rges (deinen Verhältnissen entsprechend) iterativ anpasst.

Bei mir ist die kalte Aussenwand eine deckenhohe Fensterfront, an der sich am unteren Übergang vom Fensterrahmen zum Isolierglas Kondenswasser bilden (Algenbildung) kann. Ich verwende mit Erfolg Rges = 0.300.

Würde mich freuen wenn ich Dir helfen konnte.

Bleib gesund!

Gruß
schlichi
... inzwischen autodidakter, fortgeschrittener Anfänger mit bestandener Einstiegsprüfung für den Expertenmodus Teil 3 (erfahrener Anwender) :roll:

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von JPS » 17.01.2021, 21:49

joni-blue hat geschrieben:
17.01.2021, 21:15
würde mich sehr freuen wenn du ihr mich da aufklärt
Schau mal hier. Da habe ich seiner Zeit gemeinsam mit paul53 beschrieben, wie der Rges ermittelt werden kann (Absatz 3. Schimmelwarnung). Vielleicht hilft dir das.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

Benutzeravatar
joni-blue
Beiträge: 1171
Registriert: 04.01.2012, 12:20
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von joni-blue » 17.01.2021, 22:11

JPS hat geschrieben:
17.01.2021, 21:49
joni-blue hat geschrieben:
17.01.2021, 21:15
würde mich sehr freuen wenn du ihr mich da aufklärt
Schau mal hier. Da habe ich seiner Zeit gemeinsam mit paul53 beschrieben, wie der Rges ermittelt werden kann (Absatz 3. Schimmelwarnung). Vielleicht hilft dir das.
danke

glaube jetzt habe ich es, allen einen schönen Abend
Reboot tut gut ! ! !

D@niel
Beiträge: 2
Registriert: 02.11.2017, 10:02

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von D@niel » 02.07.2021, 22:07

Hallo Zusammen,

Ich hab mir das Script angelegt, die Schimmel Warnung funktioniert auch.
Die lüftungsempfehlung wir auch aktualisiert, der Status wird aber nie auf wahr geschrieben.
Die absolute Feuchte liegt draußen unter der Von innen, normal sollte sichjetzt doch der Status ändern?
Temperatur passt auch zur Einstellung.

Code: Alles auswählen

 ! Berechnung der Schimmelwarnung und Lueftungsempfehlung
object oTHi = dom.GetObject("Keller_Raumregler:1"); ! Name des Temperatur-/Feuchtesensors im Innenraum
object oTi = oTHi.DPByHssDP("TEMPERATURE");
object oHi = oTHi.DPByHssDP("HUMIDITY");
    object oSchimmel = dom.GetObject("Keller_Schimmel");
	object oLueften = dom.GetObject("Keller_Lueften");
    object oTHa = dom.GetObject("Aussen_TempFeuSens:1");
    object oTa = oTHa.DPByHssDP("ACTUAL_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 > 27.1))
	{oLueften.State(true);}
	else
	{ if ((afau >= (afin - 0.3)) || (tau >= (tin - 0.3)) || (tin <= 10.1))
	{oLueften.State(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.5) * (ta - ti)); ! Rges = 0.5 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.State(2);}
        else {
            if (afin > afw) {oSchimmel.State(1);}
            else {oSchimmel.State(0);}
}
!Die absolute Luftfeuchte drinnen und draußen in eine Variable schreiben
dom.GetObject("Test1").State(afin); !Innen
dom.GetObject("Test2").State(afau); !Außen
}
Bild

Gruß
Daniel
Dateianhänge
E40D25D2-6848-47ED-9C7D-232AFC32B5E1.jpeg

Benutzeravatar
Baxxy
Beiträge: 10603
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von Baxxy » 02.07.2021, 22:57

D@niel hat geschrieben:
02.07.2021, 22:07
Die absolute Feuchte liegt draußen unter der Von innen, normal sollte sichjetzt doch der Status ändern?
Es müssen 3 Bedingungen gleichzeitig erfüllt sein damit Lüften "Wahr" wird.

Code: Alles auswählen

! Berechnung der Lüftungsempfehlung mit 0,5 g/kg und 0,7 K Hysterese
	if ((afau <= (afin - 0.8)) && (tau <= (tin - 1.0)) && (tin > 27.1))
	{oLueften.State(true);}
Bedingung 1:

Code: Alles auswählen

(afau <= (afin - 0.8)
passt nach deinem Screenshot

Bedingung 2:

Code: Alles auswählen

(tau <= (tin - 1.0)
musst du prüfen. (Aussentemperatur <= (Innentemperatur - 1.0)

Bedingung 3:

Code: Alles auswählen

(tin > 27.1)
musst du prüfen. (Innentemperatur > 27.1)

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von paul53 » 02.07.2021, 23:05

Bedingung 3:

Code: Alles auswählen

(tin > 27.1)
ist eine sinnlose Bedingung: Danach soll nur bei Inntentemperaturen > 27,1°C gelüftet werden.
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

D@niel
Beiträge: 2
Registriert: 02.11.2017, 10:02

Re: Script zur Berechnung des Feuchtegehalts

Beitrag von D@niel » 03.07.2021, 09:33

Ach klar, wie blöd 🙈
Jetzt funktioniert es, vielen Dank 👍👍

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“