CobaltCores/esphome-valberg-ac

GitHub: CobaltCores/esphome-valberg-ac

该项目是一个 ESPHome 固件及硬件方案,通过 ESP32-S3 桥接 VALBERG 便携式空调的低压逻辑信号,实现 Home Assistant climate 实体控制与状态闭环反馈。

Stars: 1 | Forks: 0

# ESPHome Valberg AC 用于从 Home Assistant 控制 **VALBERG EX-AC12-21** 便携式空调的 ESPHome 固件和硬件说明。 本项目使用连接到空调低压逻辑板的 ESP32-S3: - `GPIO16` 通过电阻分压器读取 AC `SDA` 状态线。 - `GPIO18` 通过 `SN74AHCT125N` 缓冲器向 `IRIN` 发送命令。 - Home Assistant 会提供一个标准的 `climate` 实体,用于控制模式、目标温度、风速和摆风。 其结果是一个闭环集成:命令通过 `IRIN` 发送,然后从 `SDA` 读回真实的 AC 状态。 ## 快速开始 1. 确认您的设备是 `VALBERG EX-AC12-21` 或非常类似的换牌便携式 AC。其他型号可能使用不同的内部信号。 2. 按照下方的接线总结搭建低压桥接,或使用 `hardware/kicad/` 中的 KiCad PCB 文件。 3. 将 `secrets.example.yaml` 复制到 `secrets.yaml` 并填入您的 Wi-Fi 信息。 4. 使用 ESPHome 烧录 ESP32-S3: esphome run valberg-ac.yaml 5. 在 Home Assistant 中添加 ESPHome 设备。 6. 在主 climate 实体中测试 `Fan`、`Off`,然后是 `Cool 31 C`,最后是 `Cool 16 C`。 7. 如果您想使用独立的温度传感器和 `generic_thermostat` 进行室温调节,请参阅 `docs/home-assistant.md`。 ## 状态 已测试的硬件: - 空调:`VALBERG EX-AC12-21` - 控制器:ESP32-S3 DevKit - 固件:`components/valberg_ac/` 中的 ESPHome 自定义组件 已知可用的功能: - Off / Cool / Dry / Fan 模式 - Cool 设定范围 `16..31 C` - 风速 低 / 中 / 高 - 垂直摆风 - 制冷需求反馈 - AC 关闭时显示的环境温度 ## 安全 本项目仅连接到 AC 控制板上的低压逻辑信号。**切勿**将 ESP 连接到市电电压。 在给任何设备上电之前: - 用万用表确认 AC 逻辑板的 `+5V` 和 `GND`。 - 让 ESP 的 `3V3` 引脚远离 AC 的 `+5V` 电源轨。 - 不要将 `GPIO18` 直接连接到 `IRIN`;必须经过 `SN74AHCT125N` 电路。 - 如果 ESP 由 AC 的 `+5V` 供电,在进行 USB 烧录前请隔离该 `+5V` 线路。 ## 硬件 主要部件: - ESP32-S3 DevKit - `SN74AHCT125N` DIP-14 - 电阻:`10k`、`20k` 或 `18k`、`10k`、`1k` - 电容:`100nF`、`470uF` 或 `1000uF >=16V`、可选的第二个 `100nF` - 4 线 AC 线束:`+5V`、`GND`、`SDA`、`IRIN` 参见: - `hardware/soldering-checklist.md` 获取已验证的接线方式。 - `hardware/kicad/` 获取 KiCad PCB v1 和 Gerber 压缩包文件。 - `docs/protocol.md` 获取解码后的 IRIN 和 SDA 协议说明。 参考照片: ![VALBERG 控制板概览](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a74b4ad314172641.jpg) ![VALBERG 信号点特写](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0d2036e15c172647.jpg) 下面的手工焊接原型是真正第一个可用的洞洞板构建版本,而不是焊接美容大赛。请将其用作方向参考;将接线检查清单和 KiCad 文件作为电气参考。 ![原型顶层](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1c23f9c122172653.jpg) ![原型焊接面](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/037a72a189172658.jpg) ## 接线总结 电源: - AC `+5V` -> 通过可拆卸跳线或开关连接到 ESP `5V/VIN`。 - AC `GND` -> ESP `GND`。 - 在 ESP 的 `5V` 和 `GND` 之间增加大容量电容。 SDA 读取: - AC `SDA` -> `10k` -> 分压器中点 -> ESP `GPIO16`。 - 分压器中点 -> `20k` 或 `18k` -> `GND`。 IRIN 发射: - `SN74AHCT125N` 引脚 14 -> `+5V`。 - `SN74AHCT125N` 引脚 7 -> `GND`。 - ESP `GPIO18` -> 引脚 1 `/1OE`。 - 引脚 1 `/1OE` -> `10k` -> ESP `3V3`。 - 引脚 2 `1A` -> `GND`。 - 引脚 3 `1Y` -> `1k` -> AC `IRIN`。 - 未使用的 `/OE` 引脚 4/10/13 -> `+5V`。 - 未使用的 `A` 引脚 5/9/12 -> `GND`。 - 未使用的 `Y` 引脚 6/8/11 不连接。 ## ESPHome 设置 本代码库是一个完整的 ESPHome 项目,而不是 Home Assistant 自定义集成。将整个文件夹克隆/复制到运行 ESPHome 的机器上。 复制示例 secrets 文件: ``` cp secrets.example.yaml secrets.yaml ``` Windows PowerShell 等效命令: ``` Copy-Item .\secrets.example.yaml .\secrets.yaml ``` 编辑 `secrets.yaml`: ``` wifi_ssid: "YOUR_WIFI_SSID" wifi_password: "YOUR_WIFI_PASSWORD" fallback_ap_password: "CHANGE_ME_8_CHARS_MIN" ``` 使用 ESPHome 烧录: ``` esphome run valberg-ac.yaml ``` 如果 ESPHome 是作为 Python 模块安装的: ``` python -m esphome run valberg-ac.yaml ``` 要进行 OTA 更新,请使用 ESPHome 或 Home Assistant 显示的设备名称或 IP。 ## Home Assistant 使用主要的 climate 实体: - 默认 YAML 配置下的 `climate.climatiseur`,或者如果您重命名了它,则为 Home Assistant 分配的实体 ID。 有用的辅助实体: - 电源反馈 - 制冷需求反馈 - 关闭时显示的环境温度 - 重启按钮 首次检查、服务调用示例、`generic_thermostat` 室温控制示例,以及使用 AC 的 `Demande froid` 反馈的可选闭环重发保护,请参阅 `docs/home-assistant.md`。 ## PCB KiCad PCB 位于 `hardware/kicad/`。 包含的文件: - KiCad 项目和 PCB 源文件。 - 用于制造预览/上传的 `valberg-ac-bridge-gerbers.zip`。 - `bom.csv`。 - 导出时显示 `0 DRC errors` 和 `0 unconnected pads` 的 `drc-errors.rpt`。 重要提示:在订购之前,请根据您的实际模块核对 ESP32-S3 DevKit 的封装。该 PCB 假定使用 2x54 mm 间距和 25.4 mm 排间距的 2x22 DevKit 排针。 ## 兼容性 目前仅对 VALBERG EX-AC12-21 进行了测试。类似的便携式 AC 设备,尤其是 Electra 风格的换牌型号,可能共享相同的内部协议,但这尚未得到证实。 如果这在其他型号上可行,请提交一个 issue,并附上确切的品牌、型号、电路板照片以及所需的任何固件更改。兼容性应由真实的硬件报告来确认,而不是仅仅根据品牌进行假设。 ## 故障排除 Home Assistant 中没有实体: - 检查 ESPHome 设备是否在线,以及 Home Assistant 是否已为其添加了 ESPHome 集成。 - 检查 `secrets.yaml`;它是故意不予提交的。 命令未使 AC 发出蜂鸣声: - 重新检查 `IRIN` 线束接线和 `SN74AHCT125N` 接线。 - 确认 `GPIO18` 仅连接到引脚 1 `/1OE`,切勿直接连接到 `IRIN`。 - 确认 `SN74AHCT125N` 的引脚 14 连接了 `+5V`,且引脚 7 连接了 `GND`。 状态反馈未更新: - 重新检查 `SDA` 线束接线和 `10k/20k` 或 `10k/18k` 分压器。 - 确认分压器中点连接到 ESP 的 `GPIO16`。 - AC 状态在发出命令后可能需要几秒钟才能重新同步。 由 AC 供电时 ESP 重启或掉线: - 在 ESP 附近增加或改善 `470uF`/`1000uF` 大容量电容和 `100nF` 电容。 - 在 AC `+5V` 线路上使用可拆卸跳线/开关,并在连接 USB 时不要对 AC 板进行反向馈电。 ## 许可证 MIT。参见 `LICENSE`。
标签:ESP32, ESPHome, Home Assistant, IoT控制, 智能家居, 硬件桥接, 空调控制