本帖最后由 33201 于 2022-11-2 09:02 编辑
前言
智能语音作为虚拟的车上小助手,可以让司机在专心掌控方向盘的同时,只需一声令下就能完成一系列车控操作,播放音乐、开关空调、调节音量等等。之前给大家分享过在车机上管理智能家居设备,开关灯、控制家里空调等,但是还是需要动手操作,不太利于驾乘体验的安全性和便捷性,秉着能动嘴实现的,绝不亲自动手的原则,经过这几天的不断尝试,终于打通比亚迪语音助手的任督二脉,可以用小迪语音控制家里的设备。
控制效果展示视频:
一、思路
思路1:
比亚迪DiLink本身与某家电厂商合作了一个叫“车家互联”的APP,最开始考虑的是搞一个APP伪装车家互联,然后把小迪的语音指令转发到HA,后面反编译小迪语音的APP后发现,APP里限制了只能控制空调、空气净化器、电热水器三类,如果控制其他设备小迪会反馈该功能暂不支持语音控制,故该思路只能PASS。
思路2:
用MacroDroid抓屏方式捕捉每次小迪语音的指令,如果是控制家里设备的就将指令转发到HA,经过不懈努力确实可以执行了,上面的视频就是按这个方式实现的。但是抓屏需要用到无障碍权限,该权限需要每次开机后重新授权,而且在测试过程中发现会有捕捉卡顿的情况,故该思路也只能PASS。
思路3:
用Android自动化神器tasker抓取车机的日志,捕获小迪的语音指令,将智能家居类控制指令转发到HA,经过测试,可以精准的获取指令,并且可以拦截小迪原本的回复指令,用自定义的指令替代。而且反应速度也快,重要的是重启后可以自动执行,不需要重新授权,所以决定采用该思路进行。
二、前置条件
HomeAssistant端:
需要配置conversation组件,配置后可以测试下控制效果。
DiLink车机端:
1、安装甲壳虫ADB助手(或者其他adb应用)、Tasker
2、打开车机的开发者选项,方法为打开车辆管理APP > DiLink > 版本管理,在恢复出厂设置那连续点击10下就会弹出界面。
三、接入步骤
1、ADB授权
通过adb助手给Tasker授权抓取日志权限,adb命令为:
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
2、导入Tasker配置
下载配置文件,修改参数
小迪语音转发HA.prf(1).xml
(4.81 KB, 下载次数: 39)
打开Tasker应用 > 长按配置文件选项 > 导入即可
3、允许Tasker可以随机启动
打开禁止自启动APP,将Tasker选项去掉即可。
整个的接入就完成了,接下来就可以体验一边开车一边你好小迪控制家里设备的酸爽了。
附:APP下载
https://cloud.189.cn/web/share?code=ne6NjunueQJv(访问码:9b2l)
|