* Fix bug that changed brightness at each hsv update
The HSV setter should accept a percentage for the brightness
value but actually assumed the brightness to be in absolute values
between 1 and 255.
This resulted in brightness reductions at each HSV update, in
steps of 100% -> 100/255=39% -> 39/255=15% -> ... (see also
https://github.com/home-assistant/home-assistant/issues/15582,
where I originally reported this bug).
* Modify HSV property to return brightness in percent
Switch from reported brightness values of 1..255 to percentage
values, for consistency with the apidoc and 8761dd8.
* Add checks and tests for the hsv setter
- make sure that new (hue, saturation, brightness) values are
within their valid ranges (0..255, 0..100, 0..100) and raise
SmartDeviceException if they are not
- add test function for the hsv setter
* Add support for new-style emeter
This commit adds a straightforward dict-extending container,
which converts between the old and new keys of the get_emeter_realtime()
Furthermore the unit tests are converted to base on HS100
instead of HS110.
This is the first step to fix#103, other emeter-using functionality
has not yet been converted, only getting the current consumption.
* fix a couple of linting issues
* Convert new-style emeter values also for get_emeter_daily() and get_emeter_monthly()
* Adds a new 'kwh' parameter for those calls, which defaults to True
* This changes the behavior of bulbs emeter reporting, use False if you prefer the preciser values
* 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
* 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
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```.
* 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