Philips Hue REST api/nupnp:答案是空的

Posted

技术标签:

【中文标题】Philips Hue REST api/nupnp:答案是空的【英文标题】:Philips Hue REST api/nupnp : the answer is empty 【发布时间】:2016-11-23 13:49:00 【问题描述】:

我只想找到我的网桥的 IP 地址,但我在 www.meethue.com/api/nupnp 遇到了一些问题

其实,昨天我提出请求的时候,得到的回答是这样的:

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

一切都很好。

但是,今天早上,我重新启动了相同的请求,然后......我只有这个:

[ ]

但是,我的网桥可以正常工作,因为我可以转到昨天找到的同一个 IP 地址,并且可以更改灯的状态。

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

【问题讨论】:

您阅读过飞利浦文档吗?他们有一个 Hue Bridge Discovery Guide(当然是在登录之后)。或者,您是否尝试过 UPnP,因为它应该受支持? 是的,我阅读了飞利浦文档。我的解决方案是他们的第二部分没有?对于 UPnP,我还没有尝试,因为我认为我真的不明白我该怎么做。所以,如果你有 UPnP 的例子,我可以试试这个解决方案。 你是说发现指南没有给出 UPnP 方法的例子吗?无论如何,对于 meethue.com/api/nupnp 的发现无能为力,因为飞利浦没有说明它是如何工作的(无论如何都没有公开)。使用 UpnP,您的第一步是找到“UPnP 通用控制点”应用程序并确保网桥显示为 UpnP 设备——然后您可以考虑自己实现发现。你没有提到你的平台或语言,所以很难给出建议,但是在 linux gupnp-tools 包中包含一个合适的gupnp-universal-cp 应用程序和 libgssdp 是一个很好的发现库 我使用 swift 开发 Watch 应用。 【参考方案1】:

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

如果您运行应用程序的设备通过另一个网络连接到互联网(例如,使用 3G 而非 Wifi 的手机,或者您的笔记本电脑上启用了 ***),那么您将无法通过 / 找到网桥nupnp,因此得到空列表 []。

要找到您的网桥的解决方案,您可以尝试以下方法:

1) 既然你提到了 Watch 和 Swift,我猜你是在用 ios 做一些事情。也许您可以使用飞利浦 iOS SDK 进行发现?

2) 按照飞利浦文档中的建议进行 IP 扫描。请注意将您的扫描限制在正确的子网内!

3) UPnP,这通常很难正确处理,这就是我最后提到它的原因。但可能有图书馆可以帮助您。

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

【讨论】:

感谢您的回答。我一直在同一个 WiFi 上,有时它不适用于这个 /nupnp。我尝试使用iOS SDK,但我认为不支持watchOS,你可以看到this。实际上,我使用 /nupnp 并在我的手机应用程序上添加了一个文本字段,以便在 /nupnp 不起作用时手动输入我的 IP 值。【参考方案2】:

根据您得到的空数组结果,我认为您可以正常访问 Hue 站点,但它无法返回您的集线器以检索其 id 或 IP 地址。这可能是因为您没有登录到 hue 门户,或者它可能是由 http 请求失败的多种方式引起的。

如果我是你,我会 1)在我的路由器中为 Hue 集线器设置一个静态 ip,这样它就不会因为 DHCP 而改变 2)在你得到值的任何时候使用 NSUserDefaults 存储它的 ip。这样,如果你得到一个空数组,你可以通过读取 NSUserDefaults 回退到之前存储的值。

【讨论】:

我可以在开发期间写入我的静态 IP,但之后,我必须自动找到 IP 地址。我不希望用户必须修复自己的 IP 地址。【参考方案3】:

今晚我也有同样的经历,这不是第一次了。由于我浪费了 30 分钟的时间试图弄清楚,这里是: 在路由器/系统监视器/ARP 表中查找 MAC 地址,例如 00:17:88:40:XX:XX。

然后在您获得正确的 IP 后,在您拥有的应用程序中手动设置此 IP 地址。 宾果游戏,该设备工作正常,确实是“https://discovery.meethue.com/”,它不起作用并返回浏览器显示为 [] 的空数据结构。

不幸的是,我无法使用我的 ZYXEL 路由器将 PHUE DHCP 设置为私有,这是另一款文档过多的设备,它缺乏最前沿的基本功能...

【讨论】:

以上是关于Philips Hue REST api/nupnp:答案是空的的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 philips hue API 创建“场景”

将 Philips Hue 与端口转发结合使用

执行 UPNP 扫描不会返回 Philips Hue Bridge

如何创建像 Philips Hue 这样的颜色选择器圈

HUE提交MapReduce作业示例

HUE提交MapReduce作业示例