Heizungssteuerung mit Homematic

Wir hatten übersehen, dass es das Modul bereits gibt aber für Homematic bringt es Dir nichts. Schau ma im Forum, da gibt es bereits zarte Ansätze für Lösungen mit Homematic.

Sorry wenn ich da mal einhake nach so langer Zeit aber

  1. wo finde ich das Script und
  2. wieso bringt das nichts für HomeMatic?

Danke

mws

ich kann die Frage nicht beantworten, aber wenn Du etwas im Forum suchst, solltest Du u.a. auf meinen Artikel vom letzten Jahr stossen:

Das habe ich so etwas ähnliches für HomeMatic geschrieben …

Gruß,

ernie

Na weil Homematic eine Regelung eingebaut hat und es nicht zuläßt, dass man die Stellmotoren direkt ansteuert.

mein Script umgeht diese Vorgabe, weil ich das Regelungsverhalten von HomeMatic selbst nicht nachvollziehbar fand …

Die Stellantriebe sind in diesem Fall aber nur 0% oder 100% offen. Zwischeneinstellungen gehen nicht.

Aber immerhin ist meine Heizung nicht noch 3° über Soll-Temperatur immer noch an …

Ich kenne doch Dein Skript (und das Regelverhalten der Wandthermostate). :smiley:

Er hat ja 2 Dinge vermischt. Modul und Skript haben ja gar nichts miteinander zu tun. Meine Antwort bezog sich auf „bringt nix“ und „Modul“.

isch weiss …

War nur als Hinweiß, wenn jemand das Script noch nicht kennt :wink:

Ja Ernie, Dein Skript hab ich gefunden. Es ist zwar recht komplex und ob ich das alles benötige weiß ich noch nicht aber das da nur 0% und 100% geht ist super, weil für meine Fußbodenheizung muss es so sein :slight_smile:

Aber ich hatte irgendwo von einem universellen Skript das mit IP-Symcon mitgeliefert wird gelesen.

Hey hi gemeinde,

ich versuche mich gerade mit dem Thema Heizung zu befassen und habe einiges im Forum dazu gefunden. U.a. den Script von „hengesb“ aus post #10 (Danke für die Antwort). Dazu habe ich aber noch ein paar fragen…

Hier noch mal der Script:

<?
$NACHT = 17.0;
$ERHOEHT = 20.5;
$ANWESEND = 21.0;
$ABWESEND = 10.0;


$Wochentag = (bool) GetValueBoolean(31392 /*[Test Center\Test Feld 2\Test Feld 2\Wochentag]*/);
$aktuelleZeit = time();


if($Wochentag)// An Wochentagen von XX:XX - XX:XX Uhr heizen!
 {
 $timestampEin=mktime( 10, 30, 0, date("m"), date("d"), date("Y"));
 $timestampAus=mktime( 10, 45, 0, date("m"), date("d"), date("Y"));

 }
 else //ansonsten von XX:XX - XX:XX Uhr heizen!
  {
  $timestampEin=mktime( 07, 30, 0, date("m"), date("d"), date("Y"));
  $timestampAus=mktime( 22, 0, 0, date("m"), date("d"), date("Y"));
  }
$tagsueber = (($aktuelleZeit >= $timestampEin) && ($aktuelleZeit < $timestampAus));


if($tagsueber && !GetValueBoolean(39729 /*[Test Center\Test Feld 2\Test Feld 2\Urlaub]*/))
 {
  if(GetValueBoolean(29471 /*[System Konfiguration\Personen Tracker\Personen Tracker\Stefan\An/- Abwesend]*/))
   {
    if( date("G") < 6)// Morgens vor 6 Uhr erhöhte Temperatur verwenden
     {
     $soll_temp = $ERHOEHT;
     }
      else
		 {
       $soll_temp = $ANWESEND;
       }
   }
  else
  {
  $soll_temp = $ABWESEND;
  }
 }

else
 {
 $soll_temp = $NACHT;
 }

if(GetValueFloat(42568 /*[Heizung\Räume\Badezimmer\Soll Temperatur\SOLL- Temperatur\SETPOINT]*/) != $soll_temp)
 {
 HM_WriteValueFloat(42857 /*[Heizung\Räume\Badezimmer\Soll Temperatur\SOLL- Temperatur]*/, "SETPOINT", $soll_temp);
 IPS_LogMessage($IPS_SELF, "Setzte Temperatur für Heizkörper Bad auf " . $soll_temp . " °C.");
 }
?>

Was ich mir wünsche:
-Einen unterschied zwischen Wochentag und Wochenende
-unterschiedliche Zeiten am Tag
-Nachts eine eine Absenkung
-per Personentracker (IPS) bei Anwesend Aktiv
-und bei Abwesend auf Abwesend

Somit ist meine erste frage:
wie bekomme ich die „Erhöhte Temperatur raus“ Die brauche ich nicht. Ich hab schon Probiert einfach die folgende zeilen zu löschen aber dann bekomme ich eine fehlermeldung:

 if( date("G") < 6)// Morgens vor 6 Uhr erhöhte Temperatur verwenden
     {
     $soll_temp = $ERHOEHT;
     }

meine zweite frage:
Kann ich mehre Zeiten eingeben? Ich hatte es so Probiert:

if($Wochentag)// An Wochentagen von XX:XX - XX:XX Uhr heizen!
 {
 $timestampEin=mktime( 3, 45, 0, date("m"), date("d"), date("Y"));
 $timestampAus=mktime( 4, 30, 0, date("m"), date("d"), date("Y"));
 
 $timestampEin=mktime( 10, 15, 0, date("m"), date("d"), date("Y")); //11:45
 $timestampAus=mktime( 10, 30, 0, date("m"), date("d"), date("Y")); //12:30
 
 $timestampEin=mktime( 19, 45, 0, date("m"), date("d"), date("Y"));
 $timestampAus=mktime( 20, 30, 0, date("m"), date("d"), date("Y"));

aber leider setzt er die Temperaturen nicht zu den angegebenen zeiten.

Ich hoffe das ich das verständlich geschrieben habe und bitte Euch um Hilfe…