在其他設備中,我有一個Belkin WeMo開關和一個3M WiFi恆溫器。兩者都帶有Android應用程序。當我在家中打開應用程序(與設備在同一個WiFi子網上打電話)時,該應用程序稱設備是「本地」的,或者應用程序「直接」連接到設備。我所做的任何更改都直接反映在設備上。物聯網應用程序如何檢測設備是否本地?
如果我從我家門外的任何地方連接,它會「知道」設備不在本地。如果我理解正確,那麼它會在某處更新自己的服務器,最終家中的設備會得到更新。
應用程序如何做到這一點?我想複製該功能。
基本上,我有一個樹莓派,讓我們說,做一些GPIO,我可以通過訪問一個網頁觸發該行動。在我的家庭網絡上,可通過http://192.168.10.25/do_something
訪問網頁...在我的家庭網絡外,網頁可在http://my_custom_name.some_free_dynamic_dns.com:8080/do_something
訪問。我已經設置了我的路由器,將廣域網上的8080端口連接到局域網上的192.168.10.25:80。這工作。
如何避免有2頁?我想寫一個應用程序,它有效地顯示我192.168.10.25/do_something URL
。當我在家時,它應該「自動」檢測到手機與URL位於同一網絡上,並直接打開192.168.10.25/do_something
......當我在外面時,它應該「自動」檢測到並啓動http://my_custom_name.some_Free_dynamaic_dns.com:8080/do_something
。
這裏的關鍵部分是,在家時,即使我的ISP關閉並且主機名不能解析,也不應該因爲一切都是本地的。
我該如何去做這件事?