ich habe mir einen umfangreiche Lüftungssteuerung für meine zentrale Kontrollierte WohnraumLüftungen (KWL) gebaut.
Die Lüftungsteuerung erfolgt nach Luftfeuchte und dem Co2 Wert um eine möglichst gute Luftqualität zu bekommen.
Prio ist eine gute Luftqualität in Form von geringen CO2 Werten, dann eine passsende Luftfeuchtigkeit.
Vielleicht ist das ja für jemanden hier interessant.
Was wird gemacht:
* Die Prüfung findet pro Raum statt, im Anschluss werden die Werte zusammengefasst und die Lüftungsstufe ermittelt.
* Wenn die Luftfeuchte im Raum >60% und die Zuluft der KWL trockener ist ODER die Luftfeuchte <45% und die Zuluft der KWL feuchter ist, wird lüften empfohlen.
* Sollten die Grenzwerte von >60% und <45% erreicht werden, die Zuluft aber zu trocken bzw. zu feucht ist, wird Lüften verboten, da dadurch die Luftqualität noch schlechter wird.
* Ist die Luftfeuchte im Raum >45% und <60%, die Luftqualität also gut, kann gelüftet werden, muss aber nicht, dieser Raum hat für die nachfolgende Bewertung damit keine Bedeutung
* Ist die Luftfeuchte im Raum >80% oder der CO2 Wert über 1000 gibt es eine Zwangslüftung welche die andere Bewertung überstimmt.
* Die Logik ist "Lüftungsunfreundlich", d.h. wenn der optimale Wert erreicht ist wird die Lüftung runtergeregelt, würden sich Räume verschlechtern wird nicht gelüftet obwohl es Räume gibt die gelüftet werden sollten.
Es können pro Raum die Luftfeuchte und CO2 angegeben werden. Es sind aber nicht beide Werte nötig.
Die Luftfeuchtigkeit kann in Form der absoluten Luftfeuchte oder dem Taupunkt übergeben werden.
Aufbau:
Die Raumauswertung besteht aus 16 Logikmodulen, daher habe ich diese in eine Custom-Logik zusammengefasst. Pro Raum wird einmal die Custom-Logik benötigt. Die Gesamtauswertung erfolgt dann mit den Standard-Logiken. Dadurch kann die Anzahl der Räume frei bestimmt werden und es muss keine Custom-Logik angepasst werden.
Das Ergebnis ist eine Steuerung von Stufe 0-3. Damit kann z.B. in meinem Fall eine Zehnder Q350 über ein KNX Modul angesteuert werden
Hier die komplette Logik:
Hier der Code für die Custom Logik:
Code: Alles auswählen
/**
* Im Standard wird die Lüftung auf Abwesend betrieben.
* Bedingungen wie erhöhte Luftfeuchte oder zu geringe Luftfeuchte oder erhöhte Co2 Werte beeinflussen die Lüftungsstufe
* Wenn aber alles im grünen Bereich ist oder durch die Lüftung die Luftfeuchte zu weit absinkt, zu stark ansteigt wird die Luftungstufe reduziert
* Es muss nicht Luftfeuchte und CO2 berechnet werden. Ein Wert von beiden reicht
*/
{
"_Meta": { // Optional
"Description": "",
"Version": "1.00",
"Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
},
"Input": [
["Luftfeuchtigkeit Raum","Luftfeuchtigkeit des Raums","$feuchteRaum","c" ],
["Taupunkt Raum","Taupunktemperatur des Raums","$taupunktRaum","c" ],
["Taupunkt Zuluft","Taupunkttemperatur des Raums","$taupunktZuluft","c" ],
["co2Ist","Co2 Wert des Raums","$co2Ist","c" ]
],
"Output": [
["Lüften sinnvoll","Lüften sinnvoll","$outLueftenSinnvoll","a"],
["Lüften egal","Lüften egal","$outLueftenEgal","a"],
["Zwangslueftung","zwangslueftung","$outZwangslueftung","a"]
],
"Level": [
//Ein/Ausgänge
["$feuchteRaum","float",0.0],
["$taupunktRaum","float",0.0],
["$taupunktZuluft","float",0.0],
["$co2Ist","float",0.0],
["$outLueftenSinnvoll","bool", false],
["$outLueftenEgal","bool", false],
["$outZwangslueftung","bool", false],
//Variablen für Berechnung
["$feuchte>60","bool", false],
["$feuchte<45","bool", false],
["$feuchte>45","bool", false],
["$feuchte<60","bool", false],
["$feuchte>80","bool", false],
["$feuchteeintrag","bool", false],
["$keinFeuchteeintrag","bool", false],
["$co2>800","bool", false],
["$co2>1000","bool", false],
["$schwellwert60","float", 60],
["$schwellwert45","float", 45],
["$schwellwert80","float", 80],
["$schwellwert800","float", 800],
["$schwellwert1000","float", 1000],
//Variablen Zwischenergebnisse
["$randbereich60gut","bool", false],
["$randbereich45gut","bool", false],
["$optimalbereich","bool", false],
["$lueftenSinnvoll","bool", false]
],
"Module": [
["Comparator" , "$feuchteRaum" , "$feuchte>60" , "$schwellwert60"],
["Comparator" , "$feuchteRaum" , "-$feuchte<45" , "$schwellwert45"],
["Comparator" , "$feuchteRaum" , "$feuchte>80" , "$schwellwert80"],
["Comparator" , "$feuchteRaum" , "$feuchte>45" , "$schwellwert45"],
["Comparator" , "$feuchteRaum" , "-$feuchte<60" , "$schwellwert60"],
["Comparator" , "$taupunktRaum" , "$keinFeuchteeintrag" , "$taupunktZuluft"],
["Comparator" , "$taupunktZuluft" , "$feuchteeintrag" , "$taupunktRaum"],
["Comparator" , "$co2Ist" , "$co2>800" , "$schwellwert800"],
["Comparator" , "$co2Ist" , "$co2>1000" , "$schwellwert1000"],
["And", ["$feuchte>60", "$keinFeuchteeintrag"], "$randbereich60gut"], //Randbereich durch Lüften verbessern möglich?
["And", ["$feuchte<45", "$feuchteeintrag"], "$randbereich45gut"], //Randbereich durch Lüften verbessern möglich?
["And", ["$feuchte>45", "$feuchte<60"], "$optimalbereich"], //opitmaler Bereich erreicht?
["And", ["$feuchte>45", "$feuchte<60"], "$outLueftenEgal"], //Nochmal die gleiche Prüfung für den Ausgang
["Or", ["$randbereich60gut", "$randbereich45gut"], "$lueftenSinnvoll"], //Macht es sinn die den Raum zu Lüften oder würde sich die Qualität verschlechtern?
["Or", ["$lueftenSinnvoll", "$optimalbereich"], "$outLueftenSinnvoll"], //
["Or", ["$feuchte>80", "$co2>1000"], "$outZwangslueftung"]
]
}
Hier die benötigten Standardbausteine
Verbesserungsmöglichkeiten:
* Annäherung der Lüftungsstufe an das Optimum, nicht nur Vorgabe einer Stufe
* Ab CO2 800 Lüftungsstufe optional wenn keine Lüftungssperre, erhöhen
* Grenzwerte der Zwangslüftung als Eingang definieren
* Einbauen einer Schalthysterese
* Gewichtung der Raumergebnisse, müssen viele Räume gelüftet werden, kann eine Lüftungssperre eines einzelnen Raums überstimmt werden