IPS Sleep über Ereignisse mehrmals verwenden

Hallo,

ich versuche auf meine Wago mit diesem Skript zu tasten.

<?
ModBus_WriteCoil(16350 /*[Wohngeschoss\Wohnzimmer\Couch]*/, true);
IPS_Sleep(200);
ModBus_WriteCoil (16350 /*[Wohngeschoss\Wohnzimmer\Couch]*/, false);  


Die Schreibadresse wird mit dem Skript abgearbeitet und die Leseadresse gebe ich nur bei der Modbusinstanz an, das ganze funktioniert gut.

Nun war meine Idee, das ganze mit einem globalen Skript über Parent ID zu vereinfachen, sprich nur einmalig ein Script erstellen und dann für jede Modbusinstanz ein Ereignis erstellen.

<?
$id = $_IPS['VARIABLE'];
$parent= IPS_GetParent($id);
IPS_Sleep(300);
ModBus_WriteCoil($parent, false);
?> 

Ich habe mal alles im Anhang gestellt, damit Ihr wisst was ich meine.

Das mit dem Ereignis klappt auch, aber die Schaltfläche vom Schalter fürs Licht wird nicht grün, nur kurzzeitig.

Kann mir da bitte jemand einen Tipp geben, wie ich das verbessern kann, damit der Status auch richtig dargestellt wird.???
Danke.

Das willst du so nicht umsetzen. :wink:
Sondern so:
Wago und Taster. Die einzig wahre Lösung!
Michael

Das habe ich schon getestet, funktioniert mit den einfachen Funktionsbausteinen auch super, aber sobald es aufwendigere oder gar geschlossene Wago Bausteie sind ist das ein Ding der Unmöglichkeit.
Es wäre so einfach, eine Variable für 500 ms auf true zu schalten dann wieder false und über eine zweite den Stati abzufragen.

Ausserdem funktoniert mit der XOR Lösung ohne IPS ja gar nichts, wenn ich den Code so ansehe, ist mir jetzt erst aufgefallen.

Könnte mir vielleicht trotzdem jemand sagen was an meinem Script falsch ist??

Danke.