hannes813/tesvor-x500-pro-esphome-vacuum

GitHub: hannes813/tesvor-x500-pro-esphome-vacuum

基于 ESPHome 和 MQTT 的 Tesvor X500 扫地机器人本地控制方案,通过 UART 逆向实现脱离云端的 Home Assistant 集成与实时地图可视化。

Stars: 1 | Forks: 0

# Tesvor X500 ESPHome 扫地机器人 基于原始 ESP8266/ESP-12S WLAN 模块的 Tesvor X500/X500 Pro 扫地机器人本地 ESPHome/MQTT 集成。 该项目通过本地 UART 命令、Home Assistant 实体以及基于机器人提供的路径点的简单地图可视化,替代了原有的云端连接。 ## 状态 | 领域 | 状态 | |---|---| | 在 ESP-12S 上刷入 ESPHome | 正常运行 | | 智能 / 重点 / 沿边 / 停止 / 充电 | 正常运行 | | 方向控制 | 正常运行 | | Z字形 / 拖地 | 以 `0x22 04` 运行,状态为 `0x0B` | | 拖地强度 | 通过 UART 确认了低/高挡;根据规律存在默认/关闭模式 | | 地图 / 路径点 | 通过 MQTT + `current.json` 正常运行 | | 归档 | 在返回状态为 `charging`/`docked` 时正常运行 | | 清扫时长 | 由 ESP 端进行统计 | | 拖把清洁 | 实验性功能;有 ACK,但尚未被证实为可靠的启动模式 | | 吸力 / 风机 | 实验性功能;已知原始命令,但状态反馈不可靠 | ## 硬件 已测试: - Tesvor X500/X500 Pro - Ai-Thinker ESP-12S / ESP8266EX WLAN 模块 - 4 MB Flash - UART 115200 Baud - ESPHome 2025.7.x J1 接口上的 Flash/UART 引脚: | J1 线路 | 功能 | |---|---| | 红色 | 3.3V | | 黑色 | GND | | 绿色/黄色 | UART RX/TX,视适配器情况可能需要对调 | 重要提示:切勿向 ESP 模块输入 5V 电压。 ## 仓库结构 ``` . ├── x500.yaml # ESPHome Firmware für den Roboter ├── secrets.yaml.example # Beispiel-Secrets für ESPHome ├── tesvor_map_writer.py # MQTT → current.json/archive writer ├── web/map.html # Kartenanzeige mit Archivauswahl ├── scripts/start_writer.sh # Synology/DSM Startscript Writer ├── scripts/start_http.sh # einfacher HTTP-Server für Karte ├── examples/home-assistant/ # Lovelace/iframe Beispiele └── docs/ # Protokoll, Installation, Erkenntnisse ``` ## ESPHome 快速入门 ``` cp secrets.yaml.example secrets.yaml # 修改 secrets.yaml esphome compile x500.yaml esphome upload x500.yaml --device ``` OTA 示例: ``` python -m esphome upload x500.yaml --device 192.168.178.108 ``` ## MQTT 主题 ESP 会发布额外的原始数据: ``` tesvor/x500/state tesvor/x500/map/points ``` `tesvor/x500/map/points` 包含批量点位数据: ``` {"p":[[seq,x,y,type],[seq,x,y,type]]} ``` Writer 会在此基础上生成: ``` current.json archive_index.json archive/*.json ``` ## 地图写入器 (Map Writer) 依赖项: ``` pip3 install -r requirements.txt ``` 启动: ``` export TESVOR_MQTT_HOST=192.xxx.xxx.xx export TESVOR_MQTT_USER='DEIN_USER' export TESVOR_MQTT_PASSWORD='DEIN_PASSWORT' python3 tesvor_map_writer.py ``` Synology 上的默认路径: ``` /volume2/docker/tesvor-map ``` 可以通过环境变量更改此路径: ``` export TESVOR_MAP_DIR=/volume2/docker/tesvor-map ``` ## 显示地图 使用简单 HTTP 服务器的方案: ``` cd /volume2/docker/tesvor-map python3 -m http.server 8095 ``` 然后执行: ``` http://192.xxx.xxx.xx:xxxx/map.html ``` 对于 Home Assistant 移动应用,最好将地图部署在 `/config/www/tesvor-map` 下,并在 iframe 中进行相对引用: ``` type: iframe url: /local/tesvor-map/map.html aspect_ratio: 100% ``` ## 截图 ### 逆向工程环境 ![逆向工程设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/99e2954787233234.jpg) ### vertical-stack-card tesvor ![逆向工程设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/7d672cb8a7233242.png) ### iframe-card tesvor live map ![逆向工程设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0fd4fbdae2233244.png) ## 安全 请勿将机密信息提交至代码仓库。`x500.yaml` 使用了 `!secret`;真实的 WLAN、MQTT、OTA 和 API 密钥只能存放在 `secrets.yaml` 中。 ## 免责声明 逆向工程 / 固件刷写风险自负。在每次刷写之前,请务必备份完整的 4 MB 原始固件。
标签:ESPHome, Home Assistant, 协议逆向, 后端开发, 多模态安全, 扫地机器人, 智能家居, 物联网, 逆向工具