让小爱同学主动开口说话
9月13号更新内容 待解决问题, 1、账号二次验证登陆的问题,预计短期内不会去处理 2、 TTS播报完成后恢复初始音量的功能,这个近期我考虑下加上,如果能处理的比较优雅的话
1、新增队列TTS的功能,TTS消息将按序播放,不会出现前面消息还没播报完成,后面消息就开始的问题
2、将原先的send服务修改为force_send,和队列消息配套,某些紧急消息可以使用这个服务强制优先播报
5月8号更新内容 先讲遗留问题,会有一种情况是无法使用该插件的,首先你的账号登陆会被要求输入验证码,然后恰好你的系统平台的文件夹权限又比较严格,那么这种情况下就会获取不到token的。
1、新增音量调节服务,播放和暂停的功能。
2、解决某些环境下由于文件夹权限问题导致的token保存失败。
3、解决海外地区用户登录失败的问题。
4、默认verify=False
5、直接运行py不再会出现No module named 'homeassistant'的问题
最先要感谢下小米论坛中ID为:xxxx123aaa的达人,他最先用php事先了这一功能,我这边只是改写为py而已。
写代码过程中能想到的和能测试的异常都处理了,但肯定还有遗漏未完善的地方,如果大家在使用过程中遇到了问题,请在回帖中贴出详细的错误信息,如果可能,最好也把操作步骤描述一下,以便我可以及时处理错误。
小爱同学虽然具有dlna的功能,但是dlna播放完成之后会自嗨的毛病,让我们没法好好利用小爱同学,好在在官方开发者APP中,提供了传声筒的个功能,我们现在可以利用这个功能,让小孩同学主动说话了。
先上些图
多音箱支持,如果你有多个小爱同学,你可以通过miai_num这个参数指定哪个音箱出声,如果指定了不存在的音箱,那么在系统日志中就会提示音箱不存在
使用方法,我把这个功能写成了一个service,方便在需要的地方使用,service data也尽量简单 这里再解释下这个miai_num参数的含义,假设你的账号下只有一台小爱同学,那么这个值永远为0,如果你有3台,那么这个值可以为【0,1,2】,分别意味的对应3台不同的小爱同学。 场景模拟一下,我有3台小爱同学,分别在客厅,厨房,卧室, 我的service data 就可以这么写 {"message":"我是0号小爱,你听到我的声音了吗?","miai_num":"0"} {"message":"我是1号小爱,你听到我的声音了吗?","miai_num":"1"} {"message":"我是2号小爱,你听到我的声音了吗?","miai_num":"2"} 这样我就知道了这三台小爱的miai_num的值,下次调用这个服务的时候就可以有针对性的使用
想必大家对自定义插件的使用已经非常熟悉了,不过这边还是将过程描述一遍
1、 将附件中的文件解压缩后放入Homeassistant中的custom_components,如图
2、修改configuration.yaml文件,添加如图中的内容
3、重启Homeassistant,如果在开发者工具的service下能找到hello_miai.send这个服务,就表示已经安装完成了。
20190529更新,解决由于小米服务端调整造成的服务不可用:
|