...ich weiss zwar nicht ob es hilft, aber hier mein grob zusammen gestricktes Programm, welches ich in der 99_MyUtils periodisch alle 10min aufrufe.
##########################################################
#
# MansCave Heizungsprogramm (wird vom Haupt-Heizungsprogramm via Timer aufgerufen)
# Prüft Aussen und Hallentemperatur (oben) und öffnet Dachfenster, wenn es nicht regnet
# Schaltet Brenner bei Wärmebedarf
##########################################################
sub
prg_MansCave_Heizung()
{
my $mc_to = ReadingsVal("MansCave_T_Oben","temperature","0"); # Temperatur unter dem Dach
my $mc_ta = ReadingsVal("MansCave_T_Aussen","temperature","0"); # Aussentemperatur
my $mc_tu = ReadingsVal("MansCave_T_Unten","temperature","0"); # Temperatur am Boden
my $mc_dt = ReadingsVal("MansCave_Desired_Temp","state","99"); # Desired Temp
#
# Halle lüften:
# Wenn die Aussentemperatur 2°C grösser oder gleich der Temp-Oben ist und es nicht regnet,
# dann bitte Lichtkuppeln öffnen, wenn diese nicht schon auf sind.
#
if ($mc_ta >= $mc_to+2 && Value("MansCave_Lichtkuppeln") ne "on" && !Value("Regensensor_reset")) {
Log 1, "MansCave_Heizung: set MansCave_Lichtkuppeln on";
fhem ("set MansCave_Lichtkuppeln on");
};
# Wenn die Aussentemperatur kleiner als die Temp-Oben ist, und die Lichtkuppeln nicht zu,
# dann bitte Lichtkuppeln schliessen.
#
if ($mc_ta < $mc_to && Value("MansCave_Lichtkuppeln") ne "off") {
Log 1, "MansCave_Heizung: set MansCave_Lichtkuppeln off";
fhem("set MansCave_Lichtkuppeln off");
};
#
# Halle heizen
#
# Wenn Temperatur unten kleiner Desired-Temp und der Brenner nicht schon eingeschaltet -> Brenner einschalten
#
if ($mc_tu < $mc_dt && Value("MansCave_Heizung_Brenner") ne "on") {
Log 1, "MansCave_Heizung: set Brenner on";
fhem("set MansCave_Heizung_Brenner on")
};
#
# Wenn Temperatur unten grösser (Desired-Temp+1) und der Brenner nicht schon aus -> Brenner ausschalten
#
if ($mc_tu > $mc_dt+1 && Value("MansCave_Heizung_Brenner") ne "off") {
Log 1, "MansCave_Heizung: set Brenner off";
fhem("set MansCave_Heizung_Brenner off")
};
#
# Wenn Temperatur oben mehr als 3°C wärmer als unten, der Brenner an und Deckenventilatoren nicht
# an -> Deckenventilatoren an.
#
if ($mc_to > $mc_tu+3 && Value("MansCave_Deckenventilatoren") ne "on" && Value("MansCave_Heizung_Brenner") eq "on") {
fhem("set MansCave_Deckenventilatoren on")
};
#
# Wenn Temperatur oben kleiner oder gleich (Temp unten +1) und Deckenventilatoren an
# an -> Deckenventilatoren aus.
#
if ($mc_to <= $mc_tu+1 && Value("MansCave_Deckenventilatoren") ne "off") {
fhem("set MansCave_Deckenventilatoren off")
};
return
}
#
#
##########################################################