esphome模拟IOT设备连接到HA
先下载docker
再下载homeassistant
\\172.16.16.6\产品研发事业中心\产品经营部\NAS组\软件发布\Pro_Docker_APP\ARM\homeassistant
安装时选择对应的共享文件夹

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

下载最新的ESPhome镜像
对应的下载地址是:
https://github.com/esphome/esphome/pkgs/container/esphome/632024310?tag=latest
docker pull ghcr.io/esphome/esphome:latest


下载完成后对比 sha256 ,一样则是下载完整了
docker images查看镜像
docker inspect <image_name_or_id>

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

启用特权模式

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

虚拟设备后选择 continue

New Device Setup

输入虚拟设备的相关信息


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

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

点击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报错原因:
第一步:核心原因(为什么新版仍报错)
第二步:2025.12.5 版本专属配置(ESP8266 纯软件模拟)
点击 install 开始编译

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

需要先给文件夹权限再开始编译
点开文件夹属性,复制对应的文件夹路径

先给设备的文件夹加上权限后再开始编译,避免出现因为权限问题而编译失败
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
主要原因是因为没给文件夹权限

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


第一步:明确两个格式的核心差异
第二步:选择后的操作(确保虚拟设备启动)
关键补充(避免踩坑)
总结
在dokcer对应目录里面运行run命令 让当前的设备能够正确连接起来


浙公网安备 33010602011771号