Commit graph

29 commits

Author SHA1 Message Date
Daniel Høyer Iversen
19851ed423 bug fix in timeout (#70) 2017-04-22 12:38:02 -07:00
Dimitrij
d346476e63 fix check_power for SP2/SP3 (#72)
Fixed up to avoid merge conflict with #78
2017-04-22 12:36:50 -07:00
Thomas Järvstrand
4f03ffb963 Add support for pure python AES implementation (#78) 2017-04-22 12:34:37 -07:00
Víctor Ferrer García
63e097d73f check_power_raw included for mp1 devices
Export raw power state for MP1 devices
2017-01-02 23:31:04 -06:00
Daniel Høyer Iversen
39e170c9e0 validate the authorization 2016-12-26 20:02:04 +01:00
Daniel Høyer Iversen
b30fc0d1c1 Ensure discover() returns devices and not None
There's a small race condition in the discover() method. If recv() returns
before the socket timeout is reached, but we hit the top of the loop after
the timeout is reached, we'll return None rather than the set of devices.
2016-12-25 11:16:53 +00:00
Matthew Garrett
877a7b7460 Merge pull request #34 from eschava/master
allow to specify network interface for discover method
2016-12-25 11:07:54 +00:00
Matthew Garrett
a0a1c1b7a1 Merge pull request #37 from Danielhiversen/patch-9
Make communication thread safe
2016-12-25 11:07:19 +00:00
Victor Ferrer
d519623dd4 Add new device support: Broadlink MP1 Smart power strip 2016-12-25 10:59:58 +00:00
Daniel Høyer Iversen
1296c3da48 Make communication thread safe 2016-12-22 09:51:38 +01:00
Eugene Schava
72cf09f9e4 allow to specify network interface for discover method 2016-12-20 15:59:32 +02:00
Matthew Garrett
63d184fc8c Provide raw sensor data
Provide raw versions of the sensor data for interpretation by clients
2016-12-03 16:41:10 -08:00
Matthew Garrett
d10a43531c Fix python 2 compatibility
Ugly but appears to work
2016-12-03 16:40:58 -08:00
Matthew Garrett
31cd077165 Expose the type of the discovered device
Allow clients to identify what kind of device has been discovered
2016-12-03 14:22:20 -08:00
Matthew Garrett
9628b87572 Merge remote-tracking branch 'zenitraM/python3' 2016-12-03 14:16:32 -08:00
Alejandro M
a5d05c95b3 Python 3 compatibility 2016-11-24 22:25:14 +01:00
Matthew Garrett
d066513d02 Add packet retransmission and timeout
UDP doesn't guarantee delivery, so reattempt packet transmission if we don't
get a response and timeout if we still don't have anything after (by
default) 10 seconds.
2016-11-20 11:18:51 -08:00
Matthew Garrett
7ac243b838 Merge pull request #16 from PeWu/smartplug
Updated SmartPlug commands - set_power() and check_power()
2016-11-19 16:47:28 -08:00
Matthew Garrett
c68fcea5e6 Fix single device discovery
The automatic device type detection was only implemented when discovering
with a timeout. Refactor to do it for the single-device discover() case.
2016-11-19 14:23:50 -08:00
Przemek Wiech
1e04ec2be5 Merge branch 'master' into smartplug. 2016-11-18 21:20:35 +01:00
Przemek Wiech
652f52eb03 Updated SmartPlug commands - set_power() and check_power() 2016-11-18 00:19:02 +01:00
Matthew Garrett
d490c5b71e Add automatic determination of device type
Look at the device ID and figure out what type of device it is, and provide
appropriate classes for each that only support the functionality available
on that device.
2016-11-18 09:55:21 +13:00
Matthew Garrett
c174e40f59 Add experimental support for smartplugs
This adds a set_power() call that should work for the SP2 - unsure whether
it will work for the SP3.
2016-11-13 14:29:07 +13:00
Marcus Stewart Hughes
4705fdf011 each send_packet() needs a unique count
Increment count instead of randomly generating on each send_packet() as per @mjg59's suggestion.

Tested and working as expected.
2016-11-10 20:13:21 +00:00
Kelvin Law
bd1c44488d Fix for [Errno 49] Can't assign requested address
Fixes #3 on macOS
2016-11-02 20:34:46 -07:00
Matthew Garrett
989009e21f Add support for multiple devices and update documentation
Add support for discovering more than one device on the network, and update
the documentation to describe that.
2016-10-30 14:16:40 -07:00
Matthew Garrett
69afd4ce52 Add support for sensor data
Add a check_temperature() function that'll work for both the RM2 and the A1
sensor platform, and a check_sensors() function that returns the full set of
sensor data for the A1 as a dict.
2016-10-24 20:50:34 -07:00
Matthew Garrett
6936bc750e Attempt to handle timezones
The timezone should be embedded in the discovery packet, so make a better
attempt to do that.
2016-10-10 01:09:06 -07:00
Matthew Garrett
ecab016a73 Initial commit 2016-09-15 13:20:16 -07:00