Since posting this it got me considering the the issue I have. So I looked at my rules again and in my case it was a pretty simple fix. I already had everything in place to do it. I even had added a line to send me a push notification when it happened. This never really comes up as we pretty much always use Alexa commands or RM rules to lower or raise our shades. It's just me and my wife and we don't touch the remotes unless the internet is down.
I have all my shades set for 3 set positions. All the way open, all the way closed and one midpoint position. Like you I use a virtual shade. Once a virtual shade changes position it triggers the rule that then sends the command to the bond hub to control the actual shade. I have all the shades closing at a specific time each evening. The only time I really ever have the problem is when for whatever reason one of the shades will not close. This happens very seldomly, so I usually just grab the remote and close it because if I tell Alexa to close it, it can't because the virtual shade is already closed.
First make your Alexa routine so that if you tell Alexa to open or close it sets the shade to position of 3 let's say to close 97 to open. That way anytime you activate your Alexa routine it triggers your rule because the virtual shade does change. The HE rule to open or close your awning should be triggered by the virtual shade changing which then sends the open or close command to your awning. Next pause this rule and create a another rule to set your virtual shade to 0 or 100, fully open or closed, then resume the first rule. You have to pause the original rule because changing the shade will reactivate the shade again. Also have a variable in your main rule that stores the current state of the shade for the next activation of your Alexa routine.
Now if you tell Alexa to close the shade and you look at the variable you created and if it is showing a 0 position you know to just go ahead and send the command to close the shade. It is out of sync.
I hope that makes sense.
[Edit] After writing all that it should be much simpler for you. You only send open or close. I have multiple positions to consider.
In your case since you just want to open or close. Just have the Alexa routine set to 3 or 97. That triggers the rule if the shade is at 3 send the close command if at 97 send open command and then set the virtual shade to 0 if closed or 100 if open.
That will trigger the rule again, but if you are looking for a 3 or 97 position then the 0 and 100 won't do anything.