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

本地部署智能家居集成解决方案 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 界面了。

Read more

Vivado下载安装后如何连接JTAG进行FPGA烧录实战案例

Vivado安装后如何用JTAG烧录FPGA?实战避坑全指南 你是不是也经历过这样的场景:好不容易完成了 Vivado下载与安装 ,兴冲冲打开软件准备把第一个 .bit 文件烧进FPGA,结果Hardware Manager里一片空白,“No hardware targets detected”——设备没连上。 别急,这几乎是每个FPGA新手必踩的坑。JTAG看似简单,实则从驱动、线序到供电稍有疏漏就会“失联”。本文不讲空话,直接带你从零开始打通 “PC → 下载器 → 开发板 → FPGA” 的完整链路,结合真实开发案例,手把手教你完成一次稳定可靠的比特流烧录,并解决那些让人抓狂的常见故障。 为什么JTAG总是连不上?先搞懂它到底在做什么 很多人以为JTAG就是一根“下载线”,其实它是一套完整的边界扫描架构。Xilinx的FPGA内部都集成了一个叫 TAP(Test Access Port)控制器 的模块,它像一个小CPU,专门监听四根信号线: * TCK :时钟,一切操作都得跟着它的节拍走 * TMS :模式选择,

从 0 到 1 玩转前端加密 encrypt-labs 靶场:环境搭建 + 全关卡解析

从 0 到 1 玩转前端加密 encrypt-labs 靶场:环境搭建 + 全关卡解析

文章目录 * 前言 * 1 环境搭建(Docker 混淆版) * 2 配置插件 * 2.1 Galaxy * 2.2 autoDecoder * 3 AES固定Key * 4 AES服务端获取Key * 5 Rsa加密 * Galaxy * autoDecoder * 6 AES+Rsa加密 * Galaxy * autoDecoder * 7 DES规律key * Galaxy * autoDecoder * 8 明文加签 * 9 加签key在服务器端 * 10 禁止重放 ⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。 前言 在 Web

使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 53--CI/CD 6--配置Jenkins构建新项目-定时自动执行测试代码

使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 53--CI/CD 6--配置Jenkins构建新项目-定时自动执行测试代码

测试学习记录,仅供参考! 配置Jenkins构建新项目-定时自动执行测试代码 1、启动服务,打开登录 Jenkins,找到新建项目,开始配置测试项目; 配置项目 2、项目描述(选填项); 源码管理 3、源码管理,Jenkins 在执行时通过读取 Git 上的代码         1)、选中 Git 选项;         2)、URL:Git 上面项目里面的地址 4、添加 Git 用户名和密码 5、输入用户名、密码,其他自定义,单击“添加”按钮; 6、添加 Git 用户名密码成功后选中它;其他保持默认即可; 构建触发器 7、构建触发器选择定时构建→设置定时时间(自行设置); 8、

微信 H5 缓存控制:后端重定向 & 前端强制刷新

在 Web 开发中,缓存是一把双刃剑。对于静态资源,它能极大提升加载速度;但对于业务逻辑频繁变动的 H5 页面(如支付、订单页),缓存往往会导致用户看到过期的数据或界面。最近在维护一个 uni-app 项目时,遇到了一段关于 H5 缓存控制的逻辑,引发了我对于“后端重定向加时间戳”和“前端 JS 加时间戳”这两种方案的思考。虽然两者的最终目的一致,但在 Hash 模式下,它们的实现原理和效果有着本质的区别。 一、 问题背景 在应用启动的生命周期中,通常会有这样一段逻辑:当用户访问特定的关键页面(如支付、订单页)时,如果当前 URL 中缺少时间戳参数,前端会自动解析 URL,追加当前时间戳,并强制页面刷新。 这就引出了一个问题:为什么不直接在后端重定向时加时间戳?这两种方式有什么区别? 二、 核心区别: