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!
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
}
?>
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
<?
// 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?
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…
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)
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.