Hello!
Last night I’ve tried to intercept the learning part, but it left me pretty confused. The communication is still UDP, android app sends a command to trigger a learning process, then RM 3 returns payload to the app. Returned payload is 178 bytes long and begins with 5aa5aa55, same as the command sent from the app, that we intercept and use with Python. The problematic part is - command received after learning process, and command that you send with the button you used to learn command are totally different. The only common parts are 5aa5 part, and MAC address of the RM 3 (in little endian). I’ve tried to find some way to decode it from the received command to used command, but was unable to find anything in common for the two commands.
Here are examples of the two commands I’ve worked with:
After sending learn signal (by pressing Volume Up on the app’s not yet learned button), and pressing Volume Up button on the TV remote, RM 3 responds with:
5aa5aa555aa5aa55000000000000000000000000000000000000000000000000b9f000003727ee0339820a22cc0d43b4010000000ac7000036b507f6cc50c1f37b19cc5f91cfa7217bd524a579cb7bb8172ee774ff36a05e7783e7870e6ad53eaca1673b776dade8843a33bcfde7c1bafa0b909512b29241c0c218722143841b3ed28eb29e1aaf46
After that, when I try to send Volume Up command from the app, it sends this:
5aa5aa555aa5aa550000000000000000000000000000000000000000000000001def000037276a0061810a22cc0d43b40100000008c700002bfb0aa884a1fdbe097ea8c34eb9a0ff9cebd5004685b47f41cf93ebe6b43a97b97d0d86ca8dc9732bbaf721050426ed81d80f72a33cbf103961a443503121bb700e0338e0eb1c3531d705cde184abbf
The same goes for Volume Down button - RM 3 response after learning:
5aa5aa555aa5aa5500000000000000000000000000000000000000000000000084ee00003727ee0367820a22cc0d43b4010000000bc70000a41d55e3f0cb41085325e9809b4d21d4cd834b97f02e169a697f9d0046cd5614cecaa1778034d2cab55d3d6d2cbd5ce05069adad87aae07b4cfe7cd82ef119749eb64d98c1418065161520613f73b31a
UDP payload sent from the app:
5aa5aa555aa5aa55000000000000000000000000000000000000000000000000e9ee000037276a001e800a22cc0d43b40100000009c70000dc23af4c138a7a55e2a9fbb2bf476e149ed530d1ffa10c1b29103ba39194a5f8325965fe909aec44e8f0773c282751c8e50d3bca85a3b0d7e60303835168577906cd35823b79ffc6acb9b33714aa12d6
I hope someone else could take a look and, perhaps, find something in common for the learned and sent commands.
P.S. I forgot to mention that I’ve tried sending both commands - the first one (received from RM 3) doesn’t work. The second one works, the same way it was working before.
Best regards,
Davor