Execution orderd in rules

Hi all,

I want to send consecutive commands to an item from a single rule. For example I have an item called myItem, and a rule called myItemRule. In the rule I have:
myItem.sendCommand(ON)
myItem.sendCommand(OFF)
Is it guaranteed that those commands will be executed in myItem in the same order ? If not, is there a way to enforce that ? If yes, then myItem is a zwave binding, is it guaranteed that those commands will be sent to the binded device in the same order as they are executed by the item ?

If sent back to back like that order is not guaranteed.

Add a Thread::sleep(300) between the sendCommands to give the first one a chance to hit the bus before the second one. You will probably need to experiment with the amount of time to sleep to get guaranteed performance. You may not need it at all if your machine is fast enough.

No because the commands get sent out over a mesh network and the two messages could take a different route if they are sent too close together. The sleep should avoid that as well.

However, I would note that I don’t think the zwave protocol was designed to handle sending two messages within single digit milliseconds of each other to the same device.