フューチャーホームコントローラー(FHC)の複数台構成の実装の裏側

フューチャーホームコントローラー(FHC)の複数台構成について、裏側の実装をあまりに語っていないのでちょっと解説したいと思います。
https://rti-giken.jp/fhc/help/howto/multiroom.html


目指したのは、それぞれの部屋に置かれた端末がP2Pな関係で寄り添い通信して家全体のホームネットワークを自動で構築するというものです。

FHCには、webapiという機能があり、いわゆる共有キーのフレーズを使ってAPIを呼び出すことができます。
webapiは、 HTTP GETで要求を送り、返信は jsonで返ってくるシンプルなものです。
これを使えば自由に好きなアプリと連携できます。
https://rti-giken.jp/fhc/help/ref/setting_webapi.html

また、弊社サーバとhttps通信することで、リモートからでもWebAPIを呼び出せるようになっており、
外部webサービスと家の連携も可能になっています。

FHCの複数台連携は、このwebapiを利用する形で作られています。
具体的には、最初に相手を追加する時(信頼関係を結ばせる時)に、端末間でwebapiキーを交換します。

以後は、相手のwebapiキーを使ってそれぞれがそれぞれの機能を呼び出すというものです。
sshのキー認証みたいなものですね。
ただ、これは共有鍵なのでRSAとかに比べては弱いですが、ホームネットワークはLAN内限定なのでまあ信頼しています。

もし、何か理由でキーを記録しているファイルが流出した場合、
webapiキーをリセットすれば問題ありません。
流失キーは即時無効になります。
そしてキーの変更はホームネットワークで自動適応されます。
ユーザは何も考えずにキーをリセットしてOKです。

機能としても、いろいろ頑張っていて、
1:Nの複数台とリンクできるし、
複数の部屋に置かれたFHC群へのアクセスもとても容易です。
信頼端末の信頼端末(友達の友達)とも一度にコネクションできます。

自分<-->信頼端末(友達)<--->信頼端末の信頼端末(友達の友達)
自分<-->信頼端末(友達)で信頼関係を結ぶと、
自分<-->信頼端末の信頼端末(友達の友達)
友達の友達とも信頼関係を自動で結べます。

つまり、新しく部屋にFHCを設置したとしても、どこかの部屋においたFHCと信頼関係を結べば、新しく部屋に設置したFHCは、すべての部屋にアクセスできるというものです。
いちいち、すべての部屋へ信頼関係を手動で結ばせるのは手間ですからね。

信頼関係を結ぶには、自端末にログインでき、信頼関係を結びたい相手端末のIDとパスワードが必要です。
当然ながら、これらがわからないと信頼関係は結べません。
いたずらで侵入しようとしても無駄です。
正規に使うのは簡単でもイタズラは難しいを目指しています。

さらには、
DHCPで相手のIPが変わったとしても自動追従してネットワークを維持します。
webapiキーが変わっても同様です。
同時にすべての端末の電源が同時に切れて、相手のIPが変動しない限り追跡でき、
FHCのホームネットワークはそう簡単には破綻しません。

相手のIPが一度に全部変動しても追跡する機能も理論上は可能です。
ただ少し面倒なのでそこまでは作っていません。

以上が、フューチャーホームコントローラーの複数台対応です。
それぞれの部屋に置かれた端末がP2Pな関係で寄り添い通信して家全体のホームネットワークを自動で構築するというのを実現しました。
また、侵入者によるイタヅラもはねのける防御機能と、
ユーザの利便性を上げる裏方の機能があります。

あなたも、複数の部屋にFHCを置いて、家全体のホームネットワークを作ってみましょう。
https://rti-giken.jp/fhc/help/howto/multiroom.html

これが21世紀の新しい家の姿です。