苹果手机原生遥控器控制安卓TV
苹果手机原生遥控器控制安卓TV
实现原理:通过homeassistant搭配nodered控制开启ADB调试的安卓电视并通过相关插件接入到homekit
原文: 苹果手机原生遥控器控制安卓TV - shining博客
安卓TV开启ADB调试
安卓tv开启ADB调试网上方法有很多,自行百度,这里不再赘述,可以看一下我提供的参考链接
因为我是海信vidda的, 这里推荐一个vidda开启ADB的参考链接, 其他设备可以自行搜索
安装及配置homeassistant和node-red
我这里用的N1盒子并刷入的istoreos系统,通过docker方式安装
homeassistant
安装
在istore应用商店中搜索homeassistant并安装
点击打开,再次安装
浏览器输入http://你的N1盒子ip:8123打开ha界面, 信息随便填
配置
填完后依次点击设置-设备与服务-添加集成, 搜索Android Debug Bridge并添加
去路由器后台找到你的电视的ip地址, 最好顺便改成静态ip, 防止一段时间后ip变化无法控制到设备
在插件中填入ip地址, 其他默认
配置完后可以去开发者工具-动作里面通过ADB命令控制一下电视是否有反应, 如有, 电视调通
机器学习
按照上一步ADB测试的方式, 学习动作代码
- 动作选成学习发送事件
- 选择设备
- 注意: 每点击一下执行动作, 就要在8秒内按下遥控器的一个按键, 等待一段时间后, 通知栏会弹出学习的代码
复制冒号后引号内部分, 记录为这个按键对应的机器码
依次学习按键上的相关代码(上、下、左、右、返回、ok、菜单),记录保存
创建令牌
home assistant主界面依次点击左下角用户名-安全-最底下创建令牌, 令牌只能看到一次, 记录好
node-red
因选择docker方式安装homeassistant, 无加载项商店,所以只能以docker方式安装node-red并通过相关插件与ha互通
docker run -d \
-p 1880:1880 \
-v /mnt/mydisk/tools/nodered/data:/data \
-e TZ=Asia/Shanghai \
--restart=unless-stopped \
--name nodered \
--network host \
nodered/node-red
要添加--network host以确保手机可以搜索到设备
安装完毕后浏览器输入http://你的N1盒子ip:1880进入node-red界面
安装插件
点击右上角三条横-节点管理-安装, 搜索并依次安装两个插件: node-red-contrib-home-assistant-websocket node-red-contrib-homekit-bridged
至此插件安装完成
导入节点
网上有很多参考节点, 具体转换函数我也不懂, 这里直接上传一个我自己用的, 可以参考
里面的 ActiveIdentifier和 Set up inputs是手机控制直接打开软件的, 不是很好用, 没有这方面需求的可以和我一样删了, 如有需要, 可参考链接
修改节点
双击编辑所有蓝色节点
- 修改所有的homeassistant, 点击右边小笔图标, 填入自己homeassistant的ip和令牌, 令牌取自上面创建的, 其他不变
- 选择所有的Action 为 androidtv.adb_command
- 选择所有的device或entity为自己的电视设备
- 修改所有Data中"command":"修改部分", 替换成自己机器学习的代码, 注意按照Name对应修改
部署
修改完所有配置后点击右上角部署按钮,部署
手机控制
掏出苹果手机,打开家庭APP,点击添加配件-更多选项,正常会显示出你的电视设备,点击添加
右上角控制栏下滑,最右下角有一个遥控图标,点击,接下来应该就可以通过苹果手机自带的遥控器遥控安卓TV了

浙公网安备 33010602011771号