AirProce 艾泊斯空气净化器原生接入 Home Assistant
听从@hhh网友建议,取消mqtt通讯
做了一个 AirProce 艾泊斯空气净化器的 Home Assistant 原生自定义集成。
目前已经在我自己的:
- AirProce AI-300
- AirProce AI-600
两台机器上实际测试使用,开关、1~6 档风速、自动模式、睡眠模式以及温湿度、PM2.5、VOC 状态都工作正常。
GitHub:
https://github.com/Griddz/home-assistant-airproce-bridge
当前版本:0.2.2
这个集成有什么特点
现在已经是完整的 Home Assistant 原生集成,不再需要以前的 Python Bridge,也不需要 MQTT。
每台 AirProce 在 HA 中直接成为一个设备,包含:
- Fan 实体
- 开 / 关
- 1~6 档风速
- Auto 自动模式
- Sleep 睡眠模式
- 温度 Sensor
- 湿度 Sensor
- PM2.5 Sensor
- VOC Sensor
也就是说:
不需要 MQTT Broker。
不需要 Home Assistant MQTT 集成。
不需要额外运行 Python 脚本。
净化器直接通过 TCP Socket B 与 Home Assistant 通信。
最大的好处:官方 App 仍然可以继续使用
AirProce 净化器内部使用了 USR(有人物联网)串口转网络模块。
它提供两路透明 TCP Socket:
Socket A → AirProce 官方服务器
↓
官方 App
Socket B → Home Assistant
↓
AirProce 集成
↓
原生 Fan + Sensor
我们只使用 Socket B。
原来的 Socket A 完全不动,仍然连接 AirProce 官方服务器,因此:
- AirProce 官方 App 可以继续使用
- Home Assistant 也可以同时本地控制
- 两边状态能够通过净化器本身同步
这是我做这个方案时比较看重的一点。
使用前最重要的检查
这个方案不是所有 AirProce 都一定可以使用。
首先必须确认你的净化器能够打开内部 USR 模块的管理页面。
浏览器访问:
http://净化器IP
通常默认登录:
用户名:admin
密码:admin
登录后应该能看到类似“有人物联网”的串口透传管理页面
有人透传管理WEB页面
,并且能够看到:
两个 Socket 的配置。
如果管理网页打不开、用户名密码未知,或者没有 Socket B,那么目前这个集成无法按这种方式使用。
所以建议安装集成之前先确认这一点。
Socket B 怎么设置
Socket A 保持 AirProce 原来的官方配置,不要修改。
例如可能是:
TCP-Client
d2.airproce.com
8800
然后把 Socket B 设置为:
协议:TCP-Client
Server:Home Assistant 的局域网 IP
Port:9001
例如:
Home Assistant IP:192.168.1.100
那么:
Socket B
TCP-Client
192.168.1.100
9001
保存后 USR 模块会主动连接 Home Assistant。
集成内部直接监听这个 TCP 端口。
安装方法
推荐使用 HACS。
在 HACS 中添加自定义仓库:
https://github.com/Griddz/home-assistant-airproce-bridge
类别选择:
Integration
然后安装:
AirProce
安装完成后重启 Home Assistant。
也可以手动安装,将:
custom_components/airproce_bridge
复制到:
/config/custom_components/airproce_bridge
然后重启 HA。
添加 AirProce
进入:
设置
→ 设备与服务
→ 添加集成
搜索:
AirProce
正常情况下只需要填写几个参数:
- 设备名称
- 净化器型号
- USR 模块 IP
- Socket B 监听端口
例如:
设备名称:客厅空气净化器
型号:AI-300
USR IP:192.168.1.112
Socket B Port:9001
高级设置中还有:
- USR 管理网页端口
- USR 用户名
- USR 密码
- 是否验证 USR 网页登录
- Watchdog 参数
一般保持默认即可。
监听地址、内部 Device ID 等实现参数已经不再要求用户配置。
Home Assistant 中会得到什么
每台净化器会作为一个独立设备加入 Home Assistant。
例如一台机器会有:
fan.airproce
以及:
sensor.airproce_temperature
sensor.airproce_humidity
sensor.airproce_pm25
sensor.airproce_voc
实际 entity_id 会根据设备名称及现有 HA 环境有所不同。
Fan 支持:
- Turn On
- Turn Off
- Set Percentage
- Auto
- Sleep
AirProce 本身实际是 1~6 档风速。
Home Assistant 原生 Fan 使用百分比接口,因此会把六个硬件档位映射为六个百分比档位。
同时实体属性中还保留:
hardware_speed
可以直接看到净化器当前真实的:
1 / 2 / 3 / 4 / 5 / 6
档。
Auto / Sleep 不是简单发一个固定码
逆向 AirProce 协议时发现一个比较有意思的地方:
自动模式和睡眠模式的控制帧中,有一个字节与当前风速上下文有关。
所以集成并不是简单地发送一个固定的 Sleep 或 Auto 数据包。
它会保留最近一次有效的风速上下文,再生成对应控制帧。
这个逻辑已经在 AI-300 和 AI-600 上实际测试。
控制后不是“假装成功”
集成没有使用乐观状态。
例如在 HA 中点:
Sleep
流程实际上是:
Home Assistant
↓
发送 Sleep 控制帧
↓
AirProce 返回 ACK
↓
集成立即发送状态查询
↓
AirProce 返回真实状态
↓
更新 HA Fan / Sensor
所以最终显示的是净化器确认后的实际状态。
Socket B 断线检测
AirProce 正常情况下大约每 15 秒主动上报一次状态。
集成包含 Watchdog。
默认连续约 45 秒没有收到有效状态后,会主动查询净化器。
如果查询仍然失败,会再次重试。
两次都没有有效回复后,会主动关闭这个疑似“假在线”的 TCP Socket。
此时:
Fan
Temperature
Humidity
PM2.5
VOC
都会在 HA 中变成:
unavailable
USR 模块重新连接后,集成会自动请求一次最新状态并恢复。
这样可以避免 TCP 实际已经失效,但 HA 还一直显示设备在线。
两台或更多 AirProce
支持同时接入多台。
例如:
| 净化器 |
USR IP |
Socket B Port |
| AI-600 |
192.168.1.112 |
9001 |
| AI-300 |
192.168.1.113 |
9002 |
每台设备需要:
- 不同的 USR IP
- 不同的 Socket B 监听端口
但可以共用:
- 同一个 Home Assistant IP
- 相同的 USR 用户名 / 密码
- 相同的 Watchdog 参数
例如第二台机器的 Socket B:
TCP-Client
192.168.1.100
9002
第三台可以继续:
9003
以此类推。
集成在添加设备时也会检查端口冲突。
从旧版 MQTT 版本升级
早期版本是:
AirProce
↓
TCP Bridge
↓
MQTT
↓
MQTT Discovery
↓
Home Assistant
现在已经改成:
AirProce
↓
Socket B
↓
Home Assistant 原生集成
↓
Fan + Sensor
所以新版本 AirProce 本身已经完全不需要 MQTT。
升级时集成会尽量:
- 删除旧 AirProce MQTT 参数
- 清理旧 MQTT Discovery
- 清理旧 MQTT 实体注册
- 保留原来的设备和实体 ID
如果以前还在某台 Linux 主机运行独立的 AirProce Python Bridge,安装新集成之前记得先停止它,否则会占用 9001 / 9002 等监听端口。
家里其他 Zigbee2MQTT 等设备仍然需要 MQTT 的话当然不受影响。
已验证型号
目前我实际测试的是:
- AirProce AI-300
- AirProce AI-600
两台目前运行正常。
其他 AirProce 型号是否采用完全相同的协议,目前没有设备验证。
如果有其他型号的坛友测试成功,也欢迎反馈型号和 USR 页面情况。
已知限制
目前有几个限制:
- 必须能够进入净化器内部 USR 模块管理网页。
- 必须存在可用的 Socket B。
- Socket B 参数目前需要手工在 USR 网页中设置。
- 不同 AirProce 型号是否采用相同协议还需要更多设备验证。
- 协议是根据实际通信数据逆向分析得到,目前只在 AI-300 和 AI-600 上验证。
项目地址
GitHub:
https://github.com/Griddz/home-assistant-airproce-bridge
AirProce 官网:
https://airproce.net/
目前版本:
0.2.2
如果有 AI-300、AI-600 或其他 AirProce 型号,欢迎一起测试。
另外说明一下:本项目代码由 ChatGPT 5.6 协助生成,我负责实际设备测试、协议验证以及功能确认。