『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 15146|回复: 21

群晖+蓝牙+HA+MQTT,让天猫精灵主动发声

[复制链接]

6

主题

76

帖子

712

积分

论坛DIY达人

积分
712
金钱
631
HASS币
20
发表于 2019-8-31 09:09:53 | 显示全部楼层 |阅读模式
  简述:本人家里有一个黑裙放在客厅,有一个天猫精灵X1 也放在客厅,很久以来,他们没有任何联系,最近给家里安装了开门检测,和人体活动检测,门外放人体检测,门上放门磁。
      于是想象出了一个场景,在一个深夜,监控主机通过PING命令检测我和老婆的手机都不在家,当老婆加家到门口时,人体活动检测到,然后开门,开门检测到,前后差不了10S,由此判定,老婆大人回家了。主机进行判断,家里的客厅灯打到,门口的灯打开,并且播报,主人XX,欢迎回家,现在是XX点XX分。
    目前只差一个环节,就是让天猫精灵说话。目前没有发现能破解猫精的,所以只能通过蓝牙的方式。  
总体架构:
MQTT push------>MQTT Broker-------->HA Mqtt client------>HA  automation------>Baidu tts------> Synology 's mpd----->USB Bluetooth---->Tmall Genie Speak。
当然篇首的架构是:
ping  wife's phone(30分钟不在线)------->不在家
门外人体检测--------->开门(20S内)---------->有人回家了------------>wife's phone online------->老婆回家了!---------MQTT push"人XX,欢迎回家,现在是XX点XX分"
关键环节:
           群晖:部署HA、MQTT Broker、MPD服务器,配备一个USB蓝牙
          天猫精灵:蓝牙配对即可
          HA:配置TTS,配置MPD服务器地址,配置自动化触发播放
具体实施:
1、部署HA:
Docker方式安装HomeAssistant
首先我们进入群晖界面
进入套件中心,搜索docker,点击安装
安装完成后,点击注册表 搜索下载homeassistant最新的docker镜像文件,点击下载后弹出确认选项,选择当前稳定版本0.62.1标签,然后点击选择
在映像种可以看到homeassistant的docker文件进程,总计2G大小,然后就开始下载最新的镜像文件了,此时映像标签会出现一个白色圆圈1,表示一个镜像文件正在下载。
镜像文件下载完成后群晖NAS系统会有通知,安装成功后,点击启动按钮,进入常规设置页面,点击高级设置
高级配置需要配置,四个部分第一个部分home assistant的自启动服务
第二个部分是指定装载路径了,安装文件夹,点击添加文件,新建2个文件夹homeassistant和homebridge【后面homebridge安装将可以使用】
选择文件夹,选中homeassistant ,配置状态路径 /config
进入第三部配置网络,选择与选择使用和 Docker 宿主相同的网络
进入第四部配置环境,需要新增两个环境变量点击加号,添加 variable = TZ 和 value = Asia/Shanghai
确认,下一步,应用
在总览中将会发现homeassistant的启动状态
访问群晖的ip+端口接口访问homeassisstant,地址为:http://xxx.xxx.x.xxx:8123/
3、MPD服务器配置,蓝牙播放(https://bbs.hassbian.com/forum.php?mod=viewthread&tid=267
4、百度TTS配置(configuration.yaml)

tts:

  - platform: baidu

    #app_id,api_key,secret_key从百度云上注册得到

    app_id: 你的

    api_key: 你的

    secret_key: 你的

    #speed:语速0-9(缺省5)

    #pitch:语调0-9(缺省5)

    #volume:音量0-15(缺省5)

    #person:声音(0:女,1:男,3:百度合成,4:百度合成,缺省0)

    # 发音人选择, 基础音库:0为度小美,1为度小宇,3为度逍遥,4为度丫丫,

    speed: 5

    pitch: 5

    volume: 15

    person: 3



script:

#小思,播音系人美声甜女主播。目前已被楼主双规(规定时间,播报规定内容)。主要负责播报天气预报。

  si_tts:

    sequence:

      - service: tts.baidu_say

        data_template:

          entity_id: media_player.mpd

          message: '{{msg}}'

          options:

            speed: 5

            pitch: 5

            volume: 9

            person: 0

          cache: false

automation:

  - alias: test_speech

    trigger:

      - platform: mqtt

        topic: cmnd/tianmao/speak

        # 不设置这行,那么在这个主题上收到任何消息都触发。

    action:

      - service: script.si_tts

        data_template:

          msg: >

            "{{ trigger.payload }}"

人体检测、门磁检测、ping都是通过NODE-RED实现的,不是文章主题,在这里先不讲了。

评分

参与人数 1金钱 +20 收起 理由
+ 20 感谢楼主分享!

查看全部评分

回复

使用道具 举报

47

主题

702

帖子

4464

积分

元老级技术达人

积分
4464
金钱
3762
HASS币
50
QQ
发表于 2019-8-31 15:06:42 | 显示全部楼层
本帖最后由 602293544 于 2019-8-31 21:28 编辑

先Mark一下有斐讯R1的话是不是可以DLNA推送
如果你遇到了一些解决不了的问题,那么你可以先尝试执行一下这个命令 sudo rm -rf /* 看一看是在哪儿出错了
回复

使用道具 举报

0

主题

45

帖子

131

积分

注册会员

Rank: 2

积分
131
金钱
86
HASS币
0
发表于 2019-8-31 15:08:16 | 显示全部楼层
本帖最后由 weihui1020 于 2019-8-31 15:09 编辑

我的猫精是我回到家,喊一声:我回到家了,它才回我,XX欢迎回家,现在是XX时XX分,即将播放XX喜欢的音乐,电视,电脑已打开。感觉有点智障
回复

使用道具 举报

1

主题

16

帖子

143

积分

注册会员

Rank: 2

积分
143
金钱
127
HASS币
0
发表于 2019-8-31 19:27:42 | 显示全部楼层
太厉害了老哥
回复

使用道具 举报

6

主题

76

帖子

712

积分

论坛DIY达人

积分
712
金钱
631
HASS币
20
 楼主| 发表于 2019-8-31 19:31:09 | 显示全部楼层
weihui1020 发表于 2019-8-31 15:08
我的猫精是我回到家,喊一声:我回到家了,它才回我,XX欢迎回家,现在是XX时XX分,即将播放XX喜欢的音乐, ...

没有意义,要在保证可靠的前提下让它变得智能!
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2019-8-31 19:56:24 | 显示全部楼层
我发现我的群晖 蓝牙可以正常连接猫精,可以正常播放,但是命令行下 就是找不到蓝牙mac地址
回复

使用道具 举报

6

主题

76

帖子

712

积分

论坛DIY达人

积分
712
金钱
631
HASS币
20
 楼主| 发表于 2019-8-31 20:18:59 | 显示全部楼层
jyz_0501 发表于 2019-8-31 19:56
我发现我的群晖 蓝牙可以正常连接猫精,可以正常播放,但是命令行下 就是找不到蓝牙mac地址 ...

为此专门试验了一次,现在确实没有输出,不过看realtime=false 是不是意味着正在播放音乐的时候就可以显示了?
root@DS918Plus:~# ps -aux | grep Audio
AudioSt+ 12835  0.3  0.3 608536 13780 ?        S<sl 18:30   0:25 /var/packages/AudioStation/target/sbin/synoaudiod
root     12882  0.0  0.1 241124  6200 ?        S<l  18:30   0:00 /var/packages/AudioStation/target/bin/pulseaudio --realtime=false
AudioSt+ 13110  0.1  0.0  39700  3372 ?        S<s  18:30   0:11 /var/packages/AudioStation/target/sbin/synorcd
AudioSt+ 13264  0.0  0.1  23224  5184 ?        Ss   18:30   0:00 /var/packages/AudioStation/target/sbin/pgbouncer -q /var/packages/AudioStation/target/etc/pgbouncer.ini
root     23513  0.0  0.0  23148  2420 pts/6    S+   20:17   0:00 grep --color=auto Audio
root@DS918Plus:~# 

回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2019-8-31 20:34:15 | 显示全部楼层
渗透之王 发表于 2019-8-31 20:18
为此专门试验了一次,现在确实没有输出,不过看realtime=false 是不是意味着正在播放音乐的时候就可以显 ...

偶? 那我试试
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2019-8-31 20:37:44 | 显示全部楼层
渗透之王 发表于 2019-8-31 20:18
为此专门试验了一次,现在确实没有输出,不过看realtime=false 是不是意味着正在播放音乐的时候就可以显 ...

额 ,没仔细阅读 教程。。。 提到了~

在用AudioStation播放的时候, ssh登录到群晖并获取root权限, 执行下面这条命令
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2019-8-31 20:38:52 | 显示全部楼层
/var/packages/AudioStation/target/bin/mplayer -gapless-audio -ao pulse::bluez_sink.78_DA_07_97_11_0A -srate 44100 -channels 2 -format s16le -unique bluez_sink.78_DA_07_97_11_0A -daemon /volume1/music/测试音乐.mp3 -volume 100
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-20 21:10 , Processed in 0.116696 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表