哑虎的智能家居路 篇四:小度音箱接入HomeAssistant
开篇声明,本篇文章参考学习了很多前辈大神的文章。具体不一一列举。学习自hassbian、gebi1等网站。我也都结合我自己的需求和设备做了操作和重新截图。如有不妥请声明。
这是这个系列的第4篇文章了,如果看的头大,请先温习下前两篇。
这篇文章也算是这次众测的补充吧。
感谢feversky、huex 2、zhkufish几位大神分享的代码.
特别是zhkufish的探索,使得小度音箱的接入变的比较简单了。非群晖的用户可以直接围观大神的教学
我只是一个搬运工
------------------------------------------------------------------------------------------------------------------
下面正式开始,小度音箱原理上跟天猫精灵接入是一样的, 但是小度的好处是可以自定义名称。当然天猫的好处是现在有网站做了官方接口,接入HA更为方便。
我目前使用的是HomeAsisstant 0.82.0的版本, zhkufish用的是 0.81.6版本。所以这些版本都是可以的,主要是HomeAsisstant现在自带了OAuth访问,然后结合小度的技能,就可以将HA里的设备加入到小度音箱的智能家居设备里控制。这样也就能弥补小度不能连接小米设备的问题了。
举个栗子 ,(请忽略我的汉普)我把小度音箱连接到HA后,就可以控制石头扫地机器人了。和小爱一样方便。是不是和心动?是就继续看下去,不心动还去速速撤离。
1.首先去购买一个域名,例如在阿里云买
个人推荐cn的域名,首年是29,加官方微信领优惠券,可以优惠10元,也就是19元。价廉物美啊。土豪请不要抢注太多。
2.在阿里云的控制台找到云盾证书服务(包年)服务,申请SSL证书
按图上选择,SSL证书是免费的。
3.申请发布审核通过后下载证书到本地
4.把证书拷贝到HA 的目录里,在目录新建个ssl_keys的文件夹
PS:下载下来的cert-1****************_chain.crt ,把后缀改成pem。反正我是改了。
5.修改HA配置文件configuration.yaml
trusted_networks:
- 127.0.0.1
- ::1
- 192.168.5.0/24
base_url: ****************.cn
ssl_certificate: /config/ssl_keys/*******************.cn.pem
ssl_key: /config/ssl_keys/**********************.cn.key
修改完成后,docker里面重启homeassistant,即可通过 https://域名:8123 访问homeassistant了。准备工作已经完成一半咯。
6,修改群晖自带的nginx,这个是为了后期的反向代理。
用winscp进入群晖的/usr/syno/share/nginx
在Portal.mustache里面合适的位置添加如下配置:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
在putty命令行输入如下命令,重启群晖自带的nginx。
sudo synoservicecfg --restart nginx
7.为群晖添加反向代理
也就是把群晖广域网的5001端口映射到局域网的8123(HA)端口。
现在打开域名的5001端口,应该出现的就是HA的主页了。
这个步骤是因为百度技能授权的时候8123端口会报错,所以多了这个比较麻烦操作。这个也算是这次遇到的最大的坑了。这个也是我自己摸索的。
8.去百度开放平台创建自己的技能
创建新技能,名字自己取
ClientSecret随便打一堆字母
然后编辑,保存,授权
看到这里准备工作就基本完成了。
9.将dueros.py放到******dockerhome-assistantcustom_components目录下面:(相关链接在此)
修改configuration.yaml配置
dueros:
expire_hours: 180 #授权过期时间. 该参数不是必填
准备开始测试咯。
10.回到小度技能的控制台,开始模拟测试
输入发现设备,确认,会语音播报发现多少新设备。。。
11.去手机小度音箱APP看看新设备吧
可以看到扫地机器人了吧,现在可以呼唤小度来扫地了。耶
12.补充customize.yaml的配置
必须 要有friendly_name(在customize.yaml里面), 否则可能会发现不了,
关于dueros_deviceType 和 dueros_actions 相关文档, 请在dueros的接口文档里面查询(链接在此)
switch.light:
friendly_name: 客厅灯
dueros_hidden: true #如果不想小度添加某个设备,可以加上这行参数
dueros_deviceType: ['LIGHT'] #自定设备类型
dueros_actions: ['turnOn', 'turnOff'] #自定设备可执行操作
------------------------------------------------------------------------------------------------------------------
目前已经测试可用功能
1. 开关指令
2. 石头扫地机器人, 开关
3. 博联的mp1插座的分控。比如鱼缸灯等控制。
------------------------------------------------------------------------------------------------------------------
到这里这次的分享就完成了,再次声明,内容并非全部原创,但是结合了我自己的情况摸索,测试了的,相信对不是群晖部署HA的还是有一定作用的。再次感谢各位大神的分享。
lostpsyche
校验提示文案
云栖隐者
校验提示文案
正版隔壁老王
校验提示文案
梅加雨
校验提示文案
墨爹
校验提示文案
Brian_Liu
校验提示文案
David_T
校验提示文案
梅加雨
校验提示文案
David_T
校验提示文案
Brian_Liu
校验提示文案
墨爹
校验提示文案
梅加雨
校验提示文案
梅加雨
校验提示文案
正版隔壁老王
校验提示文案
lostpsyche
校验提示文案
云栖隐者
校验提示文案