简述:本人家里有一个黑裙放在客厅,有一个天猫精灵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实现的,不是文章主题,在这里先不讲了。
网友评论