2016-07-20 50 views
0

我只是想找到我的桥的IP地址,我有一些问题www.meethue.com/api/nupnp飞利浦色相REST API/nupnp:答案是空

事实上,昨天,当我提出了我的要求,我得到了这样的答案:

["id":..., "internalipaddress":...] 

所有的工作都很棒。

但是,今天早上,我重启了相同的请求,并..我刚在:

[ ] 

然而,我的桥梁工程,因为我可以去,我昨天发现相同的IP地址,我可以改变我的灯状态。

你有解决我的问题的想法吗?

+0

您是否阅读过philips文档?他们有一个Hue Bridge Discovery Guide(当然是在登录后面)。另外,你是否尝试过UPnP,因为它应该被支持? – jku

+0

是的,我阅读了philips文档。我的解决方案是他们的第二部分否?对于UPnP,我还没有尝试,因为我认为我并不真正了解如何做到这一点。所以,如果你有UPnP的例子,我可以尝试这个解决方案。 –

+0

你是说发现指南没有提供UPnP方法的例子吗?无论如何,无法帮助meethue.com/api/nupnp发现,因为飞利浦没有说明它是如何工作的(不是公开的)。使用UpnP,您的第一步将是找到一个“UPnP通用控制点”应用程序,并确保该桥显示为UpnP设备 - 然后您可以考虑自己实施发现。您没有提到您的平台或语言,因此很难提供建议,但在Linux上,gupnp-tools软件包包含一个合适的'gupnp-universal-cp'应用程序,libgssdp是一个很好的发现库 – jku

回答

0

从你得到的空数组结果来看,我会说你到达Hue站点就好了,但它无法返回到你的集线器来检索它的id或ip地址。这可能是因为您未登录到色调门户网站,或者可能是由http请求失败的多种方式导致的。

如果我是你,我会1)在我的路由器中为Hue Hub设置一个静态IP,所以它不会因DHCP而改变,并且2)当你获得值时,使用NSUserDefaults存储它的IP 。这样,如果你得到一个空数组,你可以通过读NSUserDefaults来回退到先前存储的值。

+0

我可以在开发期间编写我的静态IP,但之后,我必须自动找到IP地址。我不希望用户必须修复他自己的IP地址。 –

1

要使/ nupnp发现正常工作,您的应用程序必须与您的网桥位于同一网络中。

如果您正在运行应用程序的设备通过另一个网络连接到互联网(例如,3G上的电话而不是Wifi或者您的笔记本电脑上启用了VPN),那么您将无法通过其他网络/ nupnp,因此得到空的列表[]。

对于一个解决方案来发现你的桥,你可以尝试一些事情:

1)既然你提到手表和斯威夫特我猜你正在做的与iOS的东西。也许你可以使用飞利浦iOS SDK进行发现?

2)按照Philips文档中的建议进行IP扫描。请注意让您的扫描限于正确的子网!

3)UPnP,这通常很难得到正确的,这就是为什么我最后提到它。但有些图书馆可以帮助你。

对于我的个人项目,我倾向于使用/ nupnp和IP扫描的组合来发现网桥。

+0

感谢您的回答。我一直在同一个WiFi上,有时它不能用这个/ nupnp。我试图使用iOS SDK,但我认为watchOS不受支持,您可以看到[this](http://stackoverflow.com/questions/38529055/ios-sdk-hue-philips-with-swift)。实际上,如果/ nupnp不起作用,我使用/ nupnp,并在手机应用程序中添加了一个textField,以便手动将我的IP值。 –