Commit Graph

97 Commits

Author SHA1 Message Date
Teemu R
11a7042a04
update pypi description (#102)
* update pypi description

* add wall switches
2018-06-09 17:45:10 +02:00
JsChiSurf
1aee353cbf Update smartplug.py to support dimming in HS220 (#115)
* Update smartplug.py to support dimming in HS220

Switch functions essentially as a "plug" with the addition to support for dimming, for which can be test for by verifying existence of 'brightness' array value.

* Attempt at updates to pass validator

* Maybe this time?  :-)

* Add more detail to comment blocks

Make clear in requests for current brightness level the expected return values, and note that light will turn on when setting a brightness level, if not already on.  This makes clear that a state change request (turn_on) does NOT have to be made first when setting brightness.

* Update smartplug.py

* Update smartplug.py

Fixes #114
2018-04-09 21:17:54 +02:00
Georgi Kirichkov
c766e3594b
Merge pull request #109 from rytilahti/require_py34
Add python_requires for >= 3.4
2018-01-22 00:13:01 +02:00
Teemu Rytilahti
4c427a8413 Add python_requires for >= 3.4 2018-01-21 00:48:48 +01:00
Teemu R
bda2ce0d89
add hs210
Based on user report: https://community.home-assistant.io/t/tp-link-hs210-3-way-kit/39762/6
2018-01-19 22:49:29 +01:00
K Henriksson
d40fff4f9e Add support for DNS host names (#104) 2018-01-17 22:03:19 +01:00
K Henriksson
a426488449 Use direct device type discovery for devices (#106)
This is more efficient than enumerating all devices and checking the IP.
2018-01-14 19:10:53 +01:00
Teemu Rytilahti
34347e59ae cli: add 'time' command to get the current time from the device 2017-10-17 00:53:18 +02:00
TheSmokingGnu
95b743f11d created a docker file to aid dev setup (#99)
* created a docker file to aid dev setup

* fixed review comments in README and Dockerfile

* review comments to simplify the docker run command
2017-10-13 23:27:05 +02:00
Teemu R
b80923061f Release 0.3.0 (#88)
* update the changelog

* revise README, fixes #86

* bump the version

* final changelog update for 0.3.0
2017-10-07 17:51:10 +02:00
Sean Gollschewsky
44424c1182 Local test clean (#96)
* Add ignores for working coverage/tox/IDE files.

* Allow tox not to fail if python version is not available.
2017-10-07 17:44:45 +02:00
Teemu R
0b2e371e79 move SmartDeviceException to SmartDevice, and remove types.py complet… (#95)
* move SmartDeviceException to SmartDevice, and remove types.py completely. fixes #94

* do not import skipIf anymore
2017-10-07 17:41:51 +02:00
Teemu R
d22eceefae move has_emeter implementation from SmartDevice to SmartPlug, avoid using features() internally (#93)
* move has_emeter implementation from SmartDevice to SmartPlug, avoid using features() internally

* add stacklevel to deprecation warnings to see where they are really called

* make tests pass on a real device. if PLUG_IP is not None, the tests will be run on a device at the defined IP address
2017-10-07 17:36:49 +02:00
Teemu R
af90a36153 add typing hints to make it easier for 3rd party developers to use the library (#90)
* add typing hints to make it easier for 3rd party developers to use the library

* remove unused devicetype enum to support python3.3

* add python 3.3 to travis and tox, install typing module in setup.py
2017-09-18 18:13:06 +02:00
Teemu R
3ddd31f3c1 execute coveralls only on travis, fixes #84 (#91) 2017-09-16 19:00:17 +02:00
Teemu Rytilahti
281f236221 make flake8 pass by some rewording 2017-09-16 18:57:42 +02:00
Teemu Rytilahti
1457c4f533 make hound a bit more happier 2017-09-16 18:55:22 +02:00
Teemu Rytilahti
a9c1d08d66 deprecate features and identify, use state_information in __repr__ instead of identify 2017-09-16 18:29:20 +02:00
Teemu Rytilahti
31b5b89d35 fix smartbulb hsv documentation, values are degrees and percentages instead of 0-255 2017-09-16 18:28:57 +02:00
Teemu Rytilahti
79f3b447c8 call socket's close() even when shutdown causes an exception, fixes hopefully #65 for good 2017-09-16 18:27:41 +02:00
Sean Gollschewsky
25e550d3fe Fix brightness and temperature. (#89) 2017-09-15 14:23:06 +02:00
Teemu R
3a14484d47 add lb120 sysinfo to test suite, thanks to githubbuh (#85) 2017-08-30 03:35:34 +03:00
Teemu R
8f83ca8784 add lb100 tests, thanks to kdschlosser (issue #58) (#82) 2017-08-22 16:55:49 +02:00
Teemu R
2d26e8cf35 make tox run pytest-cov, add coveralls (#81)
* make tox run pytest-cov, add coveralls

* another try, just with module name
2017-08-09 13:07:24 +02:00
Sean Gollschewsky
a621f5329d Prevent failure if device's sysinfo does not have a "feature" attribute. (#77) 2017-08-06 15:42:33 +02:00
Georgi Kirichkov
d851540380 Merge pull request #76 from rytilahti/extend_tests
Extend tests
2017-08-06 15:36:40 +03:00
Teemu Rytilahti
651331bb77 allow None for rssi, add a missing newline to fakes.py 2017-08-05 17:33:08 +02:00
Teemu Rytilahti
d648c6bd2b add hs100 tests 2017-08-05 17:30:40 +02:00
Teemu Rytilahti
675f618777 make tests to test against all known device variants 2017-08-05 17:30:40 +02:00
Teemu Rytilahti
1d7e5fa73c remove unused tplinksmarthomeprotocol import 2017-08-05 17:30:40 +02:00
Teemu Rytilahti
5839c2d1de fix hs105 mac to pass the test, wrap sysinfo_lb110 properly inside 'system' 2017-08-05 17:30:40 +02:00
Teemu Rytilahti
92c9cddfd4 return None instead of False for emeter related actions 2017-08-05 17:30:40 +02:00
Teemu R
0927930f41 wrap sysinfo to defaultdict to return None for keys which do not exist, makes unsupported keys not to fail hard (#72) 2017-08-05 17:28:45 +02:00
Teemu R
d15e7be4f3 add hs100 example to fakes.py, thanks to Semant1ka on #67 (#74) 2017-08-05 16:28:11 +02:00
Teemu R
07af48e41a Discover refactoring, enhancements to the cli tool (#71)
* Discover refactoring, enhancements to the cli tool

* Discover tries to detect the type of the device from sysinfo response
* Discover.discover() returns an IP address keyed dictionary,
  values are initialized instances of the automatically detected device type.

* When no IP is given, autodetect all supported devices and print out their states
* When only IP but no type is given, autodetect type and make a call based on that information.
  * One can define --bulb or --plug to skip the detection.

* renamed pyHS100.py -> smartdevice.py

* SmartPlugException -> SmartDeviceException in comments

* fix mic_type check

* make time() return None on failure as we don't know which devices support getting the time and it's used in the cli tool

* hw_info: check if key exists before accessing it, add mic_mac and mic_type

* Check for mic_mac on mac, based on work by kdschloesser on issue #59

* make hound happy, __init__ on SmartDevice cannot error out so removing 'raises' documentation
2017-08-05 15:49:56 +02:00
Sean Gollschewsky
d7aade4e61 Add LB110 sysinfo (#75)
* Add LB110 sysinfo

* Linting.
2017-08-05 15:47:41 +02:00
Teemu R
10544004cc add @pass_dev to hsv, adjust ranges (#70)
* add @pass_dev to hsv command, it was always broken

* Hue goes up to 360, saturation and value are up to 100(%)
2017-08-03 22:13:56 +02:00
Georgi Kirichkov
b7a7fdbfaf Merge pull request #61 from rytilahti/master
Slight refactoring
2017-05-27 09:21:16 +03:00
Teemu Rytilahti
7457ad48f8 extract shared types (exceptions, enums), add module level doc, rename exception to be generic 2017-05-26 16:12:52 +02:00
Matt LeBrun
93d24281c6 Add check to ensure devices with lat/lon with _i suffix are supported (#54) (#56)
* Add check to ensure devices with lat/lon with `_i` suffix are supported (#54)

* Add .gitignore for posterity
2017-04-26 18:43:50 +02:00
Teemu R
09e8948790 generalize smartdevice class and add bulb support for the cli tool (#50)
Fixes #48 and #51. The basic functionality should work on all types of supported devices, for bulb specific commands it is currently necessary to specify ```--bulb```.
2017-04-24 19:28:22 +02:00
Teemu R
86f14642c8 Refactor and drop py2 support (#49)
* move is_off property to SmartDevice, implement is_on for bulb and use it

* refactor by moving smartbulb and smartplug to their own classes

* drop python2 compatibility, make flake8 happy

* travis: remove 2.7, add 3.6
2017-04-14 14:24:58 +02:00
Teemu R
c9662fcb7b add future requirement (#47)
bump the version & add future requirement
2017-04-08 01:58:20 +02:00
Teemu Rytilahti
23e51a8686 cli: display an error if no ip is given
also bump the version to 0.2.4.1 with this fix.
2017-03-26 03:22:18 +02:00
Teemu R
b1cc0fd3f6 Release 0.2.4 preparations (#43) 2017-03-25 23:04:32 +01:00
Teemu R
d253b55d41 Add new client tool (#42)
* Add new client tool

After installing the package pyhs100 command-line tool can be used
to control the plug.

See --help for its usage, most of the features for plugs are implemented,
some of the shared functionality works for bulbs too.

* Add discover command

* Delete old examples, the cli works as an example well enough
2017-03-20 19:03:19 +01:00
hexa-
900b5394f4 Merge pull request #41 from rytilahti/ignore_oserror_on_shutdown
Ignore OSError on socket.shutdown()
2017-03-19 17:15:40 +01:00
Teemu Rytilahti
9d3fbfa975 Ignore OSError on socket.shutdown()
This fixes #22 and obsoletes PR #23.
2017-03-19 15:56:38 +01:00
pete1450
72cbaa2839 set color temp to 0 when trying to change color (#36)
* set color temp to 0 when trying to change color

* changed tabs to spaces
2017-03-17 14:40:48 +01:00
Teemu R
09f915183b Add changelog & add .gitchangelog.rc (#28)
This commits adds .gitchangelog.rc for changelog generation.
To generate, simply run gitchangelog.
2017-03-17 14:38:58 +01:00