hilfe beim heizungsregler

also ich möchte gerne das heizungsventil über einen ds2405 steuern.
aber irgendwie werde ich aus den scripten die im forum stehen nicht schlau.

als beispiel:
fenster sind alle über ds2405er auslesbar was auch super im designer klappt,
heizung an und aus schalten per butten klappt auch wunderbar
aber wie kann ich das jetzt automatisieren?
gibt es da ein howtoo oder der gleichen?
oder ein leicht verständliches script?

cu.
uriel2006

Hallo uriel,

wenn du die einzelnen Aktoren hast gehts ans Verknüpfen. Als Beispiel kann ich dir meine Heizungsskripte gehen.

Folgende Optionen gibt es bei mir:

  • Tag/Nachtbetrieb mit Zeitsteuerung
  • Heizungsregelung mit 0,5° Hysterese
  • Umschaltung „Sommer-Winterbetrieb“
  • Globale Nachtabsenkung Ein/Aus
  • Nachtabsenkung für jeden Raum einzeln aktivierbar. Default keine Nachtabsenkung
  • Nachtabsenkung pro Raum einzeln einstellbar

Skript Heizkörperregelung:


/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Kinderzimmer_Heizkoerper_Regelung.ips.php
Trigger  :
Interval :
*/

//Steuerung Heizkrperventil Kinderzimmer

$id = 30490 /*[Heizkoerpersteuerung\Heizkoerper-Buegelzimmer\Heizkoerper-Buegelzimmer]*/; //ID des 1-Wire Bausteins
$Fenster = GetValueBoolean(54031 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Kinderzimmer-Fenster-offen]*/);  //ist das Fesnster geschlossen?
//$Nacht = GetValueBoolean(47321 /*[Heizkoerpersteuerung\Nachtabsenkung\Nachtabsenkung-Aktiv]*/);        // ist die Nachtabsenkung aktive?
$Temp_ist = GetValueFloat(43583 /*[Temperatur_Feuchte\Temp-Feuchte-Kinderzimmer\Temp-Kinderzimmer\Var-Temp-Kinderzimmer1]*/);            //Istwert, akzuelle Temperatur Kinderzimmer
$Temp_soll = GetValueFloat(37028/*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Var-Kinderzimmer-Temp-Tag-Soll-1]*/);  //Sollwert, Temperaturvorgabe
$HZ_Anforderung = GetValueBoolean(23772 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Kinderzimmer-HZ-Anforderung]*/);   //Wird Heizung bentigt?

//Einschalten
//******************************************************************************
if(($HZ_Anforderung == true)&& ($Fenster == false)) // && ($Nacht == false))
   {
   echo "Temp Ist:  $Temp_ist C
";

   //Temperatursteuerung mit Hystereses
   //Heizkoerper an wenn Temp unter Sollwert + Hysterese
   if ($Temp_ist <= ($Temp_soll - 0.5)) // 0.5 = Hysterese in Grad
      {
      TMEX_F29_SetPin($id, 1, false); //Ausgang fr Heizkrperantrieb an
      SetValueBoolean ("Zimmer-Soll-Temp-erreicht", false); //Soll-Temp erreicht
      echo "Anforderung, Fenster ist zu und Temp-ist kleiner als Temp-soll,Heizkoerperantrieb ein
";
      }

   //Heizkoerper aus wenn Temp ueber Sollwert
   if(($HZ_Anforderung == true)&& ($Fenster == false) && ($Temp_ist > $Temp_soll))
      {
      TMEX_F29_SetPin($id, 1, true); //Ausgang fr Heizkrperantrieb an
      echo "Temp grer als Temp-soll,Heizkrper aus 
";
      SetValueBoolean ("Zimmer-Soll-Temp-erreicht", true); //Soll-Temp nicht erreicht
      }
	else{}
	
   }
//Ausschalten wenn keine Anforderung und Fenster offen ist
//******************************************************************************
else
   {
   TMEX_F29_SetPin($id, 1, true); //Ausgang fr Heizkrperantrieb aus
   echo "Heizkoerperantrieb aus
";
   }

?>

Skript für die Anforderung per Dashboard:


/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Anforderung_Heizung_Kinderzimmer.ips.php
Trigger  :
Interval :
*/

$id = 23772 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Kinderzimmer-HZ-Anforderung]*/;
//Heizungsanforderung
$Status_Anforderung = GetValueBoolean($id);
$Heizkoerper_Sommerbetrieb = GetValueBoolean(12111 /*[Heizkoerpersteuerung\Sommer-Winterbetrieb\Heizkoerper-Sommerbetrieb]*/);  // sind alle Heizkrper auf "Aus" geschaltet, Sommerbbetrieb?

if (($Status_Anforderung == false)&&($Heizkoerper_Sommerbetrieb == true))
   {
   SetValueBoolean($id, true); // Anzeige Status
	//Echoausgabe ohne Designer
	if ($IPS_SENDER != "Designer")
 		{
   	echo "Status: Heizung notwendig- Anforderung
";
 		}
	}

//Ausschalten
if ($Status_Anforderung == true)
   {
   SetValueBoolean($id, false); // Anzeige Status
	//Echoausgabe ohne Designer
	if ($IPS_SENDER != "Designer")
 		{
   	echo "Status: keine Heizung notwendig
";
 		}
   }

else
   {
	if ($IPS_SENDER != "Designer")
 		{
   	echo "Status: Heizkoerper zu oder Sommerbetrieb aktiv";
 		}
   }

?>

Skript für Nachabsenkungswerte:

/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Kinderzimmer_soll_Temperatur.ips.php
Trigger  :
Interval :
*/

$Nacht = GetValueBoolean(47321 /*[Heizkoerpersteuerung\Nachtabsenkung\Nachtabsenkung-Aktiv]*/);        // ist die Nachtabsenkung aktive?
$Nacht_Freigabe = GetValueBoolean(46278/*[Heizkoerpersteuerung\Nachtabsenkung\Nachtabsenkung-Aktiv]*/);        // Nachtbetrieb fr diesen Raum?
$Nachtabsenkung = GetValueFloat (14632 /*[Heizkoerpersteuerung\Nachtabsenkung\Var-Wert-Nachtabsenkung]*/);
$Soll_Temp = GetValueFloat (27059 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Var-Kinderzimmer-Soll-Temp-Schieberegler]*/); //"Wohnzimmer-Soll-Temp", Variabler Wert von Schieberegler
//$Soll_Temp = 20.0;     //Fixwert

//Temp Tag
//*******************************************************
$Soll_Temp_1 = $Soll_Temp * 0.5; // halbieren des Schiebereglerwerts
$Soll_Temp_Tag = sprintf("%2.1f", $Soll_Temp_1); // Umrechung
SetValueFloat(52718/*[Heizkoerpersteuerung\Heizkoerper-Schlafzimmer\Var-Schlafzimmer-Temp-Tag-Soll-1]*/, $Soll_Temp_1); 							//Wohnzimmer_Temp_soll
SetValueString (11545 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Var-Kinderzimmer-Temp-Tag-Soll]*/ , $Soll_Temp_1. "C"); //Wohnzimmer_Temp_Soll_1
echo "Temp-Soll Tag: $Soll_Temp_1 C
"; //Ausgabe

//Temp Nachtabsenkung
//*******************************************************
$Temp_Soll_Nacht = $Soll_Temp_1 - $Nachtabsenkung;
$Temp_Soll_Nacht_1 = sprintf("%2.1f", $Temp_Soll_Nacht); // Umrechung
SetValueString (14624/*[Heizkoerpersteuerung\Heizkoerper-Wohnzimmer\Wohnzimmer-Temp-Soll-2]*/, $Temp_Soll_Nacht_1. "C");
echo "Temp-Soll Nacht: $Temp_Soll_Nacht_1 C
"; //Ausgabe

//Umschaltung Solltemp Tag-Nacht
//*******************************************************
if (($Nacht == true) && ($Nacht_Freigabe == true))
	{
	SetValueFloat (37028 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Kinderzimmer-Temp-Aktuell-1]*/, $Temp_Soll_Nacht);
	SetValueString (37603/*[Heizkoerpersteuerung\Heizkoerper-Wohnzimmer\Wohnzimmer-Temp-Soll-2]*/, $Temp_Soll_Nacht_1. "C");
	SetValueBoolean (46674 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Kinderzimmer-Temp-Soll-Nachtbetrieb]*/, true); //Nachtsollbetrieb
	}
else
	{
	SetValueFloat (37028 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Kinderzimmer-Temp-Aktuell-1]*/, $Soll_Temp_1);
	SetValueString (37603/*[Heizkoerpersteuerung\Heizkoerper-Wohnzimmer\Wohnzimmer-Temp-Soll-2]*/, $Soll_Temp_Tag. "C");
	SetValueBoolean (46674 /*[Heizkoerpersteuerung\Heizkoerper-Kinderzimmer\Kinderzimmer-Temp-Soll-Nachtbetrieb]*/, false); //Nachtsollbetrieb
	}
echo "Temp Soll aktuell: $Soll_Temp_Tag C
";

?>

Wenn was unklar ist einfach fragen. Vielleicht helfen die Skript zu wenig.

Ciao
andrge