HM Heizung + Fenstersensor klappt nicht

Hallo

Habe mir einen homematic Heizungstermostat (neues Modell) angebaut. Dazu noch einen Fensterkontakt.

Ich will alles über IPS Steuern.

Mach die Temperaturen über Wochenprofile. So ist das Ganze sehr leicht zu ändern und schön übersichtlich mit Boardmitteln.

Das Script setzt denn in der Instanz die SetTemperatur auf den gewünschten Wert.

Den Fenster sensor habe ich in der CCU direkt Mit dem Thermostat verknüpft.

Mach ich das Fenster auf wird die SetTemperatur von der ccu auf 5 Grad gestellt.
Mach ich es wieder zu springt es wieder auf den alten Stand.

Soweit noch alles gut.

Wenn aber in der Zeit in der das Fenster offen steht vom timerscript eine neue SetTemperatur übermittelt wird ist es dem Thermostat egal ob das Fenster offen ist. Er heizt hoch.

Ich könnte also im timerscript abfragen ob das Fenster offen ist. Und dann den Wert nicht schicken. Aber wenn dann das Fenster zu ist sollte der neue Wert eingestellt werden. Wie mach ich das am geschicktesten ohne großen Aufwand.

Ich hab mir auch schon ein paar Gedanken gemacht und hier das Hearings Script angeschaut. Aber ich Check es nicht ganz.

Wie macht ihr das so? Ich würde gerne meinen wochenplan von IPS verwenden. Der lässt sich über das WebFront auch schön anpassen.

Oder gibt’s ne Möglichkeit den wochentimer abzufragen welche Einstellung gerade Anliegen würde? Dann wäre es einfach.

Nach der Art: if Fenster = zu, Abfrage welche temp gestellt werden soll, dann set temp.

Oder beim Event die set Temperatur nochmal in eine hilfsvariable schreiben .
Und diese dann immer verwenden um die Thermostate zu schalten.

Hi!

Hier hatte ich das mal ganz gut beschrieben, mit Screenshots, wie ich das umgesetzt habe:
Wochenplan - Einrichtesorgen

Habe mehrere solcher Wochenpläne. Und ich kann jeweils im WebFront einstellen, welche Temperatur bei Anwesend, Abwesend, Erhöht, Nacht anliegen soll. Aufgeteilt in Wohnraum, Schlafraum und Bäder.

Und damit sind auch entsprechend die Fenster „verscripted“. Weil anhand der Wochenpläne weiß meine Automatik immer wo wie was anliegen sollte.

Vlt. stelle ich meine Lösung mal komplett vor…ist eigentlich nicht viel Arbeit und funktioniert seit Monaten ohne Probleme.

Grüße,
Chris

Mir fallen da mehrer Wege ein.
Der beste wäre wohl wirklich den Fensterstatus abzufragen wenn das Wochenprofil eine neue Temp setzen soll, und es bei Fenster offen einfach nicht zu machen.
Und dann wenn Fenster zu, einen Trigger auf ein Script, welches den aktuellen Wert der Temp aus dem Wochenproil holt und dann die neue Temp sendet.

Am einfachsten wohl so:
Wochenprofil schaltet direkt eine Variable mit der Soll-Temp.
Bei Änderung Dieser Variable ein Script ausführen, dort den Fensterstatus abfragen und ggfls. den Wert übertragen.
Zusätzlich bei Fenster = zu ein Script starten was die Soll-Temp-Variabel des Wochenprofils überträgt.

Leider gibt es beim Heizkörperthermostat keine Variable welche aussagt ob ein Fenster offen ist oder nicht, du mußt also die Instanz vom Fensterkontakt auch in IPS haben.
Der Wandthermostat hat so eine Variable direkt on board : WINDOW_OPEN_REPORTING

Alternativ kannst du auch Swiftys Scripte nutzen, welche die Profile direkt im Thermostat speichern.
Dann geht das alles (inkl. Soll-Temp-Umschaltung; Absenkung bei Fenster auf) auch wenn IPS mal nicht läuft.

Homematic Heizkörperthermostat - Heizprogramme per WebFront einstellen

Michael

Habs jetzt mal mit zwei Hilfsvariablen gelöst.

Schaut bis jetzt ganz gut aus.

Hier der Baumaufbau

Ein Script das die Fenster abfragt:

<?
// IDs heraussuchen
$IDScript 			= $_IPS['SELF'];
$IDParent 			= IPS_GetParent ($IDScript);
$IDSchalter		 	= getvalue($IDParent);
$IDFenster        = @IPS_GetVariableIDByName("Fensterstatus", $IDParent);
$IDTemp           = @IPS_GetVariableIDByName("TemperaturZeitplan", $IDParent);


// Abfrage der Sensoren (für bis zu 6 Fenster )
// Fenster true = offen; false = geschlossen
$IDFenster1       = GetValue (59757 /*[Hardware\Homematic\Fensterkontakt\Büro\STATE]*/);
$IDFenster2       = false;
$IDFenster3       = false;
$IDFenster4       = false;
$IDFenster5       = false;
$IDFenster6       = false;

// Anzahl der offenen Fenster
$Summe = $IDFenster1 + $IDFenster2 + $IDFenster3 + $IDFenster4 + $IDFenster5 + $IDFenster6;

// Gesamtstatus an MerkVariable schicken
if ($Summe == 0){setvalue ($IDFenster , false) ;}else{setvalue ($IDFenster ,true);}


// Termostat absenken oder wieder aufheizen
if ($Summe == 0){
	// Gespeicherten Wert nehmen
	$Temp = getvalue($IDTemp);

	}else{
	// Absenktemperatur nehmen
	$Temp = 5;
	}

// Werte auf das Termostat senden
	HM_WriteValueFloat($IDSchalter, "SET_TEMPERATURE", $Temp);

?>

Und hier noch das Scrpit für die Wochenschaltuhr

<?
$id = $_IPS['ACTION'];

$IDScript 			= $_IPS['SELF'];
$IDParent 			= IPS_GetParent ($IDScript);
$IDSchalter		 	= getvalue($IDParent);
$IDFenster        = @IPS_GetVariableIDByName("Fensterstatus", $IDParent);
$IDTemp           = @IPS_GetVariableIDByName("TemperaturZeitplan", $IDParent);


// Auswertung welche Temperatur gesetzt werden soll
switch ($id) {
   case 1:       $Temp = 5;     	break;
   case 2:      $Temp = 14;    	break;
   case 3:      $Temp = 20;    	break;
   case 4:		 $Temp = 22;    	break;
   case 5:      $Temp = 23;    	break;
   case 6:      $Temp = 25;    	break;
	}
	



// Wenn Fenster zu dann Befehl ausführen, ansonsten überspringen
	if (getvalue ($IDFenster) == false){HM_WriteValueFloat($IDSchalter, "SET_TEMPERATURE", $Temp);}

// Wert in Hilfsvariable schreiben
		SetValue ($IDTemp, $Temp);
		
?>

Man muss in der CCU überhaupt nichts verknüpfen. Und kann im Skript wählen welche Fenster abgefragt werden.

Evtl kann man das noch ausbauen, dass es mehrere Wochenpläne gibt für Anwesend, abwesend, Urlaub etc. Der schaltet dann halt einfach nur die einzelnen Pläne ein oder aus

Na ist doch super :smiley:
Gibt sicher viele Wege nach Rom. Wenn du mit der Lösung zufrieden bist, lass es so.
Michael

Habs jetzt mit installationsscript. Und der Möglichkeit zwischen drei Profilen zu wechseln. D.h. Für Normal, Urlaub zu Hause und Uraus außer Haus.

Es Können für jedes Thermostat für jede Heizung einzelne Profile angelegt und schnell umgeschaltet werden.

Bei Interesse poste ich mal die Scripte.

Hallo Thommy,

darf ich Dich um Deine Scripte bitten? :rolleyes:
Wäre nett von Dir. :slight_smile:

Vielen Dank schon mal.

Gruß

Darklord