苹果手机原生遥控器控制安卓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令牌, 令牌取自上面创建的, 其他不变
  • 选择所有的Actionandroidtv.adb_command
  • 选择所有的deviceentity为自己的电视设备
  • 修改所有Data中"command":"修改部分", 替换成自己机器学习的代码, 注意按照Name对应修改

部署

修改完所有配置后点击右上角部署按钮,部署

手机控制

掏出苹果手机,打开家庭APP,点击添加配件-更多选项,正常会显示出你的电视设备,点击添加

右上角控制栏下滑,最右下角有一个遥控图标,点击,接下来应该就可以通过苹果手机自带的遥控器遥控安卓TV了

posted @ 2026-03-23 21:13  shiningonly  阅读(0)  评论(0)    收藏  举报