智障家居初战-方案篇

去年搬了新家,萌生了给新家打造一套智能家居控制系统,然后踏上了学习的不归之路。参考张大妈的种草文章,经过一番学习与折腾,测试验证了domoticz+rm-pro+esp8266的控制方式是可行的。


根据理想中规划的应用场景,前端控制方式应该采取语音控制,不过贫穷的我既没有苹果设备(siri),又买不起echo、小爱等智能音箱。手里只有一个双去年十一99捡回来的破烂,哦不,是天猫精灵。不过那时候也搜索过,天猫精灵是没有实现接入domoticz的,倒是能直接控制rm-pro。本着相信马云爸爸日后会完善开放接口以及对语音识别技术的向往,好吧,其实还是价格便宜,最后还是入手了。也如所料,买回来之后玩过几天,然后就吃灰去了。。。
后来在3月初,过完年稍微闲下来的时候,无意搜索到了这篇文章,发现原来天猫精灵早已经开放接口,不仅又燃起了我对新生活的向往。按着教程,算是跌跌撞撞初步实现了对接(吐槽下虽说前人栽树后人乘凉,但其实很多前人只是挖坑没种树的,按照教程去做遇到了不少问题,感觉作者是没有进行完整实践,最终结合瀚思彼岸的帖子才逐渐摸索清楚),有了一些心得,写下文章分享也顺带整理知识做个备份。因琐碎的事情确实多,为此折腾不少,作为智能家居尽然要主人如此费心费力,最终达到的结果也没有理想中的智能,因此命名智障家居小小吐槽一下。
好了,废话不多说,进入正题,本篇先介绍下整体方案。

0.硬件介绍

近些年陆陆续续购入了服务器、网络设备、一些智能家居产品,不知不觉就具备了折腾智能家居方案的条件。
①HP microserver gen8, 2016年1月15日,computeruniverse购入,首次海淘被税300。

②R6300v2,2015年11月3日,京东购入,基本最低价买的。

③博联RM pro,2017年11月11日,京东购入,价格一般,当时为研究智能家居方案就买了。

④天猫精灵,2017年11月11日,天猫购入,12月底才发货,等到花儿都谢了。

1.关于我的智能家居设想方案

  • 核心控制系统:domoticz
  • 控制方式:语音
  • 硬件:天猫精灵、rm-pro、灯具(非智能)、电视(非智能)
  • 初期应用场景:通过天猫精灵控制rm-pro来实现普通灯具、电视的控制
  • 后续应用场景:增加各类传感器,esp8266传输数据,domoticz自动化联动家电

2.技术难点及分析

方案难点在于domoticz控制体系的搭建、天猫精灵接入。domoticz相关方面的文章现成的文章较多,所以我也就侧重介绍天猫精灵接入,先看官方的接入示意图:

由图可见我们需要准备的东西有:

①天猫精灵

②天猫精灵home NLU
马云爸爸提供

③设备控制云
可以让天猫精灵home NLU通过公网访问得到,设备控制云其实包括两部分:
1)认证;
2)控制协议网关,即将天猫精灵过来的命令解析,然后发给domoticz;将domoticz的命令解析,转换后发送给天猫精灵。

④宽带

⑤domoticz
家庭智能家居控制系统,根据天猫精灵home NLU的控制指令控制家电并返回家电状态。

3.部署方案

根据家里的宽带能否提供公网IP,部署方案可以分两大类:

①有公网IP
设备控制云部署在家庭网络内,使用DDNS提供对外访问。
1)申请DDNS域名(需要支持SSL证书申请,与天猫精灵home NLU对接)
2)路由器配置DDNS、端口转发
3)家用服务器(部署oauth认证服务、控制协议网关、domoticz)

②无公网IP
核心思路是解决天猫精灵home NLU与我们的oauth认证服务、控制协议网关通信;控制协议网关与domoticz通信。可采用VPS+VPN的方式,申请一个域名解析到VPS主机上,通过VPN实现VPS与家庭服务器通信。
1)申请域名
2)配置VPN网络
VPS作为VPN服务器,家里的路由器/软路由/家用服务器作为客户端
3)部署oauth认证服务、控制协议网关、domoticz

根据oauth认证服务、控制协议网关的部署位置,又可以分两种:
②.①oauth认证服务、控制协议网关部署在VPS
VPS作为真正意义上的设备云服务器,协助处理业务
②.②oauth认证服务、控制协议网关部署在家用服务器
VPS只做代理转发,不作为业务节点处理数据
②.③其实网络打通后,你想把domoticz放到VPS上再控制家里的设备都行…

由于我家里开通的是“大内网”移动宽带,自然是没有公网IP的,所以只能采取VPS+VPN方案。不过目前国内VPS都挺贵的(除非碰上腾讯、阿里推广活动,大概能做到10元/月),国外VPS时延虽然高,不过也能将就用一下,可以薅下Google、amazon一年免费的羊毛。考虑到免费VPS会中止,要是部署东西在VPS上日后迁移还得折腾,还会有意外登陆不上的情况(有过照着教程不小心把防火墙开了但没把ssh端口加进去结果登陆不了只能重装的悲痛经历了),最终还是采用②.②方案。至于域名,阿里、腾讯云一般都有几块钱首年的。整体部署方案如下,后续篇章将展开讲述:

4.任务分解

接下来会分三篇来介绍,内容概要如下:

1)网络篇

VPS申请、域名申请、VPN部署

2)对接篇

部署nginx反向代理、部署oauth认证服服务

3)控制篇

安装Domoticz、控制esp8266、天猫精灵联动

5.低能提醒

本系列简单粗暴阐述实践过程为主,尽量将每一步的操作过程都写出来,顺带介绍些基础知识,具备一定的LAMP基础食用更佳,老司机请随意超车。