他のデバイスの中には、Belkin WeMo スイッチと 3M WiFi サーモスタットがあります。どちらも Android アプリが付属しています。自宅 (デバイスと同じ WiFi サブネット上の電話) でアプリを開くと、アプリは、デバイスが「ローカル」であるか、アプリがデバイスに「直接」接続されていると表示します。行った変更は、デバイスに直接反映されます。
家の外のどこからでも接続すると、デバイスがローカルではないことを何らかの方法で「認識」します。私の理解が正しければ、どこかで独自のサーバーを更新し、最終的に自宅のデバイスが更新を取得します。
アプリはどのようにそれを行いますか? その機能を再現したい。
基本的に、GPIO を介して何かを行う Raspberry Pi があり、Web ページにアクセスすることでそのアクションをトリガーできます。ホーム ネットワークでは、Web ページは でアクセスできますhttp://192.168.10.25/do_something
...ホーム ネットワークの外では、Web ページは でアクセスできますhttp://my_custom_name.some_free_dynamic_dns.com:8080/do_something
。WAN の 8080 を LAN の 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 がダウンしていてホスト名が解決されていなくても、すべてがローカルであるため問題にならないということです。
どうすればこれを行うことができますか?