Skip to content

Instantly share code, notes, and snippets.

@Litwilly
Forked from danielfaust/samsung_remote.py
Last active April 9, 2016 17:52
Show Gist options
  • Save Litwilly/913355c285da77c8a7c88fbb83798404 to your computer and use it in GitHub Desktop.
Save Litwilly/913355c285da77c8a7c88fbb83798404 to your computer and use it in GitHub Desktop.
Samsung TV Remote Control Python Script
# Info: To send remote control commands to the Samsung tv over LAN
# The first time your run the push() your TV may ask permission to allow "this" remote to connect
import time
import socket
import base64
src = '192.168.1.195' # ip of device controling tv
mac = 'b8:27:eb:32:3e:55' # mac of device controling tv
remote = 'python remote' # remote name will be stored on tv
dst = 'xxx.xxx.xxx.xxx' # ip of tv
app = 'My Python App' # iphone..iapp.samsung
tv = 'UN32EH5300' # TV Model
def push(key):
new = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
new.connect((dst, 55000))
msg = chr(0x64) + chr(0x00) +\
chr(len(base64.b64encode(src))) + chr(0x00) + base64.b64encode(src) +\
chr(len(base64.b64encode(mac))) + chr(0x00) + base64.b64encode(mac) +\
chr(len(base64.b64encode(remote))) + chr(0x00) + base64.b64encode(remote)
pkt = chr(0x00) +\
chr(len(app)) + chr(0x00) + app +\
chr(len(msg)) + chr(0x00) + msg
new.send(pkt)
msg = chr(0x00) + chr(0x00) + chr(0x00) +\
chr(len(base64.b64encode(key))) + chr(0x00) + base64.b64encode(key)
pkt = chr(0x00) +\
chr(len(tv)) + chr(0x00) + tv +\
chr(len(msg)) + chr(0x00) + msg
new.send(pkt)
new.close()
time.sleep(0.1)
#example
push("KEY_VOLUP")
#Remote Keys
#KEY_0
#KEY_1
#KEY_2
#KEY_3
#KEY_4
#KEY_5
#KEY_6
#KEY_7
#KEY_8
#KEY_9
#KEY_UP
#KEY_DOWN
#KEY_LEFT
#KEY_RIGHT
#KEY_MENU
#KEY_PRECH
#KEY_GUIDE
#KEY_INFO
#KEY_RETURN
#KEY_CH_LIST
#KEY_EXIT
#KEY_ENTER
#KEY_SOURCE
#KEY_AD
#KEY_PLAY
#KEY_PAUSE
#KEY_MUTE
#KEY_PICTURE_SIZE
#KEY_VOLUP
#KEY_VOLDOWN
#KEY_TOOLS
#KEY_POWEROFF
#KEY_CHUP
#KEY_CHDOWN
#KEY_CONTENTS
#KEY_W_LINK #Media P
#KEY_RSS #Internet
#KEY_MTS #Dual
#KEY_CAPTION #Subt
#KEY_REWIND
#KEY_FF
#KEY_REC
#KEY_STOP
#KEY_TV
#KEY_CONTENT
#KEY_INTERNET
#KEY_PC
#KEY_HDMI1
#KEY_OFF
#KEY_POWER
#KEY_STANDBY
#KEY_DUAL
#KEY_SUBT
#KEY_CHANUP
#KEY_CHAN_UP
#KEY_PROGUP
#KEY_PROG_UP
@Litwilly
Copy link
Author

Litwilly commented Apr 9, 2016

I've add some additional remote keys for reference and additional comments for the variable required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment