-
-
Save Litwilly/913355c285da77c8a7c88fbb83798404 to your computer and use it in GitHub Desktop.
Samsung TV Remote Control Python Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I've add some additional remote keys for reference and additional comments for the variable required.