GoControl Garage Door, disappointing :-(

This is really old but hopefully someone is watching. I have a GoControl GD0004z that works. I wanted a way to close my garage door with Google home AND I don’t want to be able to open it. I created a virtual switch and a routine:
if: switch pressed, then close door and turn off switch
This works, and if the door is already closed, it does nothing and leaves
the switch off which is important- close doesn’t work when the switch is on.

But what I don’t understand: when developing this, the logical thing seemed to be to check if the door is open before closing the garage door". The switch still sort of works:
-If I include that check and the door is already closed, then if the switch is triggered, the door is left closed and the switch is left on. That’s bad because as I already noted, when the switch is already on, the door doesn’t close, and a second press is required (and sometimes it may not work due, I think, to delays in the GoControl). I would need to add another routine to be triggered by the switch and always turn the switch back off.
-if I set the switch as a precondition, the routine does not work. (I figured that would be most efficient- the switch will be set less often than the door will be open),

So, it’s working. But I now have some questions how routines work.
Thanks in advance for any help.
Nelson