索尼bravia电视的Python遥控网关

sonybraviatv-remotecontrol的Python项目详细描述


索尼Bravia电视的Python遥控器

{1}$ License: MITPyPI - Python version supported

AuthorDenis Machard d.machard@gmail.com
LicenseMIT
PyPIhttps://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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SUN次要代码309含义   java避免为空元素生成XML自关闭标记,并生成自定义的<XML>开始标记   java使用json和restful将数组数据从本地sqlite数据库插入SQL Server   java Spring Boot 1.5.9字符编码问题   LInkedIn讨论中的java 401错误   位图Java:检查多个位向量/位集是否相交的最快方法?   macos如何让Java应用程序以图标出现在Mac OS X dock中   java如何删除netbeans中的@SuppressWarnings(“未使用的”)?   apachestorm中的java自定义序列化   java可以退出代码还是应该终止main?   递归如何在Java中递归地绘制简单的线条?   unicode在Java中确定特定字体是否可以呈现特定字符   打开并阅读带有Selenium/Katalon(Java)特定标题的电子邮件文本(来自Gmail)