本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)

ESPHome 是一款用于 ESP8266 和 ESP32 芯片设备的开源系统,它允许用户通过定义简单的 YAML 配置文件来创建复杂的物联网( IoT )设备应用,而无需直接编写底层代码,特别适合于智能家居解决方案,可以与 Home Assistant 完美集成,但也可以独立使用。本文将详细介绍如何在 Linux 系统局域网内部署 ESPHome 并结合路由侠实现外网访问局域网内部署的 ESPHome 。

第一步,本地部署 ESPHome

1,本教程使用 Linux Ubuntu 系统进行演示,首先输入以下命令更新软件包列表并安装一些必要的依赖项。

复制代码
sudo apt-get update && sudo apt-get install -y python3-pip python3-dev git

2,安装虚拟环境 venv 模块。

复制代码
sudo apt install -y python3-venv

创建一个虚拟环境(例如在 ~/venv_esphome )。

复制代码
python3 -m venv ~/venv_esphome

激活虚拟环境。

复制代码
source ~/venv_esphome/bin/activate

3,使用清华源加速下载安装 esphome 。

复制代码
pip install esphome -i https://pypi.tuna.tsinghua.edu.cn/simple

验证是否安装成功。

复制代码
esphome --version

4,创建并进入一个空的 ESPHome 项目目录。

复制代码
mkdir ~/esphome-dashboard
cd ~/esphome-dashboard

使用向导创建配置文件,按照提示完成。

复制代码
esphome wizard your_device.yaml

5,在项目目录中运行以下命令启动 ESPHome Dashboard 。

复制代码
esphome dashboard .

6,打开浏览器访问地址 http://你的服务器 IP:6052 ,就能看到你部署的 ESPHome 界面了。

第二步,外网访问本地 ESPHome

安装路由侠内网穿透。

1,当前未提供网页管理,需要先在任意一台 Windows 机器安装路由侠 Windows 版本,用作跨机器管理。点此下载

2,在路由侠客户端主界面,进入" 设备管理 ",点击右下角的" 添加设备 ",此时可查看到对应的安装码,此安装码用于将设备添加到对应账号下,可选中后复制。

3,直接下载后导入:

复制代码
wget https://dl.luyouxia.com:8443/v2/lyx-docker-x86_64.tar
docker load -i lyx-docker-x86_64.tar

4,然后使用该镜像启动容器。

复制代码
docker run --name lyx -it --restart=always --net=host -e code=这里填写安装码 luyouxia/lyx

5,此时,需要等待下载和安装的过程,如果一切正常,最终可以看到一些输出,并且可以看到如下提示:

复制代码
[Device] Logged in. Token: ....

这就表示安装成功了。

当前 Linux 终端这边,如果是使用的上面的命令,Docker 是运行在前台,此时可以按住 Ctrl + C ,退出路由侠,容器也将退出。现在可以使用以下命令将其放入后台持续运行:

复制代码
docker start lyx

注意如果容器删除,重新 docker run , 将创建为新的设备。

需要注意的是,因为容器参数已经添加了 --restart=always ,这样开机就会自动启动,不需要再手动启动路由侠了。

6,现在回到 Windows 这边设备列表,点击右上角的 × 返回主界面,再次进入,就可以找到这个设备,可以修改名称。

7,回到主界面,点击【内网映射】。

8,注意右上角的设备名称下拉框,这里选中刚刚添加的设备名称,此时在这个界面上添加的映射,就属于刚刚这个设备。添加或修改一般需要等待 30 秒,容器中的路由侠进程就会更新并加载。切换好设备后,点击【添加映射】。

9,选择【原生端口】。

10,在内网地址填写你的服务器 IP 和 ESPHome 端口 6052 后点击【创建】按钮,如下图。

11,创建好后,就可以看到一条映射的公网地址,鼠标右键点击【复制地址】。

12,在外网电脑上,打开浏览器,在地址栏输入从路由侠生成的外网地址,就可以看到内网部署的 ESPHome 界面了。

相关推荐
vin_zheng20 小时前
破解企业安全软件网络拦截实战记录
运维
林姜泽樾1 天前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
xiaokangzhe1 天前
Linux系统安全
linux·运维·系统安全
feng一样的男子1 天前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
南棱笑笑生1 天前
20260310在瑞芯微原厂RK3576的Android14查看系统休眠时间
服务器·网络·数据库·rockchip
xiaokangzhe1 天前
Nginx核心功能
运维·nginx
松果1771 天前
以本地时钟为源的时间服务器
运维·chrony·时间服务器
XDHCOM1 天前
ORA-32152报错咋整啊,数据库操作遇到null number问题远程帮忙修复
服务器·数据库·oracle
Highcharts.js1 天前
Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
linux·运维·javascript·ubuntu·react.js·数据可视化·highcharts
ayaya_mana1 天前
快速安装Nginx-UI:让Nginx管理可视化的高效方案
运维·nginx·ui