Zunächst verwirrt mich, dass das erste Wenn direkt mit "Ende von Wenn" wieder abgeschlossen wird. Der folgende Teil müsste also immer ausgeführt werden, egal wie der Status ist. Du müsstest also den Rest des Scripts innerhalb des ersten WENN ... ENDE einbauen, sodass am Schluss der Autimation 3x ENDE steht.
Andererseits halte ich diese Abfrage am Anfang für überflüssig. Ansonsten geht es vermutlich wie in meinem Beitrag #65 beschrieben. 30 Sekunden warten ist blöd, weil wenn zwischen Sekunde 15 und 19 nochmal jemand durchläuft, wird die Zeit nicht neu gestartet, bzw das Script wird in Sekunde 19 sogar ein zweites Mal gestartet.
Wie lange wartet dein Bewegungssensor bis er von Bewegung auf "keine Bewegung" triggert? Auch 10 Sekunden? Dann nimm mein Script, lasse die Schleife 3x durchlaufen und lasse dann das Tor schließen. Falls vor dem Schließbefehl zwischendurch jemand durchs Bild läuft wird das Script beendet und erst beim nächsten "Keine Bewegung"-Event neu gestartet mit neuem Timer.
Falls dein Tor mucken macht, wenn es bereits geschlossen ist, bzw auch Status wie "öffnet gerade" oder "schließt gerade" kennt, solltest du diese WENN-Abrage ans Ende stellen und den Schließbefehl da reingeben. Ich habe kein Garagentor könnte mir aber vorstellen, dass es problematisch wird, wenn du das Tor gerade öffnen willst während innen kurz zuvor jemand Bewegung ausgelöst hatte und wieder den Sensorbereich verlassen hat und dein Script nun während des Öffnungsvorgangs den Befehl zum Schließen gibt.
Falls es die Zwischenstatus am Garagentor nicht gibt und du Homebridge o.ä. einsetzt, könntest du einen Dummyschalter einrichten, der sich nach x Sekunden (Öffnungsvorgang+Zeit zum Ein/Ausfahren) automatisch ausschaltet. Beim Öffnen des Tors also den Dummyschalter einschalten und dann im Script des Bewegungssensors abfragen. Schließvorgang also nur starten, wenn Dummy aus ist.