索尼bravia电视的Python遥控网关
sonybraviatv-remotecontrol的Python项目详细描述
索尼Bravia电视的Python遥控器
Author | Denis Machard d.machard@gmail.com |
License | MIT |
PyPI | https://pypi.org/project/sonybravia-remotecontrol/ |
这是一个Python远程控制网关索尼Bravia电视与最小但足够的基本控制。 此远程控制充当Simple IPAPI的websocket网关,以获得更高的反应性。 有关简单IP控制的更多详细信息https://pro-bravia.sony.net/develop/integrate/ssip/overview/index.html
目录
安装
pipinstallsonybraviatv_remotecontrol
启动遥控器
作为先决条件,请配置您的电视
启用远程设备控制
在[HOME] Settings > Network > Home network setup > Renderer > Renderer function > Enable [Default: Enable]
启用“简单IP控制”
在[HOME] Settings > Network > Home network setup > IP control > Simple IP control > Enable [Default: Disable]
之后,您可以启动遥控器,并提供索尼bravia电视的IP地址。在
^{pr2}$可用按钮
要与遥控器交互,需要使用websocket客户端和
将以下JSON命令发送到地址ws://<remotecontrol_ip>:8081
。在
电源开/关
{"button":"press_poweron"}//pressonpoweronbutton{"button":"press_poweroff"}//pressonpoweroffbutton
通道
{"button":"press_channel<id>"}//pressonchannel<1...XX>button
体积
{"button":"press_volup"}//pressonvolumeupbutton{"button":"press_voldown"}//pressonvolumedownbutton{"button":"press_mute"}//pressonmutebutton
电视导航
{"button":"press_up"}//pressonupbutton{"button":"press_down"}//pressondownbutton{"button":"press_left"}//pressonleftbutton{"button":"press_right"}//pressonrightbutton{"button":"press_back"}//pressonbackbutton{"button":"press_confirm"}//pressonconfirmbutton
HDMI选择
{"button":"press_hdmi<id>"}//pressonchannel<1..4>button
其它按钮
{"button":"press_netflix"}//pressonnetflixbutton{"button":"press_home"}//pressonhomebutton
Websocket客户端
基本演示
<html><head><title>RemoteControl demo</title><styletype="text/css">.buttons{font-size:1em;display:flex;justify-content:center;}.button{padding:2rem;border:mediumsolid;min-height:1em;min-width:1em;cursor:pointer;user-select:none;}</style></head><body><divclass="buttons"><divclass="poweron button">ON</div><divclass="poweroff button">OFF</div></div><script>varwebsocket=newWebSocket("ws://localhost:8081/");varpoweron=document.querySelector('.poweron')varpoweroff=document.querySelector('.poweroff')poweron.onclick=function(event){websocket.send(JSON.stringify({button:'press_poweron'}));}poweroff.onclick=function(event){websocket.send(JSON.stringify({button:'press_poweroff'}));}</script></body></html>
系统服务
Centos7系统服务文件示例
vim /etc/systemd/system/sonybraviatv_remotecontrol.service [Unit]Description=Sony Bravia TV remote control Service After=network.target [Service]ExecStart=/usr/local/bin/sonybraviatv_remotecontrol --desthost=10.0.0.200 Restart=on-abort Type=simple User=root [Install]WantedBy=multi-user.target
systemctl daemon-reload
systemctl start sonybraviatv_remotecontrol
systemctl status sonybraviatv_remotecontrol
systemctl enable sonybraviatv_remotecontrol
- 项目
标签: