#原创新人#相关准备与安装Hass.io

2017-08-29 08:15:15 782点赞 6288收藏 556评论

追加修改(2017-08-30 16:30:27):
如果你看完了之前的文章,决定开始尝试一下打造个人的智能家居系统。那么恭喜你,你不但能解决谁下床关灯,大门到底关没关好的历史难题,还能够充分发挥个人的想象力,解决更多的家居问题。 - 早晨醒来,自动调高房间温度、打开窗帘并启动咖啡机,开始迎接美好的一天。 - 下班开车回家,根据你的手机定位,自动开启车库、打开门锁并点亮灯光,做好准备欢迎你回家。 - 当你准备睡觉时,也可使用自定义场景,来关闭所有灯光、调低恒温器的温度,并锁好房门。 - 如果天气很热,你将在离家三公里远的时候,收到手机消息推送:“是否打开空调?” - 下雨了,如果窗户开着,系统会提醒你关窗,当然,如果有关窗器和雨水感应器,完全可以自动关窗。 - “Hey,Siri,‘电影之夜’”,系统自动关闭主光源、开启氛围灯,降下幕布,打开功放并设置好输入源。开始享受属于的你“电影之夜”吧! - 基本的语音/感应/远程开关灯、门、窗,消息推送……

随着科技巨头的入场,智能家居不但从比尔盖茨当年的预言中走入现实,而且在平台化的力量下,成为了消费者能够轻松入手的产品。亲自打造个人的智能家居系统已不是难事,本文将从零开始,更加系统地讲解打造个人智能家居的各个环节,以期哪怕是零基础的小白也能够轻松入门玩耍。由于是零基础教程,在系列文章的首篇,我会先展示最终的使用效果,并用一定篇幅介绍市面上的智能家居平台,简单介绍搭建个人智能家居系统所用到的设备、软件、平台、系统结构,有基础的极客玩家可选择性阅读。

一、最终使用效果

本系统能够使用 iOS(HomeKit) 设备以及 Web 页面(Home Assistant)直接操作,除此之外,通过 Home Assistant 的自动化设置,能够实现更多的功能,将会在之后的文章中介绍。

▲ iOS 家庭▲ iOS 家庭

▲ iOS 家庭▲ iOS 家庭

▲ Siri控制 & 消息通知▲ Siri控制 & 消息通知

▲ Home Assistant 首页▲ Home Assistant 首页

▲ Home Assistant 按房间分类控制▲ Home Assistant 按房间分类控制

▲ Home Assistant 天气页面▲ Home Assistant 天气页面

▲ Home Assistant 基于平面图的可视化控制▲ Home Assistant 基于平面图的可视化控制

二、智能家居能干什么

一张图简要说明智能家居的功能与实现方式。

▲ 功能与实现▲ 功能与实现

三、智能家居平台

我将 DIY 以外的智能家居平台(硬件)分成两种模式。

1. 平台化模式,一个供智能家居硬件设备接入的平台,不限制设备的具体参数,平台统筹全部设备、统一通信协议与数据,在一个 App 或页面内控制这些来自不同品牌的智能家居硬件,由平台实现更高级的自动化控制、语音控制。

2. 系统化模式,主要由具体的智能家居硬件品牌商独自研发,通常有独立的 App 控制,互不兼容。

▲产品级智能家居平台▲产品级智能家居平台

智能家居之所以智能,设备间的通信是基础。无数厂家的涌入开启了万物互联时代,而由于商业或技术的原因,上述的平台或者品牌,相互之间大多是不兼容的。

Apple HomeKit 苹果的家庭 App 在美观和易用性方面值得很多厂家学习,与 iOS 的深度整合是其他品牌无法比拟的,是 iOS 设备用户的第一选择。但是由于 HomeKit 授权的问题,目前接入设备较少,主要为国外品牌,价格较贵。

GoogleAmazon 的情况类似,由于某些原因,接入设备在国内不那么智能了。

小米在国内布局智能家居多年,额外的软件公司属性使得小米的米家 App 比众多不那么好用的 App 优秀不少,米家智能平台的开放,增加了设备的可玩性,目前要注意区分小米、米家、有品、小米生态链企业……

阿里京东依托渠道优势,就接入设备的种类而言是最多的。由于系统的封闭性,你可能会遇到在淘宝买到设备连不上京东的 App,当然,也没有开放平台。

传统智能家居厂商需要在住宅的施工期介入,提前布线与规划,能够提供更完善的家居体验,成本最高,终端控制设备的用户体验不佳。

独立的厂家也有很多小而美的产品,用户体验也很棒,但想用这些设备实现一些改造,设备的保有量和用户基数是一个问题,更广泛的用户全体是一个生态繁荣的保证。

至于传统家电厂商的智能化路程,我不关心有什么故事,我只想请他们多花点钱请程序员与设计师。

四、树莓派 + Home Assistant + HomeKit

根据我自身的情况,我最终选择了小米的智能家居设备,改造目标有两点:

1. 在 iOS 终端使用 HomeKit 操控设备。

2. 更高级的自动化配置,使智能家居实至名归。

除了平台间的兼容问题外,由于智能硬件设备自有平台本身的局限性,也使得智能家居不那么智能,用户体验也很不好,智能家居成了遥控家居。比如小米的自动化设置只能固定时间段,无法像 HomeKit 那样以日出日落时间为条件,季节变换,自动化就要重设一遍。为了实现目标,我采用的是一个开源智能家居平台Home Assistant 。所有设备首先接入 Home Assistant,通过 homeassistant-homebridge 插件实现接入 HomeKit,整套系统部署在树莓派上。结构如下:

▲系统结构▲系统结构

Home Assistant 是一个基于 Python 3 开发的开源家庭自动化平台。可以跟踪和控制家庭中的所有设备,并实现自动化控制。不同于商业化的平台,Home Assistant 依托的是庞大的社群,目前支持 779 种不同组件,在 Github 上还有更多的定制组件,0.50 版本后,能够直接接入小米设备。它最大的优势在于丰富的自动化配置以及高度自由的定制化。

树莓派 是由树莓派基金会研发的一种只有信用卡大小的单板机电脑,最初的设计目标是用较为廉价的硬件和开源软件为儿童提供一个计算机教育平台。但其优秀的扩展性和易于开发的特性,使其不仅仅用于儿童教育,更是成为了极客们的玩具。树莓派被开发出了千千万万种玩法,并且普通人也可以轻松实现。感兴趣的请深入阅读“少数派”的文章树莓派入门指南

Home Bridge 是前苹果员工的作品,基于 NodeJS,模拟 iOS HomeKit API。有如其名,作为“桥”来连接 iOS 设备,使得本不支持 HomeKit 的设备能够接入。

五、基础准备

1. 树莓派相关

▲树莓派 3 MODEL B▲树莓派 3 MODEL B

考虑到智能家居的时效性以及经济性,一直开机、永远在线、低功耗、高性能的树莓派是我们的不二之选。作为整个系统的硬件平台,树莓派本身是不含任何操作系统的。你需再要购置一张 TF 卡,一个电源、一个读卡器。当然,在某宝和某东上你可以轻松购买到打包好的套装,价格在 300 元以内。

树莓派3 淘宝搜索树莓派 淘宝搜索自行挑选,注意购买存储卡以及电源。s.taobao.com去看看

2. Home Assistant 安装方式选择


▲Home Assistant 官网▲Home Assistant 官网

经过众多版本的迭代以及社区成员的贡献,Home Assistant 支持大部分平台,包括 Docker、macOS、Linux、Windows 等。在树莓派上安装 Home Assistant 有多种方式,你可以选择在树莓派 Raspbian 系统下安装,也可以之间安装集成了 Home Assistant 的 Hassbian 操作系统。

由于面向零基础的玩家,尤其是代码恐惧症患者,我选择了 Home Assistant 于 2017年7月26日发布的 Hass.io 集成系统,全可视化安装配置,基 DockerResinOS

Docker 是一个软件容器平台,是一种新兴的虚拟化方式。抛开参数性能,对于开发者来说,它解决了运行环境一致性的问题,Docker 的镜像提供了除内核外完整的运行时环境。

ResinOS 是为容器设计的主机操作系统,作用于在嵌入式设备上运行 Docker 容器。

▲Hass.io 系统结构▲Hass.io 系统结构


Docker 的引入使得 Hass.io 管理功能插件就像你在手机上安装 App 一样简单(事实上 iOS 的底层确实采用了类似机制),再不用通过命令行和代码来管理你的 Home Assistant。同时,通过 Docker 来封装插件,使得插件的稳定性得到了极大提高,用户能够把精力集中在个性化定制 Home Assistant 及自动化上来。

可以预见 Hass.io 是 Home Assistant 的发展方向,如果说它有什么缺点的话,那么也在于它的封闭性上。后期我会推出进阶教程,通过其他方法安装 Hass.io,解锁树莓派更多功用。

3. 其他准备

准备好一些点心或者保持手机电量的充足,由于你懂的网络原因,你可能会经历安装 5 分钟,等待 2 小时的局面……


六、安装 Hass.io

1. 下载适用于树莓派3 的 Hass.io 镜像。下载地址

2. 将镜像文件烧录至 TF 卡。

推荐使用 Etcher (By resin.io


▲Etcher▲Etcher

3. 如果树莓派采用 WiFi 连接,在烧录完成后使用文本编译器打开 TF 卡目录下 system-connections/resin-sample 文件,修改填写你的 WiFi 信息:

[connection]
id=resin-wifi
type=wifi

[wifi]
hidden=true
mode=infrastructure
ssid=你的 WiFi SSID

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=你的 WiFi 密码

其他请参考 ResinOS 网络配置

4. 将 TF 卡插入树莓派中,并保证树莓派处于联网状态。几分钟后,在浏览器(推荐 Chrome)地址栏输入http://hassio.local:8123,你应该会看到如下界面。


▲Hass.io 初始化▲Hass.io 初始化

初始化时,系统会更新到最新的版本,而显然 Home Assistant 没有国内服务器,所以不要相信 20 分钟的提示,不要切断电源,拿出之前准备的点心,享受一下难得的悠闲时光(煎熬等待)……

几十分钟到几个小时不等的时间过后,终于安装成功,初始界面如下:


▲Hass.io 初始界面▲Hass.io 初始界面

七、下篇预告

1. Hass.io 插件(Add-ons)安装

2. 系统配置与设备接入

3. HomeKit 的连接



展开 收起
556评论

  • 精彩
  • 最新
  • 为什么烧完hass.io上机连接只显示房子的图标其他啥也没有过会儿就黑屏了。求大神解答...

    校验提示文案

    提交
    我跟你一样,估计是服务器都连不上吧

    校验提示文案

    提交
    应该是正在初始化,请耐心等待。

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • @智能改造家
    抽空安装了一下,并且查看了下 Hass.io 的插件开发者文档,可以确定默认情况下是从 Docker 镜像仓库获取现成的镜像.那么速度慢的原因应该可以通过修改镜像仓库源来解决.总的来说,通过查看开发者文档找到了方法,大妈这边就不发了,太短 [偷笑]

    去看看

    楼主看到如果方便的话,麻烦帮忙验证一下 [尴尬]

    校验提示文案

    提交
    [喜极而泣] 万分感谢!我今天就试试!

    校验提示文案

    提交
    收起所有回复
  • 连开灯关灯都要摸次手机,到底是科技进步还是懒到无可救药,呵呵

    校验提示文案

    提交
    iOS 有个功能叫嘿Siri

    校验提示文案

    提交
    有siri啊,为什么还要摸手机呢

    校验提示文案

    提交
    还有12条回复
    收起所有回复
  • 我觉得Domoticz 更加合适吧。希望作者能对比下Home Assistant,之前用过Home Assistant,发现需要敲的代码太多,所以还是选择更加人性化的Domoticz

    校验提示文案

    提交
    Hass.io 发布之后 Home Assistant 已经非常适合新手了,开源作品确实都需要一定的学习门槛。我测试感觉 Home Assistant 的设备响应要比 Domoticz 快一些,所以选择了 Home Assistant。

    校验提示文案

    提交
    请问我的系统初始化后,为啥第一次登陆就有密码? 初始密码是什么?

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 这些东西需要整合,需要优化,需要傻瓜式安装和配置,99%的有智能化需求的客户不会花时间去整这些

    校验提示文案

    提交
    是的,这就是为了那1%不满足现有平台和 App 的用户而生的。

    校验提示文案

    提交
    收起所有回复
  • 家里装修也准备搞智能家居,不过没得苹果设备,安卓有没有可用的?

    校验提示文案

    提交
    安卓不如用小米

    校验提示文案

    提交
    Home Assistant 的控制界面都是基于 Web 的,Android 用户忽略 HomeKit 相关就可以了。

    校验提示文案

    提交
    收起所有回复
  • 自己设计的装修,布线花了不少精力,很多控制线和电源线都放到了控制柜,本来计划打造成基于plc控制的智能系统,看看楼主的文章进度,有可能会改变方案..........如果可以也希望楼主可以给点意见

    校验提示文案

    提交
    其实目前市面上的消费级产品,都是通过无线接入的,理论上是不影响前期布线。在这一块我认为主要还是平台的选择和之后自动化设置,前者决定设备间的通信,而后者是智能化的关键。

    校验提示文案

    提交
    收起所有回复
  • hass.io目前我用最大的问题就是时间,墙内的网络,一个插件更新就得好久,实在是辛苦,不知道有没有办法用镜像源

    校验提示文案

    提交
    这个确实是最苦恼的地方,Hass.io 基于 ResinOS 的,我也在尝试阅读官方文档来解决这跟问题。

    校验提示文案

    提交
    路由器设置SS

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 补充一个,浏览器必须用chrome,IE不行,QQ浏览器也不行。。。 [喜极而泣]

    校验提示文案

    提交
    Safari 也可以! [飞吻]

    校验提示文案

    提交
    收起所有回复
  • 问下SD卡+读卡器可以吗

    校验提示文案

    提交
    树莓派 还是需要内置 TF 卡做启动盘的,大小无所谓。

    校验提示文案

    提交
    收起所有回复
  • 不错的东西。其实我一直想能不能把这些24h开机的控制的计算设备整合到一个东西上。。比如nas、软路由、现在的树莓派控制器啥的

    校验提示文案

    提交
    群晖 + Docker 能满足你的所有要求。 [哦耶]

    校验提示文案

    提交
    收起所有回复
  • lz,问个小白问题,买了主板,需要显示输入的话是直接连显示器和外设吗?不需要买那个树莓专用的小显示屏吧?

    校验提示文案

    提交
    不需要专用显示屏,通过web和远程连接管理

    校验提示文案

    提交
    收起所有回复
  • tf卡要准备多大的?U盘可以吗

    校验提示文案

    提交
    8GB以上的都可以,只有TF卡可以做启动盘,所以要用U盘的话还是要有个小的TF卡(几十MB)的做引导。

    校验提示文案

    提交
    收起所有回复
  • 楼主大佬,请问我没有树莓派,用 Android 手机 Linux Deploy 装了一个 Ubuntu 16.04,Docker 也装好了,不知道能不能直接在这上面装 Hass.io?我查了Hass.io 官网,但是没找到怎么用 Docker 部署 Hass.io,能帮帮我吗。。总之谢谢啦,银子先送上。

    校验提示文案

    提交
    官方 Github:去看看

    校验提示文案

    提交
    收起所有回复
  • 很惭愧的讲我日常是个伸手党,恰好自己还有一点碎银子,全部打赏啦。有个小问题,树莓派已经买了,还需要那些智能硬件设备?除了米家的系列产品还有没有其他物美价廉的问题。还有我的家里的硬装全部完成了,现在搭建智能环境有没有高效且节省成本的方法? 望楼主指导,谢谢。

    校验提示文案

    提交
    目前大多数的产品都是无线设备,想要高效的话就选一家品牌的,兼容性好;省成本当然是 Hass.io + DIY 设备,比如sonoff开关,就是费事一些。

    校验提示文案

    提交
    还有一个事情就是我到树莓派安装好插件且配置Home Bridge后,在去添加其他硬件设备可以吗? 比如小米网关和其他设备?因为还没有购买的还没有到货 [脸红] 这个顺序颠倒一下是否有影响?还有就是以后增加设备的话 需要重新配置插件吗?

    校验提示文案

    提交
    收起所有回复
  • 麻烦大神。请问,我用nanopi neo2安装的Home Assistant 0.53.1,(参照去看看 这篇文章)然而进系统之后没有插件商店。那么,我该通过什么指令去装呢...网上找的都是(curl -O 去看看 && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh )树莓派的.....

    校验提示文案

    提交
    只有 Hass.io 含有插件,Home Assistant 其他版本没有

    校验提示文案

    提交
    收起所有回复
  • @Jun-long 我按照您的文章安装,但是到了preparing hass.io 界面的时候,我看路由器里面Pi有在下载数据,但是过一会自动就断开网络了,就连接不上了怎么回事啊

    校验提示文案

    提交
    网络问题,外网下载很慢……

    校验提示文案

    提交
    请教作者 怎么在homekit里面更改开关图标啊 类型里面只有3个啊

    校验提示文案

    提交
    收起所有回复
  • 请问这个能让不同用户对房间的命名不一样吗?比如我在我的手机将房间a命名为我的房间,在父亲的手机上将房间a命名为儿子的房间

    校验提示文案

    提交
    据我了解不可以,***

    校验提示文案

    提交
    直接写名字不就OK?

    校验提示文案

    提交
    收起所有回复
  • 应该先晒效果,使用的场景。提起兴趣了再深入

    校验提示文案

    提交
  • 全部都没看懂,竟看完了 [傻笑]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
6.2K
扫一下,分享更方便,购买更轻松