一直有这种需求,就是家里某些重要通知,想实现多端通知(比如:邮件,微信,客厅的tts音响,客厅的安卓电视),比如洗手台漏水了,如果家里的电视开着的情况下,可以尝试把这个通知发送到这台电视上,家里如果有老人爱看电视,还是比较实用。前三种通知都好弄,就是电视不好弄,因为电视没有ha的app,不好通知,网上搜索了很久,想到了1个简单粗暴的办法,就是国内的电视,基本上都是基于安卓,也基本上都能用adb命令,可以调用adb命令让电视打开指定的网页(web服务一般是电视系统自带的,不需要安装,如果不成功,可以在电视上随便安装个浏览器再试试)。如:am start -a android.intent.action.VIEW -d 'http://www.baidu.com'(这个是打开百度)
前提条件:1,电视要开启开发者模式,能发adb命令,2,用Android TV集成把你的电视添加到HA里,3我的是海信电视,效果如下。
备注:如果不行,可能是电视没有内置浏览器,可以安装一款电视浏览器,在尝试下,我家里的海信/创维电视都已经内置了浏览器。
操作方法:1,可以制作1个静态的html网页,放在HA的www文件夹下,也可以用我的,我是这样放的www/web/tvtongzhi.html,tvtongzhi.html完整代码在文章末尾,这样就可以访问http://您的HA的内网IP:8123/local/web/tvtongzhi.html?title=这里是通知标题&message=这里是通知内容,大家可以先用url的方式访问下,能不能正常打开,2,打开ha的开发者工具-服务-androidtv.adb_command,使用这个服务,选择电视的实体,下面的内容填写adb命令:am start -a android.intent.action.VIEW -d 'http://您的HA的内网IP:8123/local/web/tvtongzhi.html?title=这里是通知标题&message=这里是通知内容'
我ha的自动化代码参考,触发条件:水浸传感器检测到潮湿,动作:如果-就(如果检测到指定电视TV是开启状态,就发送adb命令):
if: - condition: state entity_id: binary_sensor.tvping2 state: 'on'then: - data: command: >- am start -a android.intent.action.VIEW -d 'http://192.内网ha的ip地址:8123/local/web/tvtongzhi.html?title=这里是通知标题&message=这里是通知内容' target: entity_id: media_player.android_tv_电视实体id action: androidtv.adb_command
tvtongzhi.html文件源代码,新建记事本,复制-粘贴-保存,保存的编码格式为“ANSI”,修改文件名为“tvtongzhi.html”,然后在ha的www目录里,新建一个web目录,以后一些html的文件,都可以放在这里,这样方便管理,最后把“tvtongzhi.html”文件放入web目录里就行了。
<!DOCTYPE htmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metahttp-equiv="Content-Type"content="text/html; charset=gb2312" /><metaname="viewport"content="width=device-width, initial-scale=1, maximum-scale=1"><metaname="applicable-device"content="pc,mobile"><title>Android TV安卓电视通知</title><metaname="format-detection"content="telephone=no" /><styletype="text/css">body{margin:0;padding:0;}.neirong{width:100%; height:100%;top:0; bottom:0; left:0;position:fixed;background-color:#FFFFFF;display:flex;text-align:center;align-items:center;/*垂直居中*/color:#FF0000;}.tztxt{ margin:0 auto;font-size:10px;ransition:all 4s ease;-moz-transition:all 4s ease; /* Firefox 4 */-webkit-transition:all 4s ease; /* Safari and Chrome */-o-transition:all 4s ease; /* Opera */}.tztxt_show{font-size:60px;}@media screen and (max-width:649px) {.tztxt_show{font-size:25px;}}</style></head><body><divclass="neirong"><divid="tztxt"class="tztxt"></div></div><scriptlanguage="JavaScript"type="text/javascript">//通过js获取url参数function GetQueryString(name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配var context = "";if (r != null)context = decodeURIComponent(r[2]);reg = null;r = null;return context == null || context == "" || context == "undefined" ? "" : context;}function hqid(){if(GetQueryString("title").length>0){document.getElementById("tztxt").innerHTML="【"+GetQueryString("title")+"】<br/><br/>"+GetQueryString("message");setTimeout("document.getElementById('tztxt').setAttribute('class', 'tztxt tztxt_show')",10);}}hqid();</script></body></html>
怎么关闭电视上这个通知呢?我家里的电视用遥控器的返回键即可,另外自己还可以通过css来做页面特效,这样就可以用电视,做通知大屏。