Script zur Berechnung des Feuchtegehalts
Moderator: Co-Administratoren
Re: Script zur Berechnung des Feuchtegehalts
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?
Was trage ich denn dann bei der Bedienung am besten ein?
Re: Script zur Berechnung des Feuchtegehalts
@peissl.at welches Gerät und welche Temperatur nehme ich dazu am besten?
Danke!
Danke!
-
- Beiträge: 1295
- Registriert: 16.05.2010, 12:39
- Wohnort: Südwestlich von Graz
- Danksagung erhalten: 9 Mal
Re: Script zur Berechnung des Feuchtegehalts
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
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
Dabei ist es egal ob es das Thermostat für außen oder innen ist?
-
- Beiträge: 1295
- Registriert: 16.05.2010, 12:39
- Wohnort: Südwestlich von Graz
- Danksagung erhalten: 9 Mal
Re: Script zur Berechnung des Feuchtegehalts
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 der absoluten Feuchte
erledigt...
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.
Hat mir jemand bitte einen Tipp?
Liebe Grüsse aus der Schweiz
Hallo zusammenJPS 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:
Individuell an die eigenen Gegebenheiten anzupassen sind folgende Werte: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);} }
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
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);}
}
Liebe Grüsse aus der Schweiz
Zuletzt geändert von hanan am 12.10.2018, 11:14, insgesamt 1-mal geändert.
Liebe Grüsse aus der Schweiz
Andy
_________________________________________________________________________________________________
Raspberrymatic auf NUC unter Proxmox mit RPI-RF-MOD Funkmodul und Antenne Aurel GP868, ca. 19x BidCos-RF und ca. 46x HmIP-RF, ioBroker auf NUC unter Proxmox, 4x Wiffi 3.0, Pulsecounter, Weatherman-Edition
Andy
_________________________________________________________________________________________________
Raspberrymatic auf NUC unter Proxmox mit RPI-RF-MOD Funkmodul und Antenne Aurel GP868, ca. 19x BidCos-RF und ca. 46x HmIP-RF, ioBroker auf NUC unter Proxmox, 4x Wiffi 3.0, Pulsecounter, Weatherman-Edition
Re: Script zur Berechnung des Feuchtegehalts
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?
Besten Dank imVoraus.
Liebe Grüsse aus der Schweiz
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);}
}
Liebe Grüsse aus der Schweiz
Zuletzt geändert von hanan am 12.10.2018, 11:14, insgesamt 2-mal geändert.
Liebe Grüsse aus der Schweiz
Andy
_________________________________________________________________________________________________
Raspberrymatic auf NUC unter Proxmox mit RPI-RF-MOD Funkmodul und Antenne Aurel GP868, ca. 19x BidCos-RF und ca. 46x HmIP-RF, ioBroker auf NUC unter Proxmox, 4x Wiffi 3.0, Pulsecounter, Weatherman-Edition
Andy
_________________________________________________________________________________________________
Raspberrymatic auf NUC unter Proxmox mit RPI-RF-MOD Funkmodul und Antenne Aurel GP868, ca. 19x BidCos-RF und ca. 46x HmIP-RF, ioBroker auf NUC unter Proxmox, 4x Wiffi 3.0, Pulsecounter, Weatherman-Edition