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 协议说明。
参考照片:


下面的手工焊接原型是真正第一个可用的洞洞板构建版本,而不是焊接美容大赛。请将其用作方向参考;将接线检查清单和 KiCad 文件作为电气参考。


## 接线总结
电源:
- 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控制, 智能家居, 硬件桥接, 空调控制