点击蓝字
关注我们
本文为『瀚思彼岸』论坛技术文章,作者为bugensui大神,在此表示感谢!文章版权归原作者所有,侵权必究。
背景
一直有这种需求,就是家里某些重要通知,想实现多端通知(比如:邮件、微信、客厅的tts音响、客厅的安卓电视),比如洗手台漏水了,如果家里的电视开着的情况下,可以尝试把这个通知发送到这台电视上,家里如果有老人爱看电视,还是比较实用的。
前三种通知都好弄,就是电视不好弄,因为电视没有HA的APP,不好通知。网上搜索了很久,想到了一个简单粗暴的办法,就是国内的电视,基本上都是基于安卓,也基本上都能用adb命令,可以调用adb命令让电视打开指定的网页(web服务是电视系统自带的,不需要安装)。
如:am start -a android.intent.action.VIEW -d 'http://www.baidu.com'(这个是打开百度)
前提条件
1. 电视要开启开发者模式,能发adb命令。
2. 用Android TV集成把你的电视添加到HA里。
3. 我的是海信电视,效果如下。
操作方法
可以制作1个静态的html网页,放在HA的www文件夹下,也可以用我的,我是这样放的www/web/tvtongzhi.html,把我附件里的整个web文件夹放到www文件夹里即可,这样就可以访问http://您的HA的内网IP:8123/local/web/tvtongzhi.html?title=这里是通知标题&message=这里是通知内容,大家可以先用url的方式访问下,能不能正常打开。
打开HA的开发者工具—服务—androidtv.adb_command,使用这个服务,选择电视的实体,下面的内容填写adb命令:
am start -a android.intent.action.VIEW -d 'http://您的HA的内网IP:8123/local/web/tvtongzhi.html?title=这里是通知标题&message=这里是通知内容'
我的代码参考(如果检测到客厅的安卓tv是开启状态,就发送adb命令):
if:
- condition: state
entity_id: switch.tv
state: "on"
then:
- service: androidtv.adb_command
data:
command: >-
am start -a android.intent.action.VIEW -d
'http://换成内网IP:8123/local/web/tvtongzhi.html?title=这里是通知标题&message=这里是通知内容'
欲了解更多Home Assistant最新玩法和教程,请访问瀚思彼岸论坛(bbs.hassbian.com),同时欢迎关注本公众号:
▼ 请点击“阅读原文”到论坛与作者互动。