Created
August 13, 2015 12:59
-
-
Save jordam/483435b050aa4bc3a5f4 to your computer and use it in GitHub Desktop.
A script to control MagicLight and other cheap wifi rgb lights
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
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!)") |
This worked for me! Took a while to find the IP address. My light bulb had a hostname like HF-LPB100-ZJ####, incase anyone comes here looking for how to get the ip address. I just had to try all 20 wireless clients until I found it haha.
If you're looking for the IP Addr of the connected device you can look in the following location:
- Click on the gear icon in the top left
- Select device settings
- Select the device you want to get the information for
- Click Device Information
- Fourth item down is the IP for that device
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
This worked for me! Took a while to find the IP address. My light bulb had a hostname like HF-LPB100-ZJ####, incase anyone comes here looking for how to get the ip address. I just had to try all 20 wireless clients until I found it haha.
Thanks for this!