问题描述
我正在尝试与Samsung智能电视进行通信,并且在互联网上发现它可以与Websocket配合使用。
GitHub上有一些Samsung smart TV API,但它们不适用于我的电视。显然,我有一个不太常见的电视型号。
当前,我陷入困境是因为当我使用两个不同的Websocket API做(或尝试做)相同的事情时,我没有相同的行为。
wscat
$ wscat -c wss://192.168.1.20:8002/api/v2/channels/samsung.remote.control?name=dGVzdA== -n --no-color
Connected (press CTRL+C to quit)
< {[...]"token":"11235326"[...]}
>
“我的电视”显示一个弹出窗口,要求我提供遥控器授权。然后我在终端中收到一个令牌,但是我不明白如何在bash中检索它。
Python API
>>> import websocket,ssl
>>> uri = 'wss://192.168.1.20:8002/api/v2/channels/samsung.remote.control?name=dGVzdA=='
>>> ws = websocket.create_connection(uri,sslopt={"cert_reqs": ssl.CERT_NONE})
我的电视上没有弹出窗口。
我尝试了使用有效负载的send
方法来降低电视的音量。
>>> payload = '{[working payload]}'
>>> ws.send(payload)
145
它回答我“ 145”,但是电视上什么也没做。
两个API
但是,如果我连接到wscat(在弹出窗口中选择授权),则可以立即使用Python API控制电视。即使python3控制台仍然回答我“ 145”,而未使用wscat给出的令牌¯\ _(ツ)_ /¯
这两种Websocket创建之间有区别吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)