Fußbodenheizung - Hilfe erorderlich

Hallo, ich habe recht wenig Ahnung von PHP und deswegen brauche ich mal Hilfe beim „scripten“!

Ich habe nun endlich meine Fußbodenheizung nach langem Umbau anfahren können! Ich habe 7 Kreisläufe aktiv am laufen und ein Aktor schaltet mir die Zirkulationspumpe. Jetzt möchte ich halt die Pumpe nur am Start haben, wenn sie auch gebraucht wird - Sprich, sind die 7 Aktoren aus, soll die Pumpe aus sein, ist aber auch nur ein Stellantrieb (Aktor) an, so soll die Pumpe sich automatisch einschalten! egal welcher aktor an ist, die pumpe muss logischer weise laufen, solange einer der Aktoren an ist!

Nach meinem spärlichen Wissen müsste dies über ein IF/ELSE Script zu lösen sein, aber wie man das schreibt, weiß ich aber nicht wirklich!

Ich bitte euch um Hilfe!!!

Vielen Dank!!!

Dann trage Deine ID’s noch in das Script ein und teste:

<?
// Script schaltet eine Pumpe ein, wenn min. ein Ventil auf ist

$Ventil1=GetValueBoolean(Id-Ventil_1);
//Echo $Ventil1 ;
$Ventil2=GetValueBoolean(Id-Ventil_2);
//Echo $Ventil2 ;
$Ventil3=GetValueBoolean(Id-Ventil_3);
//Echo $Ventil3 ;
$Ventil4=GetValueBoolean(Id-Ventil_4);
//Echo $Ventil4 ;
$Ventil5=GetValueBoolean(Id-Ventil_5);
//Echo $Ventil5 ;
$Ventil6=GetValueBoolean(Id-Ventil_6);
//Echo $Ventil6 ;
$Oder_Vergleich = ($Ventil1 or $Ventil2 or $Ventil3 or $Ventil4 or $Ventil5 or $Ventil6);
//Echo "  ".$Oder_Vergleich;
if  ($Oder_Vergleich == false)
{
//SetvalueBoolean(Id-Pumpe, false); // Aus
HM_WriteValueBoolean(Id-Pumpe,"STATE", false); // Aus  Bei Homematic
// Aus 
}
if ($Oder_Vergleich == true)
{
//SetvalueBoolean(Id-Pumpe, true); // EIN
HM_WriteValueBoolean(Id-Pumpe,"STATE", true); // EIN  Bei Homematic
}
?>

Gruß Helmut

Danke für die schnelle Antwort Helmut, ich bekomme aber eine Fehlermeldung!!!

<?
// Script schaltet eine Pumpe ein, wenn min. ein Ventil auf ist

$Ventil1=GetValueBoolean(15442);//Bad
//Echo $Ventil1 ;
$Ventil2=GetValueBoolean(28517);//Küche
//Echo $Ventil2 ;
$Ventil3=GetValueBoolean(29440);//Kinderzimmer
//Echo $Ventil3 ;
$Ventil4=GetValueBoolean(32549);//Schlafzimmer
//Echo $Ventil4 ;
$Ventil5=GetValueBoolean(12408);//Wohnzimmer
//Echo $Ventil5 ;
$Oder_Vergleich = ($Ventil1 or $Ventil2 or $Ventil3 or $Ventil4 or $Ventil5);
//Echo "  ".$Oder_Vergleich;
if  ($Oder_Vergleich == false)
{
SetvalueBoolean(53379, false); // Aus
}
if ($Oder_Vergleich == true)
{
SetvalueBoolean(53379, true); // EIN
}
?>
Warning:  Variable wurde als "Nur-Lesen" markiert und kann nicht verändert werden in C:\IP-Symcon\scripts\21669.ips.php on line 18

DANKE für die Hilfe

PS: den Zusatz „HM_“ benötige ich nicht??

Dann ist die ID53379 kein Schaltaktor, den man schalten kann ?!

Wer oder was schaltet Deine Heizungspumpe? HM ? KNX ? FS20 ?
Die Instanz muß es werden
Gruß Helmut

Edit Hast HM, dann muß es

HM_WriteValueBoolean

heißen in den Schleifen

Sorry, war mal wieder oberflächlich …hab’s geändert.

:slight_smile: Spitze!!!

<?
// Script schaltet eine Pumpe ein, wenn min. ein Ventil auf ist

$Ventil1=GetValueBoolean(15442 /*[Alle\2. Erdgeschoss\Geräte\Aktor 10 Fußbodenheizung\KEQ0054780:14 - Bad\STATE]*/);//Bad
//Echo $Ventil1 ;
$Ventil2=GetValueBoolean(28517 /*[Alle\2. Erdgeschoss\Geräte\Aktor 10 Fußbodenheizung\KEQ0054780:15 - Küche\STATE]*/);//Küche
//Echo $Ventil2 ;
$Ventil3=GetValueBoolean(29440 /*[Alle\2. Erdgeschoss\Geräte\Aktor 10 Fußbodenheizung\KEQ0054780:16 - Kinderzimmer\STATE]*/);//Kinderzimmer
//Echo $Ventil3 ;
$Ventil4=GetValueBoolean(32549 /*[Alle\2. Erdgeschoss\Geräte\Aktor 10 Fußbodenheizung\KEQ0054780:17 - Schlafzimmer\STATE]*/);//Schlafzimmer
//Echo $Ventil4 ;
$Ventil5=GetValueBoolean(12408 /*[Alle\2. Erdgeschoss\Geräte\Aktor 10 Fußbodenheizung\KEQ0054780:19 - Wohnzimmer\STATE]*/);//Wohnzimmer
//Echo $Ventil5 ;
$Oder_Vergleich = ($Ventil1 or $Ventil2 or $Ventil3 or $Ventil4 or $Ventil5);
//Echo "  ".$Oder_Vergleich;
if  ($Oder_Vergleich == false)
{
HM_WriteValueBoolean(43427 /*[Alle\2. Erdgeschoss\Geräte\Aktor 10 Fußbodenheizung\KEQ0054780:13 - Pumpe]*/, "STATE", false); // Aus
}
if ($Oder_Vergleich == true)
{
HM_WriteValueBoolean(43427 /*[Alle\2. Erdgeschoss\Geräte\Aktor 10 Fußbodenheizung\KEQ0054780:13 - Pumpe]*/, "STATE", true); // EIN
}
?>

…habe mir erlaubt „STATE“ noch mit eizufügen!

Aber so tut es explizit was es soll! Vielen Dank!!!

Habe nochmal ne kurze Frage:
In den Räumen habe ich ein Wandthermostat am Start, die Schaltung läuft wie gesagt über einen Aktor. im IPS habe ich das alles mit dem HeatingControl verknüpft und es läuft soweit auch zufriedenstellend. Jetzt kommt aber noch meine Partnerin ins Spiel… Das Thermostat zeigt ja IST und SOLL-Temperaturen an, aber die SOLL-Temperatur im Thermostat ist nicht die SOLL-Temperatur im HeatingControl! Wie kann ich es schaffen, die Raumtemperaturen nicht nur über Webfront so wie jetzt zu steuern, sondern auch über die Thermostate und wie bekomme ich die richtige SOLL-Temperatur im Thermostat angezeigt?

Sorry, ich habe kein HeatingControl am Start, aber wieso weichen die Werte ab?

Die beziehen doch ihre Werte vom HM-Thermostat, oder?

Du müßtest doch auch noch den Thermostat einzeln im Webfront haben, ist es da so unterschiedlich?

Gruß Helmut

…das sin ja alles unterschiedliche Instanzen!!!

Ich habe mal in der Doku geschaut, HeatingControl ist ein 2-Punktregler, ist nun nicht unbedingt für sowas geeignet, finde ich.

Da gibt es Hysterese & Co und Die stört Deinen LAP sicher gewaltig. :wink: Dich nicht?

Gruß Helmut

…nein, ich finde Steuerung über das HeatingControl gut…Hysterese finde ich auch gut!

Mich stört aber, dass das Wandtherostat nicht die „manuelle“ Temperatur mit übernehmen kann - bzw auch nicht die „automatische“:confused:

Wie kann ich es schaffen, die Raumtemperaturen nicht nur über Webfront so wie jetzt zu steuern, sondern auch über die Thermostate und wie bekomme ich die richtige SOLL-Temperatur im Thermostat angezeigt?

Setz doch mit HM_WriteValueFloat(38385 „die vermeintlich Soll-Temperatur“ von Deinem Heating Modul, das würde ja gehen.

Teste das doch mal, weiß nicht ob es geht, hab’ kein HM.

So wie ich das sehe, steuert das HeatingControl auch die komplette Vorlauftemperatur für mehrere Räume, so müßtest Du alle Thermostatwerte setzen…

Gruß Helmut

ok, werde mich morgen abend nochmal daran setzten und was versuchen! Vielen Dank für deine Mühe!!!:slight_smile:

Wie schon in einem anderem Thread geschrieben; warum ein HC ?
Alter oder neuer Thermostat ?
Welcher Typ Aktor ?
Kannst du die noch HM intern verknüpfen ?
Aber besser im anderen Thread mit anhängen (Unterbereich Homematic) :wink:
Michael

Eine saubere Hysterese wirst du mit den HM-Thermostaten (oder auch FHT’s) nicht bekommen, weil diese sich erst einpegeln (lernen) müssen um das die gewünschte Raumtemperatur zu erreichen. Die haben quasi ein Eigenleben, was aber gut funktioniert.
Andererseits würde nur Frust aufkommen hier tiefer in die Regelung einzugreifen, weil sonst ein ständiges Über- oder Untersteuern erfolgt.
Dies ist auch jedesmal zum Wechsel der Heizperioden zu beobachten… nach 3-4 Tagen haben sich die Thermostate mit den Reglern eingepegelt und erreichen bis auf +/- 0,5 °C die gewünschte Temperatur.
Um eine „eigene exakte Hysterese“ zu bekommen ist ein anderes System notwendig.

…gut, wie gewünscht geht es nun im Homematic-Unterforum weiter wegen der speziefischen Hardware…

Programmierung-Fußbodenheizung-Thermostat-Aktor?