brunoamui/jacuzzi-jb1hl-protocol

GitHub: brunoamui/jacuzzi-jb1hl-protocol

该项目逆向记录了 Jacuzzi J185/JB1HL 热水浴缸控制器的 RS-485 通信协议,并提供了一个将其状态只读接入 Home Assistant 的 ESPHome 监视器。

Stars: 0 | Forks: 0

# Jacuzzi JB1HL 面板-链路协议 关于配备 **JB1HL** 控制器(Astrel/ADOP 系列)的 **Jacuzzi J185** 热水浴缸所使用的 RS-485 通信总线的逆向工程笔记。 本仓库记录了顶部控制面板与控制器 I/O 板之间的有线通信协议,并提供了一个只读的 ESPHome 监视器,可将水温、水泵和加热器的状态公开给 Home Assistant。 ## 太长不看 | 属性 | 值 | |---|---| | 物理层 | RS-485,半双工,多点 | | 波特率 | **38400, 8N1** | | 拓扑结构 | 面板 = 总线主站;轮询一个简易 I/O 板(传感器 + 继电器) | | 帧同步 | `54 24 FE 0C` | | 帧长度 | 34 字节(轮询 + 响应,一次突发) | | 校验和 | `sum(bytes[20:32]) & 0xFF == bytes[32]` | | 终止符 | `0x06` | ## 架构 顶部面板是核心大脑:它保存着设定值和恒温器逻辑。它不断轮询一块**简易 I/O 板**,该板负责读取温度传感器并驱动水泵/加热器继电器。总线上仅传输: - 面板的**指令**(要通电的继电器),以及 - 板子的**报告**(传感器读数 + 回显的状态)。 温度**设定值从不出现在通信线路上**——它保存在面板内部。你在总线上看到的是,面板根据其内部对设定值与实测水温的比较,来控制加热器的开/关。 ## 目录 - [docs/protocol.md](docs/protocol.md) — 完整的帧格式与字段映射 - [docs/methodology.md](docs/methodology.md) — 协议的解码方式 - [docs/control-research.md](docs/control-research.md) — 发送/控制方法及安全性 - [esphome/spa-monitor.yaml](esphome/spa-monitor.yaml) — 只读的 Home Assistant 监视器 - [tools/decode.py](tools/decode.py) — 离线帧解码器/分析器 ## 硬件 - 任何运行 ESPHome 的 ESP32(基于 ESP32-C6 开发) - 一个 TTL↔RS-485 收发器模块(例如 HW-519,或用于控制的 MAX485/MAX13487) - 接入面板↔控制器的 RS-485 线对 (A/B) —— 用于监控时建议**只读** ## 安全警告 本项目是非官方的逆向工程结果,未与 Jacuzzi 公司建立隶属关系,也未获得其认可。市电供电的水疗设备与水结合在一起是非常危险的组合。加热器绝不能在没有水循环的情况下运行。使用风险需自行承担。 ## 许可证 MIT — 详情请见 [LICENSE](LICENSE)。
标签:ESPHome, Home Assistant, RS-485, 协议逆向工程, 嵌入式硬件, 智能家居, 物联网, 逆向工具