ESPHome 是一款用于 ESP8266 和 ESP32 芯片设备的开源系统,允许用户通过定义简单的 YAML 配置文件来创建复杂的物联网设备应用,无需直接编写底层代码,特别适合于智能家居解决方案,可以与 Home Assistant 完美集成,但也可以独立使用。本文将详细介绍如何在 Linux 系统局域网内部署 ESPHome 并结合内网穿透技术实现外部访问。
第一步,本地部署 ESPHome
- 本教程使用 Linux Ubuntu 系统进行演示,首先输入以下命令更新软件包列表并安装一些必要的依赖项。
sudo apt-get update && sudo apt-get install -y python3-pip python3-dev git
- 安装虚拟环境 venv 模块。
sudo apt install -y python3-venv
创建一个虚拟环境(例如在 ~/venv_esphome)。
python3 -m venv ~/venv_esphome
激活虚拟环境。
source ~/venv_esphome/bin/activate
- 使用镜像源加速下载安装 esphome。
pip install esphome -i https://pypi.tuna.tsinghua.edu.cn/simple
验证是否安装成功。
esphome --version
- 创建并进入一个空的 ESPHome 项目目录。
mkdir ~/esphome-dashboard
cd ~/esphome-dashboard
使用向导创建配置文件,按照提示完成。
esphome wizard your_device.yaml
- 在项目目录中运行以下命令启动 ESPHome Dashboard。
esphome dashboard .
- 打开浏览器访问地址 http://你的服务器 IP:6052,就能看到你部署的 ESPHome 界面了。
第二步,外网访问本地 ESPHome
为了从外网访问本地部署的服务,需要配置内网穿透。可以通过 Docker 部署内网穿透容器服务,将本地端口映射到公网。
- 下载并加载内网穿透工具镜像。
wget <穿透工具镜像下载地址>
docker load -i <镜像文件名>
- 使用该镜像启动容器,需填写对应的接入码或 Token。
docker run --name tunnel -it --restart=always --net=host -e code=<填写安装码> <穿透工具镜像名>
-
等待安装完成后,确认登录成功,输出类似
[Device] Logged in的提示。 -
若容器在前台运行,可按 Ctrl+C 退出后使用 放入后台持续运行。


