It seems like there are 3 causes and the RBE node is just covering up the problem:
The device is sending multiple actions and that should be visible in the HE logs if info/debug logging is enabled
There is a Motion Contact Sensor Device Node somewhere else with Send Events checked that is sending the 2nd message. This would make sense if the RBE node isn't working.
The switch node is allowing both Open & Closed thru for the sensor. Since the msg.payload.value would be different, this would also mean that RBE wouldn't do any good.
@douglaspitman - can you check your HE Config and on the "advanced" tab see if you have "Use Websocket" checked? If so uncheck it and see what happens.
This might have already been said, I only skimmed the thread, but I would put a delay node after the device node and rate limit it to one message per X seconds, drop intermediates.
It was the option 3 above. I had the switch node misconfigured. It was sending both open then closed through. Websockets wasn't checked. Thanks for all your guidance.