(57)【要約】【課題】ネットワークの構成の復元を容易に実現する制御装置を提供する。【解決手段】制御装置として機能する中継器が実行する処理は、バックアップデータとしてパーソナルコンピュータ等に保存されたネットワーク全体情報を読み出してノード管理情報を復元するステップ（Ｓ１６１０）と、ＭＡＣ機能を停止してデータ送受信を停止するステップ（Ｓ１６２０）と、アソシエートデバイスリストをクリアするステップ（Ｓ１６３０）と、アソシエートデバイスリストに任意のノードを追加するステップ（Ｓ１６４０）と、ネットワーク情報ベース（ＮＩＢ）を書き換えるステップ（Ｓ１６５０）と、ローカルノードをリセットするステップ（Ｓ１６６０）とを含む。【選択図】図１４
2013206298.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの構成を復元するネットワーク復元機能を有する制御装置であって、
前記制御装置は、
ネットワークの通信プロトコルを制御する通信制御部と、
前記通信制御部の情報と前記ネットワークに参加する１以上の端末の情報とをノード管理情報として管理する本体制御部とを備え、
前記本体制御部は、
前記ノード管理情報を記憶装置に保存するための保存手段と、
前記ネットワーク復元の要求に基づいて、前記記憶装置から情報を読み出し前記ノード管理情報を復元する読出手段と、
前記復元されたノード管理情報に基づいて、前記通信制御部における前記ネットワークの構成情報を書き換えるための書換手段と、
前記通信制御部を再起動するための再起動制御手段とを含む、制御装置。
【請求項２】
前記本体制御部は、前記ネットワークに参加する１以上の端末の前記ネットワークにおけるアドレスを更新するための更新手段をさらに含む、請求項１に記載の制御装置。
【請求項３】
前記通信制御部は、
前記更新手段の要求に基づいて、前記ネットワークに参加する１以上の端末へ、前記端末の前記ネットワークにおけるアドレス情報を問合せするためのパケットを送信する送信手段と、
前記通信制御部は、前記ネットワークにおけるアドレスの送信要求に応答して前記端末から送られるアドレス情報を受信するための受信手段とをさらに含む、請求項２に記載の制御装置。
【請求項４】
前記本体制御部における前記更新手段は、前記ネットワークの構成情報を読み出し、前記ノード管理情報を更新する、請求項２に記載の制御装置。
【請求項５】
前記本体制御部における前記書換手段は、前記復元されたノード管理情報に基づき、前記通信制御部が有する不揮発性の記憶領域を書き換えるように構成されている、請求項１〜４のいずれかに記載の制御装置。
【請求項６】
請求項１〜５のいずれかに記載の制御装置と、
ネットワークを介して前記制御装置と通信する１以上の端末とを備える、通信ネットワークシステム。
【請求項７】
ネットワークの構成を復元するための方法であって、
前記ネットワークの通信プロトコルを制御する通信制御部の情報と、前記ネットワークに参加する１以上の端末の情報とを、ノード管理情報として管理し、前記ノード管理情報を記憶装置に保存するステップと、
前記ネットワーク復元の要求に基づいて、前記記憶装置から情報を読み出し前記ノード管理情報を復元するステップと、
前記復元されたノード管理情報に基づいて、前記通信制御部における前記ネットワークの構成情報を書き換えるステップと、
前記通信制御部を再起動するステップとを含む、方法。
【請求項８】
請求項７に記載の方法をコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの復元に関し、より特定的には、パーソナルエリアネットワークの復元に関する。
【背景技術】
【０００２】
従来、複数の消費電力測定器（以下、「タップ」とも称する）と、複数の消費電力測定器を制御するための制御装置と、ディスプレイを備えた電子機器とを備える通信システムが知られている。各タップは、宅内のコンセントに接続されるとともに、当該タップに接続された家電の瞬時消費電力を測定する。さらに、各タップは瞬時消費電力を累積して積算電力量を蓄える。
【０００３】
このような通信システムにおいては、各タップは、当該タップに接続された家電の瞬時消費電力値や累積の積算電力量などの電力情報を制御装置に送信することが行なわれている。制御装置は、各タップの電力情報を収集し、当該制御装置に保存する、あるいは、ディスプレイを備えた電子機器等に転送する。ディスプレイを備えた電子機器等は、家電の瞬時消費電力値や累積の積算電力量などの電力情報をユーザに視認させるためにディスプレイに表示する。
【０００４】
このような通信システムにおいては、各タップと制御装置との間で通信するために、何らかの通信方式が使われる。一般的な通信方式においては、各タップと制御装置が同一ネットワーク上に存在する機器にするために、それらの使用を開始するにあたって、ペアリング処理（もしくはジョイン処理とも言う）というのが必要になる。
【０００５】
ペアリング処理とは、タップを制御装置のネットワークに参加させる（ジョインさせる）ことを言う。制御装置のネットワークとは、制御装置が形成したネットワークの事を意味する。
【０００６】
ペアリング処理を行うと、ジョインするタップは、制御装置のネットワークに関する情報（以下、ネットワーク情報）を保存する。また、制御装置は、当該タップに関する情報（以下、デバイス情報）を保存する。ここで、保存する事を登録するとも言う。
【０００７】
一般的に、タップと制御装置ともに、不揮発性メモリにそれらの情報を保存するので、いったんペアリング処理を済ませると、電源を切ってもそれらの情報は失われない。よって、ペアリング処理は、使用を開始するにあたって一度だけ済ませればよい。
【０００８】
また、一般的に、ペアリング処理はユーザによって実施できるようになっていることが多い。商品形態によっては、工場において、制御装置と複数タップとの間でペアリング処理されてから出荷される場合もある。しかし、タップを後から追加できるようにするため、などの理由によって、ユーザによるペアリング処理はほぼ必須であると言って良い。その際、誰でもペアリング処理が出来るようにするため、ペアリング処理は、なるべく簡便な方式でなければならない。
【０００９】
通信方式によっては、制御装置にはタップに関する情報（デバイス情報）を保存しない、というのもあるが、本発明では、制御装置にはタップに関する情報（デバイス情報）を保存することを前提とする。
【００１０】
また、ペアリング処理とは反対操作のリーブ処理というものもある。リーブ処理とは、タップを制御装置のネットワークから離脱させることを言う。ネットワークから離脱するという事を、リーブするとも言う。リーブ処理を行うと、リーブするタップは、当該タップに保存されているネットワーク情報を消去する。また、制御装置は、制御装置に保存されている当該タップに関する情報（デバイス情報）を消去する。
【００１１】
ところで、運用中に制御装置を交換することを考えると、制御装置と多数のタップとの間で再度ペアリング処理をやり直さなければならない。簡便な方式でペアリングできるとは言え、設置済みの多数のタップをもう一度リーブさせて（あるいは初期化させて）、ペアリングし直すのは大変手間のかかる作業である。特にタップは手の届きにくいところに設置されることもある。これらのタップを取り外して、再度ペアリング処理を行なって、再設置するのは非常に困難である。
【００１２】
上述した通信システムにおいては、通信方式として、例えば、ＺｉｇＢｅｅ(登録商標)を用いることができる。ＺｉｇＢｅｅを用いたネットワークに関し、たとえば、非特許文献１には、ＺｉｇＢｅｅの仕様が開示されている。非特許文献１には、ＺｉｇＢｅｅで用いられるコマンド等が開示されている。以下、コーディネータ、ルータ、エンドデバイスという用語は、それぞれＺｉｇＢｅｅ仕様における論理デバイスの種別を表すものとする。論理デバイスによってＺｉｇＢｅｅネットワークでの役割が異なる。本発明における、制御装置はコーディネータとして動作するものとする。タップはルータまたはエンドデバイスのいずれかとして動作するものとする。
【００１３】
また、非特許文献２には、ある種のブロードバンドルータの機能として、その設定情報を保存し、復元する機能が説明されている。ブロードバンドルータに対して設定した各種内容をＰＣ側にダウンロードしてファイルとして保存する。また、必要になったときにＰＣ側からアップロードしてブロードバンドルータの設定内容を復元することができる。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】ＺｉｇＢｅｅ  Ａｌｌｉａｎｃｅ「ＺＩＧＢＥＥ  ＳＰＥＣＩＦＩＣＡＴＩＯＮ  ＺｉｇＢｅｅ  Ｄｏｃｕｍｅｎｔ０５３４７４ｒ１７」、ＺｉｇＢｅｅ  Ｓｔａｎｄａｒｄｓ  Ｏｒｇａｎｉｚａｔｉｏｎ、2008年1月17日
【非特許文献２】島田広道：特集  ブロードバンド・ルータ徹底攻略ガイド、“6．そのほかの機能について”、「設定の保存／復元」、http://www.atmarkit.co.jp/fpc/special/bbrouter_desc/other_func.html
【発明の概要】
【発明が解決しようとする課題】
【００１５】
運用中のネットワークにおいて、制御装置の故障により、制御装置が交換される場合がある。あるいは、運用中に、制御装置が誤って初期化される場合もあり得る。ネットワークが運用されているということは、制御装置と多数のタップとがペアリングされており、多数のタップが設置されているということである。制御装置を交換しなければならないときに、制御装置と各タップとのペアリング作業が再度必要になれば、ユーザの利便性が著しく損なわれるであろう。
【００１６】
したがって、制御装置を交換する場合、または、誤って制御装置を初期化してしまった場合には、制御装置と各タップとの間を再度ペアリングし直すことなく、制御装置だけを復元したいという要請がある。
【００１７】
上記の問題を解決するための１つの手段として、制御装置内のＺｉｇＢｅｅモジュールのＮＶＲＡＭ（Non-Volatile  Random  Access  Memory：不揮発性メモリ）から内容を読出して、交換した制御装置内のＺｉｇＢｅｅモジュールのＮＶＲＡＭにその内容を書き込む、という方法が考えられる。例えば、デバッガーと呼ばれる専用の治具をＺｉｇＢｅｅモジュールに接続し、フラッシュ・プログラマーと呼ばれるツールを使うことで、ＮＶＲＡＭから読出して保存する、また、ＮＶＲＡＭに書込みできる。しかしながら、ＮＶＲＡＭに読み出すには専用の治具が必要となり、一般のユーザは行うことはできない。運用中に制御装置を交換することを考えると、一般のユーザが実施できるようにすべきである。
【００１８】
また、非特許文献２に説明される機能では、復元できる設定情報に制約がある。この機能はユーザーが設定した内容を容易に元に戻せるようにするためにあり、復元できる設定情報はユーザーが設定できる内容に限られる。非特許文献２に説明される機能を実施しても、制御装置と各タップとのペアリング関係が復元できる訳ではない。これはユーザーがＷＥＢ設定画面を用いて設定する内容ではないからである。
【００１９】
本発明は、上述のような問題点を解決するためになされたものであって、制御装置が故障した場合や、制御装置が誤って初期化されてしまった場合に、制御装置と各タップとの間を再度ペアリングさせることなく、ネットワーク機能を復元させることが可能な制御装置、制御装置を有するシステムを提供することを目的とする。
【００２０】
他の局面における目的は、ネットワークを復元するための方法を提供することである。さらに他の局面における目的は、当該方法をコンピュータに実行させるためのプログラムを提供することである。
【課題を解決するための手段】
【００２１】
一実施の形態にしたがうと、ネットワークの構成を復元するネットワーク復元機能を有する制御装置が提供される。この制御装置は、ネットワークの通信プロトコルを制御する通信制御部と、通信制御部の情報とネットワークに参加する１以上の端末の情報とをノード管理情報として管理する本体制御部とを備える。本体制御部は、ノード管理情報を記憶装置に保存するための保存手段と、ネットワーク復元の要求に基づいて、記憶装置から情報を読み出しノード管理情報を復元する読出手段と、復元されたノード管理情報に基づいて、通信制御部におけるネットワークの構成情報を書き換えるための書換手段と、通信制御部を再起動するための再起動制御手段とを含む。
【００２２】
好ましくは、本体制御部は、ネットワークに参加する１以上の端末のネットワークにおけるアドレスを更新するための更新手段をさらに含む。
【００２３】
好ましくは、通信制御部は、更新手段の要求に基づいて、ネットワークに参加する１以上の端末へ、端末のネットワークにおけるアドレス情報を問合せするためのパケットを送信する送信手段と、ネットワークにおけるアドレスの送信要求に応答して端末から送られるアドレス情報を受信するための受信手段とをさらに含む。
【００２４】
好ましくは、本体制御部における更新手段は、ネットワークの構成情報を読み出し、ノード管理情報を更新する。
【００２５】
好ましくは、本体制御部における書換手段は、復元されたノード管理情報に基づき、通信制御部が有する不揮発性の記憶領域を書き換えるように構成されている。
【００２６】
他の実施の形態にしたがうと、上記のいずれかに記載の制御装置と、ネットワークを介して制御装置と通信する１以上の端末とを備える、通信ネットワークシステムが提供される。
【００２７】
他の実施の形態にしたがうと、ネットワークの構成を復元するための方法が提供される。この方法は、ネットワークの通信プロトコルを制御する通信制御部の情報と、ネットワークに参加する１以上の端末の情報とを、ノード管理情報として管理し、ノード管理情報を記憶装置に保存するステップと、ネットワーク復元の要求に基づいて、記憶装置から情報を読み出しノード管理情報を復元するステップと、復元されたノード管理情報に基づいて、通信制御部におけるネットワークの構成情報を書き換えるステップと、通信制御部を再起動するステップとを含む。
【００２８】
さらに他の実施の形態にしたがうと、上記の方法をコンピュータに実行させるプログラムが提供される。
【００２９】
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施の形態に係るネットワークの概略構成を示した図である。
【図２】中継器１００１の外観を表した図である。
【図３】中継器１００１のブロック図である。
【図４】タップ１００４の斜視図である。
【図５】タップ１００４のハードウェア構成を表した図である。
【図６】タブレット端末１００８のハードウェア構成を表した図である。
【図７】タップ１００４および中継器１００１におけるソフトウェア構造を説明するための図である。
【図８】ネットワーク情報ベース他３１１３に保存されている内容の抜粋を表す図である。
【図９】アソシエートデバイスリスト３１１０に含まれるデータの一例を示す図である。
【図１０】中継器１００１における別のアプリケーションのソフトウェア構造を説明する図である。
【図１１】中継器１００１の機能の構成を表すブロック図である。
【図１２】ＺｉｇＢｅｅマネージャ３１２１が管理するＺｉｇＢｅｅノード管理情報３１２６におけるデータの格納の一態様を概念的に表わす図である。
【図１３】ＺｉｇＢｅｅマネージャ３１２１が管理するＺｉｇＢｅｅノード管理情報３１２６におけるデータの格納の一態様を概念的に表わす図である。
【図１４】ＺｉｇＢｅｅマネージャ３１２１が実行する処理の一部を表すフローチャートである。
【図１５】ＺｉｇＢｅｅマネージャ３１２１によって実行される処理の一部を表すフローチャートである。
【図１６】ＺｉｇＢｅｅマネージャ３１２１によって実行される処理の一部を表すフローチャートである。
【図１７】ＺｉｇＢｅｅマネージャ３１２１によって実行される処理の一部を表すフローチャートである。
【図１８】ネットワークＺの制御装置としてタブレット端末を用いた場合における、ネットワークの概略構成を示した図である。
【図１９】タブレット端末１００９のブロック図である。
【発明を実施するための形態】
【００３１】
以下、図面を参照しつつ、本発明の実施の形態に係るネットワークについて説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００３２】
＜Ａ．ネットワークの概要＞
図１は、本発明の実施の形態に係るネットワークの概略構成を示した図である。図１を参照して、本発明の実施の形態に係るシステムにはネットワークＺとネットワークＥから構成される。ネットワークＺは、低速無線通信ネットワーク（本例においてはＺｉｇＢｅｅを想定）を示す。ネットワークＥは、高速通信ネットワーク（本例においては、Ｅｔｈｅｒｎｅｔ（登録商標）、または、ＷｉＦｉ（登録商標：Wireless  Fidelity）、またはそれらの組み合わせを想定）を示す。なお、本例においては上記の方式を用いたネットワークについて説明するが特に上記に限るものではない。例えば、ネットワークＺにＺ−ＷＡＶＥ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、特定小電力無線などを用いることができる。また例えば、ネットワークＥにＰＬＣ（Power  Line  Communications：電力線通信）などを用いることも可能である。
【００３３】
ネットワークＺには、中継器１００１と、複数のタップ１００４ａ，１００４ｂ，１００４ｃ等が存在するものとする。ネットワークＥには、中継器１００１と、ワイヤレスブロードバンドルータ１００２と、パーソナルコンピュータ１００３等が存在するものとする。タブレット端末１００８が含まれていてもよい。中継器１００１はネットワークＺとネットワークＥの両方のネットワークに含まれる。また、中継器１００１はＨＴＴＰ（Hyper  Text  Transfer  Protocol）サーバ機能を有する。複数のタップ１００４ａ，１００４ｂ，１００４ｃには、それぞれ、複数の家電機器（一例として、エアーコンディショナ１００５，冷蔵庫１００６，テレビ１００７など）が接続されている。
【００３４】
なお、本実施の形態における「中継器」という用語は、先に述べた「制御装置」と同じ装置の意味で用いている。一般的な呼び方として、制御装置の他に、ゲートウェイ（Gateway）、収集装置、コンセントレータ（Concentrator）などと言うこともある。本実施の形態における「中継器」は、ネットワークＺとネットワークＥの異なるネットワーク間を中継する機能（プロトコル変換しないで中継する機能（＝ブリッジ）と、プロトコル変換して中継する機能（＝ゲートウェイ）の両方を含む）、複数のタップから電力情報データを収集する機能、およびネットワークＺ上に存在するノードを管理する機能、を持つ。どの機能をフォーカスするかによって、当該制御装置の呼び方は変わる。
【００３５】
エアーコンディショナ１００５の電源プラグ１０５１は、タップ１００４ａのソケットに差し込まれている。同様に、冷蔵庫１００６の電源プラグ１０６１は、タップ１００４ｂのソケットに差し込まれている。また、テレビ１００７の電源プラグ１０７１は、タップ１００４ｃのソケットに差し込まれている。
【００３６】
タップ１００４ａ、１００４ｂ、１００４ｃは、それぞれ、宅内に設置されたコンセント１０１５，１０１６，１０１７に取り付けられている。これにより、タップ１００４ａ，１００４ｂ、１００４ｃは、給電される。
【００３７】
タップ１００４ａ、１００４ｂ、１００４ｃは、各々に接続される各家電の消費電力を測定する消費電力測定器である。たとえば、タップ１００４ａは、エアーコンディショナ１００５の消費電力を測定する。タップ１００４ａ、１００４ｂ、１００４ｃの各々は、測定した消費電力を中継器１００１に送信することができる。なお、以下では、説明の便宜上、タップ１００４ａ，１００４ｂ，１００４ｃを区別することなく表わす場合には、「タップ１００４」と表記する。
【００３８】
中継器１００１および複数のタップ１００４の各々は、低速無線通信モジュールを備える。中継器１００１と複数のタップ１００４とにより、低速無線通信ネットワークＺ（以下、単に「ネットワークＺ」とも称する）を構成している。また、中継器１００１は、Ｅｔｈｅｒｎｅｔによりワイヤレスブロードバンドルータ１００２に接続されている。中継器１００１は、ネットワークＺとネットワークＥとのブリッジ（媒体変換装置）あるいはゲートウェイ（プロトコル変換装置）として機能する。中継器１００１は、複数のタップ１００４との間で低速度の無線通信を行なう。
【００３９】
ワイヤレスブロードバンドルータ１００２は、インターネットに接続されていてもよい。パーソナルコンピュータ１００３は、ＥｔｈｅｒｎｅｔまたはＷｉＦｉにより、ワイヤレスブロードバンドルータ１００２に接続される。
【００４０】
パーソナルコンピュータ１００３は、ブラウザ（ＨＴＴＰクライアント）が動作する一般的なパソコンである。パーソナルコンピュータ１００３は、パーソナルコンピュータ１００３のブラウザ（ＨＴＴＰクライアント）を経由して中継器１００１のＨＴＴＰサーバと通信する。中継器１００１のＨＴＴＰサーバは、設定用ＣＧＩプログラムを呼び出すことによって、中継器自身の設定情報を取得し、また、設定できるようになっている。このようにして、パーソナルコンピュータ１００３は、中継器１００１のさまざま設定を行なうことができる。このＨＴＴＰサーバとブラウザ（ＨＴＴＰクライアント）の働きによって、貧弱な入力装置しか持たない中継器１００１でも、複雑な設定を行なうことができる。
【００４１】
タブレット端末１００８は、ワイヤレスブロードバンドルータ１００２を介して、中継器１００１と通信を行なう。タブレット端末１００８は、ＷｉＦｉにより、ワイヤレスブロードバンドルータ１００２に接続される。
【００４２】
タブレット端末１００８は、消費電力に関する各種の表示を行なうことができる。タブレット端末１００８は、たとえば、各家電の消費電力を表示できる。また、タブレット端末１００８も、パーソナルコンピュータ１００３と同様に、ブラウザ（ＨＴＴＰクライアント）を動作させることができる。よって、タブレット端末１００８は、ブラウザ（ＨＴＴＰクライアント）を経由して、中継器１００１のＨＴＴＰサーバと通信し、中継器１００１を設定できるようになっている。
【００４３】
以下では、ネットワークＺとして、家電向けの短距離無線通信規格の一つであるＺｉｇＢｅｅを用いた例について説明する。
【００４４】
＜Ｂ．中継器１００１の構成＞
図２は、中継器１００１の外観を表した図である。図２（Ａ）は、中継器１００１の斜視図である。図２（Ｂ）は、中継器１００１の側面図である。図２（Ｃ）は、中継器１００１の他の側面の要部拡大図である。
【００４５】
図２（Ａ）を参照して、中継器１００１は、発光部１１０３と、アンテナ１１０７とを備える。発光部１１０３は、中継器１００１の動作状態等を表示するための３つのＬＥＤ（Light  Emitting  Diode）１１０３ａ，１１０３ｂ，１１０３ｃにより構成される。
【００４６】
ＬＥＤ１１０３ａは、中継器１００１の電源がオン・オフの状態を示すための発光素子（電源ＬＥＤ）である。ＬＥＤ１１０３ｂは、タップ１００４との通信状態を表示するための発光素子（タップＬＥＤ）である。ＬＥＤ１１０３ｃは、ワイヤレスブロードバンドルータ１００２との通信状態を表示するための発光素子（ルータＬＥＤ）である。
【００４７】
アンテナ１１０７は、各タップ１００４ａ，１００４ｂ，１００４ｃと通信するために用いられる。
【００４８】
図２（Ｂ）を参照して、中継器１００１は、発光部１１０３が設けられた表面とは反対側の表面に、プッシュボタン１１０８をさらに備える。プッシュボタン１１０８は、中継器１００１をジョイン許可状態（ジョインモード）、または、リーブモードに遷移させるためのボタンである。
【００４９】
図２（Ｃ）を参照して、中継器１００１は、発光部１１０３が設けられた表面およびプッシュボタン１１０８が設けられた表面とは異なる表面に、スライドスイッチ１１０９をさらに備える。スライドスイッチ１１０９は、ユーザの操作によりスライドする。スライドスイッチ１１０９は、ＪＯＩＮ位置、ＮＯＰ（No  Operation）位置、およびＬＥＡＶＥ位置のうちのいずれか１つの位置をとることができる。なお、スライドスイッチ１１０９は、プッシュボタン１１０８が押されたときに、中継器をジョイン許可状態、あるいはリーブモードのいずれかを選択するために用いられる。スライドスイッチ１１０９は、通常の使用時にはＮＯＰ位置に設定される。
【００５０】
図３は、中継器１００１のブロック図である。図３を参照して、中継器１００１は、制御部１１０１と、発光部１１０３と、高速通信インターフェイス部１１０４と、電源部１１０５と、無線ＲＦ（Radio  Frequency）内蔵通信コントローラ部１１０６と、アンテナ１１０７と、プッシュボタン１１０８と、スライドスイッチ１１０９と、図示しないリセットスイッチとを備える。
【００５１】
無線ＲＦ内蔵通信コントローラ部１１０６は、ＣＰＵ（Central  Processing  Unit）１１６１と、ＲＯＭ（Read  Only  Memory）１１６２と、ＲＡＭ（Random  Access  Memory）１１６３と、ＧＰＩＯ（General  Purpose  Input/Output）１１６４と、無線ＲＦ部１１６５と、制御部１１０１との間で通信するためのＵＡＲＴ（Universal  Asynchronous  Receiver  Transmitter）１１６６とを含む。
【００５２】
なお、本実施例では、無線ＲＦ内蔵通信コントローラ部１１０６は、ＺｉｇＢｅｅコーディネータとして動作するものとして説明する。他の実施の形態として、無線ＲＦ内蔵通信コントローラ部１１０６は、ＺｉｇＢｅｅルータとして動作させてもよい。その場合、ネットワークＺ上に存在する他の通信機器から常に受信可能であるように設定しておく。
【００５３】
また、ＲＯＭ１１６２と、ＲＡＭ１１６３と、ＵＡＲＴ１１６６と、ＧＰＩＯ１１６４と、無線ＲＦ部１１６５とは、それぞれ、ＣＰＵ１１６１に接続されている。
【００５４】
無線ＲＦ内蔵通信コントローラ部１１０６は、アンテナ１１０７と接続されている。無線ＲＦ内蔵通信コントローラ部１１０６は、ネットワークＺ上に存在する通信機器との間の通信を制御する。なお、ＲＯＭ１１６２は、ＮＶＲＡＭで構成されるのが一般的である。
【００５５】
制御部１１０１は、ＣＰＵ１１６１に比べて高性能なＣＰＵを備えており、またメモリも豊富である。当該構成によって、中継器１００１は、高度な情報処理を実現できる。
【００５６】
高速通信インターフェイス部１１０４は、ワイヤレスブロードバンドルータ１００２との間でＥｔｈｅｒｎｅｔまたはＷｉＦｉを用いた通信を行なうためのインターフェイスである。電源部１１０５は、制御部１１０１と無線ＲＦ内蔵通信コントローラ部１１０６とに電力を供給する。
【００５７】
制御部１１０１は、発光部１１０３と、高速通信インターフェイス部１１０４と、電源部１１０５と、無線ＲＦ内蔵通信コントローラ部１１０６と、プッシュボタン１１０８と、スライドスイッチ１１０９とに接続されている。制御部１１０１は、中継器１００１の全体的な動作を制御する。制御部１１０１は、プッシュボタン１１０８およびスライドスイッチ１１０９からの入力を受け付ける。また、制御部１１０１は、発光部１１０３に出力指示を出す。
【００５８】
次に、ユーザがペアリングを行なうときの操作の概要について説明する。まず、ユーザが、スライドスイッチ１１０９をＮＯＰ位置からＪＯＩＮ位置にスライドさせる。その後、ユーザは、プッシュボタン１１０８を押す。これにより、予め定められた時間（たとえ
ば６０秒間）、中継器１００１がジョイン許可状態となる。なお、この間、制御部１１０１は、発光部１１０３を予め定められた状態で発光させる。そして、中継器１００１がジョイン許可状態で、ユーザがタップ１００４をコンセントに差すこと等により、中継器１００１とタップ１００４とのペアリングが行なわれる。
【００５９】
＜Ｃ．タップ１００４の構成＞
図４は、タップ１００４の斜視図である。図４を参照して、タップ１００４は、プラグ差込用のソケット２１０１と、プラグ２１０２と、ＬＥＤ２１０５と、設定ボタン２１０６とを備える。タップの使用時には、ユーザは、家電の電源プラグをソケット２１０１に差し込むとともに、宅内に設置されたコンセントにプラグ２１０２を差し込む（図１参照）。なお、ソケット２１０１の形状は、接続される家電の電源プラグの形状に応じて決まる。
【００６０】
図５は、タップ１００４のハードウェア構成を表した図である。図５を参照して、タップ１００４は、ソケット２１０１と、プラグ２１０２と、シャント抵抗２１０３と、電源部２１０４と、ＬＥＤ２１０５と、設定ボタン２１０６と、アンテナ２１０７と、電力センサ部２１１０と、無線ＲＦ内蔵通信コントローラ部２１２０と、配線２１３１と、配線２１３２と、配線２１３３とを備える。
【００６１】
電力センサ部２１１０は、電圧入力ＡＤＣ部２１１１と、電流入力ＡＤＣ部２１１２と、乗算器２１１３と、デジタル／周波数変換部２１１４とを含む。無線ＲＦ内蔵通信コントローラ部２１２０は、ＣＰＵ２１２１と、ＲＯＭ２１２２と、ＲＡＭ２１２３と、ＧＰＩＯ２１２４と、無線ＲＦ部２１２５とを含む。
【００６２】
配線２１３２と配線２１３３とは、シャント抵抗２１０３により接続されている。シャント抵抗２１０３は電流を測定するために使われる微小な（数百マイクロΩ）抵抗である。
【００６３】
ソケット２１０１とプラグ２１０２とは、配線２１３１〜２１３３およびシャント抵抗２１０３で接続されている。配線２１３１は、プラグ２１０２の一方の端子およびソケット２１０１の一方の端子に接続されている。配線２１３２は、プラグ２１０２の他方の端子とシャント抵抗２１０３の一方の端部とに接続されている。配線２１３３は、ソケット２１０１の他方の端子とシャント抵抗２１０３の他方の端部とに接続されている。
【００６４】
電源部２１０４は、配線２１３２に接続されている。電源部２１０４は、交流を直流に変換する。電源部２１０４は、変換により得られた直流電力を電力センサ部２１１０と無線ＲＦ内蔵通信コントローラ部２１２０とに与える。
【００６５】
電圧入力ＡＤＣ部２１１１は、配線２１３１と、配線２１３２とに接続されている。電圧入力ＡＤＣ部２１１１は、配線２１３１と配線２１３２との間の電圧（電位差）を、デジタル信号にて乗算器２１１３に出力する。
【００６６】
電流入力ＡＤＣ部２１１２は、配線２１３２と、配線２１３３とに接続されている。電流入力ＡＤＣ部２１１２は、シャント抵抗２１０３に流れる電流の電流値を、デジタル信号にて乗算器２１１３に出力する。
【００６７】
乗算器２１１３は、電圧入力ＡＤＣ部２１１１からの出力と、電流入力ＡＤＣ部２１１２からの出力とを乗算し、当該乗算により得られたデジタル信号をデジタル／周波数変換部２１１４に出力する。
【００６８】
デジタル／周波数変換部２１１４は、入力されたデジタル信号を周波数信号に変換する。デジタル／周波数変換部２１１４は、変換により得られた周波数信号を、無線ＲＦ内蔵通信コントローラ部２１２０のＧＰＩＯに出力する。
【００６９】
ＣＰＵ２１２１は、ＧＰＩＯから取得した上記周波数信号をデータ変換する。無線ＲＦ部２１２５は、データ変換により得られた信号を、アンテナ２１０７を用いて中継器１００１に送信する。
【００７０】
ＲＯＭ２１２２には、ＣＰＵ２１２１が実行するプログラム等が格納されている。なお、ＲＯＭ２１２２は、ＮＶＲＡＭで構成されるのが一般的である。
【００７１】
ＬＥＤ２１０５は、タップ１００４のデータ処理状態を、点滅および／または点灯させる色等により表す。設定ボタン２１０６は、ユーザによるタップ１００４の初期設定等のために用いられる。
【００７２】
なお、本実施例では、無線ＲＦ内蔵通信コントローラ部２１２０は、ルータとして動作するものとして説明する。
【００７３】
＜Ｄ．タブレット端末１００８の構成＞
図６は、タブレット端末１００８のハードウェア構成を表した図である。図６を参照して、タブレット端末１００８は、ＣＰＵ４０１０と、タッチスクリーン４０２０と、時計４０３０と、メモリ４０４０と、ボタン４０５０と、通信インターフェイス４０６０と、スピーカ４０７０とを含む。タッチスクリーン４０２０は、ディスプレイ４０２１と、タッチパネル（タブレット）４０２２とで構成され、ディスプレイ４０２１の表面にタッチパネル４０２２が敷設されている。ただし、タブレット端末１００８は、タッチパネル４０２２を有していなくともよい。
【００７４】
メモリ４０４０は、各種のＲＡＭ、ＲＯＭ、フラッシュメモリ、ハードディスクなどによって実現される。メモリ４０４０は、ＣＰＵ４０１０によって実行される、ＯＳ、各種の制御プログラム、並びにＣＰＵ４０１０によって読み出されるテーブル等の各種データテーブルを格納する。たとえば、メモリ４０４０における不揮発性のメモリであるフラッシュメモリに、タップ１００４に対して設定（再設定）を行なうためのアプリケーションが格納されている。なお、当該アプリケーションは、ユーザからのリクエストに応じてタップ１００４の設定を行なう。
【００７５】
ＣＰＵ４０１０は、メモリ４０４０に記憶されている各種のプログラムを実行することによって、各種の情報処理などを実行する。ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００７６】
ディスプレイ４０２１は、ＣＰＵ４０１０によって制御されることによって、たとえば、各家電１００５〜１００７の消費電力を表示する。タッチパネル４０２２は、ユーザの指によるタッチ操作を検出して、タッチ座標などをＣＰＵ４０１０に入力する。ＣＰＵ４０１０は、タッチパネル４０２２を介して、ユーザからの命令を受け付ける。
【００７７】
ボタン４０５０は、タブレット端末１００８の表面に配置される。決定キー、方向キー、テンキーなどの複数のボタンがタブレット端末１００８に配置されても良い。ボタン４０５０は、ユーザからの命令を受け付ける。ボタン４０５０は、ユーザからの命令をＣＰＵ４０１０に入力する。
【００７８】
通信インターフェイス４０６０は、ＣＰＵ４０１０によって制御されることによって、ワイヤレスブロードバンドルータ１００２を介して、中継器１００１と通信する。通信インターフェイス４０６０は、上述したように、たとえばＷｉＦｉにより、ワイヤレスブロードバンドルータ１００２と通信する。
【００７９】
スピーカ４０７０は、ＣＰＵ４０１０からの命令に基づいて、音声を出力する。たとえば、ＣＰＵ４０１０は、音声データに基づいて、スピーカ４０７０に音声を出力させる。時計４０３０は、ＣＰＵ４０１０からの命令に基づいて、現在の日付や時刻をＣＰＵ４０１０に入力する。
【００８０】
ＣＰＵ４０１０は、メモリ４０４０に記憶されている各種のプログラムを実行することによって、各種の情報処理などを実行する。換言すれば、タブレット端末１００８における処理は、各ハードウェアおよびＣＰＵ４０１０により実行されるソフトウェアによって実現される。このようなソフトウェアは、メモリ４０４０に予め記憶されている場合がある。また、ソフトウェアは、記憶媒体に格納されて、プログラム製品として流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。
【００８１】
このようなソフトウェアは、図示しない読取装置を利用することによってその記憶媒体から読み取られて、あるいは、通信インターフェイス４０６０を利用することによってダウンロードされて、メモリ４０４０に一旦格納される。ＣＰＵ４０１０は、ソフトウェアを実行可能なプログラムの形式でメモリ４０４０に格納してから、当該プログラムを実行する。
【００８２】
なお、記憶媒体としては、ＣＤ−ＲＯＭ（Compact  Disc  -  Read  Only  Memory）、ＤＶＤ−ＲＯＭ（Digital  Versatile  Disk  -  Read  Only  Memory）、ＵＳＢ（Universal  Serial  Bus）メモリ、メモリカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリカードを除く）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体（一時的ではない媒体）が挙げられる。
【００８３】
ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００８４】
＜Ｅ．実装例＞
図７は、タップ１００４および中継器１００１におけるソフトウェア構造を説明するための図である。
【００８５】
図７を参照して、タップ１００４（リモートノード）のソフトウェア構造は、ＺｉｇＢｅｅアプリケーション３４０１と、ＺｉｇＢｅｅプロトコルスタック３４０２とを含む。ＺｉｇＢｅｅアプリケーション３４０１は、電力測定用のマイコン（図示せず）から消費電力に関する情報を取得して、当該情報を予め定められたフォーマットに変換する。ＺｉｇＢｅｅアプリケーション３４０１は、他のＺｉｇＢｅｅノードからの属性リード要求に応じて、あるいは、設定されたレポート条件に従って自発的に消費電力に関する情報を送信する。ＺｉｇＢｅｅプロトコルスタック３４０２は、ＺｉｇＢｅｅ規格に従った通信プロトコルを担う。特に、タップ１００４は、ＺｉｇＢｅｅネットワークにおける論理デバイスのルータまたはエンドデバイスとして動作するものとする。また、ペアリングの結果、当該タップ１００４が参加するネットワークに関する情報をＮＶＲＡＭに保存する（図示しない）。
【００８６】
中継器１００１は、無線ＲＦ内蔵通信コントローラ部１１０６と制御部（本体基板）１１０１とに物理的に分かれて存在しており、それぞれでソフトウェア構成を持つ。
【００８７】
無線ＲＦ内蔵通信コントローラ部１１０６（ローカルノード）は、ＺｉｇＢｅｅアプリケーション３１１１と、ＺｉｇＢｅｅプロトコルスタック３１１２と、ＵＡＲＴ１１６６と、アソシエートデバイスリスト３１１０と、ネットワーク情報ベース他３１１３とを含む。
【００８８】
ＺｉｇＢｅｅアプリケーション３１１１は、上述した消費電力に関する情報をタップ１００４から受信する。また、無線ＲＦ内蔵通信コントローラ部１１０６は、ＵＡＲＴ１１６６を経由して、制御部１１０１との送受信を行う。制御部１１０１からの要求に応じたコマンドを実行する。
【００８９】
ＵＡＲＴ１１６６は、上述したように、制御部１１０１との間で通信するための非同期送受信インターフェイスである。
【００９０】
ＺｉｇＢｅｅプロトコルスタック３１１２は、ＺｉｇＢｅｅ規格に従った通信プロトコルを担う。特に、中継器１００１は、ＺｉｇＢｅｅネットワークにおける論理デバイスのコーディネータとして動作するものとする。ＺｉｇＢｅｅプロトコルスタック３１１２は、ＺｉｇＢｅｅネットワークを形成し、その結果ネットワーク情報をネットワーク情報ベース他３１１３に保存する。また、当該ローカルノードにアソシエートされているデバイスの情報をアソシエートデバイスリスト３１１０に保存する。ネットワーク情報ベース他３１１３とアソシエートデバイスリスト３１１０は、ＲＡＭで保持されるとともに、ＮＶＲＡＭにも保存されているので、電源を切って入れ直しても情報が失われることはない。電源起動直後に、ネットワーク情報ベース他３１１３とアソシエートデバイスリスト３１１０は、保存されたＮＶＲＡＭから読み込まれてＲＡＭに展開される。ペアリングの結果、ネットワークに参加されたデバイスに関する情報はまずアソシエートデバイスリスト３１１０に保存される。
【００９１】
中継器１００１の制御部１１０１（図３参照）は、ＺｉｇＢｅｅマネージャ３１２１と、ＺｉｇＢｅｅモニタライブラリ３１２２と、ＵＡＲＴ３１２３と、ＬＥＤ＆スイッチ制御３１２４と、ＵＤＰ／ＩＰ（User  Datagram  Protocol  /  Internet  Protocol）ポート（ポート番号は固定する）と、Ｅｔｈｅｒｎｅｔ３１２５と、ＺｉｇＢｅｅノード管理情報３１２６とを含む。ＺｉｇＢｅｅマネージャ３１２１は、制御部１１０１に格納されているアプリケーションの１つである。なお、制御部１１０１に格納される他のアプリケーションとして、外部のＨＴＴＰクライアントから中継器を設定するためのＨＴＴＰサーバ、当該ＨＴＴＰサーバから呼び出しされる設定用ＣＧＩアプリなどがある。これらは、図１０において説明する。
【００９２】
ＺｉｇＢｅｅマネージャ３１２１は、ネットワークＺ上に存在しうるＺｉｇＢｅｅのノードを管理する。具体的には、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードである無線ＲＦ内蔵通信コントローラ部１１０６と、ローカルノードと通信可能なリモートノード（タップ１００４などのＺｉｇＢｅｅノード）を管理する。
【００９３】
リモートノードが、ネットワークにジョインして、ローカルノードにアソシエートされている状態であれば、当該リモートノードの生存情報を「生存」として管理する。リモートノードが、ネットワークからリーブして、ローカルノードにアソシエートされていない状態であれば、当該リモートノードの生存情報を「行方不明」として管理する。ＺｉｇＢｅｅマネージャ３１２１は、定期的にアソシエートデバイスリスト３１１０を読み出すことによって、ＺｉｇＢｅｅノード管理情報３１２６を更新する。さらに、ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅのノードに変化があった場合には当該変化を検知し、当該変化を他のアプリケーションに通知する。
【００９４】
それ以外にも、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノード及びリモートノードからＺｉｇＢｅｅノードとしての一般的な情報（ＩＥＥＥ（Institute  of  Electrical  and  Electronics  Engineers）アドレス、ショートアドレス、ＭＡＣ能力、論理タイプなど）を取得して、また、ローカルノードからローカルノードにアソシエートされているデバイスの一覧や現在のネットワーク情報（PanIDや論理チャンネルなど）を取得して、ノード情報として管理する。ＺｉｇＢｅｅマネージャ３１２１は、これらのＺｉｇＢｅｅノードの管理情報をＺｉｇＢｅｅノード管理情報３１２６に保存する。
【００９５】
図８に、ネットワーク情報ベース他３１１３に保存されている内容を抜粋したものを示す。
【００９６】
ＩＥＥＥアドレス（extAddress）、ショートアドレス（nwkDevAddress）、論理タイプ（logicalType）は、当該ローカルノード自身のデバイス情報である。
【００９７】
ＩＥＥＥアドレス（拡張アドレスとも称される）とは、ＥｔｈｅｒｎｅｔにおけるＭＡＣアドレスと同様に物理媒体の１つ１つに付与されるアドレスであって、全世界で唯一性が保証される８バイトのアドレスである。通常、意図的に変更されない限り不変である。ここでは、当該ローカルノードのＩＥＥＥアドレスが格納される。
【００９８】
ショートアドレス（ネットワークアドレスとも称される）とは、一つのＺｉｇＢｅｅネットワークにおいて、唯一性が保証される２バイトのアドレスである。ショートアドレスは、ノードがＺｉｇＢｅｅネットワークにジョインしたときに、親（コーディネータまたはルータ）によって動的に割り当てられる。通常、ショートアドレスがいったん割り当てられれば変更されることはないが、別の新規ノードがジョインしたときなどにアドレス衝突することがあって、その場合、アドレス衝突を防ぐためにショートアドレスが変更されることがある。また、ノードが別のＺｉｇＢｅｅネットワークにジョインすれば、別のショートアドレスが割り当てられる。このように、ショートアドレスは変更されうる。なお、コーディネータのショートアドレスは、ＺｉｇＢｅｅの規定によって０ｘ００００と決まっている。ここでは、当該ローカルノードのショートアドレスを格納する。
【００９９】
論理タイプは、当該ローカルノードが現在どのＺｉｇＢｅｅ論理デバイスとして機能しているかを示した１バイトの値である。コーディネータならば０ｘ００、ルータならば０ｘ０１、エンドデバイスならば０ｘ０２となる。
【０１００】
PanID（nwkPanId）、論理チャンネル（nwkLogicalChannel）、コーディネータ・IEEEアドレス（nwkCoordExtAddress）、コーディネータ・ショートアドレス（nwkCoordAddress）、拡張PanID（extendedPANID）は、当該ローカルノードが参加する（形成する）ＺｉｇＢｅｅネットワークにおけるネットワーク情報である。
【０１０１】
ＰａｎＩＤ（Personal  Area  Network  Identifier）は、当該ローカルノードが現在参加しているネットワークの識別子を表す２バイトの値である。
【０１０２】
論理チャンネルは、当該ローカルノードが参加しているネットワークの現在のチャネルを表わす１バイトの値である。
【０１０３】
コーディネータ・ＩＥＥＥアドレスは、当該ローカルノードが現在参加しているネットワークのコーディネータのＩＥＥＥアドレスである。ローカルノードがコーディネータである場合は、コーディネータ・ＩＥＥＥアドレスは、オール０となる。
【０１０４】
コーディネータ・ショートアドレスは、当該ローカルノードが現在参加しているネットワークのコーディネータのショートアドレスである。通常、コーディネータ・ショートアドレスは、０ｘ００００となる。
【０１０５】
拡張PanIDは、当該ローカルノードが現在参加しているネットワークの拡張識別子を表す８バイトの値である。運用によっては、コーディネータのＩＥＥＥアドレスと同じとなる。
【０１０６】
図９に、アソシエートデバイスリスト３１１０に含まれるデータの一例を示す。アソシエートデバイスリスト３１１０には、当該ローカルノードにアソシエートされている（関連付けられている）デバイスのアドレスインデックス、ショートアドレス、IEEEアドレス、ノード関係などが保存されている。
【０１０７】
アドレスインデックスとは、当該ローカルノードが内部で管理するための識別番号である。
【０１０８】
ノード関係とは、当該ローカルノードから見たノードの関係を示す。たとえば、0x04は、子ノードであって、ＦＦＤ（Full  Function  Device)であり、かつ、RX_ON_IDLE（アイドル時に受信可能)であることを示す。
【０１０９】
図９には、４つのノードがアソシエートされている（関連付けられている）ことが示される。
【０１１０】
図１０は、中継器１００１における別のアプリケーションのソフトウェア構造を説明する図である。
【０１１１】
図１０を参照して、中継器１００１の制御部１１０１は、ＨＴＴＰサーバ８０６と、ＴＣＰ／ＩＰ８０７と、Ｅｔｈｅｒｎｅｔ８０８と、設定用ＣＧＩプログラム８０３と、ＵＤＰ／ＩＰ（User Datagram Protocol / Internet Protocol）ポート８０４（ポート番号は任意とする）と、Ｅｔｈｅｒｎｅｔ８０５と、設定情報８０２とを含む。
【０１１２】
ＨＴＴＰサーバ８０６は、外部のブラウザ（ＨＴＴＰクライアント）から中継器１００１を設定するための指示を受け付けて、設定用ＣＧＩプログラム８０３を呼び出す。
【０１１３】
設定用ＣＧＩプログラム８０３は、中継器上の各種プログラムに影響を及ぼす設定を変更して、設定情報８０２に保存する。また、設定用ＣＧＩプログラム８０３は、設定情報８０２に保存されている情報を読み出して、ＨＴＴＰサーバ８０６に応答を返す。
【０１１４】
当該ソフトウェア構造により後述する設定画面がパーソナルコンピュータ１００３のディスプレイに表示されることになる。
【０１１５】
なお、制御部１１０１に格納される他のアプリケーションとして、タップ１００４の情報を収集するためのタップ情報収集アプリケーションもある。
【０１１６】
（ノード情報の管理）
再び図７を参照して、ＺｉｇＢｅｅマネージャ３１２１の動作を説明する。
【０１１７】
ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノード管理情報３１２６を、制御部１１０１の不揮発性メモリ（ファイルシステム）にバイナリファイルとして保存する。
【０１１８】
ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードまたはリモートノードに変更があれば、ＺｉｇＢｅｅノード管理情報３１２６を更新して、当該バイナリファイルに書き込む。本実施の形態において、ローカルノードとは、中継器１００１に内部接続されるＺｉｇＢｅｅモジュールをいう。リモートノードとは、タップなどに内蔵されるＺｉｇＢｅｅモジュールをいう。
【０１１９】
また、中継器１００１がシャットダウンされる時も、ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノード管理情報３１２６をバイナリファイルに書き込む。
【０１２０】
ＺｉｇＢｅｅマネージャ３１２１は、中継器１００１の起動時に、バイナリファイルをファイルシステムからＲＡＭに読み出し、ＺｉｇＢｅｅノード管理情報３１２６を復元する。
【０１２１】
中継器１００１の起動時に、バイナリファイルが存在しなければ、ＺｉｇＢｅｅマネージャ３１２１は、バイナリファイルの読み出しを行なわない。工場出荷時には、バイナリファイルは存在しない。バイナリファイルがなければ、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードと複数のリモートノードから読出して、ＺｉｇＢｅｅノード管理情報３１２６を構築する。また、バイナリファイルが存在していても、情報が不足していれば、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードと複数のリモートノードから読出して、ＺｉｇＢｅｅノード管理情報３１２６を更新する。
【０１２２】
ＺｉｇＢｅｅマネージャ３１２１は、定期的に、ローカルノードに保持されているアソシエートデバイスリスト３１１０を読み出す。本実施の形態において、アソシエートデバイスリストとは、ローカルノードにアソシエートされている（関連付けられている）ノードの情報のことである。
【０１２３】
ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードのアソシエートデバイスリストとＺｉｇＢｅｅノード管理情報３１２６とを比較して、比較の結果これらのデータが一致しないならば、ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノード管理情報３１２６を最新の情報に更新する。常にローカルノードのアソシエートデバイスリストが最新の情報であるとみなす。
【０１２４】
［機能構成］
図１１を参照して、本実施の形態に係る中継器１００１によって実現される機能について説明する。図１１は、中継器１００１の機能の構成を表すブロック図である。
【０１２５】
一態様に従うと、ネットワークの構成を復元するネットワーク復元機能を有する中継器１００１は、ネットワークの通信プロトコルを制御する通信制御部１２０と、通信制御部１２０の情報とネットワークに参加する１以上の端末１３０の情報とをノード管理情報として管理する本体制御部１１０とを備える。本体制御部１１０は、制御部１１０１によって実現される。通信制御部１２０は、無線ＲＦ内蔵通信コントローラ部１１０６によって実現される。
【０１２６】
本体制御部１１０は、ノード管理情報をパーソナルコンピュータ１００３その他の記憶装置に保存するための保存部１１と、ネットワーク復元の要求に基づいて、パーソナルコンピュータ１００３その他の記憶装置から情報を読み出しノード管理情報を復元する読出部１２と、復元されたノード管理情報に基づいて、通信制御部１２０におけるネットワークの構成情報を書き換えるための書換部１３と、通信制御部１２０を再起動するための再起動制御部とを含む。
【０１２７】
好ましくは、本体制御部１１０は、ネットワークに参加する１以上のタップ１００４その他の端末１３０のネットワークにおけるアドレスを更新するための更新部１４をさらに含む。
【０１２８】
好ましくは、通信制御部１２０は、更新部１４の要求に基づいて、ネットワークに参加する端末１３０へ、端末のネットワークにおけるアドレス情報を問合せするためのパケットを送信する送信部１５を含む。
【０１２９】
好ましくは、通信制御部１２０は、ネットワークにおけるアドレスの送信要求に応答して端末から送られるアドレス情報を受信するための受信部１６をさらに含む。更新部１４は、受信したアドレス情報に基づきネットワークの構成情報を更新する。
【０１３０】
好ましくは、本体制御部１１０における更新部１４は、ネットワークの構成情報を読み出し、ノード管理情報を更新する。
【０１３１】
好ましくは、本体制御部１１０における書換部１３は、復元されたノード管理情報に基づき、通信制御部１２０が有する不揮発性の記憶領域を書き換えるように構成されている。
【０１３２】
ネットワークの構成を復元するための方法は、ネットワークの通信プロトコルを制御する通信制御部１２０の情報と、ネットワークに参加する１以上の端末の情報とを、ノード管理情報として管理し、ノード管理情報をパーソナルコンピュータ１００３その他の記憶装置に保存するステップと、ネットワーク復元の要求に基づいて、パーソナルコンピュータ１００３その他の記憶装置から情報を読み出しノード管理情報を復元するステップと、復元されたノード管理情報に基づいて、通信制御部１２０におけるネットワークの構成情報を書き換えるステップと、通信制御部１２０を再起動するステップとを含む。
【０１３３】
さらに他の態様に従うと、上記のいずれかに記載の方法を中継器１００１に実行させるプログラムが提供される。より詳しくは、当該プログラムは、中継器１００１に含まれるＣＰＵその他のプロセッサによって実行される。
【０１３４】
［表示される画面の例］
図１２を参照して、パーソナルコンピュータ１００３やタブレット端末１００８などのブラウザ（ＨＴＴＰクライアント）に表示される画面について説明する。以下、パーソナルコンピュータ１００３の構成を参照しながら説明するが、タブレット端末１００８も場合も同様に実現可能である。一般論として、ブラウザ（ＨＴＴＰクライアント）が動作して、ファイルを内部保存できるような端末であれば何でもよい。
【０１３５】
モニタ８は、パーソナルコンピュータ１００３のブラウザ（ＨＴＴＰクライアント）が、中継器１００１のＨＴＴＰサーバ８０６にアクセスしたときの画面（設定画面）を表示する。
【０１３６】
モニタ８は、ＺｉｇＢｅｅネットワークにおけるネットワーク全体を管理するための画面を表示する。この画面は、「ネットワーク全体情報保存」ボタン１３１０と、「ネットワーク全体情報復元」ボタン１３２０とを含む。なお、ネットワーク全体情報は、ネットワーク情報と、ローカルノードの情報と、リモートノードの情報とを含む。
【０１３７】
ユーザが、モニタ８に表示された「ネットワーク全体情報保存」ボタン１３１０をクリックすると、パーソナルコンピュータ１００３は、ネットワーク全体情報取得要求を、中継器１００１に送信する。中継器１００１は、その要求に応答して、ネットワーク全体情報（後述するＺｉｇＢｅｅノード管理情報３１２６と同一である）を、パーソナルコンピュータ１００３に送信する。パーソナルコンピュータ１００３は、その設定データを受信すると、ハードディスク、フラッシュメモリ等の不揮発性メモリに保存する。
【０１３８】
中継器１００１の故障によって他の中継器に置き換えられたとき、あるいは、何らかの要因によって中継器１００１が初期化されてデータが消去される場合がある。この場合、置き換えられた他の中継器または初期化された中継器１００１にネットワークの設定を復元する必要がある。そこで、ユーザは、ネットワーク全体情報の復元のために、「ネットワーク全体情報復元」ボタン１３２０をクリックすると、パーソナルコンピュータ１００３は、バックアップデータとして格納されていた設定データをハードディスク等の不揮発性メモリから読み出し、読み出した設定データを、当該他の中継器または初期化された中継器１００１に送信する。当該他の中継器または初期化された中継器１００１が、設定データを格納して再起動されると、置き換えられる前の中継器１００１を用いたネットワークの設定が復旧される。
【０１３９】
［データ構造］
図１３は、ＺｉｇＢｅｅマネージャ３１２１が管理するＺｉｇＢｅｅノード管理情報３１２６におけるデータの格納の一態様を概念的に表わす図である。図１３を参照して、ＺｉｇＢｅｅノード管理情報３１２６は、ローカルノードの情報１１１０と、ノードの個数１１２０と、個々のノード情報１１３０とを含む。
【０１４０】
ローカルノードの情報１１１０は、ローカルノードに固有の情報と、ローカルノードが参加するネットワークの情報のことである。たとえば、ローカルノードのＩＥＥＥアドレスと、ショートアドレスと、デバイスタイプと、デバイス状態と、アソシエートされているデバイスの個数と、アソシエートされているデバイスのショートアドレスと、ジョイン許可状態と、コーディネータ・ＩＥＥＥアドレスと、コーディネータ・ショートアドレスと、PanIDと、論理チャンネルなどを含む。
【０１４１】
・ローカルノードの情報
ＩＥＥＥアドレス（拡張アドレスとも称される）とは、ＥｔｈｅｒｎｅｔにおけるＭＡＣアドレスと同様に物理媒体の１つ１つに付与されるアドレスであって、全世界で唯一性が保証される８バイトのアドレスである。通常、意図的に変更されない限り不変である。ここでは、当該ローカルノードのＩＥＥＥアドレスを格納する。
【０１４２】
ショートアドレス（ネットワークアドレスとも称される）とは、一つのＺｉｇＢｅｅネットワークにおいて、唯一性が保証される２バイトのアドレスである。ショートアドレスは、ノードがＺｉｇＢｅｅネットワークにジョインしたときに、親（コーディネータまたはルータ）によって動的に割り当てられる。通常、ショートアドレスがいったん割り当てられれば変更されることはないが、別の新規ノードがジョインしたときなどにアドレス衝突することがあって、その場合、アドレス衝突を防ぐためにショートアドレスが変更されることがある。また、ノードが別のＺｉｇＢｅｅネットワークにジョインすれば、別のショートアドレスが割り当てられる。このように、ショートアドレスは変更されうる。なお、コーディネータのショートアドレスは、ＺｉｇＢｅｅの規定によって０ｘ００００と決まっている。ここでは、当該ローカルノードのショートアドレスを格納する。
【０１４３】
デバイスタイプは、当該ローカルノードが担うことができる、ＺｉｇＢｅｅ論理デバイスを示した１バイトの値である。ＺｉｇＢｅｅ論理デバイスには、コーディネータと、ルータと、エンドデバイスと、がある。それぞれを１ビット（０ｘ０１，０ｘ０２、０ｘ０４）であらわして、当該デバイスが担うことができる論理デバイスをそれらの論理和で表現する。例えば、ルータとエンドデバイスのどちらにも成れるデバイスなら、そのデバイスタイプは「０ｘ０６」となる。なお、現在どのＺｉｇＢｅｅ論理デバイスとして動作しているかは、別途後述する論理タイプで示される。
【０１４４】
デバイス状態は、当該ローカルノードの現在の状態を表わす１バイトの値である。デバイス状態は、ＺｉｇＢｅｅの論理デバイスとして動作するとき状態、たとえば、初期化中、ＰＡＮに参加中、コーディネータとして起動した、などの状態を表す。
【０１４５】
アソシエートされているデバイスの個数は、当該ローカルノードに関連付けられている（アソシエートされている）デバイスの個数を表す１バイトの値である。
【０１４６】
アソシエートされているデバイスのショートアドレスは、当該ローカルノードに関連付けられている（アソシエートされている）デバイスのそれぞれのショートアドレスのことである。
【０１４７】
ジョイン許可状態は、当該ローカルノードが新たなノードを受け付け可能な状態であるか否かを表わす１ビットの値である。
【０１４８】
PanIDは、当該ローカルノードが現在参加しているネットワークの識別子を表す２バイトの値である。
【０１４９】
論理チャンネルは、当該ローカルノードが参加しているネットワークの現在のチャネルを表わす１バイトの値である。
【０１５０】
・ノードの個数
ノードの個数１１２０は、ローカルノードとリモートノードとの合計の個数である。たとえば、本実施の形態において上記の定義によれば、中継器１００１に含まれる無線ＲＦ内蔵通信コントローラ部１１０６がローカルノードに相当する。一方、図１のタップ１００４ａ，１００４ｂ，１００４ｃがリモートノードに相当する。したがって、図１に示した例では、ノードの個数は（１＋３より）「４」となる。
【０１５１】
・個々のノード情報
個々のノード情報１１３０は、ローカルノードと各リモートノードの情報である。各ノ―ドから得られる情報と、ＺｉｇＢｅｅマネージャ３１２１が管理のために付与する情報とがある。ノード情報１１３０は、たとえば、識別子と、ＩＥＥＥアドレスと、ショートアドレスと、ＭＡＣ（Media  Access  Control）能力と、論理タイプと、生存情報と、電源情報などを含む。
【０１５２】
識別子とは、ノードを簡易的に識別できるようにするために、ＺｉｇＢｅｅマネージャ３１２１が付与する２バイトの値である。ＺｉｇＢｅｅマネージャ３１２１は新しいノードを見つけるごとに識別子をインクリメントして付与する。識別子はＩＥＥＥアドレスと１対１対応とする。つまり、同じＩＥＥＥアドレスのノードには同じ識別子が与えられる。逆に識別子からＩＥＥＥアドレスが一意に決定される。識別子＝０のノードは、ローカルノードであることを保証する。あるノードをネットワークから離脱させても、そのノードの識別子は残ったままである。識別子は再利用されない。
【０１５３】
ＭＡＣ能力とは、当該ノードが保有する性質を示した１バイトの値である。例えば、コーディネータに成れるかどうか、物理デバイス種別（ＦＦＤかＲＦＤか）、バッテリ電源か商用電源か、アイドル時に受信可能かどうか、などを示す。
【０１５４】
論理タイプとは、当該ノードが現在どのＺｉｇＢｅｅ論理デバイスとして機能しているかを示した１バイトの値である。コーディネータならば０ｘ００、ルータならば０ｘ０１、エンドデバイスならば０ｘ０２となる。
【０１５５】
生存情報とは、当該ノードがローカルノードに関連付けられている（アソシエートされている）かどうかを示す１ビットの値である。当該ノードがローカルノードに関連付けられているならば、生存情報＝Trueとなり、当該ノードが「生存」しているという意味を表わす。一方、当該ノードがローカルノードに関連付けられていないならば、生存情報＝Falseとなり、当該ノードが「行方不明」であることを意味する。当該ノードが電源オフになっても、当該ノードは「行方不明」にはならないことに注意する。生存情報は、あくまでも、当該ノードがローカルノードに関連付けらているかどうかを示す。
【０１５６】
また、ＺｉｇＢｅｅマネージャ３１２１は、ＬＥＤ＆スイッチ制御３１２４を監視している。より詳細には、ＺｉｇＢｅｅマネージャ３１２１は、プッシュボタン１１０８およびスライドスイッチ１１０９からの入力を監視し、ペアリング機能（ジョイン許可状態）およびリーブモードを制御する機能を持ち、その中継器の状態に応じて、ＬＥＤ１１０３（正確にはＬＥＤ１１０３ｃ）の発光を制御する。ＺｉｇＢｅｅマネージャ３１２１は、サーバの形態をとっており、固定のＵＤＰポート番号を開けて、他の機器からアクセスを受け付けて、ＺｉｇＢｅｅ上位プロトコルと中継器発見プロトコルを提供する。
【０１５７】
ＺｉｇＢｅｅ３１２２は、直接、ＵＡＲＴ３１２３とデータの遣り取りをすることにより、無線ＲＦ内蔵通信コントローラ部１１０６と通信をする。モニタライブラリ３１２２は、ＵＡＲＴ３１２３を通じてデータを無線ＲＦ内蔵通信コントローラ部１１０６と送受信する。なお、モニタライブラリ３１２２が発信するコマンドは、無線ＲＦ内蔵通信コントローラ部１１０６に対するものもあれば、タップ１００４に対するものもある。
【０１５８】
さらに、ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノードの状態に変化があった場合には当該ノード状態変化を検出して、当該ノード状態変化を他のアプリケーションに通知する機能を持つ。
【０１５９】
（ネットワーク全体情報の復元）
本実施の形態において、ネットワーク全体情報の復元は、以下の手順で行なわれる。
（１）まず、復元に先立ち、ネットワーク全体情報のバックアップを保存しておく。
（２）ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノード管理情報３１２６を復元する。このとき、ローカルノードとの通信は不要である。
（３）ＺｉｇＢｅｅマネージャ３１２１は、アソシエートデバイスリスト３１１０を復元する。このとき、ローカルノードとの通信が必要になる。
（４）ＺｉｇＢｅｅマネージャ３１２１は、ネットワーク情報ベース他３１１３を復元する。このとき、ローカルノードとの通信が必要になる。
（５）ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードをリセットする。このとき、ローカルノードとの通信が必要になる。
（６）ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノード管理情報３１２６を最新情報に更新する。このとき、ローカルノードとの通信に加えてリモートノードとの通信が必要になる。
以下、（１）から（６）までを詳細に説明する。
【０１６０】
（１）
まず、ネットワーク全体情報の復元に先立って、（中継器１００１と通信可能に接続されている）パーソナルコンピュータ１００３は、中継器１００１のネットワーク全体情報のバックアップを保存する。具体的には、ＺｉｇＢｅｅノード管理情報３１２６に保存されている内容のことである。
【０１６１】
図１１を再び参照して、ユーザはパーソナルコンピュータ１００３のＷｅｂブラウザを立ち上げて、中継器の設定画面を開く。Ｗｅｂブラウザに表示される設定画面から「ネットワーク全体情報保存」ボタン１３１０をクリックする。
【０１６２】
パーソナルコンピュータ１００３は、中継器１００１のＨＴＴＰサーバに「ネットワーク全体情報保存」要求を送る。
【０１６３】
中継器１００１のＨＴＴＰサーバは、パーソナルコンピュータ１００３からの要求を受付け、設定用ＣＧＩプログラムを呼び出す。
【０１６４】
設定用ＣＧＩプログラムは、ＺｉｇＢｅｅマネージャ３１２１にノードリスト出力指令を送る。
【０１６５】
ＺｉｇＢｅｅマネージャ３１２１は、ノードリスト出力指令を受け取り、ＺｉｇＢｅｅノード管理情報３１２６を中継器内部のファイルに保存する。
【０１６６】
設定用ＣＧＩプログラムは、当該ファイルを読出して、ＨＴＴＰサーバを介して、パーソナルコンピュータ１００３に返す。
【０１６７】
パーソナルコンピュータ１００３のＷｅｂブラウザは、当該受信した内容を指定されたファイル名で保存する。なお、ファイル名は、ユーザがあらかじめ「参照…」ボタンをクリックするなどして入力しておく。
【０１６８】
以上により、パーソナルコンピュータ１００３は、中継器１００１のＺｉｇＢｅｅノード管理情報３１２６に保存されている内容のバックアップを取る。
【０１６９】
以降の（２）〜（６）は、ネットワーク全体情報の復元を行なうときの処理である。
図１１を再び参照して、ユーザはパーソナルコンピュータ１００３のＷｅｂブラウザを立ち上げて、中継器の設定画面を開く。Ｗｅｂブラウザに表示される設定画面から「ネットワーク全体情報復元」ボタン１３２０をクリックする。なお、ユーザがあらかじめファイル名を、「参照…」ボタンをクリックするなどして入力しておく。
【０１７０】
パーソナルコンピュータ１００３は、中継器１００１のＨＴＴＰサーバに「ネットワーク全体情報復元」要求を送る。その際、復元させたい内容のネットワーク全体情報もあわせて送信する。
【０１７１】
中継器１００１のＨＴＴＰサーバは、パーソナルコンピュータ１００３からの要求を受付け、設定用ＣＧＩプログラムを呼び出す。
【０１７２】
設定用ＣＧＩプログラムは、ネットワーク全体情報を一時的なファイルに保存して、ＺｉｇＢｅｅマネージャ３１２１にネットワーク復元の指令を送る。その結果、以降の（２）〜（６）が実施される。
【０１７３】
（２）
ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅノード管理情報３１２６をクリアする。
【０１７４】
ＺｉｇＢｅｅマネージャ３１２１は、ネットワーク全体情報が一時的に保存されたファイルから読み出して、ＺｉｇＢｅｅノード管理情報３１２６に復元する。
【０１７５】
このようにして、本実施の形態に係る中継器１００１において、中継器１００１のＲＡＭに保持されるノード情報が復元される。その後しばらくしてから、ＣＰＵは、中継器１００１のファイルシステム（不揮発性メモリ）にＺｉｇＢｅｅノード情報をバイナリファイルとして書き込み、ＺｉｇＢｅｅノード情報を保存する。これは、中継器１００１の電源プラグがコンセントから抜かれて、その後、電源プラグがコンセントに挿入された時に中継器１００１を再起動したときに、中継器１００１が通常の状態に即座に復帰できるようにするためである。
【０１７６】
（３）
ＺｉｇＢｅｅマネージャ３１２１は、中継器１００１に内部接続されているＺｉｇＢｅｅモジュール（ローカルノード）と通信して、アソシエートデバイスリスト３１１０と、ネットワーク情報ベース他３１１３とを復元する。
【０１７７】
なお、復元するにあたり、ＺｉｇＢｅｅモジュールのＮＶＲＡＭおよびＲＡＭを書き換えるべきであるが、ＲＡＭは必ずしも書き換える必要はない。一方でＮＶＲＡＭは必ず書き換えなければならない。ＺｉｇＢｅｅモジュールの電源がオフになった場合にも、情報を保持し続ける必要があるためである。また、ＺｉｇＢｅｅモジュールをリセットすると、再起動時にＮＶＲＡＭに保存される各種パラメータが読み出され、ＲＡＭに展開される。よって、ＺｉｇＢｅｅモジュールをリセットすることを前提にすれば、ＲＡＭの復元は不要である。リセットすることなくＲＡＭを復元させることも可能であるが、本発明の実施例ではＲＡＭの復元はしないこととする。
【０１７８】
まず、ＺｉｇＢｅｅマネージャ３１２１は、復元されたＺｉｇＢｅｅノード管理情報３１２６からリモートノードに関する情報（IEEEアドレス、ショートアドレス、論理タイプ、ＭＡＣ能力）を読出し、アソシエートデバイスリスト３１１０を復元する。アソシエートデバイスリスト３１１０をいったんすべて削除して、リモートノードに関する情報を１つずつ追加する。なお、ノード関係については、リモートノードの論理タイプとMAC能力をもとに復元することができる。
【０１７９】
ここでは、無線ＲＦ内蔵通信コントローラ部１１０６におけるＮＶＲＡＭを書き換える。
これにより、図９のようなアソシエートデバイスリスト３１１０が復元される。
【０１８０】
（４）
次に、ＺｉｇＢｅｅマネージャ３１２１は、復元されたＺｉｇＢｅｅノード管理情報３１２６からローカルノードに関する情報（IEEEアドレス、ショートアドレス、PanID、論理チャンネル、コーディネータ・IEEEアドレス、コーディネータ・ショートアドレス）を、また、個々のノード情報から（論理タイプ）を読出し、ネットワーク情報ベース他３１１３を復元する。
【０１８１】
なお、拡張PanIDについては、以下のようにする。
ローカルノードの論理タイプがコーディネータならば、
拡張PanID＝（ローカルノードの）IEEEアドレス
とする。
【０１８２】
ローカルノードの論理タイプがルータ／エンドデバイスならば、
拡張PanID＝コーディネータ・IEEEアドレス
とする。（本実施例では、ローカルノードはコーディネータとして動作させるので、前者が選ばれるはずである。）
ここでは、無線ＲＦ内蔵通信コントローラ部１１０６におけるＮＶＲＡＭを書き換える。これにより、図８のようなネットワーク情報ベース他３１１３が復元される。
【０１８３】
（５）
ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードをリセットする。これにより、ローカルノードが再起動されて、ＮＶＲＡＭに保存される各種パラメータが読み出され、ＲＡＭに展開される。
【０１８４】
（６）
以上までの処理で、ネットワーク全体情報が復元された。ローカルノードは、ローカルノードにアソシエートされているリモートノードと通信できる（はずである）。
【０１８５】
しかしながら、（１）で保存されていたネットワーク全体情報が古い場合、リモートノードのショートアドレスが変わっている可能性がある。先に述べたように、アドレス衝突が発生すると、アドレス衝突を防ぐためにショートアドレスが変更される場合がある。
【０１８６】
ショートアドレスが変更されていると、そのリモートノードとは通信できないので、ショートアドレスが変更されていないかどうかを確認して、ショートアドレスが変更されていればショートアドレスを最新の状態に更新しなければならない。そのため、ＺｉｇＢｅｅノード管理情報３１２６を最新情報に更新する処理が必要である。
【０１８７】
具体的には、IEEEアドレスを指定してショートアドレスを得るコマンド（NWK_addr_req）を送信して、ショートアドレスが変更されているかどうかを確認する。
【０１８８】
（ネットワーク復元処理）
図１４を参照して、上述した（２）から（６）までのネットワーク復元処理について説明する。図１４は、ＺｉｇＢｅｅマネージャ３１２１が実行する処理の一部を表すフローチャートである。
【０１８９】
まず、図１２を再び参照して、ユーザは、ファイル名を指定して、パーソナルコンピュータ１００３のＷｅｂブラウザに表示される設定画面から「ネットワーク全体情報復元」ボタン１３２０を押す。ここで指定するファイルは、さきほどバックアップを取っておいたファイルである。この結果、中継器のＺｉｇＢｅｅマネージャ３１２１において、図１４で示すフローチャートが実施される。
【０１９０】
ステップＳ１６１０にて、中継器のＺｉｇＢｅｅマネージャ３１２１は、指定されたファイルから、ネットワーク全体情報を読み出す。その結果を、ＺｉｇＢｅｅノード管理情報３１２６に復元する。
【０１９１】
ステップＳ１６２０にて、ＺｉｇＢｅｅマネージャ３１２１は、ネットワーク復元処理中にパケット送受信しないようにするためにＭＡＣ機能を停止する。ＭＡＣ機能を停止しておかないと、不意のタイミングでアソシエートデバイスリスト３１１０やネットワーク情報ベース他３１１３が更新される恐れがあるからである。
【０１９２】
ステップＳ１６３０にて、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードのＮＶＲＡＭにあるアソシエートデバイスリスト３１１０をクリアする。
【０１９３】
ステップＳ１６４０にて、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードのＮＶＲＡＭにあるアソシエートデバイスリスト３１１０に任意のノードを追加する。ここでは、復元されたＺｉｇＢｅｅノード管理情報３１２６から個々のノード情報を取り出し、アソシエートデバイスリストにリモートノードを１つずつ追加する。
【０１９４】
ステップＳ１６５０にて、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードのＮＶＲＡＭにあるネットワーク情報ベース他３１１３を書き換える。ここでは、復元されたＺｉｇＢｅｅノード管理情報３１２６からローカルノードの情報と個々のノード情報を取り出し、ネットワーク情報ベース他３１１３を書き換える。
【０１９５】
ステップＳ１６６０にて、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードをリセットする。リセット後の起動処理において、アソシエートデバイスリスト３１１０とネットワーク情報ベース他３１１３は、ＮＶＲＡＭからＲＡＭにコピーされる。この処理は、ＺｉｇＢｅｅプロトコルスタックによって実行される。ＭＡＣ機能は、リセット後に再開される。
【０１９６】
以上までの処理で、ネットワーク復元処理が完了する。しかしながら、ＺｉｇＢｅｅマネージャ３１２１が管理するＺｉｇＢｅｅノード管理情報３１２６を、ネットワーク上の最新の状態に更新するため、以降のステップＳ１７００、ステップＳ１８００、ステップＳ１９００を実施するのがよい。
【０１９７】
ステップＳ１７００にて、ＺｉｇＢｅｅマネージャ３１２１は、後述するローカルサーチを実行する。
【０１９８】
ステップＳ１８００にて、ＺｉｇＢｅｅマネージャ３１２１は、後述するアソシエートサーチを実行する。
【０１９９】
ステップＳ１９００にて、ＺｉｇＢｅｅマネージャ３１２１は、後述するリモートノードのアドレス探索を実行する。
【０２００】
（ローカルサーチ）
図１５を参照して、ローカルサーチ処理について説明する。図１５は、ＺｉｇＢｅｅマネージャ３１２１によって実行される処理の一部を表すフローチャートである。
【０２０１】
ステップＳ１７１０にて、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードのネットワーク情報ベース他などを取得する。
【０２０２】
具体的には、ネットワーク情報ベース他から以下の情報、すなわち、
（ローカルノードの）IEEEアドレス、（ローカルノードの）ショートアドレス、
コーディネータ・IEEEアドレス、
コーディネータ・ショートアドレス、
PanID、および、
論理チャンネル、
を得ることができる。
【０２０３】
それ以外にも、ローカルノードの現在の状態を読み出すコマンドを使って、デバイス状態と、ジョイン許可状態とを、得ることができる。これらの情報は変化し得るので、ネットワーク復元の対象には含まれない。
【０２０４】
ステップＳ１７２０にて、ＺｉｇＢｅｅマネージャ３１２１は、ネットワーク情報ベース他などと、ＺｉｇＢｅｅマネージャ３１２１の管理するローカルノードの情報（１４１０）とを比較する。
【０２０５】
ネットワーク情報ベース他と、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報（１４１０）との間に齟齬があれば、ステップＳ１７３０にて、ＺｉｇＢｅｅマネージャ３１２１は、ノード管理情報を更新する。その後、処理は、メイン処理に戻される。
【０２０６】
なお、ローカルサーチはネットワーク復元処理とは関係ないタイミングでも実施されることがある。
【０２０７】
（アソシエートサーチ）
図１６を参照して、アソシエートサーチ処理について説明する。図１６は、ＺｉｇＢｅｅマネージャ３１２１によって実行される処理の一部を表すフローチャートである。
【０２０８】
ステップＳ１８１０にて、ＺｉｇＢｅｅマネージャ３１２１は、ローカルノードのアソシエートデバイスリストを取得する。具体的には、ＺｉｇＢｅｅマネージャ３１２１は、アソシエートされているデバイスの個数と、アソシエートされているそれぞれのデバイスのデバイス情報（ショートアドレス、ノード関係、IEEEアドレス）と、を得ることができる。
【０２０９】
ステップＳ１８２０にて、ＺｉｇＢｅｅマネージャ３１２１は、アソシエートデバイスリストと、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報（１４２０および１４３０）とを比較する。
【０２１０】
アソシエートデバイスリストと、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報（１４２０および１４３０）との間に齟齬があれば、ステップＳ１８３０にて、ＺｉｇＢｅｅマネージャ３１２１は、ノード管理情報を更新する。
【０２１１】
具体的には、以下のような処理がある。
（ａ）
アソシエートデバイスリストで得られたノードのうち、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報には存在しないノードがあれば、ＺｉｇＢｅｅマネージャ３１２１は、新規ノードが参加（ジョイン）されたことを検出する。
【０２１２】
ＺｉｇＢｅｅマネージャ３１２１は、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報に、新規ノードを追加して、生存情報を生存にセットする。
【０２１３】
この場合、ＺｉｇＢｅｅマネージャ３１２１は、さらなる探索（リモートサーチ）を実施して、当該リモートノードからさらなる情報（MAC能力、論理タイプなど）を得る。
【０２１４】
（ｂ）
アソシエートデバイスリストで得られたノードのうち、ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報には存在するが、ショートアドレスが異なる場合、ＺｉｇＢｅｅマネージャ３１２１は、既存ノードのショートアドレスが変更されたことを検出する。この場合、ＺｉｇＢｅｅマネージャ３１２１は、さらなる探索（リモートサーチ）を実施して、当該リモートノードからさらなる情報（MAC能力、論理タイプなど）を得る。
【０２１５】
（ｃ）
ＺｉｇＢｅｅマネージャ３１２１の管理するノード情報には存在するが、アソシエートデバイスリストには存在しないノードがある場合、ＺｉｇＢｅｅマネージャ３１２１は、既存ノードが離脱（リーブ）されたことを検出する。ＺｉｇＢｅｅマネージャ３１２１は、当該リモートノードの生存情報を「行方不明」にセットする。
【０２１６】
なお、ＺｉｇＢｅｅマネージャ３１２１は、（ａ）、（ｂ）、（ｃ）のいずれかを検出すれば、ノード情報に変化があったものとして、当該変化を他のアプリケーションに通知する。
【０２１７】
その後、処理は、メイン処理に戻される。
なお、アソシエートサーチはネットワーク復元処理とは関係ないタイミングでも実施されることがある。
【０２１８】
（リモートノードのアドレス探索）
図１７を参照して、リモートノードのアドレス探索処理について説明する。図１７は、ＺｉｇＢｅｅマネージャ３１２１によって実行される処理の一部を表すフローチャートである。
【０２１９】
ステップＳ１９１０にて、ＺｉｇＢｅｅマネージャ３１２１は、アソシエートされている全ての生存リモートノードに対して、以下の処理（１）を実施し、ショートアドレスが変更されている場合には（２）も実行する。
【０２２０】
ステップＳ１９２０にて、ＺｉｇＢｅｅマネージャ３１２１は、処理（１）として、コマンド「NWK_addr_req」を送信する。コマンド「NWK_addr_req」は、ＩＥＥＥアドレスを指定してノード情報（ショートアドレスなど）を得るコマンドである。この結果、当該リモートノードから最新のショートアドレスを得ることができる。
【０２２１】
ステップＳ１９３０にて、ＺｉｇＢｅｅマネージャ３１２１は、ショートアドレスが変更されている場合には、当該リモートノードのショートアドレスを宛先アドレスに指定して何らかのコマンドを送信する。例えば、コマンド「IEEE_addr_req」を送信する。コマンド「IEEE_addr_req」は、ショートアドレスを指定してノード情報を得るコマンドである。ショートアドレスが変更されていなければ、ＺｉｇＢｅｅマネージャ３１２１は、このコマンドを送信しなくてもよい。
【０２２２】
なお、ステップＳ１９３０で送信するコマンドは、「IEEE_addr_req」に限らず、当該リモートノードのショートアドレスを宛先アドレスに指定したコマンドであれば何でもよい。
【０２２３】
なお、ステップＳ１９４０に示されるように、１つ以上のリモートノードのショートアドレスが変更されていれば、アソシエートサーチを再度実施するものとする。
【０２２４】
その後、処理は、メイン処理に戻される。
なお、リモートノードのアドレス探索はネットワーク復元処理とは関係ないタイミングでも実施されることがある。
【０２２５】
上記の「リモートノードのアドレス探索」を行なうことによって、リモートノードのショートアドレスが変更されていれば、まずアソシエートデバイスリスト３１１０が更新される。その後、アソシエートサーチを再度実施することによって、ＺｉｇＢｅｅノード管理情報３１２６も更新される。
【０２２６】
以上のようにして、本実施の形態に係る中継器１００１は、バックアップデータとしてパーソナルコンピュータ１００３に保存されているノード情報を用いて、中継器１００１の内部の情報を復元する。
【０２２７】
より詳細には、中継器１００１は、ＺｉｇＢｅｅノード管理情報３１２６と、アソシエートデバイスリスト３１１０と、ネットワーク情報ベース他３１１３と、を復元する。
【０２２８】
アソシエートデバイスリスト３１１０、ネットワーク情報ベース他３１１３、については、ＮＶＲＡＭのみが書き換えられるが、その後ローカルノードをリセットすることによって、ＮＶＲＡＭに書込みされた内容がＲＡＭに展開される。
【０２２９】
さらに、「リモートノードのアドレス探索」を行なうことによって、リモートノードのショートアドレスが変更されていた場合でも、ＺｉｇＢｅｅノード管理情報３１２６を最新情報に更新できる。
【０２３０】
これにより、ネットワークＺが復元される。
＜Ｆ．変形例＞
以下、本実施の形態の変形例について説明する。
【０２３１】
（ｆ１．第１の変形例）
図１８を参照して、中継器１００１の代替構成について説明する。図１８は、ネットワークＺの制御装置としてタブレット端末を用いた場合における、ネットワークの概略構成を示した図である。具体的には、図１８は、中継器１００１、パーソナルコンピュータ１００３、およびタブレット端末１００８の代わりに、タブレット端末１００９を用いたネットワークＺの構成を示した図である。
【０２３２】
図１８を参照して、ネットワークＺは、タブレット端末１００９と、ワイヤレスブロードバンドルータ１００２と、複数のタップ１００４ａ，１００４ｂ，１００４ｃと、複数の家電（エアーコンディショナ１００５，冷蔵庫１００６，テレビ１００７など）とを備える。また、タブレット端末１００９と、複数のタップ１００４と、複数の家電１００５〜１００７とにより、低速無線通信ネットワークＺを構成する。タブレット端末１００９は、ワイヤレスブロードバンドルータ１００２とＷｉＦｉ等の高速無線通信により接続される。
【０２３３】
図１９は、タブレット端末１００９のブロック図である。タブレット端末１００９は、制御部１９０１と、操作部１９０２と、表示部１９０３と、高速通信インターフェイス部１９０４と、電源部１９０５と、低速無線通信モジュール１９０６と、アンテナ１９０７とを備える。
【０２３４】
操作部１９０２は、操作キー、タッチセンサ等の入力デバイスである。表示部１９０３は、液晶ディスプレイ等の出力デバイスである。高速通信インターフェイス部１９０４は、ワイヤレスブロードバンドルータ１００２との間で無線通信を行なうためのインターフェイスである。電源部１９０５は、制御部１９０１と低速無線通信モジュール１９０６とに電力を供給する。
【０２３５】
制御部１９０１は、操作部１９０２、表示部１９０３と、高速通信インターフェイス部１９０４と、電源部１９０５と、低速無線通信モジュール１９０６とに接続されている。制御部１９０１は、タブレット端末１００９の全体的な動作を制御する。制御部１９０１は、操作部１９０２からの入力を受け付ける。また、制御部１９０１は、表示部１９０３に出力指示を出す。
【０２３６】
より詳しくは、制御部１９０１は、ＣＰＵと、ＲＡＭと、ＲＯＭと、ＵＡＲＴと、ＧＰＩＯとで構成される。ＲＡＭと、ＲＯＭと、ＵＡＲＴと、ＧＰＩＯとは、それぞれ、ＣＰＵに接続されている。
【０２３７】
低速無線通信モジュール１９０６は、アンテナ１１０７と接続されている。低速無線通信モジュール１９０６は、低速無線通信ネットワークＺにおける消費電力測定器との間の通信を制御する。低速無線通信モジュール１９０６は、ＣＰＵと、ＲＡＭと、ＲＯＭと、ＵＡＲＴと、ＧＰＩＯと、無線ＲＦ（Radio  Frequency）部で構成される。ＲＡＭと、ＲＯＭと、ＵＡＲＴと、ＧＰＩＯとは、それぞれ、ＣＰＵに接続されている。
【０２３８】
タブレット端末１００９は、以上のような構成を有することにより、中継器１００１とパーソナルコンピュータ１００３とタブレット端末１００８を用いた構成の場合と同様の効果を奏する。
【０２３９】
なお、パーソナルコンピュータ１００３も、タブレット端末１００９が有するハードウェア構成と同様の構成によって実現される。したがって、パーソナルコンピュータ１００３の構成の説明は繰り返さない。また、本実施の形態において用いられる情報処理装置は、タブレット端末１００８やパーソナルコンピュータ１００３に限られず、少なくともブラウザ（ＨＴＴＰクライアント）が動作する装置であればよい。
【０２４０】
（ｆ２．第２の変形例）
上記においては、パーソナルエリアネットワークとしてＺｉｇＢｅｅを例に挙げて説明したが、これに限定されるものではない。パーソナルエリアネットワークとして、マルチホップをサポートするような他の通信方式にも適用することができる。
【０２４１】
＜実施の形態の効果＞
本実施の形態によれば、制御装置が故障した場合や、制御装置が誤って初期化されてしまった場合に、制御装置と各タップとの間を再度ペアリングさせることなく、ネットワーク機能を復元させることが可能となる。
【０２４２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２４３】
１１  保存部、１２  読出部、１３  書換部、１４  再起動制御部、１５  送信部、８０２  設定情報、８０３  プログラム、８０４，８０８  ポート、８０５，４０６０  通信インターフェイス、８０６  サーバ、１０００，１００４，１００４ａ，１００４ｂ，１００４ｃ，１００４ａ，１００４ｂ，１００４ｃ  タップ、１００１  中継器、１００２  ブロードバンドルータ、１００３  パーソナルコンピュータ、１００５  エアーコンディショナ、１００６  冷蔵庫、１００７  テレビ、１００８，１００９  タブレット端末、１０１１，１１０１，１９０１  制御部、１０１５，１０１６，１０１７  コンセント、１０５１，１０６１，１０７１  電源プラグ、１１０３  発光部、１１０４，１９０４  高速通信インターフェイス部、１１０５，１９０５，２１０４  電源部、１１０６  内蔵通信コントローラ部、１１０７，１９０７，２１０７  アンテナ、１１０８  ペアリングボタン、１１０９  スライドスイッチ、１１６１  ＣＰＵ、１１６３，２１２３  ＲＡＭ、１１６２，２１２２  ＲＯＭ。
【図１】
2013206298.tif 000003
【図２】
2013206298.tif 000004
【図３】
2013206298.tif 000005
【図４】
2013206298.tif 000006
【図５】
2013206298.tif 000007
【図６】
2013206298.tif 000008
【図７】
2013206298.tif 000009
【図８】
2013206298.tif 000010
【図９】
2013206298.tif 000011
【図１０】
2013206298.tif 000012
【図１１】
2013206298.tif 000013
【図１２】
2013206298.tif 000014
【図１３】
2013206298.tif 000015
【図１４】
2013206298.tif 000016
【図１５】
2013206298.tif 000017
【図１６】
2013206298.tif 000018
【図１７】
2013206298.tif 000019
【図１８】
2013206298.tif 000020
【図１９】
2013206298.tif 000021