Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Hobyist
Beiträge: 136
Registriert: 23.10.2019, 09:31
System: CCU
Hat sich bedankt: 39 Mal
Danksagung erhalten: 1 Mal

Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von Hobyist » 29.05.2023, 19:48

Hallo, ich habe es bis auf die letzte Berechnung geschafft.

1. Ich messe die Aussentemperatur und die relative Feuchtigkeit aussen.
2. Daraus berechne ich die absolute Feuchtigkeit.
3. Mit dieser absoluten Feuchtigkeit und der Temperatur im Keller berechne ich (oder möchte ich berechnen) die daraus folgende relative Feuchtigkeit im Keller.

Leider geht das mit der letzten Formel nicht. Irgendwie sehe ich vor lauter Wald die Bäume nicht mehr.

Code: Alles auswählen

! Die Luftfeuchte aussen in absoluten Wert berechnen und dann den daraus folgenden relativen Wert für den Keller umrechnen.
! v0.1 (c) by Hobyist 

! ++++++++ benutzte Sytemvariablen +++++++++
! Temperatur aussen von Davis Wetterstation über meteobridge ausgelesen
! th0_Temperatur
! rel Luftfeuchte von Davis Wetterstation über meteobridge ausgelesen
! th0_Luftfeuchte

! ++++++++ benutzte Geräte +++++++++
! 11TempFeu

! Auslesen der Systemvariablen

var tempaussen = dom.GetObject("th0_Temperatur").Value();
var feuchtaussen = dom.GetObject("th0_Luftfeuchte").Value(); 

! Kontrollausdrucke
WriteLine (tempaussen);
WriteLine (feuchtaussen);


! Auslesen der Thermostaatwerte
string Name_Thermostat_CH2 = '11TempFeu:1';

object obj_Thermostat_Kanal = channels.Get (Name_Thermostat_CH2);
if (obj_Thermostat_Kanal) {real Thermostat_Temp    = obj_Thermostat_Kanal.DPByHssDP ("ACTUAL_TEMPERATURE").Value();
real Thermostat_Hum  = obj_Thermostat_Kanal.DPByHssDP ("HUMIDITY").Value();
WriteLine(Thermostat_Temp);
WriteLine(Thermostat_Hum);
}
else { WriteLine("Gerätekanal: "# Name_Thermostat_CH2 #" nicht gefunden!"); }

! Multiplikation aller 4 Variabeln
var alle4multi = tempaussen * feuchtaussen * Thermostat_Temp * Thermostat_Hum;
WriteLine(alle4multi);

! Berechnen der absoluten Feuchtigkeit aussen
var feuchteaussenabs = ((6.112 * ((17.67 * tempaussen) / (tempaussen + 243.5)).Exp() * feuchtaussen * 2.1874) / (273.15 + tempaussen));
WriteLine(feuchteaussenabs);

!Berechnen der relativen Feuchtigkeit innen
var feuchteinnenrel = ((feuchteaussenabs * (273.15 + Thermostat_Temp)) / (2.1674 * 6.112 * ((17.67 * Thermostat_Temp)/(Thermostat_Temp + 243.5)).Exp));
WriteLine(feuchteinnenrel);
Es hat noch unnötige Kontrollausdrucke im Script.
Auch bin ich mir bewusst, dass die Berechnung nur eine Annäherung ist, was aber für meinen Einsatz (Belüftung des Kellers) vollauf genügt.

Also ich komme mit der letzten Formel, die zweit letzte Zeile im Script nicht mehr weiter...

Kann mir da jemand helfen? Vielen Dank.
CCU3 Start Up, Wohnort Schweiz

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von MichaelN » 29.05.2023, 19:59

Hm Skript ist sehr eigen, was die Rechenregeln betrifft. In kleinere Schritte unterteilen oder viele, viele Klammerebenen einziehen.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Hobyist
Beiträge: 136
Registriert: 23.10.2019, 09:31
System: CCU
Hat sich bedankt: 39 Mal
Danksagung erhalten: 1 Mal

Re: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von Hobyist » 29.05.2023, 20:03

MichaelN hat geschrieben:
29.05.2023, 19:59
Hm Skript ist sehr eigen, was die Rechenregeln betrifft. In kleinere Schritte unterteilen oder viele, viele Klammerebenen einziehen.
Dieses "eigen" habe ich auch bemerkt. Da ich aber die zweitletzte Formel, für die Berechnung der absoluten Feuchtigkeit geht, dachte ich, sollte doch die letzte Formel auch gehen...

Vielleicht sieht da jemand mit scharfem Auge, wo es da klemmt. Das Skript-Prüfer der CCU3 gibt nur eine weisse Fläche aus...
CCU3 Start Up, Wohnort Schweiz

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von Black » 29.05.2023, 20:25

Hobyist hat geschrieben:
29.05.2023, 20:03
Vielleicht sieht da jemand mit scharfem Auge, wo es da klemmt. Das Skript-Prüfer der CCU3 gibt nur eine weisse Fläche aus...
die ganze Berechnung werd ich nicht nachvollziehen, aber ich hab dein Script mal in meinen Editor geladen.

Bei mir ergibt Scriptprüfen schon mal diese ausgabe:

B2.PNG
B2.PNG (22.88 KiB) 401 mal betrachtet

Mein Editor sagt dir an der Stelle auch was falsch ist:

B1.png

Änder deine Zeile 43 mal so ab:

Code: Alles auswählen

var feuchteinnenrel = ((feuchteaussenabs * (273.15 + Thermostat_Temp)) / (2.1674 * 6.112 * ((17.67 * Thermostat_Temp)/(Thermostat_Temp + 243.5)).Exp()));  
dann gehts syntaktisch durch, das rechnerische hab ich nicht überprüft.

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
Henke
Beiträge: 1500
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 304 Mal

Re: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von Henke » 29.05.2023, 20:30

Hobyist hat geschrieben:
29.05.2023, 19:48
3. Mit dieser absoluten Feuchtigkeit und der Temperatur im Keller berechne ich (oder möchte ich berechnen) die daraus folgende relative Feuchtigkeit im Keller.
Das wird nix, da das nicht die gleiche Luft ist.
Aktuelles Beispiel:
Screenshot 2023-05-29 202434.jpg
Rot: Außen Abs. Feuchte, darunter die Abs. Feuchte der anderen Räume

Würde ich aus der Abs. Feuchte Außen mit der Temperatur der Räume die relative berechnen, käme Müll raus. Nichts was auch nur einer groben Näherung gleich käme.

Hobyist
Beiträge: 136
Registriert: 23.10.2019, 09:31
System: CCU
Hat sich bedankt: 39 Mal
Danksagung erhalten: 1 Mal

Re: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von Hobyist » 29.05.2023, 20:33

Black hat geschrieben:
29.05.2023, 20:25
Hobyist hat geschrieben:
29.05.2023, 20:03
Vielleicht sieht da jemand mit scharfem Auge, wo es da klemmt. Das Skript-Prüfer der CCU3 gibt nur eine weisse Fläche aus...
die ganze Berechnung werd ich nicht nachvollziehen, aber ich hab dein Script mal in meinen Editor geladen.

Bei mir ergibt Scriptprüfen schon mal diese ausgabe:
B2.PNG
Mein Editor sagt dir an der Stelle auch was falsch ist:
B1.png

Änder deine Zeile 43 mal so ab:

Code: Alles auswählen

var feuchteinnenrel = ((feuchteaussenabs * (273.15 + Thermostat_Temp)) / (2.1674 * 6.112 * ((17.67 * Thermostat_Temp)/(Thermostat_Temp + 243.5)).Exp()));  
dann gehts syntaktisch durch, das rechnerische hab ich nicht überprüft.

Black
Danke, das werde ich gerne nachvollziehen!

Ich hatte die Formeln in Excel aufgebaut und sie auch umgeformt. Da geht alles bestens.

Ich habe aber eine gewisse Kenntnislücke, wie man die Funktion EXP() richtig einsetzt. Dass es in der oberen Formel funktioniert hat, kommt daher, dass ich dies in einem Beitrag hier im Forum gefunden habe. Aber eine fundierte Anweisung bezüglich Anwendung habe (noch) nicht gefunden.

Noch einmal vielen Dank.
Zuletzt geändert von Hobyist am 30.05.2023, 09:08, insgesamt 1-mal geändert.
CCU3 Start Up, Wohnort Schweiz

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: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von schlichi » 29.05.2023, 20:39

Hallo "Hobbyist",
... die ganze Berechnung werd ich nicht nachvollziehen
aber, wozu die Mulitpikation der 4 Parameter? Willst Du Obst? :roll:
Verwechselst Du nicht schon im Vorfeld Äpfel mit Birnen?

TempAussen und relLuftFeuchteAussen sind doch über die SysVar definiert, hier benötigst Du die Berechnung (Formel) der abLuftFeuchteAussen

TempInnen und relLuftFeuchteInnen (Keller) beziehst Du durch deinen Thermostat, hier benötigst Du die Berechnung (Formel) der abLuftFeuchteInnen

Dann noch Differenz zwischen abLuftFeuchteAussen und abLuftFeuchteInnen ..... siehe Beispiele im Forum,...

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

Hobyist
Beiträge: 136
Registriert: 23.10.2019, 09:31
System: CCU
Hat sich bedankt: 39 Mal
Danksagung erhalten: 1 Mal

Re: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von Hobyist » 29.05.2023, 22:12

:D
schlichi hat geschrieben:
29.05.2023, 20:39
Hallo "Hobbyist",
aber, wozu die Mulitpikation der 4 Parameter? Willst Du Obst? :roll:
Das ist eben eine der Kontrollausdrucke, welche ich dann löschen werde. :D
CCU3 Start Up, Wohnort Schweiz

Benutzeravatar
Henke
Beiträge: 1500
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 304 Mal

Re: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von Henke » 29.05.2023, 22:18

Wie ich durch schlichi gemerkt habe, hast du die relative Feuchte Innen als Messwert.
Du möchtest also anhand der Messwerte Temp/Feuchte Außen und der Messwerte Temp/Feuchte Raum eine Entscheidung treffen ob Lüften notwendig und sinnvoll ist?

Wenn du noch dazu den Rges (Wärmedämmwert des Raumes an der schlechtesten Stelle) ermitteln kannst, kann ich dir mit einem Java Script helfen bzw. dieses auf CCU Script portieren.

LINK: viewtopic.php?f=43&t=9835&hilit=rges&start=200

Teilweise waren die Berechnungen aber falsch. Ich teste das mal...
und, da war doch was...
Berechnungen dieses Scriptes sind falsch und beziehen nicht den Rges mit ein.

Test mit fixen Werten:

Code: Alles auswählen

! xxx Berechnung der Lüftungsempfehlung xxxxxx
! Quelle: https://homematic-forum.de/forum/viewtopic.php?p=71326#p71326
! (C) basierend auf paul53
! 10.03.2022 / GS


! xxx Programmteil Lüftungsempfehlung xxxxxx

! Lokale Variablen
    real tin = 24; ! Temperatur in °C innen
    integer rfin = 53; ! relative Feuchte in % innen
	real afin;  ! absolute feuchte in g/kg innen
	real tau = 15.8; ! Temperatur in °C außen
    integer rfau = 45; ! 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,8 g/kg Hysterese und update der SysVar

! xxx Programmende xxxxxxx

real _Temp = tin.ToFloat();
real _Feuchte = rfin.ToFloat();
real rA = 7.5;
real rB = 237.3;
real rDD = 6.1078 * (10.0).Pow( (rA * _Temp) / (rB + _Temp)) * _Feuchte / 100.0;
real rV = (rDD / 6.1078).Log10();
real Taupunkt = (rB * rV / (rA - rV));
real AbsFeuchte = ((10.0).Pow( 5.0) * (18.016 / 8314.3) * rDD / (_Temp + 273.15));

WriteLine ( "Abs. Feuchte: Soll(Web) 11.53 Formel Forum: " # afin.ToString(2) # " meine "  #   AbsFeuchte.ToString(2) );
WriteLine ( "q.e.d" );
Edit:
Unter LINK: viewtopic.php?f=43&t=9835&hilit=rges&start=200
die falsche Berechnung veröffentlicht und eine neue mit Rges die stimmt und mehr kann.

Hobyist
Beiträge: 136
Registriert: 23.10.2019, 09:31
System: CCU
Hat sich bedankt: 39 Mal
Danksagung erhalten: 1 Mal

Re: Rel Feuchtigkeit innen aus absoluter Feuchtigket aussen ableiten

Beitrag von Hobyist » 30.05.2023, 09:00

Black hat geschrieben:
29.05.2023, 20:25

Änder deine Zeile 43 mal so ab:

Code: Alles auswählen

var feuchteinnenrel = ((feuchteaussenabs * (273.15 + Thermostat_Temp)) / (2.1674 * 6.112 * ((17.67 * Thermostat_Temp)/(Thermostat_Temp + 243.5)).Exp()));  
dann gehts syntaktisch durch, das rechnerische hab ich nicht überprüft.

Black
Danke, das war das Problem bei der Funktion Exp () keine Doppelklammer.

Darf ich mal fragen, welcher Editor du im Einsatz hast? Ich arbeite im Moment mit Notepas++ mit Syntax. Der hat mir aber den Fehler nicht gebracht.
CCU3 Start Up, Wohnort Schweiz

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“