Published

Samsung TV network remote control protocol

It happens, that I get my new 32″ Samsung TV – model LE32D550. Like most of new Samsung TV’s (if not everyone) it could be connected into the LAN. Of course, one of the first thing I do when the network cable was connected was port-scan.

55000 is used for remote control over network. There is application for iPhone and Android smartphones (unfortunately only these created by Samsung) to control TV through WiFi. I did some research, and now I understand the protocol quite well.

1. Authentication

When connection on port 55000 is established, remote control must be authenticated. It sends datagram.

I don’t know the meaning of the string above, my TV is accepting any string in here, but I suggest to use this particular one just for compatibility reason.

Payload starts with 2 bytes: 0x64 and 0x00, then comes 3 strings encoded with base64 algorithm. Every string is preceded by 2-bytes field containing encoded string length. These three strings are as follow:

String content is always iapp.samsung or iphone.livingroom.iapp.samsung. Meaning of these strings is unclear, I suggest to not compare it with any specific value during response parsing (maybe other devices using another values).

Payload is one of the following:

0x64, 0x00, 0x01, 0x00 – access granted, you can now send key codes and it will be executed by TV,

Hi!
The page is very informative. I could develop the application to control the tv. The only issue I am facing is that I cannot power on the TV once it is power off using the application. I am using UA32ES6200 Model of Samsung.

I made a little C++ Qt library and a test QWidget to control the TV.
It basically allows you to:
– open the TCP socket
– send the ID packet
– send strings as payloads.
I can send it to you if you think it could be usefull.

Nice to have people with this knowledge (y) Im new with TCP/IP commands, but very intrested in that, I did get that authentication code to work with my tv and I have accepted with my tv remote, how locks the command example for “power off”.

Hello! I want to make an HTML5 application to remote control the tv. I don’t want to create an application for the tv. Just run the index, authenticate by the tv and then send remote commands for channel change, volume up e.t.c. Should i put the samsungremote.cgi file in the same folder with index.html and just change the ip’s and mac addresses to match these i have?

Many thanks for your work! Due to your work and useful https://github.com/makermusings/fauxmo library, I can now remote control from within Android app. However, I have a question:
How to send >1 keycode in sequence, e.g. key_4,key_2, key_enter to select channel 42? I tried async and sync sending, but almost always only the first char is accepted. After trying a lot of combinations, I’ve found out that key-clear between codes helps: key_4,key_clear, key_2,key_clear, key_enter. But I think there should be something like key_up.
Also, I’d like to know the meaning of key_clear, and the meaning of the rest key in list. Most of them is understandable, but not all.

sc0ty, thanks for quick reply. Only one more question: could you tell what is the source of the keycode list? I’ve seen https://wiki.samygo.tv/index.php5?title=D-Series_Key_Codes, but it doesn’t seem to be the original source of keycodes (because of misprinted KEY_NINE_SEPERATE). Where has been this list taken from?