我需要一些有关基于WiFi的智能灯开关的建议,该开关可以远程控制并具有开放的API。
WeMo电灯开关没有开放的远程API。与另一款流行的TP-Link HS200相同。我发现的大多数其他远程控制开关只能通过自己的应用程序进行控制。有一些GitHub项目对这些应用程序进行了逆向工程,但是我宁愿使用由制造商直接发布的API,因为我的项目是长期的,而且我不希望押注于逆向工程的解决方案。
我需要一些有关基于WiFi的智能灯开关的建议,该开关可以远程控制并具有开放的API。
WeMo电灯开关没有开放的远程API。与另一款流行的TP-Link HS200相同。我发现的大多数其他远程控制开关只能通过自己的应用程序进行控制。有一些GitHub项目对这些应用程序进行了逆向工程,但是我宁愿使用由制造商直接发布的API,因为我的项目是长期的,而且我不希望押注于逆向工程的解决方案。
Answers:
您未来最可靠的解决方案将是那些将硬件与协议完全分开的解决方案。
您的示例HS200灯开关加入了许多基于嵌入式Linux系统的智能插座(该源可在TP Link的GPL代码中心中找到),就像大多数插座一样,基础系统很可能是源自于一个奇怪的供应商分支的系统。用于路由器的通用Linux发行版。其他型号可能使用ESP8266。这些中的任何一个通常都可以将库存固件替换为不同的固件,该固件可以充当本地网络上的服务器,以这种方式进行控制,或者订阅通过云中的MQTT代理等中继的消息,从而实现-家庭控制。您保留启用一条或两条路径,更改规则和更改服务提供商的全部功能。
如果您正在使用的硬件不可用,因为您完全控制了协议,那么您所要做的就是找到运行它的不同硬件。在路由器衍生产品中常见的OpenWRT Linux和裸机ESP8266之类的设备之间移动设备侧代码将花费很多工作,但从概念上讲非常简单。但是将其从一个路由器芯片上的OpenWRT迁移到另一路由器芯片上的OpenWRT,或者将其迁移到在树莓派,Edison或Beagle Bone上运行的任何Linux(或者,如果需要,甚至可能是Win IoT)上,将更加直接。
将系统的角色分解成界限清晰的不同部分,需要您做一点点的工作,但是这意味着您将能够响应任何更改,如果您使用的话,可能无法做到。来自单个供应商的垂直集成解决方案。
正如克里斯所说,关键是将协议与硬件分开。但这并不意味着您必须实现自己的固件!您可以选择支持通用且随时可用的家庭自动化协议的交换机,例如Z-Wave或Insteon。这些是封闭的协议,但是有许多制造商使用它们创建可互操作的组件。然后,您可以使用将家庭自动化协议与IP集成在一起的家庭自动化控制器。
我使用提供Web API的Vera Edge家庭自动化控制器;还有其他选择。我之所以选择Vera,是因为整个系统都在本地运行,而无需访问托管的云接口。无需每月支付服务费用,并且设备和规则完全在我的控制之下。我可以选择将API隐藏在防火墙后,自己在外部公开该API,也可以利用Vera的免费云服务为我公开该API。(此外,Vera有一个非常活跃的社区,他们会不断增加对新的家庭自动化设备的支持。)Vera确实提供了适用于iPhone和Android的免费应用程序,但您不受其应用程序的束缚。几个独立的开发人员创建了自己的应用程序,这些应用程序利用Vera的API(Grasshopper,VeraMate和ImperiHome是这三个产品)来提供替代GUI。
如果您反对商用网关产品,并且愿意进行大量工作,那么也可以使用开放源代码解决方案来实现自己的提供Web API的家庭自动化网关。Domoticz和OpenHAB是想到的两个项目。但是,这些软件包都还远没有商业解决方案成熟,并且都需要大量工作来实现。(并且您表示您不想一起破解一个解决方案。)
我看到的基于网关的方法的唯一缺点是您的问题是询问“电灯开关”,这意味着一定数量的一个设备。Z-wave交换机的价格在10到40美元(或更多)之间,而商用网关的价格在100-400美元(或更高)之间。对于单个交换机,这个价格标签可能不值得。但是,如果要自动化整个建筑物,则集线器的成本可以分散在数十个设备中。