跳转到主要内容

Tailwind车库门开启器的异步Python客户端。

项目描述

Python: Tailwind车库门开启器的异步客户端

GitHub Release Python Versions Project Stage Project Maintenance License

Build Status Code Coverage Quality Gate Status Open in Dev Containers

Sponsor Frenck via GitHub Sponsors

Support Frenck on Patreon

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功能。

Open in Dev Containers

此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

任何人免费获得此软件及其相关文档文件(“软件”)副本,均可自由处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向提供软件的人做同样的事情,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式引起的,无论是因软件或软件的使用或其他原因。

项目详细信息


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

gotailwind-0.2.4.tar.gz (17.6 kB 查看哈希值)

上传时间 源代码

构建分发

gotailwind-0.2.4-py3-none-any.whl (17.4 kB 查看哈希值)

上传时间 Python 3

由以下支持