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

        简述:本人家里有一个黑裙放在客厅,有一个天猫精灵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(转至https://www.hachina.io):

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/

2、MQTT Broker(https://bbs.hassbian.com/thread-1463-1-2.html)

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实现的,不是文章主题,在这里先不讲了。

你可能感兴趣的:(群晖+蓝牙+HA+MQTT,让天猫精灵主动发声)