用于控制 Insteon PowerLinc 调制解调器的 Python API
项目描述
这是一个与 Insteon 调制解调器接口的 Python 包。它已经过测试,可与大多数基于 USB 或 RS-232 串行的设备一起使用,例如 2413U、 2412S、 2448A7和集线器型号 2242 和2245。其他模型尚未经过测试,但底层协议并未随着时间的推移发生太大变化,因此如果它与许多其他模型一起使用也就不足为奇了。如果您发现某件事取得了成功,请告诉我们。
这个insteonplm包的创建主要是为了支持家庭助理 自动化平台的 INSTEON 平台,但它的结构是通用的,也应该可用于其他应用程序。
要求
Python 3.5.3 或更高版本、3.6 或 3.7
基于 Posix 或 Windows 的系统
某种形式的 Insteon PLM 或 Hub
至少一台 Insteon 设备
安装
当然,您可以使用pip安装此软件包的最新版本。这将从 PyPI下载更新的版本并将其安装到您的主机。
pip install insteonplm
如果您想获取开发代码,您还可以克隆此 git 存储库并从本地源安装:
cd python-insteonplm pip install .
而且,正如您可能期望的那样,您可以通过使用实时存储库并编辑您心中的内容来过上开发人员的生活:
cd python-insteonplm pip install -e .
设备权限
您希望能够访问 PLM 的任何用户帐户都需要访问/dev中的 USB 或串行设备的权限。在 Linux 中,您可能想要执行以下操作:
sudo usermod -a -G dialout <username>
在 FreeBSD 中,它会是这样的:
sudo pw usermod <username> -G dialer
您可能会发现您必须注销并以该用户身份重新登录才能使更改对现有会话生效。
第一次开始
当模块启动时,它会读取 IM 的 All-Link 数据库以查找链接的设备。为了使该模块与设备通信,它必须链接到 IM。有关链接的帮助,请参阅下面的命令行界面部分。
在模块加载 All-Link 数据库后,它会查询每个设备以确定它是什么类型的设备。这可能需要相当长的时间(每个设备 5-15 秒)。一旦识别出设备,它就会将它们保存在 WORKDIR中,以便未来的启动更快。
目前,命令行工具存在一个问题,即找不到电池供电的设备,因为它们不响应设备信息请求。这将在未来的版本中得到解决。如果通过使用设备覆盖与Home Assistant一起使用,这不是问题。
工具
该软件包安装了一个消息监视器和一个命令行界面。
消息监控
您可以使用监控命令行工具监控流经您的 INSTEON 网络的消息。要调用监视器,请使用以下命令:
insteonplm_monitor --device /dev/ttyUSB0 --workdir /home/username
监视器的命令行选项是:
-h, --help show this help message and exit
--device DEVICE Path to PLM device
--verbose, -v Set logging level to verbose
--workdir WORKDIR Working directory for reading and saving device
information.
命令行界面
命令行工具创建一个交互式会话以允许在 INSTEON 设备上执行某些功能。要调用命令行工具,请使用以下命令:
`insteonplm_interactive --device /dev/ttyUSB0 --workdir /home/username`
交互式工具的命令行选项包括:
-h, --help show this help message and exit
--device DEVICE Path to PLM device
-v, --verbose Set logging level to verbose
--workdir WORKDIR Working directory for reading and saving device
information.
在命令行工具中使用帮助来获取可用命令的列表。当前可用命令的列表是:
- add_all_link Add an All-Link record to the IM and a device.
- add_device_override Add a device override to the IM.
- add_x10_device Add an X10 device to the IM
- connect Connect to the IM
- del_all_link Delete an all link record from the IM and a device
- exit Exit the tool
- help List available commands
- list_devices Print a list of the available devices
- load_aldb Read and load a device All-Link database
- on_off_test Test a device with simple on/off commands
- print_aldb Print the All-Link database for a device
- running_tasks List tasks running in the background
- set_device Set the IM device path
- set_log_level Set the log message display level
- set_workdir Set the WORKDIR to load and save device info
- write_aldb Write a record to the device All-Link database
!!!! BE CAREFUL WITH THIS COMMAND !!!!!
有关特定命令类型的帮助 help command_name。
已知的问题
您如何提供帮助
发展
首先,您可以通过分叉这个项目和编码来提供帮助。功能、错误修复、文档和示例代码都将极大地提高该项目的质量。
如果您希望看到将某个功能添加到项目中,但您认为自己无法完成这项工作,那么我可能很乐意以错误或错误的形式执行定向开发功能赏金。
测试、功能请求和问题识别
如果您急于某个功能,但它实际上对您来说不值钱,请在 Github 上打开一个问题,描述问题或限制。如果你不问,它永远不会发生
文档
请参阅我们的 Wiki部分以获取文档。此文档是有限的。如果您想推动这项工作,请发送一份简历和一份参考清单……老实说,我们会接受任何人。
请帮忙。已打开一个 问题,因此只需在此处发布您的兴趣。
学分
该软件包由 David McNett 编写。
汤姆哈里斯提供了重要更新
非常感谢Ryan Stanley在调试和开发方面提供的宝贵帮助。
有趣的链接
项目详情
insteonplm -0.16.8.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 96ce2d4bd77677ed188734d78886cfa2b65a4a562557511e525a3ae21105d3e9 |
|
| MD5 | c1a31741c8c5bf8612ddcd1f756fca2f |
|
| 布莱克2-256 | ddd5d8f30234d9b516df2236587faf0a37bab8dd5bd5674155de2d2537dbc3bd |