🏠🤖 Python API for TP-Link smarthome products
Go to file
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
pyHS100 Add new client tool (#42) 2017-03-20 19:03:19 +01:00
.gitchangelog.rc Add changelog & add .gitchangelog.rc (#28) 2017-03-17 14:38:58 +01:00
.hound.yml set up hound-ci 2016-12-04 03:54:29 +01:00
.travis.yml Refactor & add unittests for almost all functionality, add tox for running tests on py27 and py35 (#17) 2016-12-17 06:51:56 +08:00
CHANGELOG Add changelog & add .gitchangelog.rc (#28) 2017-03-17 14:38:58 +01:00
LICENSE Update LICENSE 2016-10-18 09:40:42 +08:00
README.md Add device discovery (#25) 2017-01-08 06:44:57 +08:00
requirements.txt Add new client tool (#42) 2017-03-20 19:03:19 +01:00
setup.py Add new client tool (#42) 2017-03-20 19:03:19 +01:00
tox.ini Add flake8 to tox, disable qa on pyHS100/__init__.py, fix py27 compatibility (#31) 2017-01-17 21:38:44 +08:00

pyHS100

Python Library to control TPLink Switch (HS100 / HS110)

Usage

For all available API functions run help(SmartPlug)

from pyHS100 import SmartPlug
from pprint import pformat as pf

plug = SmartPlug("192.168.250.186")
print("Alias, type and supported features: %s" % (plug.identify(),))
print("Hardware: %s" % pf(plug.hw_info))
print("Full sysinfo: %s" % pf(plug.get_sysinfo())) # this prints lots of information about the device

Time information

print("Current time: %s" % plug.time)
print("Timezone: %s" % plug.timezone)

Getting and setting the name

print("Alias: %s" % plug.alias)
plug.alias = "My New Smartplug"

State & switching

print("Current state: %s" % plug.state)
plug.turn_off()
plug.turn_on()

or

plug.state = "ON"
plug.state = "OFF"

Getting emeter status (on HS110)

print("Current consumption: %s" % plug.get_emeter_realtime())
print("Per day: %s" % plug.get_emeter_daily(year=2016, month=12))
print("Per month: %s" % plug.get_emeter_monthly(year=2016))

Switching the led

print("Current LED state: %s" % plug.led)
plug.led = False # turn off led
print("New LED state: %s" % plug.led)

Example

There is also a simple tool for testing connectivity in examples, to use:

python -m examples.cli <ip>

Discovering devices

python3 -m examples.discover