Erstes Skript, fehlgeschlagen..

Hallo alle
Ich wollte mein erstes Skript schreiben, und das hat leider nicht so funktioniert, wie ich das wollte. Ich hoffe, jemand kann mir sagen, wo ich den Fehler gemacht habe…

Ziel: Wenn der Bewegungsmelder vom Balkon Süd auslöst, dann soll die Balkonbeleuchtung dort für 3 Minuten angehen. Ziemlich simpel, oder?

Für den Timer verwendete ich das Skript aus der Symcon-Dokumentation 5.0.
Als erstes erstellte ich ein neues Ereignis. Auslöser Motion (Obergeschoss\TerrasseS\BWM\Motion), Auslöser „bei bestimmten Wert“, Wert: true… Nachfolgende Ereignisse ausführen: Ja
Aktion „Führe PHP Code aus“… Skript:

<?

if($_IPS['SENDER'] == "TimerEvent") {
//Aus Befehl
DS_SwitchMode(57650, false);
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0); } else {
//An Befehl
DS_SwitchMode(57650, true);
//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 180);
}
?>

Weitere Bedingungen: Variable "Ist es Tag (Location) = false
Das Licht geht an, aber es bleibt an. Wo ist der Fehler?
Grüsse. Marc.

Das war sehr gemein formatiert. Habe den else Block erst spät gesehen :wink:

Magst du mal ein Bild vom Baum machen? Wird unterhalb vom Ereignis ein weiteres Erstellt für den ScriptTimer?

paresy

Die Formatierung ist 1:1 aus eurer Dokumentation… :smiley:

Ich habe ausser dem Skript nichts weiter gemacht. Ich hänge die Kopie des Baums mal an.

Kann ich meine Beiträge nicht editieren?

Da kam die falsche Bildschirmkopie mit… Hier nochmals

Zum dritten…

Die Forenrichtlinien sehen vor, dass eigene Beiträge erst ab mindestens 25 eigenen bearbeitet werden können. Du solltest Dich also hier noch weiter einbringen…

Grüße, Gerhard

Kann mir niemand helfen?

Hallo

Muss Du nicht 48293 für 57650 ersetzen ?

Gruss,

Hallo Marc,

was passiert, wenn Du in Deinen Einstellungen den Haken für die nachfolgenden Ereignisse heraus nimmst? Zum Testen kannst Du ja die Zeit verkürzen?

Grüße, Gerhard

Der Skripttimer funktioniert leider nicht, wenn das Skript direkt im Ereignis steckt. Das kannst du aber schnell beheben, indem du ein Skript erstellst, deinen Skripttext darein kopierst und das ausgelöste Ereignis an dieses Skript hängst. Dann sollte auch wie gewünscht der Skripttimer erstellt werden und die Lampe nach einiger Zeit wieder ausschalten.

Hier mein Baum, die Anordnung ist wichtig, einer FS20 Steckdose, die nach 5 Sekunden ausgehen soll, nachdem sie eingeschaltet wurde:
Gruß Helmut

Hallo Michi. Also wenn ich dieses Timer-Skript freistehend laufen lasse, dann funktioniert es problemlos. Es scheint so zu sein, wie weiter unten beschrieben, dass ich dieses Skript nicht in ein Ereignis packen kann… Ich muss mich wohl zuerst damit befassen, wie ich das aufgeteilt hinbekomme. Meine PHP-Kenntnisse sind doch noch sehr rudimentär…

Danke für die Erklärung. Kannst Du das für mich noch einfacher erklären? Ich bin absoluter Neuling hier.

An alle: Vielen Dank für jede einzelne Hilfe. Ich schätze das sehr. Am Ende hat es zuerst mit der Lösung von Helmut (und Dr. Niels) geklappt. Das Skript läuft nun eigenständig und wird vom Bewegungsmelder getriggert. Ob der Haken bei „nachfolgende Ereignisse ausführen“ scheint keine Rolle zu spielen…

Das Thema ist für mich erfolgreich beendet.