Tailwind车库门开启器的异步Python客户端。
项目描述
Python: Tailwind车库门开启器的异步客户端
Tailwind车库门开启器的异步Python客户端。
关于
此软件包允许您通过编程方式控制和管理Tailwind设备。它主要是为了允许第三方程序自动化Tailwind设备的行为。
此外,此软件包还包含一个CLI工具,可以独立使用,提供了一个命令行界面来控制和管理Tailwind设备。
已知兼容并经过测试的Tailwind设备
[!IMPORTANT] 此库要求您的Tailwind设备至少运行固件版本v10.10。
本包的开发得到了Tailwind慷慨赞助并提供硬件支持;感谢!❤️
安装
pip install gotailwind
如果您想使用CLI工具,请使用以下额外选项安装此包
pip install gotailwind[cli]
CLI使用
本库中提供的Tailwind CLI工具提供了本库提供的所有功能,但通过命令行进行。
CLI内置帮助,可以通过使用--help
来访问。
tailwind --help
在您的网络上扫描Tailwind设备
tailwind scan
获取设备的状态
tailwind status --host 192.168.1.123
开门
tailwind open --host 192.168.1.123
有关更多详细信息,请使用--help
标志访问CLI的内置帮助。
Python使用
在Python中使用此库
import asyncio
from gotailwind import Tailwind, TailwindDoorOperationCommand, TailwindDoorState
async def main() -> None:
"""Show example of programmatically control a Tailwind garage door."""
async with Tailwind(host="192.168.1.123", token="123456") as tailwind:
# Get the device status
status = await tailwind.status()
# Print some information
print(f"Device ID: {status.device_id}")
print(f"Number of doors: {status.number_of_doors}")
# Get the door object for the first door
door = await tailwind.door_status(door=0)
# Print current door status
print(f"Door 1 is currently: {door.state}")
# Change the door
if door.state == TailwindDoorState.OPEN:
door = await tailwind.operate(
door=0, operation=TailwindDoorOperationCommand.CLOSE
)
else:
door = await tailwind.operate(
door=0, operation=TailwindDoorOperationCommand.OPEN
)
# Print current door status
print(f"Door 1 is now: {door.state}")
if __name__ == "__main__":
asyncio.run(main())
变更日志与发布
此仓库使用GitHub的发布功能记录变更日志。日志的格式基于Keep a Changelog。
发布基于语义化版本控制,并使用MAJOR.MINOR.PATCH
格式。简而言之,版本号将根据以下情况进行增加
MAJOR
:不兼容或重大更改。MINOR
:向后兼容的新功能和增强。PATCH
:向后兼容的错误修复和包更新。
贡献
这是一个活跃的开源项目。我们始终欢迎那些想使用代码或为其做出贡献的人。
我们为我们的贡献指南设立了一个单独的文档。
感谢您的参与! :heart_eyes
设置开发环境
开始的最简单方法是在这里的GitHub上打开CodeSpace,或者使用Visual Studio Code的Dev Container功能。
此Python项目完全使用Poetry依赖管理器进行管理。但也依赖于NodeJS在开发期间进行某些检查。
您至少需要
- Python 3.11+
- Poetry
- NodeJS 20+(包括NPM)
安装所有包,包括所有开发需求
npm install
poetry install --extras cli
由于此存储库使用pre-commit框架,所有更改都会在每个提交时进行lint和测试。您可以使用以下命令手动运行所有检查和测试
poetry run pre-commit run --all-files
仅运行Python测试
poetry run pytest
作者与贡献者
此存储库的原始设置由Franck Nijhof完成。
要查看所有作者和贡献者的完整列表,请检查贡献者页面。
许可证
MIT许可证
版权所有 (c) 2023-2024 Franck Nijhof
任何人免费获得此软件及其相关文档文件(“软件”)副本,均可自由处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向提供软件的人做同样的事情,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式引起的,无论是因软件或软件的使用或其他原因。
项目详细信息
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。