ESPHome 是一个开源固件框架,它简化了为常用 Wi-Fi 微控制器创建自定义固件的过程。使用 ESPHome,您可以: ● 使用简单的 YAML 配置文件创建自定义智能家居设备 ● 与 Home Assistant 无缝集成,打造统一的智能家居体验 ● 通过多种接口(网页、API、MQTT)控制和监控您的设备 ● 利用强大的设备端自动化功能,实现家居自动化 ● 通过无线方式“空中下载”(OTA)更新您的设备,无需物理接触。 ESPHome 负责固件开发的复杂部分,让您可以专注于真正重要的事情——按照您想要的方式构建智能家居。 img 下面将结合 ZeroNews 内网穿透工具,介绍如何在本地部署 ESPHome 并实现公网访问,以便于远程开发和调试。

一、本地部署 ESPHome

  1. 安装 Python 和 pip
更新软件包列表并安装 Python3 及相关依赖工具:
sudo apt-get update && sudo apt-get install -y python3-pip python3-dev git
img
  1. 安装 Python 虚拟环境模块
sudo apt install -y python3-venv
img
  1. 创建虚拟环境
在目录下创建名为 v_esphome 的虚拟环境:
python3 -m venv ~/v_esphome
  1. 激活虚拟环境
source ~/v_esphome/bin/activate
  1. 安装 ESPHome
使用清华大学镜像源加速下载:
pip install esphome -i https://pypi.tuna.tsinghua.edu.cn/simple
img
  1. 验证安装检查
ESPHome 版本,确认安装成功:
esphome --version
img
  1. 创建项目目录
mkdir ~/esphome-project
cd ~/esphome-project
  1. 使用向导生成配置文件
运行以下命令,按提示创建设备配置文件(如 your_device.yaml):
esphome wizard your_device.yaml
img
  1. 启动 ESPHome Dashboard 服务
在项目目录中执行:
esphome dashboard .
img
  1. 本地访问 ESPHome 界面
打开浏览器,访问 http://127.0.0.1:6052,即可看到 ESPHome 的管理界面。 img

二、创建 ZeroNews 隧道服务

  1. 登录 ZeroNews 控制台,选择您的系统(例如 ubuntu 系统,选择 Linux 即可),并按照对应的步骤和命令安装启动客户端
img
  1. 运行完成之后,您可以在 客户端页面看到已经在线的 客户端服务。
  2. 接着,我们在控制台「自定义域名」管理页面,添加域名(以 myesphome 为例):
  • 在「域名类型」中选择「默认域名」,并在「子域名前缀」中输入 myesphome,然后点击「域名可用性检测」
  • 若下方「接入域名」显示为「可注册」,则表示该域名当前可添加使用,点击单选框选择该域名
  • 点击「提交」,完成域名添加
img
  1. 域名创建完成之后,在 “隧道管理” 页面下,添加隧道
  • 选择隧道模式
    • 在“隧道模式”下拉框中,保持选择 “标准隧道”
  • 选择隧道特性
    • 在“隧道特性”下拉框中,选择 “Raw”(这是默认的透传模式)
  • 配置协议与带宽
    • 隧道协议:选择 “HTTPS”
    • 带宽(Mbps):在输入框中填写所需的带宽数值(例如 1)
  • 设置公网域名
    • 在“公网域名”选项中,点击选择 “自定义域名”
    • 在下方的“选择自定义域名”下拉框中,选择刚才添加的域名,例如 myesphome.hn.takin.cc
  • 配置内网映射信息
    • 绑定设备:点击下拉框选择需要绑定的在线设备
    • 内网 IP:在输入框中填写内网 IP 地址,例如 127.0.0.1
    • 内网端口:在输入框中填写服务对应的端口号 6052
  • 完成添加
    • 点击右下角的 “确认” 按钮即可保存。
创建成功之后,您就可以在隧道列表页面看到可访问的隧道。

三、公网访问您的 ESPHome 项目

  1. 我们在任意有网络访问电脑的浏览器上,复制上一步「隧道管理」页面的 https://myesphome.dy.takin.cc 地址访问。
img
  1. ESPHome 支持非常多的设备,可以参考相关的文档完成相关设备的添加创建:https://www.esphome.io/guides/getting_started_hassio/
img 提示:文档截图及示例中的域名、隧道地址可能与您当前实际使用的不一致,请以 ZeroNews 控制台显示的实际地址为准。