家庭网络全套解决方案分享 篇四:使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

前言

上篇发布到现在有几周的时间了,由于工作原因此篇也是断断续续的写了好久才完成 使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 从第四篇开始会重点围绕我的智能家居方案进行讲解,由于内容非常多会分多篇来讲解,大家有点耐心哈~  使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

这里讨论的方案是基于使用威联通453A NAS上搭建Home Assistant服务并结合ifttt等第三方服务来实现跨平台智能硬件统一控制,并且可以同时支持 Amazon Echo, Google Home和苹果的HomeKit等智能终端来控制不同品牌的智能硬件产品。例如,小米生态链系列(灯,开关,传感器等),Broadlink系列(开关,万能遥控器等),电视,罗技harmony,空调等不同品牌的产品。

首先如果大家没有看过前几篇文章强烈建议先看一遍,这里讲解的智能家居平台是基于之前提到的家庭网络部署方案及硬件 - 良好的家庭基础网络覆盖是保障智能设备能良好运行的基础哦!使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)  

学会这款无死角家庭网络布局方案,210平米的房子也能做到千兆网速小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外100金币奖励。详细活动规则,请猛戳此链接!前言楼主读了很多值友写的各种网络布局设计方案和智能家居方案后想分享一下自己家里的设计方案,并且准备把自己家整体的网络、影音和智能家居方案全套讲解一遍,大家有类似的需求可以参考我的思路。这个系列也是yifanw| 208 评论173 收藏2k查看详情家庭网络全套解决方案分享 篇二:手把手教你打造多功能家庭娱乐中心(硬件篇)小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外100金币奖励。详细活动规则,请猛戳此链接!前言感谢小编让我的第一篇原创就获得精华!没看过的同学推荐从第一篇看起,此篇包括后续的文章都是基于第一篇中讲解的网络方案搭建起来的:学会这款无死角家庭网络布局方案,210平米的房子也能做到千兆网速.yifanw| 475 评论214 收藏4k查看详情家庭网络全套解决方案分享 篇三:手把手教你打造多功能家庭娱乐中心(软件篇)前言最近由于工作太忙,出差一下子跑了大半个月,此篇软件篇时间拖得有点久了。。。如果没看有过硬件篇的建议先看硬件篇,因为这篇的内容是基于上篇硬件篇的软件解决方案。家庭网络全套解决方案分享篇二:手把手教你打造多功能家庭娱乐中心(硬件篇)家庭网络全套解决方案分享篇二:手把手教你打造多功能家庭娱...yifanw| 24 评论11 收藏252查看详情

篇一中提到的网络布局图,除了部分影音设备是网线接入,其它所有智能家居设备都是通过2个AP接入,所以家庭基础网络100%覆盖及良好的信号强度是保证智能设备正常工作的关键!篇一中提到的网络布局图,除了部分影音设备是网线接入,其它所有智能家居设备都是通过2个AP接入,所以家庭基础网络100%覆盖及良好的信号强度是保证智能设备正常工作的关键!

方案思路

首先LZ为什么要选择Amazon Echo、Google Home,而不是国内的智能音箱品牌?因为:

  1. 在第一篇中提到了LZ本人定居国外,没有限制 

  2. Echo/GH 是目前海外市场上最有优势的2大智能音箱,对跨平台的硬件支持良好,并且HA原生就可以直接支持这2种智能音箱

  3. 国内的智能音箱品牌还处于模仿期,并且只能支持自家硬件设备,局限性大 

关于Amazon Echo和Google Home的优缺点,使用了几个月下来大概的感受是:

Amazon Echo (dot版本)Amazon Echo (dot版本)

优点:

  • 语音辨识率高,即使在嘈杂环境也基本上能响应语音指令,并且有方向感知,如果不是面对着Echo说指令不会触发响应

  • 智能品牌原生支持貌似比Google Home多

  • 支持设备分组,方便统一控制

  • USB直接供电,部署方便

缺点:

  • 几乎无语意分析能力,语音控制命令必须先自定义好,而且控制的时候必须说出完全一致的指令,不然有无法识别 - 这也许是最大的缺点,因为设备多了后自己不可能记住所有的指令使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

  • 控制指令及响应语音不支持中文

  • 原生内置指令集较少,只有有限的几个查询指令,例如,查询天气,交通状况等 - 虽然Amazon一直在添加新的指令集


Google Home (音箱版本)Google Home (音箱版本)

优点:

  • 具备一定的语意分析能力(但是还是稍弱于Siri),控制指令可以不完全受限于100%匹配命令

  • 因为Google本身后台就有强大的各种服务,并且通过 Google Assistant提供给Google Home使用,所以可以实现非常多的功能,例如,可以直接语音搜索,问路,查商家,查各种信息,只要在Google能查到的都能通过语音来搜索,并且GH会通过语音反馈结果。

  • 通过TTS服务可以支持几十种语言的语音响应 - 后面会详细介绍如何在HA中使用TTS服务实现中文语音响应

  • 支持直接通过Chromecast推送设备上的视频到智能电视,例如,可以直接语音搜索视频并且播放(使用油管视频,国内无法使用)

  • 支持直接播放Google Music或者Spotify上的音乐 - 前提需要是会员

缺点:

  • 语音识别率没有Echo高,特别是嘈杂环境内或者距离较远时,需要大声喊 Hey Google!!! 才会理你使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

  • 不支持设备分组!!! - 这点实在无法理解,这样我一个房间内多个灯泡就无法统一控制。貌似在美国的GH可以通过设置自定义触发条件实现,但是这也不是什么复杂的功能,居然不能简单实现!使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

  • 音箱版需要电源适配器连接,便利性没有USB版的Echo好,不过也可以理解,毕竟功率也大。

另外这2种音箱共同的缺点也许就是不支持中文语音控制了,这个也给国产的各种智能音箱带来了竞争的资本。而水果家的Homekit的优势在这里就能完全发挥出来,Siri原生支持中文并且支持语意分析。使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

服务端选择Home Assistant作为主要智能平台的原因是强大的智能硬件产品库支持,及友好的前端界面,另外还支持自定义脚本来实现高级的自动化功能(下篇会讲到)。下面是HA的简要介绍

Home Assistant 是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。

选择Home Assistant作为服务端搭配的硬件很多人选择的是树莓派3,很多网络上的文章也讲解了树莓派3+HA搭建智能化平台的方案,这个方案其实也是LZ最早选择的方案,但是我后期弃用了这个方案,原因是虽然树莓派的硬件配备满足HA的运行环境,但是由于HA中的产品库品牌众多,很多组件开发的好坏会直接影响到HA的性能,LZ遇到的一大问题就是某些组件运行一段时间后会导致不释放内存直到消耗完,另外如果设备较多的话也会把本身并不是很大内存的树莓派硬件消耗光,让HA直接停止工作,这种情况下只能重启HA或者树莓派。甚至后来LZ自己设置了每天树莓派必须自动重启一遍才行。。。使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

遇到这个问题后LZ希望能有个更强大的硬件平台来支撑HA的服务,最后终于在威联通的NAS中实现了,如果大家看过系列的第二篇文章 - 手把手教你打造多功能家庭娱乐中心(硬件篇)可以看到LZ的家庭娱乐中心实际上是围绕着威联通的453A NAS实现的,那么能不能直接把HA搭建在NAS上呢?答案是通过威联通自家的Container Station使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) ,下面是最终方案的架构图:

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

其中一个重要的部分就是Container Station,威联通官方的介绍是

QNAP Container Station (软件容器工作站) 支持 LXC 与 Docker® 两项轻量级虚拟技术。您可在 QNAP NAS 上执行完整的 Linux® 虚拟机,并由 Docker® Hub 在线市集下载来自全球各地数以千计的应用程序。

HA使用的就是Container Station中的Docker虚拟化技术,Docker这种轻量级虚拟化技术给HA来使用太合适不过了!使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)  不需要全量虚拟机就可以直接在NAS的系统中运行HA镜像,它的优势是可以把HA消耗的硬件资源控制在相对非常小的范围内,对NAS其它的应用性能影响基本上可以忽略不计使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 。另外一大优点是即使后面安装及配置过程中把HA搞坏了也完全不用担心会影响到主机,直接删除镜像重新安装即可 使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

可以看到我实际上是使用了2个docker,其中Homebridge镜像是把HA中所有的智能设备转化为Homekit服务的,这个稍后再说。

最后整体智能设备配置完成后完整的设备分布图 - 图太大,看不清楚可以点击进去看全图。

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

按照语音控制设备分解后单独看3个部分的内容(隐藏了最后一层设备,看起来方便点)

Amazon Echo控制的设备终端(红圈内为使用的服务)Amazon Echo控制的设备终端(红圈内为使用的服务)

Google Home控制的设备终端(红圈内为使用的服务)Google Home控制的设备终端(红圈内为使用的服务)

Apple Homekit控制的设备终端(红圈内为使用的服务)Apple Homekit控制的设备终端(红圈内为使用的服务)

可以看到3个终端有部分服务是特有的,例如,Google的Google Assistant服务和Homekit的Sense组件。这些稍后再细说。

实战操作

1.1 Home Assistant Docker的安装及配置

讲解完方案后就可以开始实际操作啦!这里我尽量讲解的细一点,基本上新手小白也可以一步步照着做完成 使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

首先我们来看看安装前需要准备的工具有哪些

  • 一台支持Container Station的威联通NAS,LZ用的是453A型号,但是理论上只要能安装Container Station的型号都可以。

  • 在NAS中新建一个共享文件夹,命名为HomeAssistant,稍后会用到

  • 支持UNIX系统格式的纯文本编辑器,推荐使用Notepad++,下载链接 

  • 支持SFTP/SCP/FTP的客户端工具,为了安装后方便编辑HA配置文件,推荐WinSCP,下载链接 


  • 一个好用的SSH客户端,这个非必须,只有需要调试或者排查问题的时候可能会用到,如果需要的话可以用Putty 下载链接 

  • 当然还有需要连入的各种智能硬件设备 - 建议提前安装完成并且在APP内连接好,如果是小米生态链设备,提前在米家APP或Yeelight APP内全部添加好。确保设备本身是没问题的!

  • 如果是WIFI接入的智能硬件,必须在路由内配置使用固定IP - 因为稍后在HA中是通过IP地址来查找设备的。

准备好后,开工咯~ 使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

首先进入NAS管理界面安装好Container Station,在App Center中直接可以找到,点击安装即可

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

安装完Container Station后点击桌面上的图标打开APP

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

进入后选择左边的创建新的镜像

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

搜索栏中输入 homeassistant/home-assistant 并点击搜索,在返回结果后选择 Docker Hub,并选择第一个结果右边的创建 (也就是前面数字最大的那个,注意别选错了)

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

弹出的版本选择latest最新版并点击下一步

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

在参数配置页面可以设置CPU限制和内存限制,因为HA所需的资源非常少,所以可以限制为15-20%完全足够了,内存如果足够的话(例如NAS安装的是8G内存)可以设置为1024,比较紧的话512应该也够了。

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

打开下面的高级设置,网络设置里面把网络模式更改为Host

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

在环境设置内新增一条时区设置,名称为TZ,值为实际所在地的时区,时区列表可以在这里查到 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

最后在共享文件夹设置内,找到挂载本地共享文件夹,然后点击新增,前面的路径设置为准备步骤中新建的HomeAssistant文件夹,挂载路径则设为/config,确保有读/写权限,最后点击下方的创建。

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

等待一会后就可以在主界面上看到已经安装完成啦!使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

下面的那个镜像是homebridge,后面会说到,先忽略哈~下面的那个镜像是homebridge,后面会说到,先忽略哈~

到这里为止就完成了Home Assistant主程序的安装!可以尝试打开NAS内网IP地址+8123端口,例如,http://192.168.1.100:8123,如果一切正常的话就可以看到HA的管理页面啦。

默认为英文界面,可以在设置中更改为中文默认为英文界面,可以在设置中更改为中文

什么都没有?别急,这个是首次安装完的默认页面哦~ 还需要我们来添加各个设备!

添加设备前记得先做一件事,在家里主路由里面添加端口映射到8123端口,这样做是不光为了可以从外网打开家里的HA控制台,另外一个重要的原因是后面一些高级自动化动作需要实时能和手机端通讯的,这个后面篇幅再详细讲解。每个路由设置端口映射的设置方式都不同,可以自己查找一下,我家的路由是Linksys WRT1200AC,在里面叫端口转发:

映射内网8123端口到外网,可以看到我还有其他服务也设置了端口映射映射内网8123端口到外网,可以看到我还有其他服务也设置了端口映射

设置完成后有的路由需要重启才能生效。生效后可以在外网直接打开家里的NAS外网地址+8123端口就可以看到HA管理界面啦使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

终于可以开始配置Home Assistant,首先HA的各种功能基本上全是通过配置文件实现的,配置文件本身基于YAML格式。放心,其实并没有那么复杂使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 。

先打开下载的WinSCP工具,创建一个新的站点l连接到NAS机器上,注意因为我们安装的是Docker镜像,所以我们需要连接的是NAS本机,而不是HA,连接创建后是可以看到NAS整个机器目录下的所有文件的。

创建时选择SCP为文件协议,主机名用NAS的内网IP,端口为22,用户名密码为NAS管理员用户创建时选择SCP为文件协议,主机名用NAS的内网IP,端口为22,用户名密码为NAS管理员用户

保存成新的站点后登录。如果是按照我上面说的步骤配置并安装的homeassistant镜像,在登录后应该可以在/share目录下找到一个叫HomeAssistant的目录,这个就是我们以后配置所有设备及调试的地方

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

进行下一步前我们再做一个事情,在程序配置中添加Notepad++(或其它之后会用来编辑配置文件的文本编辑工具)为默认的编辑器,这样方便后面调试及修改

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

完成后我们进入HomeAssistant目录,双击configuration.yaml这个文件,会用默认的编辑器打开,这个文件是HA的核心,所有的配置功能及设备都放在这个文件里面定义。

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

如果用的是Notepad++双击打开文件后第一件事需要做的是确认文件系统格式是UNIX格式,而非Windows格式,因为如果在Windows机器上打开这个文件,很有可能会自动转成Windows格式,如果不改回去的话修改后保存回NAS后是无法被识别的 - 在文件的右下角这里直接可以右键点击选择文件格式

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

打开后首先来设置基本配置内容

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

文件往下拉,在这里强烈建议设置访问密码(特别是打开了外网访问的情况下),除非你想让别人随意操作你家的灯电视空调,顺便看看你的摄像头。。。使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

这里使用了特殊字符 '!+文件名' 的方式来包含一个外部文件,这样可以不用把所有内容都写到一个文件中也保证了安全性 这里使用了特殊字符 '!+文件名' 的方式来包含一个外部文件,这样可以不用把所有内容都写到一个文件中也保证了安全性 

指向了同一目录下的文件指向了同一目录下的文件

在 secrets.yaml文件中定义登录密码在 secrets.yaml文件中定义登录密码

1.2 添加智能设备

配置完HA基础信息后就可以开始添加各种智能设备啦!添加前务必先确认每个设备已初始化并在自有APP中可以正常工作,例如,Yeelight灯泡/灯带等设备在Yeelight APP中可以正常工作,小米智能网关/开关/传感器等设备可以在米家APP中正常工作。

每个使用Wifi接入的智能设备必须在路由器上配置固定IP每个使用Wifi接入的智能设备必须在路由器上配置固定IP

下面我们要去HA的官网上找对应智能设备的接入方式,目前HA已支持上千种不同品牌的设备接入,所以几乎市面上销售的品牌90%都能找到,设备查找页面 https://www.home-assistant.io/components/

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

拿LZ家主力军Yeelight智能灯泡,灯带举例,输入yeelight查找可以找到2个组件,第一个应该是海外版的灯泡,国内好像没有销售,我们用第二个组件

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

点击进入后会详细说明这个组件的配置方式

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

我们只需把同样格式的内容复制粘贴到上面的configuration.yaml文档中然后编辑相关参数为实际设备的参数即可,如果有多个灯泡,可以全部列在 devices这个标签下,配置完后在configuration.yaml中是这样的

重点是把IP一定要改为对应灯泡的固定IP,其他参数可以参考页面上的说明重点是把IP一定要改为对应灯泡的固定IP,其他参数可以参考页面上的说明

注意yeelight和很多米家设备必须还要在官方APP中打开局域网控制模式(极客模式),这样设备才允许第三方服务接入,已yeelight设备举例,在APP的开启入口为

(网络图)(网络图)

(网络图)(网络图)

另外一个用的非常广泛的智能设备是小米的智能网关,智能网关下面还可以添加多个子设备(蓝牙通讯方式)实现各种智能自动化及通过各种感应器实现数据监测。智能网关的组件可以搜索关键字Xiaomi

可以看到返回了很多结果,对应的是小米家各种设备,智能锁,空气质量监测器,空气清新机,小米电视,开关等等,智能网关是Xiaomi Gateway可以看到返回了很多结果,对应的是小米家各种设备,智能锁,空气质量监测器,空气清新机,小米电视,开关等等,智能网关是Xiaomi Gateway

点进去后看到所需的配置格式为

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

需提供的参数为网关mac地址(如果是单网关模式则无需)和key - 这个是需要我们手动到米家APP中记录下来后填进去的,入口为打开米家APP,找到智能网关然后点击右上方的 ... 然后

点击图上空白处点击图上空白处

选择局域网通信协议选择局域网通信协议

把这里的密码记录下来并填到HA配置文件中米家网关的key参数中把这里的密码记录下来并填到HA配置文件中米家网关的key参数中

把网关添加完成后HA会自动把网关所连接的子设备自动带入进来,不用一个个手动配置啦!使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

HA页面中绿色框中设备全是小米网关下的子设备,有温湿度传感器,人体移动感应器,开关,漏水感应器等HA页面中绿色框中设备全是小米网关下的子设备,有温湿度传感器,人体移动感应器,开关,漏水感应器等

用同样的方式来添加其他智能设备,下面是我添加的多媒体设备

使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇)

设备全部添加完后可以看到已经可以使用HomeAssistant界面来控制灯光,控制电视/音响及查看各种传感器信息等智能设备了!

这个是我家全部设备添加完后的控制界面这个是我家全部设备添加完后的控制界面

结语+下集预告

做到这里已经可以实现基本的远程控制(通过HA控制界面),不过最多也只能算用软件实现了遥控开关功能,离真正的自动化 还有一定距离,由于篇幅原因,上篇就先到这里结束咯~ 未完待续!!!使用QNAP 威联通 NAS + HomeAssistant +第三方服务打造跨平台智能家居系统(上篇) 

在下一篇中计划讲解的内容包括

  • 设备分组

  • 高级自动化

  • 和不同品牌智能音箱整合思路及实现方式

  • 使用第三方服务联动实现跨平台控制


  • 等等等等。。。




推荐关注:
家居装修用品
话题:家居装修用品 +关注
经验
话题:经验 +关注
极客黑智能
话题:极客黑智能 +关注
每日原创榜单
话题:每日原创榜单 +关注
好文臻选
话题:好文臻选 +关注
生活记录
话题:生活记录 +关注
如何玩转NAS
话题:如何玩转NAS +关注
NAS存储
分类:NAS存储 +关注
家庭网络全套解决方案分享
系列:家庭网络全套解决方案分享 +关注

提示

鼠标移到标签上方,

尝试关注标签~

相关热门原创
评论76

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

1970 76

关注数量超出限制,请先删除部分内容再尝试

关注数量超出限制,
请先删除部分内容再尝试

登录
注册
用户名/邮箱
密码
验证码
看不清?点击更换
看不清?点击更换 忘记密码?

已收藏
去我的收藏夹 >

已取消收藏
去我的收藏夹 >

小提示