通过telnet控制先锋vsx avrs的python库
pyoneer-vsx的Python项目详细描述
pyoneer_vsx
这是一个python包,用于通过this specification中概述的telnet命令与先锋接收器(主要是vsx系列)交互。
这个包主要是为与Home Assistant一起使用而创建的,用于支持不与当前实现一起工作的接收器,以及从Home助手中提取所有先锋特定代码,并通过asyncio
切换到使用持久连接。
这个包基于^{
支持的功能
当前支持:
- 电源:开/关
- 体积:0-100%
- 静音:开/关
- 输入选择
该规范概述了更多的功能,包括收听模式、音调控制、多区域电源/输入选择等,但就我的目的而言,我所需要的是以上的基础知识。
更新事件
因为我们与接收器保持着持久的连接,所以每次对接收器进行更改时,我们都会接收事件,无论是通过我们发送的命令,还是通过一个人与设备本身的控件进行物理交互。
出于这个原因,我们只在获得这些事件时更新内部状态,而不是在最初向接收器发送命令时更新。
设置
软件包安装
您可以使用pip
:
pip3 install pyoneer-vsx
或者克隆repo并从源代码安装/运行它。
接收器
将接收器连接到网络,并通过接收器本身的System Setup > Network Setup
菜单或通过在路由器上为其分配固定地址来确保其具有静态IP地址。
还要确保启用Network Standby
功能(也可以在Network Setup
菜单中找到),这样即使接收器关机,我们也可以连接到它。
测试
我专门用vsx-822和vsx-1121测试过这个,但是任何其他的先锋vsx系列接收器(可能还有其他的)都应该可以工作。
如果下载代码,您可以运行以下命令,根据需要替换IP和端口:
python3 test_harness.py --host IP_ADDRESS --port PORT
这将尝试连接到接收器,打开它,选择几个不同的输入,然后关闭它,所有这些都需要非常详细的日志记录。最后,你的接收器应该关闭,当你打开它时,它应该设置为蓝光/bd输入。
注意事项
由于上述持久连接,使用此软件包将阻止任何其他应用程序/服务(如iOS或Android控制应用程序)连接到接收器。