GeekLogic

传统家居的智能化改造: Part 1 – 平台搭建

现在智能家居的概念越来越火,市面上各种品牌的智能硬件琳琅满目,各种品牌也在打造自己的生态圈,小米系、阿里系、腾讯系、百度系……甚至随便找个家电品牌都想弄个自己的生态体系。这就导致了品牌绑定,你要做自己的智能家居,很有可能你只能绑定某一品牌。这种事情对于Geek来说是绝对无法接受的,手机里怎么可以容忍控制一种家电就要装一个App,装了很多App不同品牌还不能联动?

对于一个Geek来说,要解决这种问题其实并不难,通过廉价的ESP8266/ESP32芯片可以完全从头到脚自己来打造一套解决方案。嗯,对于我这样又懒又没钱又没时间又不想任人摆布的人来说,还是有路可以走的。

目标

  • 无线控制家里的各种电灯、插座、家电
  • 不受品牌限制
  • 各品牌间可以联动
  • 通过传感器可以感知环境并触发联动
  • 不更换现有传统设备,不改变家里的电路,低硬件实施成本
  • 尽量降低代码工作量

解决方案

前人种树后人乘凉,众多的开源项目中,Home Assistant凭借丰富的文档,方便的安装和使用,多元化的扩展成为了我的首选平台。这样就节省了很多的开发内容,安装和配置也很方便,真是省时省力。

硬件方面,ESP8266和ESP32是我的不二之选,ESP8266的硬件成本更是在10元以下,对于我这样的贫困人口,绝对是福音。ESP8266电路简单,可以作为接收端嵌入到传统家电中接受远程指令,返回当前状态。ESP32比起ESP8266有着更多的IO端口,可以当作某一房间的传感器中心或控制中心使用。

平台和终端之间的通讯协议如何统一呢,研究了半天发现使用HomeAssistant里面的ESPHome组件就能轻松的连接控制各ESP8266/ESP32终端。使用ESPHome的另一大好处是极大的降低了针对ESP芯片终端的代码开发量,因为ESPHome已经对一些简单通用的操作进行了模块化的集成,使用时只需要调用即可。另外MQTT也可以作为补充,甚至可以和家里的电脑等其他终端设备进行通讯和联动。

平台构成示意图,随手画的,请不要介意

方案实现:平台搭建

要实现以上的方案,第一步就是要搭建HomeAssistant的平台。其实我实在不想写这个,HomeAssistant文档丰富,可供大家参考,加上本文是在 CREATE创造 板块,我想快点切入主题,进入使用ESP8266芯片改造那个环节。但写到这里一笔带过也不太好,所以,还是累赘的快速简单的介绍下HomeAssistant的平台搭建吧。详细的搭建过程请参考HomeAssistant官方网站的文档中Installation这一章节。(写到这里,我默默的把文章标题改成了 Part 1 – 平台搭建

安装HomeAssistant有两种方式,一种是通过Docker等安装容器镜像,另一种是作为独立的OS镜像来进行安装。

我个人不喜欢自己装一堆Docker镜像,加上我有VMWare ESXi虚拟服务器,所以我选择了建一个虚拟机安装独立OS镜像的方式。这种方式最为简单,也不会和其他应用产生互相干扰(事实上这个OS镜像也就是个Linux系统里面装了一堆Docker)。

在HomeAssistant官方网站下载VMWare可用的VMDK镜像,存放到VMWare ESXi的DataStore上。这个VMDK文件不建议直接使用,反正我用的时候会有诸如无法扩展导致空间不够的问题。所以我们要手动克隆转换一下,把他变成厚置备再使用。具体方法如下:

  1. 打开VMware ESXi的SSH服务端(如已打开请忽略,我是一直打开的,在家里只有我一个人用,当然这是个不安全的坏习惯,主要是我比较懒)。
  2. SSH登录VMWare ESXi宿主机。
  3. 进入你上传VMDK文件的DataStore目录,例如:
    cd /vmfs/volumes/datastore/HomeAssistant
  4. 输入以下命令进行克隆,该克隆命令会将磁盘文件转换为厚置备:
    vmkfstools -i hassos_ova-5.13.vmdk hassos_ova.vmdk
  5. 现在可以删除原有下载下来的文件,我们只需要使用克隆后的文件即可:
    rm hassos_ova-5.13.vmdk

接着我们创建VMWare ESXi虚拟机,创建时,操作系统选择“其他Linux(64位)”:

虚拟机配置如下,在创建磁盘时,记得选择刚才我们克隆的VMDK文件。硬盘最好改成30G以上。其余设置根据图片标黄部分设置:

创建完成后就可以启动虚拟机了。启动后在浏览器输入 http://服务器IP:8123 就能看到HomeAssistant在准备环境,这个画面大约会持续十多分钟。

等HomeAssisstant准备完毕,就能看到初始化界面了,输入用户名密码创建管理员账号。

登录后,在左侧菜单栏中选择Supervisor,在右侧的界面顶端,选择系统可以查看日志,修改IP等操作。建议根据自己的习惯修改成固定IP。

选择加载项商店,就可以选择插件安装了。选择ESPHome、MQTT等插件进行安装。你也可以安装你喜欢的其他插件。我安装的插件如下:

插件安装完成后,左侧菜单烂会出现相应的插件选项。

至此整个Home Assistant的平台就安装完毕。HomeAssistant默认就兼容了很多市面常见的智能设备,因此很有可能启动后就自动发现了很多可以控制的设备,可以一一添加到设备清单中,同时在面板上添加相应的操作面板。

HomeAssistant的手机客户端可以在应用商店找到,安装方法不再赘述了(其实可以不用安装,用手机浏览器打开是同样的效果)。

接下来,我会慢慢写如何DIY传感器,如何将传统家电进行IoT改造。嗯,慢慢写,别催我,工作压力已经很大了,没啥时间,我还懒……

One thought on “传统家居的智能化改造: Part 1 – 平台搭建

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据