用于TPLink Kasa Smarthome设备的Python API
python-kasa的Python项目详细描述
Python
pythonkasa是一个python库,用于使用asyncio控制TPLink智能家居设备(插头、墙壁开关、电源板和灯泡)。 这个项目是一个由维护者组成的pyHS100项目的分支。在
入门
您可以使用pip安装最新版本。直到
pip install python-kasa --pre
或者,可以克隆此存储库并使用poether安装开发版本:
^{pr2}$发现设备
安装后,可以使用kasa discover
或不带任何参数调用kasa
来发现设备。在
$ kasa
No --bulb nor --plug given, discovering..
Discovering devices for 3 seconds
== My Smart Plug - HS110(EU) ==
Device state: ON
IP address: 192.168.x.x
LED state: False
On since: 2017-03-26 18:29:17.242219
== Generic information ==
Time: 1970-06-22 02:39:41
Hardware: 1.0
Software: 1.0.8 Build 151101 Rel.24452
MAC (rssi): 50:C7:BF:XX:XX:XX (-77)
Location: {'latitude': XXXX, 'longitude': XXXX}
== Emeter ==
Current state: {'total': 133.082, 'power': 100.418681, 'current': 0.510967, 'voltage': 225.600477}
使用kasa --help
获取所有可用命令的列表,或者使用consult the documentation。在
基本控制
所有设备都支持多种常用命令,包括:
state
返回状态信息on
和{}用于打开或关闭设备 emeter
(如适用)返回能耗信息sysinfo
返回原始系统信息
电能表
不向emeter
命令传递任何选项将返回当前消耗。
可能的选项包括--year
和--month
来检索历史状态,
用--erase
重置计数器。在
$ kasa emeter
== Emeter ==
Current state: {'total': 133.105, 'power': 108.223577, 'current': 0.54463, 'voltage': 225.296283}
灯泡特定命令
目前,根据设备的不同,支持设置亮度、色温和颜色(以HSV为单位)。
这些命令很简单,所以请随时查看--help
以了解如何使用它们。在
库的使用
您可以在the API documentation中找到几个代码示例。在
贡献
欢迎投稿!为了简化流程,我们正在利用自动检查和测试贡献。在
建立开发环境
要开始,只需克隆此存储库并初始化开发环境。
我们使用poetry进行依赖关系管理,因此在克隆存储库之后,只需执行
poetry install
它将安装所有必需的包并为您创建一个虚拟环境。在
代码样式检查
我们使用几个工具来自动检查所有的贡献。验证所有内容格式是否正确的最简单方法
在创建pull请求之前,考虑通过执行pre-commit install
激活预提交钩子。
这将确保在执行提交时检查通过。在
也可以通过运行tox -e lint
来执行检查,或者运行tox
来执行测试。在
分析网络捕获
添加对新设备的支持或改进现有设备的最简单方法是捕获移动应用程序和设备之间的流量。
捕获流量后,您可以使用softScheck's wireshark dissector
或者包含在devtools
目录中的parse_pcap.py
脚本。在
支持的设备
插头
- 高铁100
- HS103
- HS105
- HS107
- 高铁110
电源板
- 高铁300
- KP303
墙壁开关
- 高铁200
- 高铁210
- HS220
灯泡
- 磅100
- LB110型
- 磅120
- LB130型
- LB230型
- KL60型
- KL110
- KL120
- KL130型
灯条
- KL430
贡献(无论是添加缺失的功能、修复错误还是改进文档)都是非常受欢迎的,请随时提交请求!
资源
- softScheck's github contains lot of information and wireshark dissector
- https://github.com/plasticrake/tplink-smarthome-simulator
- Unofficial API documentation
- 项目
标签: