also normalerweise, sollte es ganz einfach funktionieren. ist aber schlecht zu sagen, ohne zu wissen was du da eingetragen hast.
häng doch mal eine auszug on deinem skript bei.dann kann man mal sehen ob alles richtig ist. gruss uwe.
Wenn das der Fall ist, dann ist alles in Ordnung. Das bei SwitchDuration die Statusvariable nicht aktualisiert wird, ist beabsichtigt.
Der Grund: Es gibt bei FS20 keine Zustandsmeldungen, deshalb werden dir auch keine gemeldet.
Falls du die Variable zurücksetzen möchtest, musst du eben selbst „Hand anlegen“. Den Weg über IPS_Sleep(…) ist aber nicht ratsam, weil während der 4 s Wartezeit kein anderes Skript ausgeführt werden kann. Zweitens würde ich die Echos auskommentieren, die sind nur während des debuggen (überprüfen) deines Skriptes sinnvoll.
Probiere besser diese Variante:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Probe.ips.php
Trigger : Execute oder RunScript
Interval : keines
*/
$instance=64311;
$duration=3;
$status=GetValueBoolean('Licht_Flur');
switch($IPS_SENDER) {
case "Execute":
case "RunScript":
$success=FS20_SwitchDuration($instance,(!$status),(int)$duration);
IPS_SetScriptTimer($IPS_SELF,(int)$duration);
break;
case "TimerEvent":
IPS_SetScriptTimer($IPS_SELF,0);
SetValueBoolean('Licht_Flur',(!$status));
break;
}
?>
Das habe ich gerade heute morgen auch zufällig festgestellt.
Ich denke aber, dass der „FS20_SwitchDuration“-Befehl beim Zurückschalten garnichts mehr bewirken kann, da mit dem Befehl ?wahrscheinlich? nur ein Telegramm -für xx-Sekunden anzuschalten (oder auszuschalten)- an die Steckdose gesandt wird und das Ausschalten nicht durch ein Telegramm aus IPS sondern in der Steckdose selbst erfolgt.
Der Script wäre dann zum Zeitpunkt des Zurückschaltens schon längst abgearbeitet und könnte garnicht mehr eingreifen. (wenns so ist)