wenn du mitteilst, was nicht funktioniert, könnte man evtl. helfen
vielleicht noch ein Tipp zur Fehlersuche: lass dir im Script die Werte der Variablen per echo oder print_r() ausgeben. So kannst du überprüfen, ob Deine Annahmen stimmen. Das hilft sehr , man erlebt hier durchaus die ein oder andere Überaschung
hei raketenschnecke,
der tipp mit echo is echt genial. jetzt seh ich entlich was da so drin steht.
der fehler: also das problem ist, ich weis nicht wie ich eine Uhrzeit („18:00“) in eine Varieble ($nach6) bekomme um sie mit der aktuellen zeit ($time = date(„H:i“) oder $time = time() ) zu vergleichen.
<?
// Treppenhauslicht geht Abends mit an wenn der Türöffner betätigt wird
$time = date("H:i");//Aktuelle Uhrzeit
$tueroeffner = getvalue(30649);
$nach6 = date("18:00");//ab 18:00 Uhr
$vor8 = date("08:00");//bis 8:00 Uhr
if (($tueroeffner == true) and (($time >= $nach6) or ($time <= $vor8)))
{
HM_WriteValueBoolean(44311 , "STATE", true);
sleep (120);//Zeit in sekunden wie lange das Treppenhauslicht an bleiben soll
HM_WriteValueBoolean(44311 , "STATE", false);
}
?>
sleep (120);//Zeit in sekunden wie lange das Treppenhauslicht an bleiben soll
das solltest du auf keinen Fall machen. Das führt dazu, dass dieses Script als PHP-Task mindestens 120 Sekunden offen bleibt und erst nach Abarbeitung des Scripts geschlossen wird. Die Anzahl der max. möglichen PHP-Tasks ist aber begrenzt (IPS-Standard = 10). Sind alle 10 möglichen Tasks belegt, wandert der nächste IPS-Scriptaufruf (oder andere PHP-Aktivität) in die Warteschleife - bis wieder ein Task frei wird.
Die Folge ist: Dein System arbeitet die Befehle sehr stark verzögert ab.
Daher sollte man darauf achten, dass die Ressourcen (=PHP-Tasks) möglichst kurzfristig wieder freigegeben werden.
In diesem Fall würde ich dir ein Timer-Event empfehlen, welches nach Ablauf das Script erneut ansteuert.
hab den aktor im homematic konfigurator gesagt das er ein treppenhauslicht ist und 2 min an sein soll.
das macht er dann wenn ich direkt den taster drücke. giebt es da auch einen befehl von der ips aus das er des gleiche macht. oder geht des dann nur über „ON_TIME“? giebt es irgend wo eine liste was für befehle ich denn alles so bei homematic ausführen kann?
Genau das macht ON_TIME vor dem Schaltbefehl.
Damit sagst Du dem Aktor wie lange er an bleiben soll.
Geht aber nicht mit den Wired Aktoren soviel ich weiß.
// Treppenhauslicht geht Abends mit an wenn der Türöffner betätigt wird
$time = date("H:i");//Aktuelle Uhrzeit
$tueroeffner = getvalue(30649 /*[Unsortiertes und im hintergrund arbeitendes reppenhauslicht\kanal 1 türöffner\STATE]*/ );
$nach6 = date("12:00");//ab 18:00 Uhr
$vor8 = date("08:00");//bis 8:00 Uhr
if (($tueroeffner == true) and (($time >= $nach6) or ($time <= $vor8)))
{
HM_WriteValueFloat(44311, "ON_TIME", 120);
HM_WriteValueBoolean(44311 /*[Unsortiertes und im hintergrund arbeitendes reppenhauslicht\Treppenhauslicht]*/, "STATE", true);
}
ich hoffe das ich nícht noch etwas übersehen habe, ansonsten soll es so für die nächste zeit so laufen