写在最最前面,必读!

本项目涉及强电操作,需要具备一定的安全操作知识,否则不建议复刻此项目!!

前言

对于购买过智能家居产品的用户来说

第一个问题是是智能家居产品的闭源性,比如你买了华为或者米家的产品就必需一直用米家或者华为厂家的产品,对于多个厂家的产品联动还是比较难的。

第二个问题是用户信息的泄露问题,比如你想要用某个厂家的无线开关进行开灯操作,那么从通信方面这个开灯的指令是要和厂家的服务器进行通信,虽然国家法律法规要求不允许厂家对外透露用户个人信息,我可以不卖用户信息,但是我可以统计出来哪个user_id家里买了一大堆的智能灯吧?那我给他推荐一些无线开关不过分吧?(还得是大数据)

HAOS(homeassistant OS),是一个开源的基于Python的平台,安装平台要求很低,一块开发板树莓派,或者群晖都可以很简单的安装HAOS。基于大量大佬开发的可视化的集成,使用homeassistant甚至不需要写复杂的逻辑代码就可以实现绝大多数硬件厂商的设备的接入,打破各个厂商间的壁垒,做到一站式管理,实现智能家居的大一统(小米开关控制涂鸦的灯不是梦)。

并且由于是私有化部署,搭配Zigbee Home Automation(ZHA)或ZigBee2MQTT(Z2M),可以实现ZigBee设备的真正的本地控制,本地购买了什么设备,用户习惯如何,全部不泄露给硬件厂商。

通过极其强大的自动化流配置的插件(node-red),可视化拖拽式的自定义自动化,只要能想得清楚逻辑的流程,就都可以实现!

锦上添花的是,通过Home Assistant Bridge集成,可以讲Homeassistant里的灯、智能插座等接入苹果家庭,感受HomeKit原生App的优秀交互。

那么该如何去部署使用Home Assistant呢?

1.软件部分

1.1 Home Assistant的环境搭建

博主参考了以下几个教程

  1. https://www.mintimate.cn/2022/03/29/raspberryInsatllHAS/
  2. https://bbs.hassbian.com/thread-14225-1-1.html
  3. https://www.home-assistant.io/ (官方网站)

因为树莓派5国内快发售了,所以我使用了树莓派4b(大降价XD)进行搭建,系统为官方系统(基于Debian 12)。

hass03
hass07

根据教程安装的是Supervised版本,该版本优点是运行于docker环境下,树莓派还可以跑其他项目,并且功能强大,缺点是需要有一定的linux操作经验对于新手来说比较难,而根据这一个星期的不断实验我只安装成功了Container和Supervised版本,os版本虽然最简单只要刷入系统就行,但是由于国内网络环境大概率初始化不成功,所以首推Supervised(长痛不如短痛)。

需要注意的是:
由于国内环境,在安装docker或使用wget、apt-get命令安装时需要进行换源和科学上网

教程链接:
1.wget http代理设置
2. 更换软件源
3. 树莓派使用v2代理科学上网
4. docker镜像加速
另外在安装其他依赖时需要阅读官方文档,对依赖进行增添修改。

在安装Supervised版本时要有耐心,等待初始化完成(最慢的要1天),按照教程一步一步走就大概率没问题。

部署成功如图所示
屏幕截图(27)
屏幕截图(28)

1.2 ESP8266软件烧录

esp8266,esp-01s ,esp-01, esp32都可以
博主选用esp8266进行搭建。

1.2.1烧录Sonoff-Tasmota固件

固件地址
选用tasmota-CN.bin
hass08
烧录成功后连接上esp8266建立的wifi(Tasmota开头的),进行网络配置,连接上你家里的wifi。
在路由器后台可以看到esp8266的IP地址,复制该地址访问Tasmota后台,如下图所示。
屏幕截图(29)
在设置界面设置模块类型,esp8266选择Generic(18),TX和RX通信端口按照图示来选,其他引脚可以选择加入其他模块比如继电器,DHT11等,保存之后会自动重启。
关于TX RX连接问题,如果硬件连接正确但是没有显示正确的示数,可以调换esp82666和pzem-004t模块之间的TX 和RX两个线的连接。通信成功的话pzem-004t模块上两个TX RX指示灯会明亮的交替闪烁。

1.3 Home Assistant后端MQTT服务配置

在Home Assistant侧边栏选择配置,之后选择加载项商店,添加加载项Mosquitto broker。
hass10
hass11
在Mosquitto broker界面配置一栏中编辑选项

logins:
- username: mqtt
  password: mqttq
require_certificate: false
certfile: fullchain.pem
keyfile: privkey.pem
customize:
active: false
folder: mosquitto

username为mqtt服务器用户名
password为mqtt服务器密码(需要设置为全英文字母,因为Tasmota后台连接mqtt服务器时输入密码不认数字,离谱!), 保存之后重启该加载项。

在Tasmota后台中配置mqtt通信,如下图所示
屏幕截图(30)
主机ip为你的树莓派ip,端口默认1883,用户名和密码改为你之前设置的,保存之后自动重启,设置成功后可以在Tasmota控制台看到mqtt服务器连接成功。

1.4 Home Assistant后台配置Tasmota集成

在Home Assistant后台点击配置,设备与服务,之后添加集成Tasmota,配置成功后会显示在mqtt服务器中所有的设备。
hass13

软件部分至此配置完毕。

再次强调:本项目涉及强电操作,需要具备一定的安全操作知识,否则不建议复刻此项目!!

2.硬件部分

2.1硬件清单

  1. esp8266(我直接用的模块,淘宝上12元左右,可以自己买一个esp8266核心搭建最小系统进一步缩小成本和体积。)
  2. 220v转5v模块(某宝上5元,尽量不要买阻容降压电路,危险性还是比较大的,而且不适合带多负载,买带隔离的。)
  3. pzem-004t模块(某宝上买带开口CT的版本,量程最大100A方便后期的接线。不到50元)
  4. DHT11温湿度模块(成本4.7元)
    关于3.3v的获取,可以在esp8266模块上之间获取,或者在220v转5v模块上焊接个ams1117即可获取3.3v(有的220v转5v模块电路板后面专门预留了ams1117元件空位方便焊接)。
    hass14

2.2接线

如图所示,仅供参考
请注意,电流互感器为穿心式,二次侧两根线要接好模块之后再把进户线卡到互感器中间(防止电流互感器二次侧开路产生高压危害人身安全),在断电30min之内不要用手去摸PZEM-004T模块上面的电容(黄色的方块),因为即使断电电容内部还是存有电荷,电压还是220v比较危险(目测阻容降压电路)
PZEM-004T模块为无源模块,需要外接5v供电,注意不要接反,TX和RX连接按照之前在Tasmota后台设置的引脚定义去连接。
hass15

博主焊接成品如下,仅供参考,可以自己设计电路板进行焊接,更加方便、安全。
hass02
hass01

220v进线建议加个空开,保证人身安全。

最后的效果

Home Assistant后台界面

(我接了一个纯阻性负载进行测试,可以看到功率因数为1)
屏幕截图(25)

时间曲线

hass16

最后

感谢您能阅读本教程,如有不准确之处欢迎指正,多多互相交流学习。