在domoticz给蓝牙音箱传送语音提醒

文档:
https://en.domoticz.cn/wiki/DzVents:_ne ... _scripting
回复
blindlight
帖子: 98
注册时间: 周四 3月 30, 2017 00:03

在domoticz给蓝牙音箱传送语音提醒

帖子 blindlight »

上文中搭建的mpd服务端位于群晖属于无奈之举,语音提醒初衷是出门建议,无奈调试的树莓派离门距离较远并且蓝牙距离有限。如mpd和mpc在同一设备,下文很多步骤可以简略。

安装mpc客户端,与domoticz系统在同一设备。

代码: 全选

sudo apt-get install mpc
mpc的常用命令,如果和客户端在一个设备host和port可以不用设置

代码: 全选

mpc -h YOUR_IP -p 6600 add <file>
mpc -h YOUR_IP -p 6600 volume 50
mpc -h YOUR_IP -p 6600 play
mpc -h YOUR_IP -p 6600 clear
测试有效后进行下一步。

——————————————————————————————————————————————————
以下内容适合mpd和mpc异地,本地的请直接跳至注册百度tts。

因为未找出用mpc下add本地MP3的方法,只有迂回至在服务端music文件夹下挂载需要的媒体文件。

比如我将MP3文件存在tts文件夹下命名为tts.mp3,群晖mpd/music下挂载这个tts文件夹。

那么add语句如下:

代码: 全选

mpc -h ip_host -p port add tts/tts.mp3
——————————————————————————————————————————————————

注册百度tts:http://yuyin.baidu.com/tts

创建应用,拿到两个key。

在domoticz内创建一个text命名出行建议,文字内容可以从curl和风天气的api或者爬虫其他网站获取。
QQ截图20170706141456-300x119.jpg
QQ截图20170706141456-300x119.jpg (8.42 KiB) 查看 27581 次
在domoticz的脚本目录下创建设备脚本,内容如下:

代码: 全选

commandArray = {}

json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
API_Key='abcdef1234567'
Secret_Key='hijk89012'
mpd_host='10.0.0.101'
mpd_port='6600'

t1 = os.time()
s = otherdevices_lastupdate['小米人体感应-大门']
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = (os.difftime (t1, t2))

if(devicechanged['大门门磁']=='Open' and difference < 90) then
--if(devicechanged['Xiaomi Wireless Switch']=='Click') then
	command="curl -s 'https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=" .. API_Key .. "&client_secret=" .. Secret_Key.."'"
	local handle = io.popen(command)
	local result = handle:read("*a")
	handle:close()
	output= json:decode(result)
	expires_time=output.expires_in
	if(tonumber(expires_time)<=259200) then
		print ("百度语音token将在3天后失效")
	end
	token=output.access_token
	os.execute('wget -O /home/pi/domoticz/tts/tts.mp3 "http://tsn.baidu.com/text2audio?tex='..otherdevices['出行建议']..'&lan=zh&cuid=blindlight&ctp=1&tok='..token..'"')
	os.execute('mpc -h '..mpd_host..' -p '..mpd_port..' clear')
	os.execute('mpc -h '..mpd_host..' -p '..mpd_port..' volume 100')
	os.execute('mpc -h '..mpd_host..' -p '..mpd_port..' add tts/tts.mp3')
	os.execute('mpc -h '..mpd_host..' -p '..mpd_port..' play 1')
end

return commandArray
本人用的是人体感应和门磁先后顺序判断是否有人要出门,进而提醒雨雪,雾霾等出行建议语音。
chengka3463
帖子: 37
注册时间: 周四 6月 01, 2017 19:32

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 chengka3463 »

能小米网关替代蓝牙音箱啊。
blindlight
帖子: 98
注册时间: 周四 3月 30, 2017 00:03

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 blindlight »

chengka3463 写了: 周四 7月 13, 2017 07:23 能小米网关替代蓝牙音箱啊。
不能 小米网关不支持live stream
vonzeng
帖子: 27
注册时间: 周二 6月 06, 2017 12:38

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 vonzeng »

用小米网关来播报也是我一直的想法。被你一言否之。 :cry: 连个念想都没了。
blindlight
帖子: 98
注册时间: 周四 3月 30, 2017 00:03

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 blindlight »

vonzeng 写了: 周四 7月 13, 2017 09:00 用小米网关来播报也是我一直的想法。被你一言否之。 :cry: 连个念想都没了。
小米网关又不支持mp3推送
Naro
帖子: 10
注册时间: 周四 6月 01, 2017 00:00

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 Naro »

比较笼统,初学者希望能给出更详细的教程。比如注册了百度以后,在那里找查看两个码。
还请大神多多帮助大家
头像
DT27
帖子: 345
注册时间: 周四 3月 30, 2017 08:54
Gender:

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 DT27 »

Naro 写了: 周一 7月 24, 2017 21:14 比较笼统,初学者希望能给出更详细的教程。比如注册了百度以后,在那里找查看两个码。
还请大神多多帮助大家
文中写了,“创建应用,拿到两个key。”,你创建应用了吗?创建了页面上好好找找,有key
Naro
帖子: 10
注册时间: 周四 6月 01, 2017 00:00

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 Naro »

/home/pi/domoticz/tts/tts.mp3 这个文件树莓派上没有呀,我的mpc就是装在已经安装了DOMOTICZ的树莓派上的呢,另外如果就是本机运行的话,脚本哪些地方需要如何修改呢?
Naro
帖子: 10
注册时间: 周四 6月 01, 2017 00:00

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 Naro »

DT27 写了: 周二 7月 25, 2017 10:28
Naro 写了: 周一 7月 24, 2017 21:14 比较笼统,初学者希望能给出更详细的教程。比如注册了百度以后,在那里找查看两个码。
还请大神多多帮助大家
文中写了,“创建应用,拿到两个key。”,你创建应用了吗?创建了页面上好好找找,有key
大神请帮忙
Naro
帖子: 10
注册时间: 周四 6月 01, 2017 00:00

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 Naro »

这个帖子已经死了吗?每天都要来看两次,唉
头像
Admin
网站管理员
帖子: 118
注册时间: 周六 2月 25, 2017 12:47
Gender:

Re: 在domoticz给蓝牙音箱传送语音提醒

帖子 Admin »

Naro 写了: 周日 1月 14, 2018 00:53 /home/pi/domoticz/tts/tts.mp3 这个文件树莓派上没有呀,我的mpc就是装在已经安装了DOMOTICZ的树莓派上的呢,另外如果就是本机运行的话,脚本哪些地方需要如何修改呢?
仔细看帖啊

代码: 全选

os.execute('wget -O /home/pi/domoticz/tts/tts.mp3 "http://tsn.baidu.com/text2audio?tex=xxxxxxxx
这句意思就是用百度的服务把xxxxxxxx转换成mp3并保存到/home/pi/domoticz/tts/tts.mp3。
回复