Skript Timer

Hallo zusammen,

ich habe ein kleines Problem mit ein Skript, es schaltet mein Heizstab im Speicher auf eine Ist Temperatur die ich aber nur brauche wenn ich auch im Bad bin.

Darum habe ich es so gemacht das, das Skript durch ein Bewegungsmelder startet.
So bekomme ich den Heizstab EIN.
Wenn ich aber gleich wieder aus den Bad gehe kommt keine Abfrage mehr um die IST mit Soll Temperatur zu vergleichen,
darum habe ich ein Skript timer mit eingebaut der das Skript alle 30s schaltet.

Klappt auch alles super nur geht der Aktor von eine Timer Event auf kommende 30s auf false bist er gleich wieder true schaltet ( also aktor geht alle 30s an aus bis SOLL Temperatur erreicht ist)

hat einer ein Schimmer was da falsch ist ??

<?
$Bewegung			   = GetValueBoolean (29638 /*[CCU Homematic Devices\Bad\Bewegungsmelder\Bewegungsmelder Bad\MOTION]*/);
$Soll                = GetValueInteger (35066 /*[Wärmepumpe\Speicher-Heizstab\Soll-Temp-Speicher]*/);
$Ist						= GetValueFloat   (25969 /*[1 Wire\Speicherladung   60%\Temperatur]*/);
$VLW						= GetValueFloat   (47295 /*[1 Wire\Vorlauf nach Wärmetauscher\Temperatur]*/);
$time                = date("H:i");
$Wtimer              = GetValueBoolean (52976 /*[Wärmepumpe\Speicher-Heizstab\Wochentimer]*/);

 if (($Ist < $Soll) && ($VLW < 43.0) && ($Wtimer == true))
		      {

		      HM_WriteValueBoolean(25056 /*[CCU Homematic Devices\Pool\Pool 3 Wege/Filter_Heizstab-Heizung\Pool-3 Wege/heizstab speicher]*/, "STATE", true);
            IPS_SetScriptTimer($IPS_SELF,30); // wenn ich "if" erfüllt ist, das skript alle 30s abgefragen bis 2te "if" erfüllt ist dann timer 0

		      }
		      
 if ($Ist >= $Soll)
 
            {

				HM_WriteValueBoolean(25056 /*[CCU Homematic Devices\Pool\Pool 3 Wege/Filter_Heizstab-Heizung\Pool-3 Wege/heizstab speicher]*/, "STATE", false);
            IPS_SetScriptTimer($IPS_SELF,0);

				}
echo $Soll
?>

Das Skript macht genau das was Du hier programmiert hast :eek:

Wird durch den Bwm gestartert und läuft bis eine der obigen Bedingungen falsch wird.

Gruß
Bruno

Ne leider nicht am Ende von 30s geht es für ein Bruchteil einer Sekunde auf false um dann gleich wieder True zu gehen

Genau, so steht es in der if-Bedingung. Diese wird nach einmaligem Start durch den Bwm durchlaufen und jedes Mal durch den Timer neu gestartet.

Wenn der Bwm eingebunden werden soll muss auch eine Abfrage dafür rein.

$Bewegung

ist definiert, taucht aber dann nicht mehr im Skript auf. IPS liest keine Gedanken. :wink:

Das ist ja blöde das IPs nicht die Gedanken lesen kann aber sicher mit der 3.0 Version :slight_smile:

Und wie kann ich es machen das es auf True bleibt bis zur Soll Temperatur ?

Denn die ganze schalten ist sicher nicht gut für das Relais

4 … :smiley:

Und wie kann ich es machen das es auf True bleibt bis zur Soll Temperatur ?
Denn die ganze schalten ist sicher nicht gut für das Relais

Ich auch nicht, verstehe langsam was Du meinst :wink:

Kann es sein, dass der HM-Aktor über die CCU auf 30 sek. Einschaltzeit begrenzt ist?

Ne ganz normal an aus

Weiss nicht was den Aktor ausschaltet, probier mal ein return:

 if (($Ist < $Soll) && ($VLW < 43.0) && ($Wtimer == true))
              {

              HM_WriteValueBoolean(25056 /*[CCU Homematic Devices\Pool\Pool 3 Wege/Filter_Heizstab-Heizung\Pool-3 Wege/heizstab speicher]*/, "STATE", true);
            IPS_SetScriptTimer($IPS_SELF,30); // wenn ich "if" erfüllt ist, das skript alle 30s abgefragen bis 2te "if" erfüllt ist dann timer 0
return;                  //    <===== hier
              }

http://www.youtube.com/watch?v=0EY_FlgzkhE

das geht leider auch nicht :confused:

habe mal als Test die Temperatur auf 80°C gesetzt

http://www.youtube.com/watch?v=0EY_FlgzkhE

Moin…

… bau ne Abfrage ein welches Event das Skript auslöst!!

Gruß,
Peter

Sehe aber auch kein „return“, oder war das Video vorher ?

Das Video war davor, mit Return ist die Pause noch größer :frowning:

Wenn das mit den Timer garnicht geht dann baue ich in ein anderen Skript eine Temperatur Abfrage
Ist - soll nur ausschalten was alle 30s startet.

Nachteil das es immer läuft :eek:

Wie macht man das Sorry bin noch nicht so fit :frowning: