Hallo,
ich habe eine Lüftungsanlage, die ich über IPS steuern kann. Dazu hängt ein HomeMatic-Aktor an der Lüftungsanlage, über die ich die Lüftungsstufen und den Bypass steuern kann.
Über 1Wire-Sensoren habe ich Temperaturen ausgelesen und möchte nun die Bypass-Steuerung abhängig von der Jahreszeit automatisieren.
Dazu habe ich folgendes Script gebaut.
Die Original-Steuerung funktioniert so:
Bypass öffnet wenn eine der Bedingungen erfüllt ist:
a) Abluft > Bypasstemperatur
b) Aussentemperatur < Ablufttemperatur
c) Aussentemperatur > Mindest-Aussentemperatur (bei mir auf 10 Grad eingestellt)
Der Bypass schließt wenn er geöffnet ist und eine der Bedingungen erfüllt ist:
d) Abluft < als Bypasstemperatur die um 2 Grad reduziert ist (bei mir ist das die Bypass_Temperatur_reduziert)
e) Aussentemperatur < Mindest-Aussentemperatur
Zusätzlich lasse ich 2x im Jahr die Variable „Sommerbetrieb“ auf True oder False setzen, um im Winter den Bypass sicher geschlossen zu halten, und damit die Wärmerückgewinnung aktiv zu haben. Im Sommer darf der Bypass gerne geschlossen werden, falls die Abluft zu kalt wird.
<?
$Bypass_Temperatur = "25,0"; // gewünschte Raumtemperatur;
$Bypass_Temperatur_reduziert = "23,0"; // reduzierte Bypasstemperatur zur Laufzeitsicherung des Bypasses
$Mindest_Aussentemperatur = "10,0"; // minimale Aussentemperatur;
$Aussenluft = 38339; // Variable für Außentemperatur
$Aussenluft_aktuell = GetValueFloat(38339); // aktuelle Außentemperatur
$Abluft = 48456; // Variable für Ablufttemperatur
$Abluft_aktuell = GetValueFloat(48456); // aktuelle Ablufttemperatur
$Zuluft = 53040; // Variable für Zulufttemperatur
$Zuluft_aktuell = GetValueFloat(53040); // aktuelle Zulufttemperatur
$Aktor_Bypass = 52155; // Variable für Bypassstatus
$Aktor_Bypass_aktuell = GetValueBoolean(36803); // aktueller Bypassstatus
$Sommerbetrieb = GetValueBoolean(17793); // Prüfung ob Sommer- oder Winterhalbjahr
if ($Aktor_Bypass_aktuell = false){ // Bedingungen für Öffnung des Bypass, nur im Sommerhalbjahr aktiv
if ($Sommerbetrieb = true) { // Prüfung auf Sommerhalbjahr
if ($Abluft_aktuell > $Bypass_Temperatur) {
HM_WriteValueBoolean(52155,"STATE",true); // Bypass öffnen
}
elseif ($Aussenluft_aktuell < $Abluft_aktuell) {
HM_WriteValueBoolean(52155,"STATE",true); // Bypass öffnen
}
}
else HM_WriteValueBoolean(52155,"STATE",false); // im Winter Bypass geschlossen halten
}
elseif ($Aktor_Bypass_aktuell = true){ // Bypass schließen
if ($Sommerbetrieb = true) { // Prüfung auf Sommerhalbjahr
if ($Abluft_aktuell < $Bypass_Temperatur_reduziert) {
HM_WriteValueBoolean(52155,"STATE",false); // Bypass schließen
}
}
else HM_WriteValueBoolean(52155,"STATE",false);
}
?>
Das Skript an sich funktioniert, allerdings klappt das mit der Abfrage des Sommerbetriebes nicht.
Ich habe die Variable aktuell auf „false“, damit müsste der Bypass schließen - tut er aber nicht.
Wo steckt denn mein Fehler?