主要观点:作者搬进新家,希望将各种应用整合到 Home Assistant 中,因无 Roth Touchline SL 系统的集成,于是编写了 pytouchlinesl 库。
关键信息:
- 新家有太阳能板、空气源热泵和带互联网连接的设备。
- 作者运行 Home Assistant 并编写自定义集成来控制地板采暖和太阳能逆变器。
- Roth Touchline SL 系统的移动应用和在线门户可交互,其还提供 API,但文档与实际行为有差异。
- 作者设计的 pytouchlinesl 库需满足基本功能,如认证、获取模块等。
- 介绍了用于项目的 Python 工具/库,如 uv、pydantic、ruff。
- 实现了 pytouchlinesl 库,包括客户端实现和缓存机制。
- 测试采用抽象基类和假 API 后端,CI 用 Github Actions 进行代码检查和测试,发布通过 Trusted Publisher 到 PyPI。
- 为在 NixOS 上方便打包,向 nixpkgs 提交了包含 pytouchlinesl 的 PR。
重要细节: - Touchline SL 系统中,模块包含多个区域,可设置温度和安排日程。
- uv 可处理 Python 版本管理等问题,ruff 用于代码检查和格式化。
- 缓存在 Module 类中实现,通过 _raw_data 和 _last_fetched 属性控制。
- 测试中用 fixture 数据和 fake API 后端,避免传统 mocking。
- CI 流水线用 ruff 检查代码,uv 运行测试。
- 发布到 PyPI 采用 Trusted Publisher 方式,无需 API 令牌。
- nixpkgs 中的 pytouchlinesl 推导式较为紧凑。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。