惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy International News Feed
Hacker News: Ask HN
Hacker News: Ask HN
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
G
GRAHAM CLULEY
W
WeLiveSecurity
H
Heimdal Security Blog
S
Secure Thoughts
L
Lohrmann on Cybersecurity
A
Arctic Wolf
N
News and Events Feed by Topic
Spread Privacy
Spread Privacy
S
Securelist
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tor Project blog
TaoSecurity Blog
TaoSecurity Blog
MyScale Blog
MyScale Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
LINUX DO - 热门话题
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
C
CERT Recently Published Vulnerability Notes
大猫的无限游戏
大猫的无限游戏
Project Zero
Project Zero
Google Online Security Blog
Google Online Security Blog
博客园_首页
博客园 - 叶小钗
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cloudbric
Cloudbric
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
Cyberwarzone
Cyberwarzone
IT之家
IT之家
Help Net Security
Help Net Security
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
小众软件
小众软件
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
V2EX - 技术
V2EX - 技术
H
Help Net Security
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
Cisco Talos Blog
Cisco Talos Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
NISL@THU
NISL@THU
雷峰网
雷峰网

博客园 - 陈晓猛

验证网络ipv6的可用性 docker compose对应的内容,创建thread网络后连接设备 ONVIF协议与RTSP协议 OpenClaw:接入minimax-2.5的新手指引 Windows 端 OpenClaw 安装教程(保姆级) 使用zigbee2mqtt模拟发送信息 HA上配置MQTT ESPHome模拟设备脚本 自制hash_v1和hash_v2种子文件 接口 CDN(动态 CDN/API 网关 CDN)测试用例 cf-cache-status共有几种状态分别会在什么情况下产生 接口接入cdn和网页接入cdn的区别 pip安装依赖包报错内容为User defined options,Native files 如何解决 MCP:Trae中集成Playwright 实现网页自动化测试 测试用例设计检查项 如何给Playwright 添加 MCP(Microsoft Playwright Component Testing) npm 无法加载文件npm.ps1 文档收集地址 Ugreen记录验证不同国家码对应的跳转链接 error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\HostX86\x64\cl.exe' failed with exit code 2 解决方案 - 陈晓猛 VScode在顶部生成作者信息 Cursor使用小技巧(待更新) Trae 接入 Claude 3.7:AI 编程工具界的“卷王”,完全免费 提高研发效能——基于 DeepSeek-V3的本地化实践 大模型&ai学习课程一些笔记 P图训练模型 python3安装crypto出错及解决方法 windows搭建syncthing中继服务器和发现服务器
esphome模拟IOT设备连接到HA
陈晓猛 · 2026-01-12 · via 博客园 - 陈晓猛

先下载docker

再下载homeassistant

\\172.16.16.6\产品研发事业中心\产品经营部\NAS组\软件发布\Pro_Docker_APP\ARM\homeassistant

安装时选择对应的共享文件夹

image

配置加速器: https://docker.1ms.run

image

下载最新的ESPhome镜像

对应的下载地址是:

https://github.com/esphome/esphome/pkgs/container/esphome/632024310?tag=latest

docker pull ghcr.io/esphome/esphome:latest

image

5aed4d75199d2ce42264350c01428a8a

下载完成后对比 sha256 ,一样则是下载完整了

docker  images查看镜像
docker inspect <image_name_or_id>

image

创建容器,创建的时候选择对应的文件夹

image

启用特权模式

image

 安装成功后,可以直接用设备的 启动后访问 http://NAS_IP:6052 即可进入 ESPHome Web UI ,比如现在的设备是在路由器下的 http://192.168.31.216:6052

新建一台虚拟设备

image

虚拟设备后选择 continue 

image

New Device Setup

image

输入虚拟设备的相关信息

image

image

 选择要模拟的设备型号,我这边选的是最常见的有硬件板的 ESP8266

image

创建成功后,可以把密钥复制下来,先跳过当前的安装编译过程,先对yaml文件进行修改,因为这次我们要模拟的是虚拟设备,所以这边要按照虚拟设备的过程去禁用相关功能

image

点击edit设备的yaml文件,把当前的配置写进去

esphome:
  name: api-virtual-switch1
  friendly_name: api-virtual-switch1  
# 核心:启用纯软件模拟,跳过所有硬件初始化
  # simulation:
  #   enabled: true
  #   skip_hardware_init: true
# 仅为模拟架构,无需真实ESP8266硬件
esp8266:
  board: esp01_1m
# 禁用所有硬件相关功能,减少资源消耗
logger:
  level: NONE
  baud_rate: 0
# ota:
#   disabled: true
# web_server:
#   disabled: true
# Enable Home Assistant API
# 与HA通信的核心组件(必须保留)
# Key点击ESPHome UI的「Generate Key」生成
api:
  encryption:
    key: "V0ykWVdesK2y3pxTcDa7DSY7bDo3W2SHDdGthiTUdV4="
  port: 6053
  reboot_timeout: 0s
# ota:
#   - platform: esphome
#     password: "0e262736d4f2cc92d52b94ea17cb671e"

# 模拟Wi-Fi连接(无需真实Wi-Fi硬件,仅为网络标识)
wifi:
  ssid: "Xiaomi_5A02"  # 填NAS局域网的Wi-Fi即可(仅标识,不实际连接)
  password: "Aa123456"
  manual_ip:
    static_ip: 192.168.31.150  # 分配静态IP(避免冲突)
    gateway: 192.168.31.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Api-Virtual-Switch1"
    password: "xIkmVV1zjHly"

captive_portal:

# 模拟开关功能(无硬件,纯软件状态)
switch:
  - platform: template
    name: "Virtual Wi-Fi Switch 1"
    id: virtual_switch
    optimistic: true  # 乐观模式,无硬件反馈

# 定时切换状态(模拟设备上报)
interval:
  - interval: 5s
    then:
      - switch.toggle: virtual_switch
    

simulation报错原因:

使用的 ESPHome 2025.12.5 是最新稳定版,理论上完全支持 simulation 配置,之所以仍报「invalid option」,核心原因是 simulation 配置的「平台兼容性」+「缩进 / 格式细节」—— 而非版本本身不支持

simulation 配置有严格的平台限制:

  • ✅ 支持的平台:esp32esp32s2esp32s3esp32c3(ESP32 全系列);
  • ❌ 不支持的平台:esp8266(你配置的 board: esp01_1m 属于 ESP8266 架构)

简单说:ESP8266 平台无论哪个版本的 ESPHome,都不支持 simulation 配置—— 这是硬件架构层面的限制,和 ESPHome 版本无关。

既然你用的是新版 ESPHome,我们放弃 simulation(ESP8266 不支持),改用新版的「mock 模拟模式」+ 优化配置,确保编译后自动启动、6053 端口开放:

点击 install 开始编译 

image

 因为是虚拟设备 所以选择最后的这个 Manual  download 

image

需要先给文件夹权限再开始编译

点开文件夹属性,复制对应的文件夹路径

image

先给设备的文件夹加上权限后再开始编译,避免出现因为权限问题而编译失败

root@DXP480TPLUS-820:/volume1/docker/esphome_esphome-1# chmod -R 777 /volume1/docker/esphome_esphome-1/
root@DXP480TPLUS-820:/volume1/docker/esphome_esphome-1# chmod -R 1000:1000 /volume1/docker/esphome_esphome-1/

设备开始编译

编译过程中会出现的问题

Tool Manager: Error: Please read https://bit.ly/package-manager-ioerror ERROR Error: Please read https://bit.ly/package-manager-ioerror

主要原因是因为没给文件夹权限

image

编译成功后 设备显示内容如下:

image

image

模拟纯软件的虚拟设备,应该选择 Factory format (Previously Modern)(第一个选项),这是适配 ESPHome Web / 纯模拟场景的最佳选择,下面帮你理清两者的区别和选择逻辑:

Factory format (Previously Modern) 1. 全新设备首次刷写 2. ESPHome Web 模拟 / 运行 3. 纯软件虚拟设备(无物理硬件) ✅ 完全适合(首选) OTA format (Previously Legacy) 1. 已有物理 ESP32/ESP8266 设备的 OTA 远程更新 2. 仅用于给实体设备推送固件 ❌ 不适合(虚拟设备无 OTA 更新需求)
格式选项适用场景是否适合你的虚拟设备
  1. 点击 Factory format (Previously Modern);
  2. 等待固件下载完成后,ESPHome Web 会自动加载并启动这个虚拟设备;
  3. 验证:回到 ESPHome 设备列表,该设备会显示「Online」,执行端口检查命令:
    nc -zv 192.168.31.150 6053 
    ✅ 输出 succeeded 即代表虚拟设备正常运行。
  • 选择 OTA 格式不会导致报错,但虚拟设备无法正常启动(因为 OTA 格式固件缺少初始化模拟环境的核心文件);
  • Factory 格式包含完整的初始化逻辑,是纯软件模拟场景的唯一正确选择。
  1. 核心选择:选第一个 Factory format (Previously Modern),适配虚拟设备 / ESPHome Web 模拟场景;
  2. 选择逻辑:Factory 格式用于全新 / 模拟设备,OTA 格式仅用于实体设备的远程更新;
  3. 最终效果:选择后虚拟设备会自动启动,6053 端口开放,HA 可正常连接。

在dokcer对应目录里面运行run命令 让当前的设备能够正确连接起来

image

声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出现转载未声明 将追究法律责任~谢谢合作