用Shelly RGBW2与Mongoose OS将普通泳池灯接入HomeKit全攻略
1. 项目概述:当传统泳池灯遇上智能家居
如果你和我一样,既是苹果生态的用户,又恰好家里有个泳池,那你大概率也琢磨过同一个问题:怎么才能让泳池灯也接入HomeKit,实现和家里其他智能灯一样的便捷控制和酷炫联动?现实是,市面上几乎找不到原生支持HomeKit的泳池灯控制器。那些动辄上千美元的所谓“智能”泳池灯套装,往往还停留在红外或射频遥控的“上古时代”,跟现代智能家居生态格格不入。这背后的原因,一方面是泳池设备本身属于小众的利基市场,另一方面,苹果对HomeKit设备的硬件安全认证和软件集成标准确实非常严格,导致很多厂商望而却步。
但这并不意味着我们只能妥协。这个项目的核心思路,就是利用一个极具性价比且高度灵活的智能模块——Shelly RGBW2,作为桥梁,将一台普通的RGBW泳池灯“改造”成原生支持HomeKit的智能设备。Shelly RGBW2本身是一个支持Wi-Fi的四通道(RGB+W)灯光控制器,其官方固件功能强大,但原生并不直接支持HomeKit。我们的“魔法”在于为其刷写一个名为Mongoose OS(HomeKit版本)的开源固件。刷写之后,Shelly RGBW2在HomeKit中就会被识别为一个标准的RGBW彩色灯泡,你可以像控制飞利浦Hue或Nanoleaf一样,通过家庭App或Siri对其进行开关、调色、调亮度,并创建丰富的自动化场景。
整个项目适合有一定动手能力的智能家居爱好者、泳池房主,或者任何想将非标设备接入苹果生态的折腾派。你不需要是电子工程师,但需要具备基础的电路连接知识(比如区分火线零线)、能熟练操作路由器后台查看IP地址,并且对“刷固件”这类操作不感到恐惧。最终,你将收获的不仅是一个能用手机控制的泳池灯,更是一个完全本地化运行、响应迅速、且能深度融入你现有HomeKit自动化体系的智能节点。
2. 核心思路与方案选型解析
2.1 为什么是Shelly RGBW2?
在开始动手之前,我们先拆解一下为什么选择Shelly RGBW2作为本次改造的核心部件。市面上类似的Wi-Fi或Zigbee继电器模块不少,但Shelly系列产品有几个难以替代的优势,使其成为DIY智能家居项目中的“明星选手”。
首先,硬件规格完全匹配。泳池灯通常是RGBW四线制(红、绿、蓝、白)或RGB五线制。Shelly RGBW2提供了四个独立的继电器输出通道,每个通道最大负载为2A(总功率约480W @ 240V),这足以驱动绝大多数低压(通常为12V或24V)的LED泳池灯变压器。其紧凑的尺寸也便于放入标准的电气接线盒内。其次,极致的开放性。Shelly设备以其开源和可玩性高而闻名。官方不仅提供了完善的本地API(通过HTTP或MQTT),其硬件设计也允许用户刷写第三方固件,这为我们接入HomeKit提供了可能。最后是成本与可靠性。相比动辄数百美元的专用HomeKit控制器,一个Shelly RGBW2模块的价格非常亲民。同时,其工业级的继电器和成熟的电路设计,在长期运行和负载切换的稳定性上,比一些“玩具级”的智能插座或模块要可靠得多,这对于需要长时间浸泡在高湿度环境旁(泳池设备区通常湿度大)的设备至关重要。
注意:请务必确认你的泳池灯是低压LED灯(带变压器),并且变压器输出是直流电。Shelly RGBW2的继电器输出端是交流电输入、交流电输出,它不能直接控制直流低压灯条。我们的标准接法是:市电(AC 110V/220V) -> 泳池灯变压器 -> 变压器低压输出端(通常为DC 12V/24V) -> Shelly RGBW2的继电器输入端 -> 泳池灯。Shelly在这里控制的是通往变压器初级线圈的市电通断,而非直接控制低压直流电。
2.2 固件方案对比:为何选择Mongoose OS?
要让Shelly RGBW2被HomeKit识别,核心在于固件。主要有三种路径:一是使用HomeBridge或Home Assistant这类桥接软件,在树莓派等设备上运行,将Shelly的API“翻译”成HomeKit协议;二是使用像“Shelly-HomeKit”这样的第三方固件;三就是我们本次采用的Mongoose OS(HomeKit Edition)。
HomeBridge桥接方案的优点是无需改动Shelly本身,使用其原厂固件,通过插件接入。但缺点是需要一个始终在线的服务器(如树莓派),增加了系统的复杂性和故障点,且所有指令需要经过桥接器中转,会引入轻微的延迟。“Shelly-HomeKit”固件是专门为Shelly设备开发的HomeKit原生固件,体验最好,但开发活跃度有时不稳定,且对不同型号Shelly的支持进度不一。
我们选择的Mongoose OS是一个面向物联网设备的开源操作系统,其“HomeKit Edition”由社区大神维护,它直接在Shelly设备上实现了Apple的HomeKit配件协议(HAP)。这意味着刷写后,Shelly RGBW2本身就成了一个真正的HomeKit配件,可以直接被家庭App发现和添加,无需任何额外的桥接器或服务器。所有自动化都在本地运行,响应速度极快,即使家庭互联网中断,局域网内的控制依然可用。这正是HomeKit精髓的体现:安全、快速、本地化。虽然刷机过程比直接用原厂固件多了一步,但换来的是最纯粹、最稳定的HomeKit体验。
2.3 安全与合规性考量
任何涉及电力和水的项目,安全都是第一位的。本项目操作包含强电(市电)连接,且安装环境靠近泳池,属于潜在高风险区域。在操作前,请务必遵守以下原则:
- 断电操作:在进行任何接线工作前,必须确认泳池灯电路的断路器已完全关闭,并用测电笔进行验证。
- 防水防潮:Shelly RGBW2模块本身不防水(IP20)。必须将其安装在干燥的、有防护的电气箱内,远离可能被水直接喷洒或浸泡的位置。设备间的连接线缆也应使用防水接线盒或套管进行保护。
- 专业协助:如果你对家庭电路布线不熟悉,或对“火线”、“零线”、“负载”等概念感到模糊,强烈建议聘请持有执照的电工或专业的泳池设备技术人员来完成接线部分。为省一点钱而冒险是绝对不值得的。
- 设备认证:确保你购买的泳池灯和变压器拥有必要的安全认证(如UL、CE等),使用合规的线材和连接器。
3. 材料、工具与准备工作
3.1 物料清单详析
一份清晰的物料清单是成功的一半。以下是完成本项目所需的所有物品,我会对关键项进行说明:
- 核心控制器:
- Shelly RGBW2 模块 x1:注意是“RGBW2”型号,它有四个独立的继电器通道。购买时请选择适合你所在地区电压的版本(如110-240V AC)。
- 泳池照明部分:
- RGBW 泳池灯 x1:确保是低压LED灯(通常为12V或24V DC),并包含完整的灯体、密封圈和足够长的防水线缆。文中提到的款式仅供参考,购买时请仔细阅读评价,特别关注其安装配件(如螺丝)的质量,劣质螺丝在泳池水中易腐蚀。
- 配套变压器 x1:功率需大于泳池灯的总功耗,并确保输出电压与泳池灯额定电压匹配(如DC 12V)。如果原有旧泳池灯变压器工作正常且参数匹配,可以继续使用。
- 电路连接与安装:
- WAGO 221系列接线端子 x若干:强烈推荐使用这种杠杆式接线器,它们比传统的 wire nuts(线帽)更安全、更易操作,特别是在空间有限的接线盒内,并且能可靠地连接固芯线与多股线。准备不同位数(如2位、3位、5位)的以应对不同接线点。
- 适当规格的电线:用于连接断路器、变压器、Shelly模块和泳池灯。长度和线径(如14 AWG)需根据实际距离和负载电流计算确定。建议使用不同颜色的线以便区分(如火线用黑色/红色,零线用白色,负载线用其他颜色)。
- 防水电气箱 x1:尺寸要能容纳Shelly模块、所有接线端子和可能的散热空间。选择带有橡胶密封圈和电缆防水接头(PG头)的型号。
- DC电源适配器(可选但推荐):一个5V或12V的直流电源适配器,用于在刷机阶段单独给Shelly RGBW2供电,避免在泳池灯主电路上带电操作。很多旧的手机充电器就可以用。
- 工具:
- 螺丝刀套装(平口、十字)
- 剥线钳
- 电工胶带
- 测电笔/万用表(至关重要!)
- 网络线缆(RJ45网线)或Wi-Fi网络(用于配置)
- 电脑或智能手机
3.2 网络与环境准备
Shelly RGBW2需要通过Wi-Fi接入你的家庭网络。在开始安装前,请做好以下准备:
- Wi-Fi信号测试:到你计划安装Shelly的泳池设备柜位置,用手机测试一下Wi-Fi信号强度。确保至少有2格稳定的信号(-70dBm以内更佳)。如果信号弱,考虑使用Wi-Fi扩展器或将路由器天线调整方向。金属制的断路器箱门会对信号产生严重屏蔽,规划安装位置时要避开。
- 路由器后台访问:你需要知道如何登录你家路由器的管理界面(通常是192.168.1.1或类似地址),以便后续查看分配给Shelly的IP地址。
- 工作台预配置:强烈建议先在室内的工作台上完成Shelly模块的固件刷写和基本网络配置。用一个DC电源适配器给它供电,连接稳定,操作起来远比在设备柜里蹲着舒服,也便于排查问题。
4. 核心实操:刷写Mongoose OS固件
这是整个项目的技术核心,也是将Shelly“变身”为HomeKit配件的关键一步。请严格按照步骤操作。
4.1 初始检查与官方固件升级
首先,我们拿到全新的Shelly RGBW2。为了确保刷机过程顺利,最好先将其更新到最新的官方固件。
- 供电与连接:使用DC电源适配器(或通过端子接入临时市电),为Shelly RGBW2供电。模块上的LED指示灯应亮起。
- 接入网络:Shelly首次启动会创建一个以“ShellyRGBW2-XXXXXX”命名的Wi-Fi热点。用手机或电脑连接这个热点(通常无需密码)。
- 访问管理界面:连接后,在浏览器打开地址
http://192.168.33.1。这将进入Shelly的原生Web管理界面。 - 配置Wi-Fi:在管理界面中,找到“Internet & Security”或“Wi-Fi”设置,将其连接到你的家庭Wi-Fi网络(2.4GHz网络,Shelly不支持5GHz)。保存并重启。
- 查找IP并升级:重启后,Shelly会连接到你的家庭Wi-Fi。登录路由器管理后台,在DHCP客户端列表里找到名为“ShellyRGBW2-XXXXXX”的设备,记下其IP地址(例如
192.168.1.100)。在浏览器中访问这个IP,再次进入Shelly管理界面。找到“Firmware Update”选项,检查并更新到最新版本的官方固件。更新完成后再次重启。
实操心得:务必确保在刷写第三方固件前,官方固件是最新版。这能解决很多底层驱动兼容性问题,避免刷机过程中出现意外错误。如果在这一步就无法成功连接Wi-Fi或升级,请检查网络环境,确保路由器没有开启过于严格的AP隔离或MAC地址过滤。
4.2 刷写Mongoose OS(HomeKit版)
现在,Shelly已经准备就绪,可以开始刷入“灵魂”了。
- 获取刷机链接:确保你的电脑或手机与Shelly在同一个局域网内。在浏览器中访问一个特定格式的URL来完成刷机。这个URL的模板是:
http://[SHELLY_IP]/ota?url=http://shelly.rojer.cloud/update。你需要将[SHELLY_IP]替换为你上一步记下的Shelly的实际IP地址(例如http://192.168.1.100/ota?url=http://shelly.rojer.cloud/update)。 - 执行刷机:在浏览器地址栏输入完整的URL后回车。页面可能会空白或显示一些日志信息,这个过程大约需要1-2分钟。期间Shelly的LED灯会快速闪烁。切勿断电或刷新页面!
- 等待重启:刷写完成后,Shelly会自动重启。重启后,它的Wi-Fi名称会变更为类似 “Mongoose_XXXXXX” 的形式。
- 访问Mongoose OS管理界面:设备重启后,再次从路由器DHCP列表中查找它的新IP地址,或者尝试访问
http://shellyrgbw2.local(如果支持mDNS)。在浏览器中输入其IP地址,即可进入Mongoose OS的管理员门户(Admin Portal)。默认登录用户名是admin,密码是mongoose。 - 关键配置:在Admin Portal中,主要做两件事:
- Wi-Fi配置:在 “WiFi” 页面,重新配置它连接到你的家庭Wi-Fi(同样,只支持2.4GHz)。你可以在这里禁用设备自带的AP模式(Access Point Mode)以节省电量、提高安全性,因为后续我们主要通过HomeKit和这个管理界面来控制。
- HomeKit配对码:在 “HomeKit” 页面,你会看到一个8位数的设置码(格式如 111-22-333)。请务必截图或抄写保存好这个码,这是将设备添加到家庭App的凭证。
常见问题与排查:
- 刷机URL访问后无反应:检查IP地址是否正确;确认Shelly和你的电脑在同一个子网;尝试关闭电脑的防火墙或杀毒软件临时再试。
- 刷机后找不到设备:耐心等待2-3分钟让设备完全启动。重启你的路由器,让网络设备列表刷新。也可以尝试使用手机App “Fing” 来扫描局域网内的新设备。
- 管理界面密码错误:确认输入的是默认密码
mongoose(全小写)。如果修改过但忘记了,可能需要执行重置操作(通常需要物理按下设备上的按钮)。
5. 泳池灯安装与电气连接
这是项目的物理实施部分,危险性最高,请再次确认已遵守所有安全规范。
5.1 旧灯拆除与新灯预装
- 安全断电:前往配电箱,找到控制泳池灯的断路器,将其切换到“OFF”位置。用测电笔在泳池灯接线处和变压器输入端进行验证,确认完全无电。
- 拆除旧灯:通常泳池灯通过一个螺丝固定在泳池壁的灯龛(niche)内。水下部分有一条长的防水电缆连接到岸上的接线盒。小心拧下固定螺丝,将旧灯从灯龛中取出。将电缆从接线盒中慢慢拉出,注意不要损坏电缆或密封套管。
- 预装新灯:将新的RGBW泳池灯的电缆穿过原有的防水套管,按照说明书将灯体放入灯龛并初步固定。先不要完全拧紧,因为可能需要根据接线情况微调电缆长度。确保防水密封圈安装正确、平整。
5.2 电路接线详解
这是最关键的一步,我们以最常见的“市电 -> 变压器 -> Shelly -> 泳池灯”接线法为例。假设你的变压器输入是AC 220V,输出是DC 12V。
| 连接点 | 线材来源 | 连接至 Shelly RGBW2 | 说明 |
|---|---|---|---|
| 市电输入 (L) | 断路器来的火线 | L端子 | 提供模块工作电源。 |
| 市电输入 (N) | 断路器来的零线 | N端子 | 提供模块工作电源回路。 |
| 变压器初级 (L) | ShellyO1端子 | 变压器输入端的火线 | 核心控制:Shelly用O1通道控制变压器通断。 |
| 变压器初级 (N) | 来自N端子的零线 | 变压器输入端的零线 | 与O1构成完整回路。 |
| 泳池灯 RGBW | 变压器输出的DC 12V+ | Shelly的I1, I2, I3, I4?错误! | 重要纠正:此处是常见误解点。Shelly的I1-I4是输入检测端子(如接开关),不是低压输出。 |
| 泳池灯 RGBW | 变压器输出的DC 12V- | 泳池灯公共负极 | 正确接法:变压器输出的正极(DC 12V+)直接接泳池灯的公共正极。 |
| 泳池灯 RGBW | 泳池灯的R, G, B, W线 | Shelly的O2, O3, O4, O5端子?错误! | 核心接法:泳池灯的R, G, B, W四根彩色线,分别连接到变压器输出的负极(DC 12V-)吗?不! |
正确的逻辑是:Shelly RGBW2的四个继电器输出端(O1, O2, O3, O4)是用来控制四条独立的电路的。对于低压泳池灯,我们需要用这四个通道分别控制灯的R, G, B, W四个颜色的负极。
因此,接线方案应调整为:
- 变压器输出的正极(DC 12V+)直接连接到泳池灯的公共正极。
- 变压器输出的负极(DC 12V-)连接到四个WAGO接线端子的一个端口。
- 泳池灯的R, G, B, W四根线,分别连接到四个WAGO端子的另一个端口。
- 这四个WAGO端子的第三个端口,分别引出四根线,连接到Shelly RGBW2的O1, O2, O3, O4端子。
- Shelly RGBW2的L, N端子接市电,为其自身供电。
- 这样,当你在HomeKit中打开“红色”,Shelly就会闭合O1通道,使红色LED的负极回路接通,红灯亮起。颜色混合则通过多个通道同时闭合来实现。
致命注意事项:再次强调,Shelly的继电器是控制交流市电通断的。但在我们这种接法中,我们用它来控制低压直流回路的通断,这在理论上是可行的,因为继电器本质上是一个开关。但你必须确保通过继电器触点的电流(即泳池灯单色LED的工作电流)小于继电器触点的额定电流(2A)。在接线前,请查阅你的泳池灯说明书,确认每个颜色通道的最大工作电流。
5.3 安装与密封
将所有接线用WAGO端子连接牢固后,仔细检查一遍。确保没有裸露的铜线,所有接头都绝缘良好。然后将Shelly模块、变压器(如果体积允许)和一堆WAGO端子整齐地放入防水电气箱内。理顺线缆,避免挤压。最后,合上电气箱盖,拧紧所有螺丝,确保密封圈压实,达到防水防尘效果。此时可以打开断路器,进行通电测试。
6. HomeKit集成与自动化配置
6.1 添加配件与基础测试
- 通电与等待:合上泳池灯电路的断路器,为整个系统供电。等待1-2分钟,让Shelly RGBW2完成启动并连接到Wi-Fi。
- 打开家庭App:在iPhone或iPad上打开“家庭”App。点击右上角的“+”号,选择“添加配件”。
- 扫描或手动输入:将摄像头对准之前保存的8位数HomeKit设置码(在Mongoose OS管理界面获取),或者选择“手动输入代码”并输入号码。
- 分配房间与名称:添加成功后,家庭App会识别出一个新的“灯”设备。将它分配到“泳池”、“后院”或你自定义的房间。建议给它起一个清晰的名字,例如“泳池主灯”。你还可以在“灯光”设置中,为不同的颜色场景预设喜欢的色彩。
- 功能测试:在家庭App中,尝试开关灯,切换不同的颜色(红、绿、蓝、白),调整亮度。观察泳池灯是否正确响应。如果某个颜色不亮,返回检查对应的接线(O1-O4)和WAGO连接点。
6.2 创建实用自动化场景
HomeKit的强大之处在于自动化。以下是一些针对泳池灯的实用自动化思路:
- 日落开灯:创建一个基于“日落”时间的自动化。让泳池灯在每天日落后自动开启,并设置为柔和的暖白色或蓝色,营造氛围。
- 派对模式:创建一个场景,让泳池灯循环变换彩虹色。你可以通过呼唤Siri“嘿Siri,开启派对模式”来激活它。
- 地理围栏:设置当你和家人手机“第一个人到家”时,自动开启泳池灯(如果是在晚上),提供安全和欢迎照明。
- 与其他设备联动:如果后院有运动传感器,可以设置“当运动传感器检测到后院有人时,自动开启泳池灯”,并在无人后5分钟关闭。
- 作为晚安场景的一部分:创建一个“晚安”场景,关闭室内所有灯的同时,将泳池灯调至非常暗的深蓝色,作为夜灯。
6.3 信号优化与稳定性维护
设备稳定性很大程度上取决于网络信号。
- 信号强度检查:在家庭App中,进入家庭设置 -> 家庭中枢与桥接,找到你的Shelly RGBW2,查看其信号状态。如果显示“信号弱”,则需要优化。
- 优化措施:
- 调整位置:如果可能,将安装Shelly的防水盒移至更靠近路由器或远离大型金属障碍物(如断路器铁门)的位置。
- 使用Wi-Fi扩展器:如果距离过远,考虑在泳池附近部署一个支持Mesh组网或中继模式的Wi-Fi扩展器。
- 固定IP地址:在路由器后台为Shelly设备分配一个静态IP地址(DHCP保留),避免IP变化导致偶尔的失联。
7. 进阶调试与故障排除实录
即使按照步骤操作,也可能会遇到一些问题。这里记录了我本人在实施和帮助他人过程中遇到的一些典型情况及解决方法。
7.1 常见问题速查表
| 问题现象 | 可能原因 | 排查步骤与解决方案 |
|---|---|---|
| HomeKit中无法添加配件 | 1. 设置码错误。 2. 设备未进入配对模式。 3. 网络问题。 | 1. 核对Mongoose OS界面中的8位数设置码。 2. 重启Shelly设备,重启后短时间内会广播配对信号。 3. 确保iPhone和Shelly在同一个2.4GHz Wi-Fi网络下,且路由器未开启客户端隔离。 |
| 设备在家庭App中显示“无响应” | 1. Wi-Fi信号弱或断开。 2. 路由器分配了新的IP地址。 3. HomeKit中枢(HomePod/Apple TV)问题。 | 1. 检查设备位置信号,优化网络。 2. 登录路由器查看设备是否在线,考虑设置静态IP。 3. 重启你的HomeKit中枢设备(HomePod或Apple TV)。 |
| 某个颜色通道不亮 | 1. 接线错误或松动。 2. 泳池灯该颜色LED损坏。 3. Shelly对应继电器通道故障。 | 1. 断电后检查对应颜色线(R/G/B/W)从灯到WAGO再到Shelly输出端子的整个通路。 2. 用万用表通断档测试泳池灯该颜色线是否通路。 3. 在Mongoose OS的Web界面手动触发对应输出(O1-O4),听是否有继电器“咔嗒”声。 |
| 所有灯都不亮,但Shelly有电 | 1. 变压器未通电或损坏。 2. 变压器输出端到泳池灯公共正极的线路断开。 3. Shelly的L/N供电接反或接触不良。 | 1. 检查变压器输入端市电是否正常,输出端是否有12V/24V直流电压。 2. 检查从变压器到灯的正极线路。 3. 用测电笔确认Shelly的L、N端子有电。 |
| 颜色混合不准或偏色 | 1. HomeKit中颜色校准问题。 2. 泳池灯自身LED芯片的色差。 3. 水下光线折射影响观感。 | 1. 在家庭App中,长按灯光图标 -> 调整颜色 -> 尝试手动选择色轮上的颜色,而非预设场景。 2. 这是硬件差异,通常无法完美解决,可通过微调找到视觉上最舒服的混合比例。 |
| Mongoose OS管理界面无法访问 | 1. IP地址变更。 2. 浏览器缓存。 3. 固件故障。 | 1. 重新从路由器DHCP列表查找设备IP。 2. 尝试使用浏览器无痕模式访问。 3. 尝试通过设备上的物理按钮(如有)恢复出厂设置,或重新刷写固件。 |
7.2 深度排查:继电器负载与防水隐患
两个最影响长期稳定性的因素往往被忽视。
继电器负载匹配:Shelly RGBW2每个继电器标称2A/250VAC。如果你的泳池灯单个颜色通道的电流接近甚至超过2A,长期使用可能导致继电器触点过热、粘连甚至损坏。解决方案:在接线前,用万用表测量泳池灯每个颜色通道在最大亮度下的工作电流。如果任一通道电流超过1.5A(留出余量),就不建议直接用Shelly控制。可以考虑在Shelly继电器后端增加一个中间继电器(线圈电压与Shelly输出匹配,触点电流更大)来驱动大电流负载。
冷凝水与潮湿:泳池设备间即使在室内,湿度也远高于普通房间。冷凝水可能在线缆接头或设备内部积聚。解决方案:在防水电气箱内放置一包硅胶干燥剂,并定期更换。所有外部进线口使用防水格兰头(PG头)密封。每年在泳池关闭季节,打开电气箱检查内部是否有潮湿或腐蚀迹象。
完成所有安装和测试后,我习惯在家庭App里创建一个名为“设备健康”的场景,里面不控制任何设备,只是用来备注一些关键信息。我会把Shelly的本地IP地址、Mongoose OS的管理密码、HomeKit设置码,甚至变压器型号和泳池灯电流参数,都以备注的形式存进去。这样,未来无论是我自己维护,还是需要向他人说明情况,所有关键信息都能在家庭App里一键找到,省去了到处翻找纸条或记忆的麻烦。这个小习惯来自于之前一次路由器重置后,找不到设备IP的狼狈经历,算是用一点小麻烦避免了未来可能的大麻烦。
