Hallo zusammen,
irgendwie habe ich so einige Probleme mit meinem Timer-Skript für die Warmwasser-Zirkulationspumpe. Irgendwo ist da der Wurm drin, ich finde es aber einfach nicht, woran es liegen kann. Vielleicht hat jemand von Euch ein Adlerauge und ihm fällt direkt etwas ins Auge?
Angesteuert wird das Skript über LongPush von Tastern (Shelly-Eingänge), als auch bei „Änderung von STATE eines Homematic Zwischensteckers“
Das funktioniert auch soweit.
Weiterhin habe ich eine Boolean-Variable angelegt, welche als Aktionsskript auf das Timer-Skript verweist. Auch dieses funktioniert soweit (für das Webfront).
Allerdings ist es wie folgt:
Wird über die Boolean-Variable das Timer-Skript gestartet und die Boolean-Variable vor Ablauf des Timers manuell wieder auf false gesetzt, so läuft der Timer weiter bis die 300 Sekunden erreicht sind. Das bedeutet: Schaltet man für 1 min die Boolean auf true, danach auf false, dann läuft das Timer-Skript für 240sek. weiter. Was wiederum zur Folge hat, das bei einem erneuten Einschalten der Variablen das Timer-Skript keine 300sek mehr läuft (sondern nur noch die Restzeit).
Wird der Schaltaktor selbst geschaltet (Homematic IP Zwischenstecker), so greift das Timer-Skript gar nicht…
Wäre sinnvoll, wenn es hier auch greifen würde, dann bräuchte ich die zusätzliche Variable nicht.
<?php
switch($_IPS['SENDER']){
case "TimerEvent":
//Aus Befehl
RequestAction(54748, false);
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);
break;
case "WebFront":
RequestAction(54748, $_IPS['VALUE']);
if ($_IPS['VALUE']){ //An Befehl
//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 300);
}
break;
case "Variable":
if ($_IPS['VARIABLE'] == 54748){
SetValueBoolean(51827, $_IPS['VALUE']);
} else { //LongPush über Shelly Aktor
RequestAction(54748, true);
//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 300);
}
break;
default:
trigger_error('Nicht erwarteter Sender: ' . $_IPS['SENDER']);
}