2016-07-20 45 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值。 –