1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| !/usr/bin/env python
import socket
ip = "192.168.0.16"
port = 5577
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((ip, port))
commands = {
"on": bytearray([0x71, 0x23, 0x0F]),
"off": bytearray([0x71, 0x22, 0x0F]),
"warm": bytearray([0x31, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x0F]),
"warmw": bytearray([0x31, 0x00, 0x00, 0x00, 0xFF, 0x34, 0x0F]),
"white": bytearray([0x31, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x0F]),
"down": bytearray([0x31, 0x00, 0x00, 0x00, 0xFF, 0x34, 0x0F]),
"up": bytearray([0x31, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x0F])
}
def run():
print("List of commands:")
for key, value in commands.items():
print(key)
while True:
c = input("Command: ")
if c not in commands:
print("List of commands:")
for key, value in commands.items():
print(key)
else:
send(commands.get(c))
def checksum(command):
checksum = sum(command) & 0xFF
command.append(checksum)
return command
def send(command):
command = checksum(command)
sock.send(command)
def finish():
sock.close()
if __name__ == "__main__":
run() |
Partager