robmarkoski/pychlorinator-cloud

GitHub: robmarkoski/pychlorinator-cloud

这是一个通过云端 API 连接 AstralPool Halo 氯消毒器的 Home Assistant 自定义集成,旨在解决蓝牙连接不稳定的问题。

Stars: 0 | Forks: 0

# AstralPool Halo Cloud [![HACS Custom](https://img.shields.io/badge/HACS-Custom-orange.svg)](https://hacs.xyz/) [![Home Assistant Custom Integration](https://img.shields.io/badge/Home%20Assistant-Custom%20Integration-41BDF5.svg)](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监测, 云客户端, 云端连接, 加氯器, 家庭自动化, 智能家居, 氯含量, 水温监测, 泳池设备, 自定义集成, 设备自动化, 远程控制, 逆向工具