As you say process the first and ignore the rest. Its logically easy but technically difficult. It can be done I was just hoping I didn’t have to. The logic will have to be something like recieve the message. Store the message in a buffer ignoring the flag byte. Recieve the next message, compare current message to all messages stored in the buffer. Remove old messages from buffer after ?? ms. My traces show the dupes are arriving ~450 ms apart but Im not sure what the max could be. Maybe ~1000 ms at 3 hops? Each item in the buffer will need its own time stamp so it can be removed independantly.
Im also not sure how this will effect retries. If a command is lost I resend the command, if the buffer clears too slowly or too quicky then messages will probably be duped or dropped.
Im sending with 3 hops. The device is getting the command and responding cleanly. It appears that the RF reply is getting back to the PLM before the normal Powerline reply because the message with the lower remaining hop count gets recieved first.
Thanks for the help!