本帖最后由 潇洒哥er 于 2018-5-15 10:31 编辑
前天上车的T1免费车刚到货,到手马上刷了精简的固件再加上谷歌GMS包,从此可以无广告干扰地畅快油管了。但当安装到电视上准备用博联学习T1的遥控时傻眼了,原来T1的遥控是蓝牙的。虽然说只有上方两个电源键是红外的,但实际上博联学习到的红外码并不能实际操作盒子。我了个去!!!
正纳闷要怎么通过HA控制 T1盒子时突然想到斐讯有个遥控器APP可以直接手机控制,虽然 UI很丑,但这玩意我也只安装一次以后就不用了。
打开斐讯遥控器后捉包分析,找出了局域网上控制 盒子的 HTTP API ,分享出来。有需要的直接拿走
有的人觉得为啥要用HA模拟 盒子遥控啊,多麻烦啊,不如直接按来得快。事实上我也只是取个T1的关机指令,因为要配合我的HA自动化操作。
发送按钮指令接口(两个):
一、发送按键命令
URL:http://T1的IP:8080/v1/keyevent (发送按钮指令)
方式:POST
参数内容:
{"keycode":按键代码,"longclick":false}
按键代码列表:
- 上:19
- 下:20
- 左:21
- 右:22
- 返回:4
- 音量加:24
- 音量减:25
- 主界面:3
- 菜单:82
- 确认键:23
- 电源:26
举例:模拟T1遥控器的上方向键
POST {"keycode":19,"longclick":false} 的json数据给 http://T1的IP:8080/v1/keyevent
1、用curl模拟提交:
curl 'http://T1的IP:8080/v1/keyevent' -H 'Content-Type: application/json' -d '{"keycode":19,"longclick":false}'
本来在HA中可以使用 shell_command 来执行命令行,但是我发现这种带有json的数据来构建的curl 命令行在ha里面怎么样都失败。
2、ha的 rest_command 组件执行
官方查了资料后发现有一个叫 rest_command 的组件,这个组件是专门用来调用http rest api的 示例如下
rest_command:
phict1_up:
method: POST
url: 'http://T1的IP:8080/v1/keyevent'
headers:
content-type: application/json
payload: '{"keycode":19,"longclick":false}'
自动化调用:
action:
service: rest_command.phict1_up
二、打开盒子设置界面
URL: http://T1的IP:8080/v1/action (打开设置界面)
方式:POS
参数内容:
{"action":"setting"}
调用方法如上
发现这个rest_command后我感觉发现新大陆了,以前调用restful api都一直用curl 的,现在有直接的组件支持更完美。我已经在意淫着通过ha调用我N多的api了。
|