Home Assistant + ESPHome 入门
简介
Home Assistant 是一款开源的家庭自动化平台,它可以让你通过简单的配置文件来控制和监控家中的各种设备。ESPHome 是一个 Home Assistant 的集成组件,它可以让你通过简单的配置文件来创建和管理 ESP8266/ESP32 设备,让它们变成 Home Assistant 的一部分。
Home Assistant 官网:https://www.home-assistant.io/
ESPHome 官网:https://esphome.io/
准备工作
在开始之前,你需要准备以下工具和材料:
- 一台运行 Home Assistant 的设备
- 一个 ESP8266 或 ESP32 开发板
安装 Home Assistant
Home Assistant 的安装支持多种方式,包括 Docker、Python 虚拟环境、操作系统安装等,这里使用 Docker 安装。
创建 Home Assistant 的 compose.yml 文件:
name: homeassistant
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host
运行 Home Assistant 容器:
docker-compose up -d
执行之后,访问 http://localhost:8123 ,按照提示完成 Home Assistant 的初始化设置。
设置完成后,你会看到 Home Assistant 的主界面。
安装 ESPHome
使用 Python 虚拟环境安装 ESPHome:
mkdir ~/esphome # 创建目录
cd ~/esphome # 进入目录
python3 -m venv venv # 创建虚拟环境
. venv/bin/activate # 激活虚拟环境
pip install esphome # 安装 esphome
测试安装是否成功:
$ esphome version
Version: 2024.5.0
创建 ESPHome 项目
给开发板第一次烧录固件,需要通过 USB 转 TTL 串口连接开发板和电脑,之后可以通过 OTA 方式更新固件。
使用 esphome -h
查看帮助信息。
创建 ESPHome 项目:
esphome wizard nodemcu-esp8266.yaml
根据提示输入 WiFi SSID 和密码,生成配置文件。
esphome:
name: nodemcu-esp8266
esp8266:
board: nodemcuv2
# Enable logging
logger:
# Enable Home Assistant API
api:
password: "otapass"
ota:
password: "otapass"
wifi:
ssid: "ly1_iot"
password: "songwifi"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Nodemcu-Esp8266 Fallback Hotspot"
password: "KCDrBKcKN360"
captive_portal:
编译和上传固件:
esphome run nodemcu-esp8266.yaml
添加设备到 Home Assistant
左侧菜单栏点击“配置” - “设备与服务” - “集成”,会自动发现新设备。
点击“配置”,点击“提交”。
填入刚刚配置文件中的 OTA 密码,点击“提交”,完成设备添加。
点击 ESPHome 可以看到刚刚添加的设备。