robmarkoski/pychlorinator-cloud
GitHub: robmarkoski/pychlorinator-cloud
这是一个通过云端 API 连接 AstralPool Halo 氯消毒器的 Home Assistant 自定义集成,旨在解决蓝牙连接不稳定的问题。
Stars: 0 | Forks: 0
# AstralPool Halo Cloud
[](https://hacs.xyz/)
[](https://www.home-assistant.io/)
AstralPool Halo 氯消毒器的 Home Assistant 自定义集成,在正常运行时使用云连接而非 BLE。
## 为什么存在这个项目
我构建这个项目是因为仅支持 BLE 的选项不太适合我的设置。
我想要一个以云优先的集成,没有常规 BLE 范围和代理的限制,而且我的 BLE 代理位置太远,无法依赖其保持稳定连接。
这就是这个项目存在的原因。
如果你今天想要一个更成熟的方案,并且 BLE 在你的环境中已经运行良好,请查看:
- [`astralpool_halo_chlorinator`](https://github.com/DanielNagy/astralpool_halo_chlorinator)
- [`astralpool_chlorinator`](https://github.com/pbutterworth/astralpool_chlorinator)
如果其中一个已经满足你的需求并且运行良好,那就使用它,忘掉你曾经见过这个项目。
## 功能介绍
此集成在 Home Assistant 中公开 Halo 云数据,包括:
- 运行模式和泵速
- pH 和 ORP 读数
- 氯、pH、定时器和错误/状态消息
- 水温和加热器状态
- 设定点和设备诊断
- 云连接和运行状态二进制传感器
## 安装
### HACS
1. 打开 HACS。
2. 添加一个 **Custom repository**(自定义仓库)。
3. 使用仓库 URL:`https://github.com/robmarkoski/pychlorinator-cloud`
4. 类别:**Integration**(集成)
5. 安装该仓库。
6. 重启 Home Assistant。
7. 前往 **Settings -> Devices & Services**(设置 -> 设备与服务)。
8. 添加 **AstralPool Halo Cloud**。
## 配置
该集成目前支持两种设置路径:
| 设置路径 | 用例 | 备注 |
|---|---|---|
| 手动云凭据 | 最快且最可预测的设置路径 | 最适合当前的安装/测试 |
| BLE 配对 / 发现 | 首选的长期入门路径 | 在正式发布 1.0 版本之前很重要 |
在设置过程中,你还可以选择设备名称和可选的 Home Assistant 区域。
## 实体命名约定
实体 ID 取决于设置期间选择的设备名称。
| 项目 | 规则 |
|---|---|
| 设备名称默认值 | `Halo ` |
| 设备标识符 | `slugify(device_name)` |
| 对象 ID 模式 | `_` |
| 实体 ID 模式 | `._` |
| 区域 | 仅用于放置,不用于实体 ID |
例如,如果配置的设备名称是 **Pool Chlorinator**,设备标识符将变为 `pool_chlorinator`,实体 ID 将如下所示:
- `sensor.pool_chlorinator_mode`
- `binary_sensor.pool_chlorinator_low_salt`
- `select.pool_chlorinator_mode_select`
## 当前控制状态
下面的清单有意保持保守。它反映了目前已知可用的功能、尚未完成的功能,以及针对专注于定时器的 2.0 里程碑的计划。
### 目前正常工作的手动控制
- [x] 通过云连接到氯消毒器
- [x] 读取实时状态、测量值、设定点和状态消息
- [x] 将主运行模式设置为 **Off**(关闭)
- [x] 将主运行模式设置为 **Auto**(自动)
- [x] 强制开启消毒/手动运行 **On**
- [x] 选择泵速 **High**(高速)
- [x] 在 Home Assistant 中公开手动控制/选择实体以支持模式更改
### 部分实现或尚未完全确定的手动控制
- [ ] 在硬件上端到端确认手动泵速 **Low**(低速)
- [ ] 在硬件上端到端确认手动泵速 **Medium**(中速)
- [ ] 在硬件上端到端重新验证 Pool/Spa(泳池/按摩池)选择
- [ ] 在主要的 Home Assistant UX 中公开并验证安全的 pH 设定点写入
- [ ] 在主要的 Home Assistant UX 中公开并验证安全的 ORP 设定点写入
### 尚未工作 / 尚未准备好发布的手动控制
- [ ] 加热器 **On/Off**(开/关)控制已确定
- [ ] 灯光 **On/Off**(开/关)控制已确定
- [ ] 阀门 / 辅助手动控制(例如 Blade / Jets)已确定
- [ ] 太阳能 / 设备手动控制已确定
- [ ] 发布质量的 BLE 配对/入门已确定
### 计划在 2.0 版本中发布
计划的 **2.0** 里程碑是定时器/设备控制版本。
- [ ] 设备定时器系统端到端工作
- [ ] 夏季 / 冬季定时器配置文件处理端到端工作
- [ ] 灯光定时器系统端到端工作
- [ ] 加热需求定时器/系统端到端工作
- [ ] 在 Home Assistant 中公开安全的定时器写入
- [ ] 与定时器相关的设备控制已完善并准备好发布
## 实体
下表显示了该集成公开的主要实体。默认实体 ID 使用 `` 来指示配置的系统/设备名称标识符。
### 选择器
| 名称 | 默认实体 ID | 单位 | 描述 |
|---|---|---:|---|
| Mode(模式) | `select._mode_select` | — | 主运行模式选择器 |
| Pool/Spa(泳池/按摩池) | `select._pool_spa_select` | — | 泳池或按摩池选择 |
### 核心传感器
| 名称 | 默认实体 ID | 单位 | 描述 |
|---|---|---:|---|
| Mode(模式) | `sensor._mode` | — | 当前氯消毒器运行模式 |
| Pump Speed(泵速) | `sensor._pump_speed` | — | 当前泵速 |
| pH | `sensor._ph_measurement` | pH | 实时 pH 读数 |
| ORP Measurement(ORP 测量值) | `sensor._orp_measurement` | mV | 实时 ORP 读数 |
| Chlorine Status(氯状态) | `sensor._chlorine_status` | — | 人类可读的氯状态 |
| pH Status(pH 状态) | `sensor._ph_status` | — | 人类可读的 pH 状态 |
| Info Message(信息消息) | `sensor._info_message` | — | 主要运行/状态文本 |
| Error Message(错误消息) | `sensor._error_message` | — | 主要错误/状态代码文本 |
| Timer Info(定时器信息) | `sensor._timer_info` | — | 与定时器相关的状态文本 |
| Water Temperature(水温) | `sensor._water_temperature` | °C | 主要水温 |
| pH Setpoint(pH 设定点) | `sensor._ph_setpoint` | pH | 目标 pH 设定点 |
| ORP Setpoint(ORP 设定点) | `sensor._orp_setpoint` | mV | 目标 ORP 设定点 |
| Pool Chlorine Setpoint(泳池氯设定点) | `sensor._pool_chlorine_setpoint` | — | 泳池氯目标 |
| Acid Setpoint(酸设定点) | `sensor._acid_setpoint` | — | 酸投加目标 |
| Spa Chlorine Setpoint(按摩池氯设定点) | `sensor._spa_chlorine_setpoint` | — | 按摩池氯目标 |
| Heater Mode(加热器模式) | `sensor._heater_mode` | — | 加热器开/关模式 |
| Heater Pump Mode(加热器泵模式) | `sensor._heater_pump_mode` | — | 加热器泵模式 |
| Heater Setpoint(加热器设定点) | `sensor._heater_setpoint` | °C | 加热器目标温度 |
| Heat Pump Mode(热泵模式) | `sensor._heat_pump_mode` | — | 热泵运行模式 |
| Heater Water Temperature(加热器水温) | `sensor._heater_water_temperature` | °C | 加热器报告的水温 |
### 诊断传感器
| 名称 | 默认实体 ID | 单位 | 描述 | 备注 |
|---|---|---:|---|---|
| Water Temperature Precise(精确水温) | `sensor._water_temperature_precise` | °C | 更高精度的水温 | 诊断 |
| Cell Level(电解槽等级) | `sensor._cell_level` | — | 电解槽输出等级 | 诊断 |
| Cell Current(电解槽电流) | `sensor._cell_current` | mA | 电解槽电流消耗 | 诊断 |
| pH Control Type(pH 控制类型) | `sensor._ph_control_type` | — | pH 控制模式 | 诊断 |
| ORP Control Type(ORP 控制类型) | `sensor._orp_control_type` | — | ORP 控制模式 | 诊断 |
| Access Level(访问级别) | `sensor._access_level` | — | 云访问级别 | 诊断 |
| Protocol Version(协议版本) | `sensor._protocol_version` | — | 报告的云协议版本 | 诊断 |
| Last Update(最后更新) | `sensor._last_update` | — | 最后更新的时间戳 | 默认禁用 |
| Board Temperature(板温) | `sensor._board_temperature` | °C | 控制器板温度 | 诊断 |
| Pool Volume(泳池水量) | `sensor._pool_volume` | L | 配置的泳池水量 | 诊断 |
| Litres Left to Filter(剩余过滤升数) | `sensor._litres_left_to_filter` | L | 剩余过滤水量估算 | 诊断 |
| Heater Error(加热器错误) | `sensor._heater_error` | — | 原始加热器错误值 | 诊断 |
| Salt/Error Code(盐/错误代码) | `sensor._salt_error_raw` | — | 原始盐/错误代码字段 | 默认禁用 |
### 二进制传感器
| 名称 | 默认实体 ID | 类型 | 描述 | 备注 |
|---|---|---|---|---|
| Cloud Connected(云已连接) | `binary_sensor._connected` | Diagnostic(诊断) | 云连接状态 | 连接性 |
| Pump Operating(泵运行中) | `binary_sensor._pump_operating` | Status(状态) | 泵当前正在运行 | 运行状态 |
| Cell Operating(电解槽运行中) | `binary_sensor._cell_operating` | Status(状态) | 电解槽当前正在运行 | 运行状态 |
| Cell Reversed(电解槽极性反转) | `binary_sensor._cell_reversed` | Diagnostic(诊断) | 电解槽极性已反转 | 诊断 |
| Cell Reversing(电解槽正在反转) | `binary_sensor._cell_reversing` | Diagnostic(诊断) | 电解槽当前正在反转 | 诊断 |
| Cooling Fan(冷却风扇) | `binary_sensor._cooling_fan_on` | Diagnostic(诊断) | 冷却风扇激活 | 诊断 |
| Dosing Pump(投加泵) | `binary_sensor._dosing_pump_on` | Status(状态) | 投加泵激活 | 运行状态 |
| AI Mode Active(AI 模式激活) | `binary_sensor._ai_mode_active` | Diagnostic(诊断) | AI 模式标志激活 | 诊断 |
| Spa Selected(已选择按摩池) | `binary_sensor._spa_selection` | Diagnostic(诊断) | 已选择按摩池模式 | 诊断 |
| Heater On(加热器开启) | `binary_sensor._heater_on` | Status(状态) | 加热器当前开启 | 加热状态 |
| No Flow(无水流) | `binary_sensor._no_flow` | Diagnostic(诊断) | 检测到无水流情况 | 诊断 |
| Low Salt(盐度低) | `binary_sensor._low_salt` | Diagnostic(诊断) | 检测到盐度低情况 | 诊断 |
| High Salt(盐度高) | `binary_sensor._high_salt` | Diagnostic(诊断) | 检测到盐度高情况 | 诊断 |
| Sampling Only(仅采样) | `binary_sensor._sampling_only` | Diagnostic(诊断) | 仅采样情况激活 | 诊断 |
| Dosing Disabled(投加已禁用) | `binary_sensor.<_slug>_dosing_disabled` | Diagnostic(诊断) | 投加已禁用状态 | 诊断 |
| Daily Acid Dose Limit Reached(达到每日酸投加限制) | `binary_sensor._daily_acid_dose_limit_reached` | Diagnostic(诊断) | 已达到每日酸投加限制 | 诊断 |
| Cell Disabled(电解槽已禁用) | `binary_sensor._cell_disabled` | Diagnostic(诊断) | 电解槽已禁用状态 | 诊断 |
| Sanitising Active(消毒激活) | `binary_sensor._sanitising_active` | Status(状态) | 消毒模式激活 | 运行状态 |
| Filtering Only(仅过滤) | `binary_sensor._filtering_only` | Status(状态) | 不进行消毒的过滤 | 运行状态 |
| Sampling Active(采样激活) | `binary_sensor._sampling_active` | Status(状态) | 采样模式激活 | 运行状态 |
| Standby(待机) | `binary_sensor._standby` | Status(状态) | 待机状态激活 | 运行状态 |
| Low Speed No Chlorinating(低速不消毒) | `binary_sensor._low_speed_no_chlorinating` | Status(状态) | 低速不消毒状态 | 运行状态 |
| Reduced Output Low Temperature(低温低输出) | `binary_sensor._reduced_output_low_temperature` | Status(状态) | 因温度低而降低输出 | 运行状态 |
| Heater Cooldown Active(加热器冷却激活) | `binary_sensor._heater_cooldown_active` | Status(状态) | 加热器冷却进行中 | 运行状态 |
| Manual Acid Dose Active(手动酸投加激活) | `binary_sensor._manual_acid_dose_active` | Status(状态) | 手动酸投加激活 | 运行状态 |
| Backwashing(反冲洗) | `binary_sensor._backwashing` | Status(状态) | 反冲洗状态激活 | 运行状态 |
## 已测试设备
| 项目 | 值 |
|---|---|
| 已测试型号 | AstralPool Halo Chlorinator |
| 测试中使用的 Home Assistant 设备名称 | Pool Chlorinator |
| 当前运行的固件 | 目前尚未被集成清晰地记录/显示 |
| 已确认的云协议/构建信息 | `2.0` |
## 注意事项和限制
- 氯消毒器一次仅支持一个活动连接,因此云访问可能会与 BLE 或应用访问发生冲突。
- 该项目仍处于大量开发阶段。
- 在正式发布 1.0 版本之前,需要在实际入门过程中完全验证 BLE 配对。
- 定时器和设备工作正在进行中,但尚未成为稳定公共功能集的一部分。
- 确切的氯消毒器固件版本目前未以清晰的用户可见方式记录,因此此处不作声明。
- 已确认的云协议/构建信息目前指示协议版本为 `2.0`。
## 进行中的工作
当前的开发重点包括:
- 加固 BLE 配对以实现发布质量的入门
- 定时器解码和安全的定时器支持
- 持续改进 Home Assistant 的完善和打包
## 支持
如果你在使用公共 HACS/安装路径时遇到问题,请使用 GitHub issue 追踪器。
标签:AstralPool, BLE替代, HACS, Halo, Home Assistant, IoT, ORP, pH监测, 云客户端, 云端连接, 加氯器, 家庭自动化, 智能家居, 氯含量, 水温监测, 泳池设备, 自定义集成, 设备自动化, 远程控制, 逆向工具