1
0
mirror of https://github.com/mjg59/python-broadlink.git synced 2024-11-22 15:10:12 +01:00

Updated SmartPlug commands - set_power() and check_power()

This commit is contained in:
Przemek Wiech 2016-11-18 00:19:02 +01:00
parent c174e40f59
commit 652f52eb03
2 changed files with 22 additions and 5 deletions

View File

@ -44,7 +44,12 @@ Obtain sensor data from an A1:
data = devices[0].check_sensors() data = devices[0].check_sensors()
``` ```
Set power state on an SP2/SP3 (0 for off, 1 for on): Set power state on a SmartPlug SP2/SP3:
```
devices[0].set_power(True)
```
Check power state on a SmartPlug:
```
state = devices[0].check_power()
``` ```
devices[0].set_power(1)
```

View File

@ -181,11 +181,23 @@ class device:
return response[0] return response[0]
def set_power(self, state): def set_power(self, state):
packet = bytearray(8) """Sets the power state of the smart plug."""
packet = bytearray(16)
packet[0] = 2 packet[0] = 2
packet[4] = state packet[4] = 1 if state else 0
self.send_packet(0x6a, packet) self.send_packet(0x6a, packet)
def check_power(self):
"""Returns the power state of the smart plug."""
packet = bytearray(16)
packet[0] = 1
response = self.send_packet(0x6a, packet)
err = ord(response[0x22]) | (ord(response[0x23]) << 8)
if err == 0:
aes = AES.new(str(self.key), AES.MODE_CBC, str(self.iv))
payload = aes.decrypt(str(response[0x38:]))
return bool(ord(payload[0x4]))
def send_data(self, data): def send_data(self, data):
packet = bytearray([0x02, 0x00, 0x00, 0x00]) packet = bytearray([0x02, 0x00, 0x00, 0x00])
packet += data packet += data