IKEA Trådfri/Tradfri API。使用Python控制和观察您的灯光。
项目描述
Python包,用于与IKEA Trådfri(Tradfri)ZigBee网关通信,该网关与ZigBee灯链产品兼容。通过使用此库,您可以与网关通信并控制IKEA的灯光、墙壁插座和其他外围设备。
此库是严格类型。
一些功能包括
-
网关
- 获取网关信息,列出连接到网关的所有设备,以及重启和重置网关
-
任何已连接的设备或组
- 观察状态,并在状态改变时接收通知
-
灯光
- 列出所有灯光,获取和控制灯光的属性(名称、状态、色温、亮度等级等)
-
墙壁插座
- 列出所有墙壁插座,并控制墙壁插座
-
空气净化器
- 列出所有净化器,控制风扇等级,并获取空气质量等级
-
窗帘
- 列出所有窗帘,控制遮盖等级,并获取电池等级
-
智能任务
- 列出智能任务(唤醒、开关和不在家)及其属性
- 修改智能任务中的值(其中一些功能在应用中尚未提供)
目录
安装
开始使用此库的最简单方法是运行VS Code在线版,或使用包含的VS Code容器化开发环境本地安装。
对于其他安装方法,您可能需要在安装时使用超级用户权限(sudo)才能使某些命令生效。
要在同步应用程序中使用此库,您首先需要使用libcoap安装脚本此脚本。使用examples/example_sync.py进行测试。
对于异步应用程序,您需要安装pytradfri[async]
,例如使用requirements文件:pip install pytradfri[async]
。请注意,在慢速设备上安装可能需要相当长的时间。使用examples/example_async.py进行测试。
安全最佳实践是不要永久存储在网关上打印的安全代码到您的应用程序中。请始终在与网关通信时使用PSK。
验证设备兼容性
设备 | 版本 |
---|---|
IKEA网关(E1526) | 1.19.32 |
TRADFRI灯泡 E14 WS opal 400lm | 1.2.217 |
TRADFRI灯泡 E14 WS 470lm | 2.3.087 |
TRADFRI灯泡 E27 WS opal 980lm | 2.3.087 |
TRADFRI灯泡 E27 W opal 1000lm | 2.3.086 |
TRADFRI遥控器 | 2.3.014 |
TRADFRI运动传感器 | 1.2.214 |
TRADFRI墙壁插座 | 2.0.022 |
Starkvind空气净化器 | 1.1.001 |
独立使用(命令行界面)
如果您想在命令行界面中独立测试此库
$ python3 -i -m pytradfri IP
其中IP是网关的IP地址。
首次运行pytradfri时,您将需要输入在IKEA网关背面找到的“安全代码”。
独立提示符中命令的示例
列出所有灯光
lights
将灯光列表中第1项的亮度设置为50
api(lights[1].light_control.set_dimmer(50))
观察灯光的变化
def change_listener(device):
print(device.name + " is now " + str(device.light_control.lights[0].state))
api(lights[0].observe(change_listener))
在您的Python平台上实现
请参阅示例文件。
支持Docker
有一个Docker脚本可用于启动开发环境。运行./script/dev_docker
,您将构建并启动一个既适用于同步又适用于异步的容器。启动后,按照上述说明测试库的独立使用。
Docker镜像的工作目录是/usr/src/app
。此存储库的检出版本添加到那里,并作为Python依赖项安装,以便于开发和测试。当您想从pip使用最新稳定版本时,您只需更改到另一个工作目录。
已知问题
我们了解到一些用户在使用网关时遇到了问题。根据一些轶事证据,发送大量请求(垃圾邮件)到网关,或不稳定的网络连接可能是罪魁祸首。作为第一种解决方案,请尝试限制请求数量,并将网关移动到网络中运行pytradfri的设备附近。除此之外,很遗憾,目前该项目无法做任何事情来支持或解决这些问题。随着项目的发展,我们将确保项目保持最新。
贡献
我们鼓励对该库做出贡献。请确保贡献符合以下要求
- 您的贡献包含类型注解。这是一个严格类型化的库:除非新贡献包含类型注解,否则将不会合并。
- 您的贡献包含测试。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
pytradfri-13.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c6677b5f2189518a2ed83b5d3aa92dce5fc4cfdbba530904fbebf2c6aee93411 |
|
MD5 | 05f72d7cc65e105fc905619b88f7ef7b |
|
BLAKE2b-256 | 48e3f610746c4a0a7f78c117168d5fa14a7771b9e050d1076a977ff22785dd74 |
pytradfri-13.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cab76c588a5b5a79b7705ab6192cad73843012de28d20cca01c172d3fec38372 |
|
MD5 | 079b2d06ef764c49ef94a2a378079b0e |
|
BLAKE2b-256 | 4a6d1106a4ea0939f8753b393c6b993085eb1241528e2f627ef290189039d3fb |