Skip to content

Instantly share code, notes, and snippets.

@jordam
Created August 13, 2015 12:59
Show Gist options
  • Save jordam/483435b050aa4bc3a5f4 to your computer and use it in GitHub Desktop.
Save jordam/483435b050aa4bc3a5f4 to your computer and use it in GitHub Desktop.
A script to control MagicLight and other cheap wifi rgb lights
import socket, time
s = socket.socket()
address = ''
port = 5577
r = 0
g = 255
b = 0
keybit = "31".replace(':', '').decode('hex')
keybit += chr(r) + chr(g) + chr(b)
keybit += "00:f0:0f".replace(':', '').decode('hex')
keybit += chr(sum(bytearray(keybit))%256)
print sum(bytearray(keybit[:-1]))%256
print keybit.encode('hex')
try:
s.connect((address, port))
s.send("81:8a:8b:96".replace(':', '').decode('hex'))
s.recv(1000)
s.send("10:14:0f:08:0d:05:16:15:04:00:0f:8b".replace(':', '').decode('hex'))
s.recv(1000)
s.send(keybit)
except:
print("Could Not Connect (They are finnicy!)")
@peterrobie
Copy link

peterrobie commented Oct 30, 2020

Also, removing lines 16 through 19 allowed the changes to the light to be almost instant. With the code listed above the delay was about a minute and caused the updates to randomly fail.

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