Kellerbelüftung schalten

Ich bin neu hier im Forum und habe schon ein hilfreiches Script gefunden und bei mir Integriert, daher hier ein Script zurück an die Gemeinschaft :slight_smile: was ich heute geschrieben habe. Wünsche viel Freude beim verwenden.

Meine Script schaltet im Keller einen Badlüfter (hängt am Kellerfenster) ein oder aus, abhängig von der absoluten Feuchtigkeit im Innen- und Außenbereich. Es macht ja nur sinn feuchte Luft nach draußen zu leiten wenn dafür trockenere Luft reinzieht :wink:

Das Script wird alle 30 Minuten ausgeführt über das Script im Bereich „Auslöser Script“ (linke Seite)

{
  conditions = { {
      isTrigger = true,
      operator = "matchInterval",
      property = "cron",
      type = "date",
      value = {
        date = { "00", "00", "*", "*", "*", "*" },
        interval = 1800 --alle 30 Minuten starten
      }
    } },
  operator = "all"
}

Hier das eigentliche Script (rechte Seite):

--Kellerbelüftung
--Die Luft wird von innen nach außen befördert, sobald draußen weniger Absolute Feuchtigkeit vorliegt wie im Keller
--Für die Berechnung wird außen und innen ein Temperatur und Feuchtigkeitsmesser benötigt
--Die Absolute Feuchtigkeit wird mit einer vereinfachten Formel berechnet und liefert einen Näherungswert der ausreichend ist.
--Zusätzlich wird nur für 30 Minuten, gelüftet und danach erneut gemessen so wie geprüft, ob die absolute Feuchtigkeit über 50% im Keller liegt.

-- Werte der Geräte auslesen, bzw. übernehmen
	local TempExtern = fibaro.getValue(231, 'value')
	local HydrExtern = fibaro.getValue(232, 'value')
	local TempIntern = fibaro.getValue(225, 'value')	
	local HydrIntern = fibaro.getValue(226, 'value')

-- Berechnung der absoluten Feuchtigkeit mit vereinfachter Formel #wir sind  ja keine Raketenwissenschaftler oder Erbsenzähler
-- Absolute Feuchtigkeit (AF) ≈ Temperatur in °C × (relative Feuchtigkeit in % / 100) × 5
    local AFextern = TempExtern * (HydrExtern/100) *5
    local AFintern = TempExtern * (HydrIntern/100) *5

-- Lüfter ein oder aus schalten?
    local Lueften = AFintern > AFextern and AFintern > 50
    local AktuellerStatus = fibaro.getValue(164, 'state')

-- Debugausgabe zum erstellen dieses Scriptes (Arbeitsschritte nachvollziehen)
	fibaro.debug("Keller", "Werte extern: ", TempExtern, "|", HydrExtern, "Werte intern: ", TempIntern, "|", HydrIntern)
    fibaro.debug("Keller", "AF extern: ", AFextern, "AF intern: ", AFintern)
    fibaro.debug("Keller", "Wird gerade gelüftet?: ", AktuellerStatus)
    fibaro.debug("Keller", "soll gelüften werden?: ", Lueften)

-- Lüfter schalten | toggle = Zustand wechseln | TurnOff = ausschalten | TurnOn = einschalten
    if (AktuellerStatus == Lueften) 
    then 
    fibaro.debug("Keller", "Lüftungszustand beibehalten.") 
    else 
    hub.call(164, 'toggle') 
    fibaro.debug("Keller", "Lüftungszustand gewechselt!")
    end

-- Benachrichtigungen optional:
-- hub.alert('email', {[1] = 2, }, 'Lüfter geschaltet', false, '')
-- hub.alert('push', {[1] = 2, }, 'Lüfter geschaltet an Benutzer XY', false, '')
-- hub.alert('simplePush', {[1] = 34, }, 'Lüfter geschaltet an Gerät XY', false, '')

Hier noch ein paar DEBUG Ausgaben wo man die Funktion nachvollziehen kann :slight_smile:


Mit Wissenschaftlichem Rechner ausgerechnete Absolute Luftfeuchtigkeit als Gegenprüfung für mich, ob die einfache Formel im Script ausreicht.
AF extern = 10,22g/m³ zu AF intern = 12,54g/m³
Daraus folgt wie in meinem Script das gleiche Ergebnis, dass wir lüften sollen.


Mit Wissenschaftlichem Rechner ausgerechnete Absolute Luftfeuchtigkeit als Gegenprüfung für mich, ob die einfache Formel im Script ausreicht.
AF extern = 10,17g/m³ zu AF intern = 12,62g/m³
Daraus folgt in meinem Script ein falsches Ergebnis, meine Lüftersteuerung würde vorzeitig abschalten, obwohl noch weiterhin gelüftet werden könnte.

Fazit:
Trotz der vorzeitigen Abschaltung des Lüfters ist das Script dennoch für mich ein Erfolg;
da ich in jedem Fall verhindere, dass ich mir feuchtere Außenluft in den Keller hole.
Im Grunde kann man sagen, mein Script Lüftet nur dann, wenn es sich lohnt ;).

Hier noch ein extrem Beispiel, wo die Wissenschaftliche Berechnung an der grenze zum „Abschalten“ ist und auch hier bleibt bei mir natürlich der Lüfter aus.
image
Ausgerechnet => AF extern = 12,52g/m³ zu AF intern = 12,6g/m³

PS.:
Heute wird noch der Lüfter angeschlossen, dieser lief zu den Tests der Lüftersteuerung noch nicht.
Mal schauen wie effektiv mein Lüfter die Feuchtigkeit sengt.
Aktuell läuft noch ein teurer Kondenstrockner, der jeden Tag 3kW verbraucht und das soll nun der Badlüfter übernehmen mit 5-8W/h bzw. 192W max. pro Tag.