Problem mit Script zum ausschalten nach gewisser Zeit

Hallo zusammen,
ich habe mir ein script gebastelt siehe Video, leider zeigt mir ips sktiptfehler an ich habe das selbe skript bereits für ein anderes Licht programmiert dort läuft es ohne probleme?[video=youtube_share;cqkFZgpowMk]https://youtu.be/cqkFZgpowMk[/video]

Hi,

dein Script ist mit Ausrufezeichen. Da Stimmt grundsätlich ja was nicht.
Welchen Fehler bekommst du bei Ausführen deines Scriptes?

Vielleich hast du eine Variable anstatt Instzanz genommen?

Gruß

Scriptinhalt bitte…

Und falls du eine Lösung gefunden hast, bitte teile sie uns doch auch mit…
So können in Zukunft andere davon profitieren…

LG
Sascha

Hi,
hier der scriptinhalt der als Fehlerhaft markiert wird :

<?
IPS_Sleep(30000);
ENO_SwitchMode(52293 /[EG\Licht\Licht Abstellraum]/, false);

?>

Hintergrund :
ich habe ein Licht im Abstellraum dort spielen gerne die Kinder und vergessen das licht auszumachen, nun möchte ich das wenn jemand das Licht einschält ein Timer abläuft (5 Minuten) nachdem das licht automatisch wieder ausgeht! was mache ich falsch.
P.S. im Video ist alles nochmal zu sehen

Eigentlich alles.
Weil ein sleep ist dafür nicht gedacht.
Siehe:
Wie kann ich…? — IP-Symcon :: Automatisierungssoftware
Der Fehler kommt weil PHP Scripte max. 30 Sekunden laufen dürfen.
Mit deinem Sleep bist du da drüber, bzw genau bei 30 Sekunden.
Fünf Minuten sind das nicht…
Michael

Problem erkannt die IPS_Sleep Funktion darf maximal 30 Sekunden Dauern 30000 Milisekunden ich hatte testweise mehrer Minuten eingestellt dann erhalte ich die Fehlermeldung! welche alternativen gibt es wenn ich 5 Minuten haben möchte??? Danke euch für euer Antworten.

Link in Beitrag #5 lesen, kopieren und anpassen ;).

Hallo Danke habe ich überlesen aber ich bin nicht so der coder wie würde das in meinem Fall aussehen :

if($_IPS[‚SENDER‘] == „TimerEvent“)
{
//Aus Befehl

//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);

} else {
//An Befehl

//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 60);

}

bzw. was muss ich wo mit meinen Geräten ersetzen???

Dein An/Aus-Befehl ist ja ENO_SwitchMode, also fügst du den mit false und true an den passenden Stellen ein.

Danach musst du nur noch die Zeit vom Timer anpassen, da du ja fünf Minuten warten möchtest. Ersetze die 60 also entsprechend.

Bei

//Aus Befehl

setzt Du den Befehl ein, der Dein Licht ausschaltet. Und so weiter.

Wenn Du hier Code postest, kannst Du den gerne entsprechend als Code hier in die Beiträge einbinden. Das verbessert die Lesbarkeit.

Hi, ich habe es nun hinbekommen zumindest soweit das wenn eine Lampe eingeschltet ist und diese mit Timer versehen dann geht diese auch wieder aus! wenn nun aber zwei lampen mit zwei Timern kurz hintereinander eingeschaltet werden dann gehen die Lampen trotz timer nicht mehr aus? was mache ich falsch?

Habe mich leider täuschen lassen funktioniert doch nicht auch nicht mit einem Licht alleine im Anhang habe ich ein Video mit den Einstellungen usw. eventuell fällt jemandem der Fehler auf???
[video=youtube_share;bwN2oRhK39w]https://youtu.be/bwN2oRhK39w[/video]

wie gesagt ich will eigentlich nur erreichen das wenn das Licht im Abstellraum gedrückt wurde und es vergessen wurde auszuschalten das es nach z.B. 5 Minuten wieder ausgeht (zum testen habe ich natürlich 5 Sekunden eingetragen) und das kriege ich mit dem Script nicht hin nur warum???

Kannst du deinen Code mal hier zeigen? Dann kann dir sicherlich geholfen werden.

Gruß

Burkhard

Hi Burkhard, hier mein Code :

<?
if($_IPS[‚SENDER‘] == „TimerEvent“)
{
//Aus Befehl
ENO_SwitchMode(57275 /[EG\Licht\Licht Technikraum]/, false);

//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);

} else {
//An Befehl
ENO_SwitchMode(57275 /[EG\Licht\Licht Technikraum]/, true);

//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 5);

}

?>

wie gesagt das Problem ist das der Code gar nicht greift und die Lampe einfach an bleibt? nur wenn ich das script einmal von Hand starte funktioniert es einmal?! siehe Video

Das sieht doch schon gut aus. Schön wäre es, wenn du den PHP Code in die dafür vorgesehenen Tags einschließen würdest. [emoji1]

Hast du denn dem Skript auch ein Event zugeordnet, das auf eine Änderung des Bewegungsmelders reagiert?

ok dann vermute ich mal es liegt an dem fehlenden Event wie muss ich das anlegen? wie gesagt soll so funktionieren das wenn der Physikalische Lichtschalter eingeschaltet wird das nach 5 Minuten das Licht wieder ausgeht wenn es zuvor nicht schon ausgeschaltet wurde.

Siehe hier: https://www.symcon.de/service/dokumentation/konzepte/ereignisse/ausgeloest/

Du legst ein Event an, das bei einem „bestimmten Wert“ deines Schalters ausgelöst wird.

Gruß

Burkhard

hmm ich krieg das nicht hin ? ich kann dem script kein Ereignis zuordnen da es dann ich scheinbar keine Variable habe zum auswählen???

…habs glaube ich hinbekommen werde es heute abend nochmal testen, mein Problem war das ich die Variable „Status“ nicht gefunden hatte :banghead: