Homeassistant利用ADB安卓盒子接入HOMEKIT

前言

家里的N1盒子、海美迪盒子都没有红外,没有买蓝牙遥控器,2.4G遥控的效果也不理想,之前只能用悟空遥控来遥控,但是虫子大神的接入HASS的插件已经无法使用,并且每次想遥控电视的时候都要打开悟空APP,悟空APP广告也很多,所以一直寻找更为便捷的遥控方式,后来发现HA自带的androidtv组件就可以发送ADB命令,但是延迟很大,一直没有拿来使用,近期仔细看了一下官方文档找到了延迟的原因,目前通过HA的ADB集成发送遥控指令,利用nodered的redmatic-homekit节点中转,homekit的TV组件做前端,可以开关盒子电源,快捷选择应用,跟appletv遥控一样遥控,效果还不错,特此分享给大家。

使用效果

r7EE7D.md.jpg

B站视频传送门

操作步骤

一、打开安卓电视或盒子的ADB调试模式,由于盒子类型太多,此处请自行百度,不细表;
二、在configurantion.yaml文件内插入以下内容并重启,host为电视/盒子的IP地址;

media_player:
  - platform: androidtv
    name: Android TV
    device_class: androidtv
    host: 192.168.x.x

三、重启HA后就可以发现media_player.android_tv这个硬件了,可以到服务中测试发送adb命令,具体命令可以到github上查看;

rhW2SH.png

四、通过ADB发送UP,DOWN,HOME等命令时,设备响应速度会很慢,所以需要Android
TV集成的androidtv.learn_sendevent服务来获取sendevent命令,执行这个服务后按下原来遥控器的按键,会像HA里边学习红外码一样获取到一串sendevent命令,把第三步里边的’HOME’命令替换为sendevent命令,延迟就会小到可以忍受了;

r7CfjU.png

rhWyFO.png

五、media_player.select_source也是Android
TV集成里的一个服务,可以直接打开应用;

rhW6YD.md.png

六、以上遥控服务已经调通,后续可以在lovelace里添加按键面板或遥控器面板,个人计划是前端用homekit,自动化用nodered,所以HA的前端设置本篇不再展开,继续分享一下将遥控接入到homekit,由于HA的homekit集成暂不支持模拟TV硬件,所以需要通过nodered的redmatic-homekit节点来转,我的nodered流是拿了IOB论坛一位大佬的流修改来的,大佬的帖子不知道什么原因搜索不到了,贴两个差不多的帖子供大家参考,具体中间的转换函数如何写的也不太懂,就不献丑了,直接分享我的流了, 需要的可以到我的个人网站下载直接直接导入使用

r7iof1.md.png

https://bbs.hassbian.com/thread-5586-1-1.html

https://bbs.iobroker.cn/t/topic/1238

哦吼 收藏了 等我换了电视就搞

赞 非常不错,可惜小米电视没法开机自启adb

大佬,你这流斐讯n1通用吗

大佬,你这流斐讯n1通用吗

我这个流是控制海美迪盒子的,APP切换的那个指令应该是通用的,sendevent命令不太确定,感觉sendevent命令是不是每个厂家自己设定的?学习的话也很简单,跟红外码一样学

回盐巴大佬,我这个流是控制海美迪盒子的,APP切换的那个指令应该是通用的,sendevent命令不太确定,感觉sendevent命令是不是每个厂家自己设定的?学习的话也很简单,跟红外码一样学

我知道可以将sendevent命令写成一个script,但是怎么将sendevent替换media实体中原本按钮的adb命令呢?

哦吼 收藏了 等我换了电视就搞

大佬网站打不开啊