本帖最后由 seon 于 2020-7-25 12:12 编辑
刚入坑ha、nodered不久,家里也搞了一些像模像样的智能化场景了,类似于:
- 一键开关电视+高清播放器
- 回家进入指定的地理围栏后,提前打开家里空调
- 卫生间人来灯亮,人走灯灭
- 卧室空调恒温节能
- 冰箱门未关提醒
- 电费充值提醒
- 一键睡眠模式
等等。。。
经过这一番折腾,确实为生活增添了不少的便利和舒适
只是,这其中,作为非常重要的交互手段的TTS,一直不太稳定。而且很奇怪,论坛里似乎也没见到有人反馈过类似的问题,不知道我的情况是不是个例。。
我的运行环境是树莓派4b+hass.io。软件方面,也是照着论坛里的帖子,基于mopidy+mopidy-mpd搭建。树莓派通过蓝牙,连接天猫精灵作为TTS输出设备。在这里要重点感谢一下@airhog 大神。树莓派连接蓝牙音箱,我折腾了好久,都没成功。后来看到 https://bbs.hassbian.com/thread-5375-1-1.html 这篇文章,掀桌重来后,终于完美达成了!
但这一套方案的缺点,就是不稳定。在我的环境中,mpd服务端经常假死。查看mopidy的log,会出现一行
mopidy.audio.actor: Race condition happened
然后ha里的mpd客户端就变成了unavailable状态了。此时,必须要重启mopidy服务才可以。搜索了好久,换了多个mopidy的版本,也没能解决问题。后来只能自己用nodered写了个自动化,当ha的mpd播放器变为unavailable的时候,就通过命令,重启mopidy。即便是这样,也还是会存在TTS丢失的问题。因为可能恰好需要播放的时候,播放器挂了~
今天趁有空,又仔细研究了一番,终于找到了完美的替代方案: https://www.musicpd.org/ 另一个mpd server的实现方案。最新版本是2020年7月6号更新的,看来还在维护状态。
下面来看具体的替换方法:
这篇文章假设你已经基于mopidy搭建好TTS环境了,只介绍替换mopidy的方法,具体的如何搭建tts,请搜索论坛里面的相关文章
首先,先停掉mopidy服务,防止后面安装musicpd的时候,端口号冲突
sudo systemctl stop mopidy
sudo systemctl disable mopidy
接下来,就可以安装musicpd了
sudo apt install mpd
安装完成后,应该会自动启动服务,但此时,默认的mpd服务,是绑定了localhost的ip的,也就是只能本机使用。为了让hass.io里面的mpd播放器能访问,需要修改配置文件。
sudo vi /etc/mpd.conf
找到bind_to_address这一行,修改为
bind_to_address "::"
保存退出。然后重启mpd服务
sudo systemctl restart mpd.service
至此,就完成了mopidy服务端的替换!从目前的测试情况来看,非常完美!
|