Seite 2 von 8

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 08.06.2020, 22:39
von schlichi
Hallo Zusammen,
Muasmolle hat geschrieben:
01.04.2020, 15:28
Hey, vielen Dank für dieses Skript! Funktioniert tadellos und recht genau. Habe es mit einer anderen Berechnung verglichen -> passt.

Code: Alles auswählen

! 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
! xxx
real r = (17.62 * tin) / (243.12 + tin);
real e = r.Exp()*611.2;
real eSat = e * rfin;
real afin = ((eSat / 461.51 * (tin+273.15))*10).ToString(2);
WriteLine("abs. Feuchte innen e*: " + afin);
! xxx
! 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;
    }
! xxx
real r = (17.62 * tau) / (243.12 + tau);
real e = r.Exp()*611.2;
real eSat = e * rfau;
real afau = ((eSat / 461.51 * (tau+273.15))*10).ToString(2);
WriteLine("abs. Feuchte aussen e*: " + afau);
! xxx
! 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;
    }

ja, ich hab´s auch mal verglichen, -> was mache ich falsch? Oder stimmt das "passt" nicht?

Code: Alles auswählen

Parameter für Test
abs. Feuchte innen e*: 9.84
abs. Feuchte aussen e*: 9.39


abs. Feuchte innen: 8.474568
abs. Feuchte aussen: 8.096046
Referenz
https://www.ib-rauch.de/bautens/formel/ ... eucht.html
Luftdruck 1013.3 bar

bestätigt meine Werte! Womit hat "Muasmolle"verglichen?

Grüße
schlichi

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 09.06.2020, 00:11
von MichaelN
Fehlt da eine relevante Info oder ist es einfach schon zu spät für mich?

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 09.06.2020, 10:10
von schlichi
MichaelN hat geschrieben:
09.06.2020, 00:11
Fehlt da eine relevante Info oder ist es einfach schon zu spät für mich?
Wie man´s nimmt, das vorwegstehende Auslesen der Sensoren hab ich weggelassen, kann jedoch jeder anhand des ursprünglichen Programmcodes (siehe link) für seine Umgebung einbauen.

Gruß
schlichi

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 09.06.2020, 10:13
von MichaelN
Und woher sollen wir wissen, was deine Sensoren gemessen haben? Oder anders ausgedrückt, wenn wir das Ergebnis verifizieren sollen, brauchen wir auch den input

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 09.06.2020, 12:26
von schlichi
Hallo Michael,

ich war der Meinung, daß der Programmausschnitt für diejenigen welche das Programm kennen, ausreichend wäre.
Aber hier das komplette Testprogramm !

Code: Alles auswählen

! Berechnung mit e-funktion testen
!https://smart-wohnen.org/homematic-raumklimaueberwachung-und-entfeuchtung/
!by paul53
! Berechnung der Lüftungsempfehlung 01.06.2020 / schlichi
!
object oTHi = (dom.GetObject(ID_CHANNELS)).Get("Dein Sensorkanal innen, :1");
object oTi = oTHi.DPByHssDP("ACTUAL_TEMPERATURE");
object oHi = oTHi.DPByHssDP("HUMIDITY");
!
!
object oTHa = (dom.GetObject(ID_CHANNELS)).Get("Dein Sensorkanal außen, :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
! xxx
! https://homematic-forum.de/forum/viewtopic.php?p=528541#p528541
!
real r = (17.62 * tin) / (243.12 + tin);
real e = r.Exp()*611.2;
real eSat = e * rfin;
real afin = ((eSat / 461.51 * (tin+273.15))*10).ToString(2);
WriteLine("abs. Feuchte innen e*: " + afin);
! xxx
! xxx
! https://homematic-forum.de/forum/viewtopic.php?p=528541#p528541
!
real r = (17.62 * tau) / (243.12 + tau);
real e = r.Exp()*611.2;
real eSat = e * rfau;
real afau = ((eSat / 461.51 * (tau+273.15))*10).ToString(2);
WriteLine("abs. Feuchte aussen e*: " + afau);
! xxx
!
! 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;
    }
!
WriteLine(" ");
WriteLine("Parameter für Test");
WriteLine("Temperatur innen: " + tin);
WriteLine("rel. Feuchte innen %: " + rfin);
WriteLine("abs. Feuchte innen: " + afin);
WriteLine("Temperatur aussen: " + tau);
WriteLine("rel. Feuchte aussen %: " + rfau);
WriteLine("abs. Feuchte aussen: " + afau);
"Dein Sensorkanal innen, :1" bzw, "..... außen", sind jeweils entsprechend zu ersetzen.

Meine Werte gerade eben: (Luftdruck 1013,5)

Code: Alles auswählen


abs. Feuchte innen e*: 10.43
abs. Feuchte aussen e*: 9.75
 
Parameter für Test
Temperatur innen: 23.300000
rel. Feuchte innen %: 50
abs. Feuchte innen: 8.995607
Temperatur aussen: 14.400000
rel. Feuchte aussen %: 79
abs. Feuchte aussen: 8.041553

Gruß
schlichi

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 09.06.2020, 12:56
von MichaelN
Geht doch.

Ich nutze nicht das Skript, sondern ein CuxD Device.

Das berechnet bei:

Temperatur innen: 23.5
rel. Feuchte innen %: 50
abs. Feuchte innen: 11,0 g/m3

Temperatur aussen: 14.5
rel. Feuchte aussen %: 79
abs. Feuchte aussen: 7,1 g/m3

Wobei das so verkehrt nicht sein kann, weil ich danach im Keller lüfte und die gemessenen Ergebnisse sind plausibel.
Bei dem Rechner: https://rechneronline.de/barometer/luftfeuchtigkeit.php kommen auch wieder andere Werte raus :(

Scheint ne Wissenschaft für sich zu sein...

btw: was für eine EInheit berechnet dein Skript denn?

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 09.06.2020, 13:25
von schlichi
Hallo,
btw: was für eine EInheit berechnet dein Skript denn?
steht im Programm:

real afau; ! absolute Feuchte in g/kg außen

Gruß
schlichi

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 09.06.2020, 13:45
von MichaelN
So sicher wäre ich mir da nicht
Im Programm steht auch dieser Link viewtopic.php?p=528541#p528541
und darunter steht
rLf: relative Luftfeuchte
t: Temperatur [°C]
aLf: absolute Luftfeuchte [g/m³]

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 09.06.2020, 14:21
von schlichi
Hallo Michael,

besten Dank. Man sollte immer alles lesen! :roll:

Die "e"-Formel gibt die absolute Luftfeuchte in g/m³ Luft (-volumen) an,
meine ursprüngliche Berechnung gibt die absolute Luftfeuchte in g/kg Luft (-masse) an.
Demzufolge beide Berechnungsarten zu einem Ergebnis führen.

Das war´s.

Gruß
schlichi

Re: Absolute Luftfeuchtigkeit und Taupunkt ermitteln

Verfasst: 01.08.2020, 16:13
von ZaHackn
DJDieter hat geschrieben:
10.09.2019, 00:08
Falls jemand ein Script zur Berechnung der absoluten Luftfeuchtigkeit benötigt:

Code: Alles auswählen

var rLf = dom.GetObject("BidCos-RF.MEQ0000000:1.HUMIDITY").Value();
var t = dom.GetObject("BidCos-RF.MEQ0000000:1.TEMPERATURE").Value();
var r = (17.62 * t) / (243.12 + t);
var e = r.Exp()*611.2;
var eSat = e * rLf;
var aLf = ((eSat / 461.51 * (t+273.15))*10).ToString(2);
rLf: relative Luftfeuchte
t: Temperatur [°C]
aLf: absolute Luftfeuchte [g/m³]

Funktioniert auch mit HmIP-Geräten, ohne den Umweg über die CUxD-Integration gehen zu müssen.

Der Wert "MEQ0000000" muss doch durch die Seriennummer meines Außensensors getauscht werden um zu funktionieren oder? Dann ein Programm bauen was dieses Skript z.B. alle 5 Minuten auslöst um aktuelle Werte zu erhalten, korrekt?