Skip to main content

用于控制 Insteon PowerLinc 调制解调器的 Python API

项目描述

构建状态 GitHub 发布 派皮

这是一个与 Insteon 调制解调器接口的 Python 包。它已经过测试,可与大多数基于 USB 或 RS-232 串行的设备一起使用,例如 2413U2412S2448A7和集线器型号 22422245。其他模型尚未经过测试,但底层协议并未随着时间的推移发生太大变化,因此如果它与许多其他模型一起使用也就不足为奇了。如果您发现某件事取得了成功,请告诉我们。

这个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部分以获取文档。此文档是有限的。如果您想推动这项工作,请发送一份简历和一份参考清单……老实说,我们会接受任何人。

请帮忙。已打开一个 问题,因此只需在此处发布您的兴趣。

学分

项目详情


下载文件

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

源分布

insteonplm-0.16.8.tar.gz (102.3 kB 查看哈希

已上传 source