通过 TCP/IP 连接远程控制 SFR 电视电源
项目描述
# sfrtvctl
python 库,也可以在命令行中使用。
总结
==========
命令由 websocket 在端口 7682 上使用子协议 lws-bidirectional-protocol 发送。
根据我们发送的命令类型,有多种数据结构。
发送命令:
经典远程键(音量、电源、确定、返回、暂停、播放、前进、倒带、方向键、数字键盘)
的 BUTTONEVENT 结构 ZAP 结构在 1 个请求中发送通道号。
APP 结构启动解码器的特殊功能(马赛克、电视指南、vod、重播、录制、媒体中心、设置)
SETVOLUME 结构设置音量
KEYBOARD 结构在输入字段内输入时
信息命令(尚未实现):
GETINFO 和 GETVERSION
安装
============
可以使用 `pip <(https://pip.pypa.io/>`_:
::
#安装 sfrtvctl pip install websocket-client
# pip install sfrtvctl
或者,您可以克隆 Git 存储库并运行:
::
# python setup.py install
无需安装即可使用命令行工具:
::
$ python -m sfrtvctl
BUTTONEVENT
==== ========
BUTTONEVENT 采用第二个参数来指定按下的键,如果您指定 NUM,则采用第三个参数。
此处的表恢复 BUTTONEVENT 的每个可能操作:
| 按键(第二个参数)| 说明 |
| ------------------------------ | ------------------------------------- |
| VUP | 提高音量 |
| 电压下降 | 降低音量 |
| 右 | 多向权利|
| 左 | 多向左 |
| 上 | 多向向上 |
| 向下 | 多向向下 |
| 小狗 | 编程 |
| 下载 | 程序下降 |
| 信息 | 当前节目信息 |
| 返回 | 返回键 |
| 好的 | 确定键 |
| 号码 | 一个数字键。为数字取第三个参数 |
| 游戏暂停 | 播放或暂停键 |
| 前进 | 快进键 |
| 倒带 | 快退键 |
| 静音 | 静音键 |
| 电源 | 电源开关键 |
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 BUTTONEVENT VUP``` # 增加音量
```sfrtvctl --host 192.168.1.100 BUTTONEVENT NUMBER 1``` # type 1 on num pad(如果看电视会改变频道)
ZAP
====
ZAP 命令很简单,它只需要一个数字作为第二个参数。
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 ZAP 180``` # 将转到频道 180
APP
===
| 命令 | 说明 |
| ------------- | ---------------------------------- |
| 马赛克 | 马赛克 |
| 电视指南 | 导视电视 |
| 视频点播 | SFR 播放 |
| 重播 | 电视重播 |
| 录音 | 列出录制的节目 |
| 媒体中心 | 媒体中心(usb、网络媒体)|
| 设置 | 解码器设置 |
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 MOSAIC`` # 将显示马赛克
SETVOLUME
==========
SETVOLUME 命令很简单,它只需要一个介于 1 和 100 之间的数字作为设置音量的第二个参数。
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 SETVOLUME 40``` # 将音量设置为 40
KEYBOARD
=========
将发送键盘数据。这个命令有一个特殊的字符来开始搜索,你可以通过传递 SEARCH 作为第二个参数来发送它。要开始输入,您必须先发送 VALUE,然后再发送第三个参数。
| 命令 | 说明 |
| ------------- | ---------------------------------------------------- |
| 搜索 | 开始搜索 |
| 价值 | 在第三个参数中发送键盘键传递 |
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 SEARCH``` # 将开始搜索
``sfrtvctl --host 192.168.1.100 VALUE a``` # 将在一个输入字段
库使用
=============
sfrtvctl 可以作为 Python 3 库导入:
.. code-block:: python
import sfrtvctl
类“远程”的上下文管理远程控制器对象可以
使用 ``with`` 语句构造:
.. code-block:: python
with sfrtvctl.Remote(config) as remote:
# 使用远程对象
构造函数将配置字典作为参数。
必须指定所有配置项。
| 钥匙 | 类型 | 说明 |
|---------|--------|------------------------------ ---------------|
| 主持人 | 字符串 | 解码器的主机名或 IP 地址。|
| 港口| 整数 | TCP 端口号。(默认:``7682``)|
| 超时 | 整数 | 以秒为单位的超时。``0`` 表示没有超时。|
``Remote`` 对象非常简单,你只需要 ``control(key, arg1, arg2)``
方法。有关可以传递的命令的更多详细信息,请参阅上面的表格。
您可以使用同一个“远程”对象多次调用“控制” 。
退出 with 语句时连接会自动关闭。
python 库,也可以在命令行中使用。
总结
==========
命令由 websocket 在端口 7682 上使用子协议 lws-bidirectional-protocol 发送。
根据我们发送的命令类型,有多种数据结构。
发送命令:
经典远程键(音量、电源、确定、返回、暂停、播放、前进、倒带、方向键、数字键盘)
的 BUTTONEVENT 结构 ZAP 结构在 1 个请求中发送通道号。
APP 结构启动解码器的特殊功能(马赛克、电视指南、vod、重播、录制、媒体中心、设置)
SETVOLUME 结构设置音量
KEYBOARD 结构在输入字段内输入时
信息命令(尚未实现):
GETINFO 和 GETVERSION
安装
============
可以使用 `pip <(https://pip.pypa.io/>`_:
::
#安装 sfrtvctl pip install websocket-client
# pip install sfrtvctl
或者,您可以克隆 Git 存储库并运行:
::
# python setup.py install
无需安装即可使用命令行工具:
::
$ python -m sfrtvctl
BUTTONEVENT
==== ========
BUTTONEVENT 采用第二个参数来指定按下的键,如果您指定 NUM,则采用第三个参数。
此处的表恢复 BUTTONEVENT 的每个可能操作:
| 按键(第二个参数)| 说明 |
| ------------------------------ | ------------------------------------- |
| VUP | 提高音量 |
| 电压下降 | 降低音量 |
| 右 | 多向权利|
| 左 | 多向左 |
| 上 | 多向向上 |
| 向下 | 多向向下 |
| 小狗 | 编程 |
| 下载 | 程序下降 |
| 信息 | 当前节目信息 |
| 返回 | 返回键 |
| 好的 | 确定键 |
| 号码 | 一个数字键。为数字取第三个参数 |
| 游戏暂停 | 播放或暂停键 |
| 前进 | 快进键 |
| 倒带 | 快退键 |
| 静音 | 静音键 |
| 电源 | 电源开关键 |
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 BUTTONEVENT VUP``` # 增加音量
```sfrtvctl --host 192.168.1.100 BUTTONEVENT NUMBER 1``` # type 1 on num pad(如果看电视会改变频道)
ZAP
====
ZAP 命令很简单,它只需要一个数字作为第二个参数。
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 ZAP 180``` # 将转到频道 180
APP
===
| 命令 | 说明 |
| ------------- | ---------------------------------- |
| 马赛克 | 马赛克 |
| 电视指南 | 导视电视 |
| 视频点播 | SFR 播放 |
| 重播 | 电视重播 |
| 录音 | 列出录制的节目 |
| 媒体中心 | 媒体中心(usb、网络媒体)|
| 设置 | 解码器设置 |
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 MOSAIC`` # 将显示马赛克
SETVOLUME
==========
SETVOLUME 命令很简单,它只需要一个介于 1 和 100 之间的数字作为设置音量的第二个参数。
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 SETVOLUME 40``` # 将音量设置为 40
KEYBOARD
=========
将发送键盘数据。这个命令有一个特殊的字符来开始搜索,你可以通过传递 SEARCH 作为第二个参数来发送它。要开始输入,您必须先发送 VALUE,然后再发送第三个参数。
| 命令 | 说明 |
| ------------- | ---------------------------------------------------- |
| 搜索 | 开始搜索 |
| 价值 | 在第三个参数中发送键盘键传递 |
在命令行模式下,这里是一个命令示例:
```sfrtvctl --host 192.168.1.100 SEARCH``` # 将开始搜索
``sfrtvctl --host 192.168.1.100 VALUE a``` # 将在一个输入字段
库使用
=============
sfrtvctl 可以作为 Python 3 库导入:
.. code-block:: python
import sfrtvctl
类“远程”的上下文管理远程控制器对象可以
使用 ``with`` 语句构造:
.. code-block:: python
with sfrtvctl.Remote(config) as remote:
# 使用远程对象
构造函数将配置字典作为参数。
必须指定所有配置项。
| 钥匙 | 类型 | 说明 |
|---------|--------|------------------------------ ---------------|
| 主持人 | 字符串 | 解码器的主机名或 IP 地址。|
| 港口| 整数 | TCP 端口号。(默认:``7682``)|
| 超时 | 整数 | 以秒为单位的超时。``0`` 表示没有超时。|
``Remote`` 对象非常简单,你只需要 ``control(key, arg1, arg2)``
方法。有关可以传递的命令的更多详细信息,请参阅上面的表格。
您可以使用同一个“远程”对象多次调用“控制” 。
退出 with 语句时连接会自动关闭。