本帖最后由 arrive 于 2018-12-14 13:22 编辑
#####################-------------运行环境-------------#####################
运行环境:
#####################------开机自动连接蓝牙音箱------#####################
LX终端执行
屏幕提示如下,列出所有蓝牙设备:
[NEW] Controller A0:88:69:E4:21:F4 计算机名称 [default]
[NEW] Device 88:2D:53:11:C3:D0 xiaodu-A1-5999
[NEW] Device 3C:BD:3E:9E:B7:W8 小米AI音箱-1999
Agent registered
复制代码
小度小度,打开蓝牙
接着使用你的蓝牙音箱mac地址替换下面的88:2D:53:11:C3 0内容,首先连接它
connect 88:2D:53:11:C3:D0
复制代码
执行成功音箱会语音提示:蓝牙已连接
接着执行下面命令,并信任这个蓝牙音箱
trust 88:2D:53:11:C3:D0
复制代码
最后输入exit退出bluetoothctl命令。
上面这个过程终端屏幕会提示Connection successful和trust succeeded,说明已经完成配对并信任。
执行下面的命令,让系统启动时自动连接蓝牙音箱
第一次运行这个命令系统会提示选择编辑器,我使用nano编辑器。
打开nano文件编辑界面,转到文件的最后,输入下面的内容
####XiaoDu-A1
@reboot sleep 15 && echo "connect 88:2D:53:11:C3:D0" | bluetoothctl
复制代码
sleep 15,我设置系统启动后15秒,你可以根据自己的情况调整一下。
重启系统,关机时候提示蓝牙音箱断开,开机后稍等一会提示蓝牙音箱已链接。打开系统自带播放器例如:audacious播放一个音乐文件,系统已经自动从蓝牙音箱播放了。至此蓝牙音箱自动连接已经完成设置。
#####################--虚拟环境安装homeassistant 0.84.1运行环境--#####################
使用下面的这个方法安装
https://www.home-assistant.io/docs/installation/raspberry-pi/
$ sudo apt-get update
$ sudo apt-get upgrade -y
sudo apt-get install python3 python3-venv python3-pip
复制代码
树莓派是这样:
sudo useradd -rm homeassistant -G dialout,gpio
我不是树莓派所以不附加-G dialout,gpio参数
sudo useradd -rm homeassistant
复制代码
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
复制代码
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
复制代码
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ python3 -m pip install wheel
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant
(homeassistant) $ hass
复制代码
上面的最后三个命令,如果执行时错误,请重新执行一遍。网络网络网络是否畅通非常重要。我用手机热点还比较好吧!
第一次执行hass命令启动时候要完成很多初始配置,同时会安装很多系统组件,所以网络不好也会出现很多错误,重新执行一遍就好。
基本上显示INFO (MainThread) [homeassistant.core] Timer:starting,就可以用浏览器打开web界面了。
更新
sudo -u homeassistant -H -s
cd /srv/homeassistant
source bin/activate
pip3 install --upgrade homeassistant
复制代码
设置homeassistant开机自动启动
输入如下内容,Ctrl+O,回车保存,然后Ctrl+X退出编辑。
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
[Install]
WantedBy=multi-user.target
复制代码
执行下面两条命令使其生效:
sudo systemctl --system daemon-reload
sudo systemctl enable homeassistant@homeassistant
复制代码
#####################-----------配置samba,修改HA配置文件-- -----#####################
安装samba:
sudo apt-get install samba
复制代码
编辑samba主配置文件:
sudo nano /etc/samba/smb.conf
复制代码
在文件的结尾输入这些:
[Stick_homeassistant]
path = /home/homeassistant/.homeassistant
comment = No comment
browsable = yes
read only = no
valid users =
writable = yes
guest ok = yes
public = yes
create mask = 0777
directory mask = 0777
force user = homeassistant
force create mode = 0777
force directory mode = 0777
复制代码
通过samba访问修改homeassistant的配置文件
在homeassistant的配置文件configuration.yaml加入如下内容,请注意缩进:
media_player:
- platform: mpd
host: 127.0.0.1
复制代码
homeassistant的配置文件automations.yaml加入如下内容,我没有规范的使用ID,另外请注意缩进:
- alias: Home Assistant Start
trigger:
platform: homeassistant
event: start
action:
- delay: '00:00:10'
- service: tts.baidu_say
data:
entity_id: media_player.mpd
message: 'Home Assistant 已经启动'
复制代码
#####################------------安装mopidy,并完成配置-----------#####################
sudo apt-get install mopidy
复制代码
配置mopidy.conf:
sudo nano /etc/mopidy/mopidy.conf
复制代码
增加了如下内容:
[mpd]
hostname = ::
[audio]
mixer = software
mixer_volume =
output = pulsesink server=127.0.0.1
buffer_time =
复制代码
将mopidy作为服务运行:
sudo systemctl enable mopidy
复制代码
#####################-------------------配置pulseaudio--------------#####################
配置pulseaudio:
sudo nano /etc/pulse/default.pa
复制代码
启用下列模块,并配置ip地址:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
复制代码
加入位置,参考下面内容:
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#### homeassistant tts mopidy
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
#load-module module-zeroconf-publish
终于完成了,没有坑,真的没有坑,我成功后又重新做了一遍,经典重现!
至此完美连接蓝牙音箱实现tts语音播报。
折腾了几个月,记不清了,可能有一年?爬了无数的国内外论坛,系统刷了无数次,之前一直使用vlc,但是vlc口吃,国外很多用户也反馈了这个问题。
最终还是使用mopidy,因为官方文档丰富,参数配置灵活。比mpd更小巧。其实之前从mopidy身边路过好几次,但是因为没有把所有文档看完,所以错过了最美好的部分,于是走入更多的坑。
最后非常感谢hassbian论坛,感谢我爬过的其他论坛和博客等等。