Yes, I have it but I don't quite understand it. How do you get from 01100110 to 0x04,0x66 for A1. Do you send that as a string? I get back 165 or A6 in hex
I don't do VB so can't give programming instructions. But the 01100110 is the address byte, 0x66, for A1. The 0x04 is the "header" byte which tells the CM11A the following byte is an address like A1 rather than a function like A-On.
You would write this to the CM11A as a string of two pure binary bytes, i.e., (04)(66). You should then read back from the CM11A a binary byte representing the 8-bit checksum of the bytes you wrote, i.e. (0x04 + 0x66) & 0xFF = 0x6A.
If the checksum is correct, write a single byte of 0x00 to tell the CM11A to transmit the address over the power line. When the CM11A has successfully completed the transmission, you will read the byte 0x55 from the CM11A indicating it is ready to receive the next command, which could be another address on the same housecode or a function.
Except for Dim, Bright, and Extended Code functions, the header byte for functions is 0x06. So that for A-On you would send the string (06)(62); for A-Off the string is (06)(63).
Good luck.