Some trivial improvements to even the X10 hardware layer would go a long way to improve the reliability of your new protocol.
1.) Use a real CRC (Cycle Redundancy Check) byte on your packets instead of a checksum or dark ages inversion check fields like X10. A CRC not only gives iron clad packet protection, but it can also correct bad/corrupt bits depending on the length of the CRC versus the packet bit length.
2.) Every request packet has a response packet so that the transmitter knows if the sender received the packet or not. That one is obvious.
3.) Collision retry like half duplex ethernet, but this is soo heavily patented that you'll get sued for certain...
1.) Use a real CRC (Cycle Redundancy Check) byte on your packets instead of a checksum or dark ages inversion check fields like X10. A CRC not only gives iron clad packet protection, but it can also correct bad/corrupt bits depending on the length of the CRC versus the packet bit length.
2.) Every request packet has a response packet so that the transmitter knows if the sender received the packet or not. That one is obvious.
3.) Collision retry like half duplex ethernet, but this is soo heavily patented that you'll get sued for certain...