I moved the announcements for this door from BigTalker to webCore due to back to back messages cancelling each other and due to the inability to consolidate unlocked and open and locked and closed in a single message. Four messages for each door operation were a bit too many.
The piston below resolves some of those issues however at times it skips reporting a status or it stutters (starts and then stops before finishing even half of the message).
I have multiple door statuses combining contact and lock states so I configured them as separate IFs in logical order hoping that this way I’d catch the most recent status, or the next most recent one if something got skipped.Not sure whether it makes sense but it did while writing the piston and it seems to work except for the above mentioned issues.
I set the most important statements to do not cancel and others not since setting them all to do not cancel caused the whole thing to work even worse for some reason.
Any suggestions on how to improve this code and to maximize the chances of the correct status being announced? Is there some way to account for the fact the contact status will update faster than my Schlage lock status?

