以下、図面を参照しつつ、本発明の実施の形態に係るネットワークについて説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<A.ネットワークの概要>
図1は、本発明の実施の形態に係るネットワークの概略構成を示した図である。図1を参照して、本発明の実施の形態に係るシステムにはネットワークZとネットワークEから構成される。ネットワークZは、低速無線通信ネットワーク(本例においてはZigBeeを想定)を示す。ネットワークEは、高速通信ネットワーク(本例においては、Ethernet(登録商標)、または、WiFi(登録商標)、またはそれらの組み合わせを想定)を示す。なお、本例においては上記の方式を用いたネットワークについて説明するが特に上記に限るものではない。例えば、ネットワークZにZ−WAVE(登録商標)、Bluetooth(登録商標)、特定小電力無線などを用いることができる。また例えば、ネットワークEにPLC(Power Line Communications)などを用いることも可能である。
ネットワークZには、中継器1001と、複数のタップ1004a,1004b,1004c等が存在するものとする。ネットワークEには、中継器1001と、ブロードバンドルータ1002と、パーソナルコンピュータ1003等が存在するものとする。タブレット端末1008が含まれていてもよい。中継器1001はネットワークZとネットワークEの両方のネットワークに含まれる。また、中継器1001はHTTP(Hyper Text Transfer Protocol)サーバ機能を有する。複数のタップ1004a,1004b,1004cには、それぞれ、複数の家電機器(一例として、エアーコンディショナ1005,冷蔵庫1006,テレビ1007など)が接続されている。
エアーコンディショナ1005の電源プラグ1051は、タップ1004aのソケットに差し込まれている。同様に、冷蔵庫1006の電源プラグ1061は、タップ1004bのソケットに差し込まれている。また、テレビ1007の電源プラグ1071は、タップ1004cのソケットに差し込まれている。
タップ1004a、1004b、1004cは、それぞれ、宅内に設置されたコンセント1015,1016,1017に取り付けられている。これにより、タップ1004a,1004b、1004cは、給電される。
タップ1004a、1004b、1004cは、各々に接続される各家電の消費電力を測定する消費電力測定器である。たとえば、タップ1004aは、エアーコンディショナ1005の消費電力を測定する。タップ1004a、1004b、1004cの各々は、測定した消費電力を中継器1001に送信することができる。なお、以下では、説明の便宜上、タップ1004a,1004b,1004cを区別することなく表わす場合には、「タップ1004」と表記する。
中継器1001および複数のタップ1004の各々は、低速無線通信モジュールを備える。中継器1001と複数のタップ1004とにより、低速無線通信ネットワークZ(以下、単に「ネットワークZ」とも称する)を構成している。また、中継器1001は、Ethernetによりワイヤレスブロードバンドルータ1002に接続されている。中継器1001は、ネットワークZとネットワークEとのブリッジ(媒体変換装置)あるいはゲートウェイ(プロトコル変換装置)として機能する。中継器1001は、複数のタップ1004との間で低速度の無線通信を行なう。
ワイヤレスブロードバンドルータ1002は、インターネットに接続されていてもよい。パーソナルコンピュータ1003は、EthernetまたはWiFiにより、ワイヤレスブロードバンドルータ1002に接続される。
パーソナルコンピュータ1003は、ブラウザ(HTTPクライアント)が動作する一般的なパソコンである。パーソナルコンピュータ1003は、パーソナルコンピュータ1003のブラウザ(HTTPクライアント)を経由して中継器1001のHTTPサーバと通信する。中継器1001のHTTPサーバは、設定用CGIプログラムを呼び出すことによって、中継器自身の設定情報を取得し、また、設定できるようになっている。このようにして、パーソナルコンピュータ1003は、中継器1001のさまざま設定を行なうことができる。このHTTPサーバとブラウザ(HTTPクライアント)の働きによって、貧弱な入力装置しか持たない中継器1001でも、複雑な設定を行なうことができる。
タブレット端末1008は、ワイヤレスブロードバンドルータ1002を介して、中継器1001と通信を行なう。タブレット端末1008は、WiFiにより、ワイヤレスブロードバンドルータ1002に接続される。なお、タブレット端末1008は、Ethernetにより、ワイヤレスブロードバンドルータ1002に接続されてもよい。
タブレット端末1008は、消費電力に関する各種の表示を行なうことができる。タブレット端末1008は、たとえば、各家電の消費電力を表示できる。
以下では、ネットワークZとして、家電向けの短距離無線通信規格の一つであるZigBeeを用いた例について説明する。
<B.中継器1001の構成>
図2は、中継器1001の外観を表した図である。図2(A)は、中継器1001の斜視図である。図2(B)は、中継器1001の側面図である。図2(C)は、中継器1001の他の側面の要部拡大図である。
図2(A)を参照して、中継器1001は、発光部1103と、アンテナ1107とを備える。発光部1103は、中継器1001の動作状態等を表示するための3つのLED(Light Emitting Diode)1103a,1103b,1103cにより構成される。
LED1103aは、中継器1001の電源がオン・オフの状態を示すための発光素子(電源LED)である。LED1103bは、タップ1004との通信状態を表示するための発光素子(タップLED)である。LED1103cは、ワイヤレスブロードバンドルータ1002との通信状態を表示するための発光素子(ルータLED)である。
アンテナ1107は、各タップ1004a,1004b,1004cと通信するために用いられる。
図2(B)を参照して、中継器1001は、発光部1103が設けられた表面とは反対側の表面に、プッシュボタン1108をさらに備える。プッシュボタン1108は、中継器1001をジョイン許可状態(ジョインモード)、または、リーブモードに遷移させるためのボタンである。
図2(C)を参照して、中継器1001は、発光部1103が設けられた表面およびプッシュボタン1108が設けられた表面とは異なる表面に、スライドスイッチ1109をさらに備える。スライドスイッチ1109は、ユーザの操作によりスライドする。スライドスイッチ1109は、JOIN位置、NOP(No Operation)位置、およびLEAVE位置のうちのいずれか1つの位置をとることができる。なお、スライドスイッチ1109は、プッシュボタン1108が押されたときに、中継器をジョイン許可状態、あるいはリーブモードのいずれかを選択するために用いられる。スライドスイッチ1109は、通常の使用時にはNOP位置に設定される。
図3は、中継器1001のブロック図である。図3を参照して、中継器1001は、制御部1101と、発光部1103と、高速通信インターフェイス部1104と、電源部1105と、無線RF(Radio Frequency)内蔵通信コントローラ部1106と、アンテナ1107と、プッシュボタン1108と、スライドスイッチ1109と、図示しないリセットスイッチとを備える。
無線RF内蔵通信コントローラ部1106は、CPU(Central Processing Unit)1161と、ROM(Read Only Memory)1162と、RAM(Random Access Memory)1163と、GPIO(General Purpose Input/Output)1164と、無線RF部1165と、制御部1101との間で通信するためのUART(Universal Asynchronous Receiver Transmitter)1166とを含む。
なお、本実施例では、無線RF内蔵通信コントローラ部1106は、ZigBeeコーディネータとして動作するものとして説明する。他の実施の形態として、無線RF内蔵通信コントローラ部1106は、ZigBeeルータとして動作させてもよい。その場合、ネットワークZ上に存在する他の通信機器から常に受信可能であるように設定しておく。
また、ROM1162と、RAM1163と、UART1166と、GPIO1164と、無線RF部1165とは、それぞれ、CPU1161に接続されている。
無線RF内蔵通信コントローラ部1106は、アンテナ1107と接続されている。無線RF内蔵通信コントローラ部1106は、ネットワークZ上に存在する通信機器との間の通信を制御する。なお、ROM1162は、NVRAMで構成されるのが一般的である。
制御部1101は、CPU1161に比べて高性能なCPUを備えており、またメモリも豊富である。当該構成によって、中継器1001は、高度な情報処理を実現できる。
高速通信インターフェイス部1104は、ワイヤレスブロードバンドルータ1002との間でEthernetまたはWiFiを用いた通信を行なうためのインターフェイスである。電源部1105は、制御部1101と無線RF内蔵通信コントローラ部1106とに電力を供給する。
制御部1101は、発光部1103と、高速通信インターフェイス部1104と、電源部1105と、無線RF内蔵通信コントローラ部1106と、プッシュボタン1108と、スライドスイッチ1109とに接続されている。制御部1101は、中継器1001の全体的な動作を制御する。制御部1101は、プッシュボタン1108およびスライドスイッチ1109からの入力を受け付ける。また、制御部1101は、発光部1103に出力指示を出す。
次に、ユーザがペアリングを行なうときの操作の概要について説明する。まず、ユーザが、スライドスイッチ1109をNOP位置からJOIN位置にスライドさせる。その後、ユーザは、プッシュボタン1108を押す。これにより、予め定められた時間(たとえば60秒間)、中継器1001がジョイン許可状態となる。なお、この間、制御部1101は、発光部1103を予め定められた状態で発光させる。そして、中継器1001がジョイン許可ジョイン許可状態で、ユーザがタップ1004をコンセントに差すことにより、中継器1001とタップ1004とのペアリングが行なわれる。
<C.タップ1004の構成>
図4は、タップ1004の斜視図である。図4を参照して、タップ1004は、プラグ差込用のソケット2101と、プラグ2102と、LED2105と、設定ボタン2106とを備える。タップの使用時には、ユーザは、家電の電源プラグをソケット2101に差し込むとともに、宅内に設置されたコンセントにプラグ2102を差し込む(図1参照)。なお、ソケット2101の形状は、接続される家電の電源プラグの形状に応じて決まる。
図5は、タップ1004のハードウェア構成を表した図である。図5を参照して、タップ1004は、ソケット2101と、プラグ2102と、シャント抵抗2103と、電源部2104と、LED2105と、設定ボタン2106と、アンテナ2107と、電力センサ部2110と、無線RF内蔵通信コントローラ部2120と、配線2131と、配線2132と、配線2133とを備える。
電力センサ部2110は、電圧入力ADC部2111と、電流入力ADC部2112と、乗算器2113と、デジタル/周波数変換部2114とを含む。無線RF内蔵通信コントローラ部2120は、CPU2121と、ROM2122と、RAM2123と、GPIO2124と、無線RF部2125とを含む。
配線2132と配線2133とは、シャント抵抗2103により接続されている。シャント抵抗2103は電流を測定するために使われる微小な(数百マイクロΩ)抵抗である。
ソケット2101とプラグ2102とは、配線2131〜2133およびシャント抵抗2103で接続されている。配線2131は、プラグ2102の一方の端子およびソケット2101の一方の端子に接続されている。配線2132は、プラグ2102の他方の端子とシャント抵抗2103の一方の端部とに接続されている。配線2133は、ソケット2101の他方の端子とシャント抵抗2103の他方の端部とに接続されている。
電源部2104は、配線2132に接続されている。電源部2104は、交流を直流に変換する。電源部2104は、変換により得られた直流電力を電力センサ部2110と無線RF内蔵通信コントローラ部2120とに与える。
電圧入力ADC部2111は、配線2131と、配線2132とに接続されている。電圧入力ADC部2111は、配線2131と配線2132との間の電圧(電位差)を、デジタル信号にて乗算器2113に出力する。
電流入力ADC部2112は、配線2132と、配線2133とに接続されている。電流入力ADC部2112は、シャント抵抗2103に流れる電流の電流値を、デジタル信号にて乗算器2113に出力する。
乗算器2113は、電圧入力ADC部2111からの出力と、電流入力ADC部2112からの出力とを乗算し、当該乗算により得られたデジタル信号をデジタル/周波数変換部2114に出力する。
デジタル/周波数変換部2114は、入力されたデジタル信号を周波数信号に変換する。デジタル/周波数変換部2114は、変換により得られた周波数信号を、無線RF内蔵通信コントローラ部2120のGPIOに出力する。
CPU2121は、GPIOから取得した上記周波数信号をデータ変換する。無線RF部2125は、データ変換により得られた信号を、アンテナ2107を用いて中継器1001に送信する。
ROM2122には、CPU2121が実行するプログラム等が格納されている。なお、ROM2122は、NVRAMで構成されるのが一般的である。
LED2105は、タップ1004のデータ処理状態を、点滅および/または点灯させる色等により表す。設定ボタン2106は、ユーザによるタップ1004の初期設定等のために用いられる。
なお、本実施例では、無線RF内蔵通信コントローラ部2120は、ルータとして動作するものとして説明する。
<D.タブレット端末1008の構成>
図6は、タブレット端末1008のハードウェア構成を表した図である。図6を参照して、タブレット端末1008は、CPU4010と、タッチスクリーン4020と、時計4030と、メモリ4040と、ボタン4050と、通信インターフェイス4060と、スピーカ4070とを含む。タッチスクリーン4020は、ディスプレイ4021と、タッチパネル(タブレット)4022とで構成され、ディスプレイ4021の表面にタッチパネル4022が敷設されている。ただし、タブレット端末1008は、タッチパネル4022を有していなくともよい。
メモリ4040は、各種のRAM、ROM、フラッシュメモリ、ハードディスクなどによって実現される。メモリ4040は、CPU4010によって実行される、OS、各種の制御プログラム、並びにCPU4010によって読み出されるテーブル等の各種データテーブルを格納する。たとえば、メモリ4040における不揮発性のメモリであるフラッシュメモリに、タップ1004に対して設定(再設定)を行なうためのアプリケーションが格納されている。なお、当該アプリケーションは、ユーザからのリクエストに応じてタップ1004の設定を行なう。
CPU4010は、メモリ4040に記憶されている各種のプログラムを実行することによって、各種の情報処理などを実行する。ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
ディスプレイ4021は、CPU4010によって制御されることによって、たとえば、各家電1005〜1007の消費電力を表示する。タッチパネル4022は、ユーザの指によるタッチ操作を検出して、タッチ座標などをCPU4010に入力する。CPU4010は、タッチパネル4022を介して、ユーザからの命令を受け付ける。
ボタン4050は、タブレット端末1008の表面に配置される。決定キー、方向キー、テンキーなどの複数のボタンがタブレット端末1008に配置されても良い。ボタン4050は、ユーザからの命令を受け付ける。ボタン4050は、ユーザからの命令をCPU4010に入力する。
通信インターフェイス4060は、CPU4010によって制御されることによって、ワイヤレスブロードバンドルータ1002を介して、中継器1001と通信する。通信インターフェイス4060は、上述したように、たとえばWiFiにより、ワイヤレスブロードバンドルータ1002と通信する。
スピーカ4070は、CPU4010からの命令に基づいて、音声を出力する。たとえば、CPU4010は、音声データに基づいて、スピーカ4070に音声を出力させる。時計4030は、CPU4010からの命令に基づいて、現在の日付や時刻をCPU4010に入力する。
CPU4010は、メモリ4040に記憶されている各種のプログラムを実行することによって、各種の情報処理などを実行する。換言すれば、タブレット端末1008における処理は、各ハードウェアおよびCPU4010により実行されるソフトウェアによって実現される。このようなソフトウェアは、メモリ4040に予め記憶されている場合がある。また、ソフトウェアは、記憶媒体に格納されて、プログラム製品として流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。
このようなソフトウェアは、図示しない読取装置を利用することによってその記憶媒体から読み取られて、あるいは、通信インターフェイス4060を利用することによってダウンロードされて、メモリ4040に一旦格納される。CPU4010は、ソフトウェアを実行可能なプログラムの形式でメモリ4040に格納してから、当該プログラムを実行する。
なお、記憶媒体としては、CD−ROM(Compact Disc - Read Only Memory)、DVD−ROM(Digital Versatile Disk - Read Only Memory)、USB(Universal Serial Bus)メモリ、メモリカード、FD(Flexible Disk)、ハードディスク、磁気テープ、カセットテープ、MO(Magnetic Optical Disc)、MD(Mini Disc)、IC(Integrated Circuit)カード(メモリカードを除く)、光カード、マスクROM、EPROM、EEPROM(Electronically Erasable Programmable Read-Only Memory)などの、不揮発的にプログラムを格納する媒体(一時的ではない媒体)が挙げられる。
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
<E.実装例>
図7は、タップ1004および中継器1001におけるソフトウェア構造を説明するための図である。
図7を参照して、タップ1004(リモートノード)のソフトウェア構造は、ZigBeeアプリケーション3401と、ZigBeeプロトコルスタック3402とを含む。ZigBeeアプリケーション3401は、電力測定用のマイコン(図示せず)から消費電力に関する情報を取得して、当該情報を予め定められたフォーマットに変換する。ZigBeeアプリケーション3401は、他のZigBeeノードからの属性リード要求に応じて、あるいは、設定されたレポート条件に従って自発的に消費電力に関する情報を送信する。
中継器1001の無線RF内蔵通信コントローラ部1106(ローカルノード)は、ZigBeeアプリケーション3111と、ZigBeeプロトコルスタック3112と、UART1166と、アソシエートデバイスリスト3110とを含む。ZigBeeアプリケーション3111は、上述した消費電力に関する情報をタップ1004から受信する。UART1166は、上述したように、制御部1101との間で通信するための非同期送受信インターフェイスである。
ZigBeeプロトコルスタック3112は、当該ローカルノードにアソシエートされているデバイスの情報をアソシエートデバイスリスト3110に登録する。アソシエートデバイスリスト3110は、NVRAMに保存されているので、電源を切って入れ直しても情報が失われることはない。ZigBeeマネージャ3121は、アソシエートデバイスリスト3110を読み出し、ZigBeeノード管理情報3126を更新する。
中継器1001の制御部1101(図3参照)は、ZigBeeマネージャ3121と、ZigBeeモニタライブラリ3122と、UART3123と、LED&スイッチ制御3124と、UDP/IP(User Datagram Protocol / Internet Protocol)ポート(ポート番号は固定する)と、Ethernet3125と、ZigBeeノード管理情報3126とを含む。ZigBeeマネージャ3121は、制御部1101に格納されているアプリケーションの1つである。なお、制御部1101に格納される他のアプリケーションとして、タップ1004の情報を収集するためのタップ情報収集アプリ、また外部のHTTPクライアントから中継器を設定するためのHTTPサーバ、当該HTTPサーバから呼び出しされる設定用CGIアプリなどがある。
ZigBeeマネージャ3121は、ネットワークZ上に存在しうるZigBeeのノードを管理する。具体的には、ZigBeeマネージャ3121は、ローカルノードである無線RF内蔵通信コントローラ部1106と、ローカルノードと通信可能なリモートノード(タップ1004などのZigBeeノード)を管理する。
リモートノードが、ネットワークにジョイン(参加)して、ローカルノードにアソシエートされている状態であれば、当該リモートノードの生存情報を生存として管理する。リモートノードが、ネットワークからリーブ(離脱)して、ローカルノードにアソシエートされていない状態であれば、当該リモートノードの生存情報を行方不明として管理する。さらに、ZigBeeマネージャ3121は、ZigBeeのノードに変化があった場合には当該変化を検知し、当該変化を他のアプリケーションに通知する。
それ以外にも、ZigBeeマネージャ3121は、ローカルノード及びリモートノードからZigBeeノードとしての一般的な情報(IEEEアドレス、ショートアドレス、MAC能力、論理タイプなど)を取得して、また、ローカルノードからローカルノードにアソシエートされているデバイスの一覧や現在のネットワーク情報(PanIDや論理チャンネルなど)を取得して、ノード情報として管理する。ZigBeeマネージャ3121は、これらのZigBeeノードの管理情報をZigBeeノード管理情報3126に保存する。
図8は、ZigBeeマネージャ3121が管理するZigBeeノード管理情報3126におけるデータの格納の一態様を概念的に表わす図である。図8を参照して、ZigBeeノード管理情報3126は、ローカルノードの情報1110と、ノードの個数1120と、個々のノード情報1130とが含まれる。
本実施の形態において、「ローカルノード」とは、中継器に内部接続されるZigBeeモジュールをいう。また、後述する「リモートノード」とは、タップなどに内蔵されるZigBeeモジュールをいう。
ローカルノードの情報1110は、ローカルノードに固有の情報と、ローカルノードが参加するネットワークの情報のことである。たとえば、ローカルノードのIEEE(Institute of Electrical and Electronics Engineers)アドレスと、ショートアドレスと、デバイスタイプと、デバイス状態と、アソシエートされているデバイスの個数と、アソシエートされているデバイスのショートアドレスと、ジョイン許可状態と、、PanID(Personal Area Network Identifier)と、論理チャンネルなどを含む。
・ローカルノードの情報
IEEEアドレス(拡張アドレスとも称される)とは、EthernetにおけるMACアドレスと同様に物理媒体の1つ1つに付与されるアドレスであって、全世界で唯一性が保証される8バイトのアドレスである。通常、意図的に変更されない限り不変である。ここでは、当該ローカルノードのIEEEアドレスを格納する。
ショートアドレス(ネットワークアドレスとも称される)とは、一つのZigBeeネットワークにおいて、唯一性が保証される2バイトのアドレスである。ショートアドレスは、ノードがZigBeeネットワークにジョインしたときに、親(コーディネータまたはルータ)によって動的に割り当てられる。通常、ショートアドレスがいったん割り当てられれば変更されることはないが、別の新規ノードがジョインしたときなどにアドレス衝突することがあって、その場合、アドレス衝突を防ぐためにショートアドレスが変更されることがある。また、ノードが別のZigBeeネットワークにジョインすれば、別のショートアドレスが割り当てられる。このように、ショートアドレスは変更されうる。なお、コーディネータのショートアドレスは、ZigBeeの規定によって0x0000と決まっている。ここでは、当該ローカルノードのショートアドレスを格納する。
デバイスタイプは、当該ローカルノードが担うことができる、ZigBee論理デバイスを示した1バイトの値である。ZigBee論理デバイスには、コーディネータと、ルータと、エンドデバイスと、がある。それぞれを1ビット(0x01,0x02、0x04)であらわして、当該デバイスが担うことができる論理デバイスをそれらの論理和で表現する。例えば、ルータとエンドデバイスのどちらにも成れるデバイスなら、そのデバイスタイプは「0x06」となる。なお、現在どのZigBee論理デバイスとして動作しているかは、別途後述する論理タイプで示される。
デバイス状態は、当該ローカルノードの現在の状態を表わす1バイトの値である。デバイス状態は、ZigBeeの論理デバイスとして動作するとき状態、たとえば、初期化中、PANに参加中、コーディネータとして起動した、などの状態を表す。
アソシエートされているデバイスの個数は、当該ローカルノードに関連付けられている(アソシエートされている)デバイスの個数を表す1バイトの値である。
アソシエートされているデバイスのショートアドレスは、当該ローカルノードに関連付けられている(アソシエートされている)デバイスのそれぞれのショートアドレスのことである。
ジョイン許可状態は、当該ローカルノードが新たなノードを受け付け可能な状態であるか否かを表わす1ビットの値である。
PanID(Personal Area Network Identifier)は、当該ローカルノードが現在参加しているネットワークの識別子を表す2バイトの値である。
論理チャンネルは、当該ローカルノードが参加しているネットワークの現在のチャネルを表わす1バイトの値である。
・ノードの個数
ノードの個数1120は、ローカルノードとリモートノードとの合計の個数である。たとえば、本実施の形態において上記の定義によれば、図7の中継器1001に含まれる無線RF内蔵通信コントローラ部1106がローカルノードに相当する。一方、図1のタップ1004a,1004b,1004cがリモートノードに相当する。したがって、図1に図示した例では、ノードの個数は(1+3より)「4」となる。
・個々のノード情報
個々のノード情報1130は、ローカルノードと各リモートノードの情報である。各ノ―ドから得られる情報と、ZigBeeマネージャ3121が管理のために付与する情報とがある。ノード情報1130は、たとえば、識別子と、IEEEアドレスと、ショートアドレスと、MAC(Media Access Control)能力と、論理タイプと、生存情報と、電源情報などを含む。
識別子とは、ノードを簡易的に識別できるようにするために、ZigBeeマネージャが付与する2バイトの値である。ZigBeeマネージャは新しいノードを見つけるごとに識別子をインクリメントして付与する。識別子はIEEEアドレスと1対1対応とする。つまり、同じIEEEアドレスのノードには同じ識別子が与えられる。逆に識別子からIEEEアドレスが一意に決定される。識別子=0のノードは、ローカルノードであることを保証する。あるノードをネットワークから離脱させても、そのノードの識別子は残ったままである。識別子は再利用されない。
MAC能力とは、当該ノードが保有する性質を示した1バイトの値である。例えば、コーディネータに成れるかどうか、物理デバイス種別(FFDかRFDか)、バッテリ電源か商用電源か、アイドル時に受信可能かどうか、などを示す。
論理タイプとは、当該ノードが現在どのZigBee論理デバイスとして機能しているかを示した1バイトの値である。コーディネータならば0x00、ルータならば0x01、エンドデバイスならば0x02となる。
生存情報とは、当該ノードがローカルノードに関連付けられている(アソシエートされている)かどうかを示す1ビットの値である。当該ノードがローカルノードに関連付けられているならば、生存情報=Trueとなり、当該ノードが「生存」しているという意味を表わす。一方、当該ノードがローカルノードに関連付けられていないならば、生存情報=Falseとなり、当該ノードが「行方不明」であることを意味する。当該ノードが電源オフになっても、当該ノードは「行方不明」にはならないことに注意する。生存情報は、あくまでも、当該ノードがローカルノードに関連付けらているかどうかを示す。
電源情報は、当該ノードが給電されているか否かを示す1ビットの値である。現在、当該ノードが給電状態(powered状態)にあれば、電源情報=Trueとなり、当該ノードが「給電されている」という意味を表わす。一方、現在、当該ノードが給電状態になければ(unplugged状態)、電源情報=Falseとなり、当該ノードが「給電されていない」という意味を表わす。
また、ZigBeeマネージャ3121は、LED&スイッチ制御3124を監視している。より詳細には、ZigBeeマネージャ3121は、プッシュボタン1108およびスライドスイッチ1109からの入力を監視し、ペアリング機能(ジョイン許可状態)およびリーブモードを制御する機能を持ち、その中継器の状態に応じて、LED1103(正確にはLED1103c)の発光を制御する。ZigBeeマネージャ3121は、サーバの形態をとっており、固定のUDPポート番号を開けて、他の機器からアクセスを受け付けて、ZigBee上位プロトコルと中継器発見プロトコルを提供する。
ZigBee3122は、直接、UART3123とデータの遣り取りをすることにより、無線RF内蔵通信コントローラ部1106と通信をする。モニタライブラリ3122は、UART3123を通じてデータを無線RF内蔵通信コントローラ部1106と送受信する。なお、モニタライブラリ3122が発信するコマンドは、無線RF内蔵通信コントローラ部1106に対するものもあれば、タップ1004に対するものもある。
さらに、ZigBeeマネージャ3121は、ZigBeeノードの状態に変化があった場合には当該ノード状態変化を検出して、当該ノード状態変化を他のアプリケーションに通知する機能を持つ。
図9は、ZigBeeマネージャ3121が検出するノード状態の変化を説明するための図である。図9を参照して、ZigBeeマネージャ3121が検出するノード状態の変化には以下のものがある。
・通知理由=1:“joined”(ノードがネットワークにジョインした)
・通知理由=2:“removed” (ノードがネットワークからリーブした)
・通知理由=3:“address-changed” (ノードのショートアドレスが変化した)
・通知理由=4:“powered” (ノードの電源が投入された)
・通知理由=5:“button-pressed”(ノードのボタンが押された)
・通知理由=6:“unplugged”(ノードの電源が抜かれた)
ZigBeeマネージャ3121は、ノード状態が変化したことを検知して、他のアプリケーション(タブレット端末1008上のUIアプリケーション3801など)に通知する。そのときの通知理由が、1〜6で示される。アプリケーションは、上記のノード状態変化の通知を受けることで、その動作に反映させることができる。
たとえば、ノードがネットワークにジョインした場合(通知理由1の場合)、UIアプリケーション3801は、ノードがネットワークにジョインしたことを表す通知を受信して、気付きのポップアップ画面(図34参照)を表示することができる。また、ノードの電源が投入された場合(通知理由4の場合)、UIアプリケーション3801は、ノードの電源が投入されたことを表す通知を受信して、タップが選択されたことを表示することができる(図36参照)。さらに、UIアプリケーション3801は、ノードの電源が投入されたことを契機に、レポート条件を再設定することができる。
また、ノードのボタンが押された場合(通知理由5の場合)、UIアプリケーション3801は、ノードの電源が投入されたことを表す通知を受信して、タップが選択されたことを表示することができる(図36参照)。なお、ZigBeeマネージャ3121は、ノードの電源が抜かれた(ノードへの給電が停止した)ことを、すぐに検知するのは難しい。
なお、タップ1004の制御構造、中継器1001(ZigBeeマネージャ)の制御構造、およびタブレット端末1008(UIアプリケーション3801)の制御構造については、後述する。
図10は、タブレット端末1008におけるソフトウェア構造を説明するための図である。
図10を参照して、タブレット端末1008は、UI(User Interface)アプリケーション3801と、機器制御ライブラリ3802と、UDP/IPポート(ポート番号は任意でよい)3803と、WiFi3804と、中継器発見ライブラリ3805と、UDP/IPポート(ポート番号は任意でよい)3806と、WiFi3807とを備える。
UIアプリケーション3801は、タブレット端末1008のディスプレイ4021にUIを表示するためのアプリケーションである。機器制御ライブラリ3802は、中継器1001等やタップ1004他の通信機器を制御するために用いられるライブラリである。中継器発見ライブラリ3805は、中継器1001を発見するためのライブラリである。UIアプリケーション3801は、中継器発見ライブラリ3805を呼び出して中継器を発見し、さらに、機器制御ライブラリ3802を呼び出してタップ1004などの通信機器を制御する。
ここで、中継器発見ライブラリ3805を用いて中継器1001を発見する手法について簡単に説明すると以下の通りである。まず、中継器発見ライブラリ3805は、中継器発見プロトコルにてあらかじめ定められたパケットをブロードキャストで送信する。このとき宛先IPアドレスを255.255.255.255などのブロードキャストアドレス(または、あらかじめ定められたマルチキャストアドレス)とする。宛先UDPポートを、中継器発見プロトコルにてあらかじめ定められているポート番号とする。
同一LAN(Local Area Network)セグメントにある中継器のZigBeeマネージャ3121は、当該ブロードキャストパケットを受信できるので、その応答を返す。応答パケットには中継器のIPアドレスとMACアドレスとが含まれる。
中継器発見ライブラリ3805は、同一LAN(Local Area Network)セグメントにある中継器から応答を受け取る。中継器発見ライブラリ3805は、当該応答に含まれる中継器のIPアドレスとMACアドレスを取得する。これにより、中継器発見ライブラリ3805は、中継器を発見することができる。なお、同一LAN(Local Area Network)セグメント上に複数の中継器が存在した場合、1以上の応答が返ってくることがある。その場合、UIアプリケーション3801は、ディスプレイ4021に見つかったすべての中継器についてそれぞれ、取得した情報(IPアドレスとMACアドレス)を表示させ、ユーザに1つ選択させる。UIアプリケーション3801は、ユーザによって選択された中継器のIPアドレスを指定して、機器制御ライブラリ3802を呼び出す。
<F.タップ再設定>
UIアプリケーション3801は、当該アプリケーションの動作に応じて、必要ならば、各タップ1004に対して、電力情報をレポート送信するように設定を行なう。
また、UIアプリケーション3801は、当該アプリケーションの動作に応じて、各タップ1004からレポート送信しないという設定を行なう。具体的には、UIアプリケーション3801は、リアルタイム表示を開始するときは、各タップ1004に対して、電力情報をレポート送信するように設定する。リアルタイム表示を終了するときは、各タップ1004に対して、電力情報をレポート送信しないように設定する。
送信間隔などのレポート条件を設定する一例として、ZigBeeでは、“Configure Reporting”を使って設定する(非特許文献1参照)。あるいは、属性ライト(Write Attributes)コマンドを使って設定してもよい。
タップ1004は、レポート条件をRAMに格納しているものとする。タップ1004は、設定されたレポート条件に基づき、電力情報などのレポートを中継器1001に送信する。中継器1001は、タップ1004から受信したレポートをタブレット端末1008に送信する。タブレット端末1008は、家電の消費電力をユーザに視認させるために、電力情報をディスプレイ4021に表示する。
ところで、タップ1004がコンセントから取り外されると、タップ1004への給電が停止する。このため、タップ1004の揮発性のメモリに格納されているレポート条件は、消えてしまう。よって、タップ1004の給電が再開されても、タップ1004からのレポート送信は再開さない。そこで、以下では、タップ1004の給電が再開された場合に、タップ1004からレポート送信が再開させる構成について、タップ1004のリーブ処理を含めて説明する。
(f1.リアルタイム表示)
図11は、リアルタイム表示を説明するための1つのイメージ図である。図11を参照して、UIアプリケーション3801は、ユーザの指示等によってUIアプリケーション3801の動作モードがリアルタイム表示を行なう動作モード(以下、「リアルタイム表示モード」と称する)に切替えられると、消費電力を表した電力情報をディスプレイ4021にリアルタイムに表示する。たとえば、UIアプリケーション3801は、図11に示したように、ユーザによって選択されたタップに接続されている家電の消費電力をリアルタイムに表示する。あるいは、UIアプリケーション3801は、ネットワークZに存在するすべてのタップに接続されている家電の消費電力を表示する。
以下では、UIアプリケーション3801の動作モードがリアルタイム表示モードとなった場合に、各タップ1004から家電の消費電力を表す電力情報をリアルタイムに取得する構成について説明する。
また、以下では、UIアプリケーション3801がレポートの送信間隔などのレポート条件をタップ1004に設定するための指令を送信する構成について説明する。ここで、タップ1004がレポートの送信を開始する指令のことを「レポート開始指令」、タップ1004がレポートの送信を終了する指令のことを「レポート終了指令」と称する。
(f2.ネットワークZにおける制御構造)
図12は、ネットワークZにおけるシーケンスチャートである。図12を参照して、シーケンスSQ2において、ユーザの指示に基づき、タブレット端末1008は、動作モードを非リアルタイム表示モードからリアルタイム表示モードに変更する。シーケンスSQ4において、タブレット端末1008は、レポート開始指令を中継器1001に送信する。シーケンスSQ8において、中継器1001は、受信したレポート開始指令を中継し、当該レポート開始指令をタップ1004に送信する。シーケンスSQ10において、タップ1004は、受信したレポート開始指令に基づき、レポート条件を設定する。レポート条件には、一定の時間間隔t0(たとえば5秒間隔)でレポート送信するような内容が書かれているものとする。
シーケンスSQ12において、一定の時間間隔t0で、タップ1004は、レポートを送信する。中継器1001は、タップ1004から送られてきたレポートをタブレット端末1008に転送(中継)する。これにより、タブレット端末1008は、リアルタイム表示を行なうことができる。
シーケンスSQ14において、タップ1004がコンセントから取り外されること等により、タップ1004への給電が停止したとする。
シーケンスSQ16において、タップ1004がコンセントに再度差し込まれること等により、タップ1004への給電が再開される。この場合、シーケンスSQ18において、タップ1004は、予め定められた信号を送信(発信)するものとする。たとえば、タップ1004は、予め定められた信号として、ZigBee仕様書で定義されている、”Device_annce”(以下、デバイスアンスと称する)をブロードキャストで送信するものとする。デバイスアンスは、ネットワークにジョインしたときやリジョインしたとき、または、アドレス衝突が発生してアドレス変更されたときに送信されるパケットである。本発明では、ペアリング済みのタップが給電を開始したときにもデバイスアンスを送信するものとする。
シーケンスSQ22において、中継器1001は、デバイスアンスを受信した場合、後述するように、デバイスアンス受信処理を開始する。その結果、ここでは、中継器1001は、タップ1004の電源が入ったことを検出して、通知理由=4(ノードの電源が投入された)のノード状態変化通知を送る。このような処理により、タブレット端末1008は、タップ1004に対して給電がなされたことを知ることができる。
シーケンスSQ24において、タブレット端末1008は、レポート開始指令を中継器1001に送信する。シーケンスSQ28において、中継器1001は、受信したレポート開始指令を中継し、当該レポート開始指令をタップ1004に送信する。シーケンスSQ30において、タップ1004は、レポート開始指令に基づき、レポート条件を再設定する。このように、タブレット端末1008は、中継器1001からノード状態変化の通知を受けることによって、タップ1004に対してレポート条件を再設定する。
シーケンスSQ32において、一定の時間間隔t0で、タップ1004は、レポートを送信する。中継器1001は、タップ1004から送られてきたレポートをタブレット端末1008に転送(中継)する。これにより、タブレット端末1008は、リアルタイム表示を再開することができる。
(f3.タップ1004における制御構造)
タップ1004における制御構造について説明する。
図13は、本発明の実施の形態に従うタップ側の電源投入後の処理について説明するフロー図である。当該処理は、主にCPU2121における処理である。
図13を参照して、CPU2121は、電源投入されると、まず、NVRAMに格納されているコンフィグ情報を復元する(ステップS102)。
次に、ステップS104にて、コンフィグ情報に含まれている初期化フラグがセットされているかどうかを判断する。
ステップS104においてNOと判断した場合には、ステップS106に進む。
また、ステップS104においてYESと判断した場合には、NVRAMに書込みされているコンフィグ情報とネットワーク情報を工場出荷時の初期値に戻す処理を実行する(ステップS118)。
次に、NVRAMに格納されているネットワーク情報を復元する(ステップS106)。
次に、ステップS108にて、ネットワーク情報に有意データがあるかどうかを判断する。
ステップS108においてYESと判断した場合には、ランダム時間待機(ウェイト)する(ステップS120)。そして、デバイスアンスをブロードキャストで送信する(ステップS124)。ランダム時間待機することにより複数のタップの電源が一斉にONされた場合に、デバイスアンスをブロードキャスト送信するタイミングをずらして衝突を防ぐことが期待できる。
一方、ステップS108においてNOと判断した場合には、ジョイン許可しているネットワークを見つけてアソシエーション要求を送信する(ジョイン処理)(ステップS110)。
具体的には、タップ1004は、ビーコン・リクエストを送信して、ビーコンを受信する。ビーコンは、(コーディネータである)中継器1001と(ルータである)他のタップから送信される。タップ1004は、受信したビーコンを解析してジョイン許可されているネットワークのうち最適なものを1つ選んでアソシエーション要求(NLME-JOIN.Request)を送信する(ジョインを試みる)。なお、中継器1001側の処理は、図22で説明したものであり、主に、コーディネータ部のプロトコルスタック3112における処理である。なお、ジョイン処理中は、タップ1004は、LEDは普通点滅を繰り返す。
次に、ステップS112において、アソシエーション応答(成功)を受信したかどうかを判断する。
ステップS112においてYESと判断した場合には、得られたネットワーク情報をNVRAMに書込む(ステップS122)。ネットワーク情報には、PanID、Extended PanID、論理チャンネルなどが含まれる。また、タップ1004に割り当てられたショートアドレスも含まれる。
そして、デバイスアンスをブロードキャストで送信する(ステップS124)。
そして、ジョイン済みに移行する(ステップS126)。なお、ジョイン済みになればLEDを消灯するものとする。
そして、処理を終了する(電源投入後の処理を終了)。
一方、ステップS112においてNOと判断した場合には、次に、ステップS114にて、ジョイン処理を開始してから60秒が経過したかどうかを判断する。
ステップS114においてNOと判断した場合には、ステップS110に戻り、ジョイン処理を継続する。
一方、ステップS114においてYESと判断した場合には、ホールド状態に移行する(ステップS116)。ホールド状態というのは、自身をリセットした後に、ネットワークへの参加をせずにとどまっている状態である。このときパケット送受信をいっさい行なわない。この際、LEDは高速に点滅するものとする。なお、後述するが当該ホールド状態の場合に設定ボタンを押下した場合には、ホールド状態が解除されてステップS110に戻るものとする。
そして、処理を終了する(電源投入後の処理を終了)。
図14は、本発明の実施の形態に従うタップ側の設定ボタン押下げ後の処理について説明する図である。当該処理は、主にCPU2121における処理である。
図14を参照して、設定ボタンが押下げられた場合には、まず、ステップS202にて、ホールド状態であるかどうかを判断する。
ステップS202においてYESと判断した場合には、ホールド状態を解除してジョイン処理を再開する(ステップS206)。すなわち、図13のステップS110に進む。
そして、処理を終了する(ボタン押下げ後の処理を終了)。
ステップS202においてNOと判断した場合には、次に、ステップS204にて、ジョイン済みであるかどうかを判断する。
ステップS204においてYESと判断した場合には、デバイスアンスをコーディネータ(ショートアドレス=0x0000)に対してユニキャストで送信する(ステップS208)。なお、その際、LEDは一瞬点灯させるものとする。
そして、処理を終了する(ボタン押下げ後の処理を終了)。
ステップS204においてNOと判断した場合には、そのまま処理を終了する(ボタン押下げ後の処理を終了)。
図15は、ペアリング済みのときに実施されるアドレス衝突検出処理についてのフローチャートである。具体的には、図15は、ZigBeePROの場合に行なわれる処理を処理である。図15を参照して、ステップS302において、タップ1004のCPU2121(図5参照)は、ショートアドレスが衝突しているか否かを検出する。CPU2121は、ステップS302においてNOの場合、アドレス衝突検出処理を終了する。CPU2121は、ステップS302においてYESの場合、ステップS304において、タップ1004のショートアドレスを変更する。ステップS306において、CPU2121(より詳しくは、ZigBeeプロトコルスタック3402(図7参照))は、デバイスアンスをブロードキャストで送信する。
図16は、ペアリング済みのときに繰り返し実施されるパケット受信処理についてのフローチャートである。図16を参照して、ステップS402においてCPU2121は、レポート開始指令を受信したか否かを判断する。CPU2121は、ステップS402においてYESの場合、ステップS410において指定された条件でレポートを送信し、パケット受信処理を終了する。CPU2121は、ステップS402においてNOの場合、処理をステップS404に進める。
ステップS404において、CPU2121は、レポート停止指令を受信したか否かを判断する。CPU2121は、ステップS404においてYESの場合、ステップS412において、レポート送信を停止する。CPU2121は、ステップS404においてNOの場合、パケット受信処理を終了する。
図17は、本発明の実施の形態に従うタップ側のパケット受信処理について説明するフロー図である。
図17を参照して、まず、ステップS406にて、初期化フラグの設定指令を受信したかどうかを判断する。
ステップS406においてYESと判断した場合、初期化フラグをセットする(NVRAMのコンフィグ情報に書き込む)(ステップS414)。
そして、当該設定指令に対する応答を送信する(ステップS416)。
そして、処理を終了する(パケット受信処理終了)。
また、ステップS406においてNOと判断した場合には、続いて、ステップS408にて、遅延リセット指令を受信したかどうかを判断する。
ステップS408においてYESと判断した場合には、指定された時間経過後にリセットするようにタイマー予約する(ステップS418)。
そして、当該リセット指令に対する応答を送信する(ステップS420)。その後、タイマー満了になればタップ1004自身をリセットする(つまり再起動する)。
そして、処理を終了する(パケット受信処理終了)。
また、ステップS408においてNOと判断した場合には、処理を終了する(パケット受信処理終了)。
当該処理により、タイマー満了後にリセットされて、初期化フラグが設定されているので、タップ1004のNVRAMに書込みされているコンフィグ情報とネットワーク情報を工場出荷時の初期値に戻す処理が実行される。
本実施の形態に従うリーブ処理においては、中継器1001のプッシュボタン1108を押下した際に、中継器1001のスライドスイッチ1109がLEAVE位置にある場合には、リーブモードが開始される。また、ジョイン済みであるタップ1004の設定ボタンを押下すると、タップ1004からデバイスアンスがユニキャストで中継器1001に送信される。中継器1001は、中継器がリーブモードの時に、デバイスアンスをユニキャストで受信すると、当該デバイスアンスの送信元であるデバイスのアドレスを指定してリーブ処理を開始する。
中継器1001のリーブ処理の開始により、中継器1001から指定されたデバイスに対して初期化フラグの設定指令が送信される。指定されたデバイスは、当該指令に従ってコンフィグ情報の一部である初期化フラグをセットする。そして、中継器1001は、指定されたデバイスからの初期化フラグの設定指令に対する応答があった場合に、遅延リセット指令を指定されたデバイスに送信する。指定されたデバイスには、遅延リセット指令を受けてタイマー満了後にリセットする。再起動後、コンフィグ情報の一部である初期化フラグに従ってNVRAMに書込みされているコンフィグ情報とネットワーク情報を工場出荷時の初期値に戻す処理を実行する。また、指定されたデバイスは、遅延リセット指令を受信した旨の応答を中継器1001に送信する。中継器1001は、指定されたデバイスから遅延リセット指令を受信した旨の応答を受信した場合に、指定されたデバイスに関するデバイス情報をアソシエートデバイスリストから削除する。
したがって、リーブモードにおいて、中継器1001は、タップ1004からのデバイスアンスに従ってリーブ処理するタップ1004を特定する。そして、中継器1001は、初期化フラグの設定指令を送信し、応答があった場合に、遅延リセット指令を送信する。当該流れによりタップ1004のネットワーク情報およびコンフィグ情報は、工場出荷時の状態にリセットされる。また、タップ1004からの遅延リセット指令に対する応答があった場合に、中継器1001においてネットワークにおいて通信接続に必要なネットワーク情報およびコンフィグ情報等の設定情報を削除する。それゆえ、制御装置と各タップとの間で互いに齟齬がないように情報の遣り取りを確認し、確認できた場合に、タップと中継器との間でともに、通信接続に必要な設定情報が削除されるため、いずれか一方の装置に情報が残って、ネットワーク上に無用なトラフィックが生じる可能性を排除することができる。
すなわち、中継器1001においてリーブモードを開始させ、タップの設定ボタンを押下するという簡便な操作で、制御装置と各タップとの間で互いに齟齬がないように各タップをネットワークから離脱させることが可能である。
なお、図14のステップS208にて、デバイスアンスを(コーディネータに対して)ユニキャストで送信しているが、ここで、デバイスアンスをユニキャスト送信することに特段の設計意図はない。デバイスアンス以外に何らかのパケット(ボタンが押されたことを明示的、あるいは、暗黙的に示すようなパケット)を送信してもよい。この場合、図28もそれに合わせた構成とする。なお、デバイスアンスを送信している理由は、ZigBeeにおいては、ノードに何らかの状態変更があった場合にデバイスアンスをブロードキャストで送信することが一般的であるからである。
図18は、本発明の実施の形態に従うタップ1004における設定ボタンの長押しの場合の処理について説明するフロー図である。当該処理は、主にCPU2121における処理である。
図18を参照して、設定ボタンの押下げ(長押し)が受け付けられた場合に、当該処理(設定ボタン押下げ(長押し)後の処理)が開始する。そして、まず、自身がネットワークから切り離し(離脱)することを宣言するネットワーク離脱宣言信号を送信する(ステップS502)。具体的には、NLME-LEAVE.request(DeviceAddress=NULL)をブロードキャストで送信する。
当該信号を受信した他のノードは、当該離脱宣言したノードに関する情報を削除する。
次に、初期化フラグをセットする(ステップS504)。具体的には、NVRAMのコンフィグ情報に書き込む。
そして、所定時間経過後にリセットするようにタイマー予約する(ステップS506)。なお、所定時間は一例として200msである。
そして、処理を終了する(設定ボタン押下げ(長押し)後の処理終了)。
当該処理においては、タップ1004の設定ボタン2106を長押しすることによって、初期化フラグが設定されるとともに、リセット指令が受け付けられ、当該タップ1004を工場出荷時等の初期状態に戻して設定するリセット処理(再設定処理)が実行される。それとともに、当該タップ1004についてネットワークから離脱することを要求する離脱宣言信号を中継器1001に送信する。
(f4.中継器1001における制御構造)
図19は、本発明の実施の形態に従うタップ1004から送信されたネットワーク離脱宣言信号を受信した場合の処理を説明するフロー図である。
図19を参照して、中継器1001は、タップ1004からの離脱宣言信号を受信したか否かを判断する(ステップS510)。
ステップS510において、タップ1004からの離脱宣言信号を受信した場合(ステップS510においてYES)にアソシエートデバイスリストから当該ネットワーク離脱宣言をしたデバイス(タップ)に関する情報を削除する(ステップS512)。
そして、処理を終了する(受信処理終了)。
また、ステップS510において、タップ1004からの離脱宣言信号を受信しない場合(ステップS510においてNO)には、処理を終了する(受信処理終了)。
当該処理により、ユーザがタップ1004のみを操作することによりタップ1004に登録されているネットワーク情報等のデータを初期化状態(工場出荷時等の状態)に戻した状態にリセット処理することができるのみならず、中継器1001側のリーブ処理も実行することが可能であるため、簡便に制御装置と各タップとの間で互いに齟齬がないように各タップをネットワークから離脱させることが可能である。
図20は、本発明の実施の形態に従う中継器1001のプッシュボタンの押下げ処理を説明するフロー図である。当該処理は、中継器1001のZigBeeマネージャ3121(制御部1101)によって実施される処理である。
図20を参照して、制御部1101は、まず、ステップS602にて、プッシュボタン1108が押下されたかどうかを判断する。
ステップS602においてNOと判断した場合には、処理を終了する(プッシュボタン押下げ処理終了)。
ステップS602においてYESと判断した場合には、ステップS604にて、スライドスイッチ1109がいずれの位置にあるかを判断する。
ステップS604において、スライドスイッチ1109がJOIN位置に位置すると判断した場合には、ジョインモード処理を実施する(ステップS606)。ジョインモード処理の詳細については後述する。
ステップS604において、スライドスイッチ1109がNOP位置に位置すると判断した場合には、何もしない(ステップS608)。
ステップS604において、スライドスイッチ1109がLEAVE位置に位置すると判断した場合には、リーブモード処理を実施する(ステップS610)。リーブモード処理の詳細については後述する。
そして、処理を終了する(プッシュボタン押下げ処理終了)。
図21は、本発明の実施の形態に従う中継器1001のジョインモード処理について説明するフロー図である。当該処理は、中継器1001のZigBeeマネージャ3121(制御部1101)によって実施される処理である。
図21を参照して、ジョインモード処理が開始された場合、制御部1101は、まず、ローカルノードである無線RF内蔵通信コントローラ部1106に対してジョイン許可60秒間の指令を通知する(ステップS700)。ジョイン許可60秒間の指令とは、60秒間だけローカルノードをジョイン許可状態に設定することを意味する。具体的には、NLME-PERMIT-JOINING.Request(引数:PermitDuration=60)をローカルノードに通知する。
次に、ステップS702にて、当該通知が成功したかどうかを判断する。具体的には、当該通知を無線RF内蔵通信コントローラ部1106が正常に受け付けたかどうかを判断する。ステップS702においてYESと判断した場合には、中継器1001をジョインモードに設定する(ステップS704)。なお、この場合に、中継器1001のLEDを普通点滅させてモードの変更をユーザに通知する。中継器1001をジョインモードに設定している場合におけるリモートノードからの信号の受信処理の詳細については後述する。
次に、ステップS706にて、60秒が経過した、または、スライドスイッチの位置がJOIN位置から外れたかどうかを判断する。ステップS706においてNOと判断した場合、当該状態を維持する。すなわち、ジョイン許可状態を維持する。
ステップS706においてYESと判断した場合、ローカルノードに対してジョイン禁止の指令を通知する(ステップS708)。具体的には、制御部1101は、ローカルノードである無線RF内蔵通信コントローラ部1106に対してジョイン禁止の指令を通知する。具体的には、NLME-PERMIT-JOINING.Request(引数:PermitDuration=0)をローカルノードに通知する。
そして、中継器1001を通常モードに設定する(ステップS710)。なお、この場合に、中継器1001のLEDを普通点滅から消灯させてモードの変更をユーザに通知する。また、制御部1101は、無線RF内蔵通信コントローラ部1106に対するジョイン禁止状態(NLME-PERMIT-JOINING.Request)の通知が成功したか失敗したかに係らず当該モードに設定する。
そして、処理を終了する(ジョインモード処理終了)。
一方、ステップS702においてNOと判断した場合には、処理を終了する(ジョインモード処理終了)。
図22は、本発明の実施の形態に従う中継器1001のローカルノードにおけるリモートノードからの信号の受信処理を説明するフロー図である。当該処理は、中継器1001のZigBeeプロトコルスタック3112(無線RF内蔵通信コントローラ部1106)によって実施される処理である。
図22を参照して、まず、無線RF内蔵通信コントローラ部1106は、ステップS730にて、ビーコン・リクエストを受信したかどうかを判断する。そして、ステップS730においてYESと判断したには、ビーコンを送信する(ステップS732)。そして、ビーコン・リクエストに関する受信処理は終了する。
次に、ステップS730においてNOと判断した場合には、ステップS734にて、アソシエーション要求を受信したかどうかを判断する。
ステップS734においてYESと判断した場合には、ステップS736にて、自身がジョイン許可中であるかどうかを判断する。
ステップS736においてYESと判断した場合には、ステップS738にて、アソシエートデバイスリストに追加可能かどうかを判断する。例えば、追加した場合に、リストに登録可能な個数を超えるかどうかを判断する。超えない場合には追加可能であると判断する。
ステップS738においてYESと判断した場合には、新規デバイスにショートアドレスを割り当てる(ステップS740)。
そして、次に、アソシエートデバイスリストに新規デバイスのデバイス情報を追加する(ステップS742)。デバイス情報としてIEEEアドレス、ショートアドレス、ノード関係などを登録する。
次に、アソシエーション応答(成功)をアソシエーション要求の送信元に対して送信する(ステップS744)。アソシエーション応答(成功)には、割り当てたショートアドレスなどが含まれる。
そして、処理を終了する(受信処理終了)。
なお、ステップS734においてNOと判断した場合、ステップS736においてNOと判断した場合、あるいは、ステップS738においてNOと判断した場合には、処理を終了する(受信処理終了)。
図23は、本発明の実施の形態に従う中継器1001のリーブモード処理について説明するフロー図である。当該処理は、中継器1001のZigBeeマネージャ3121(制御部1101)によって実施される処理である。
図23を参照して、リーブモード処理が開始された場合、制御部1101は、中継器1001をリーブモードに設定する(ステップS720)。なお、この場合に、中継器1001のLEDを高速点滅させてモードの変更をユーザに通知する。後述するがタップ1004の設定ボタンが押下されればデバイスアンスをコーディネータ(ショートアドレス=0x0000)に対してユニキャスト送信するものとする。中継器1001は、デバイスアンスを受信した場合、後述するように、デバイスアンス受信処理を開始する。なお、中継器を「リーブモードに設定する」というのは、ZigBeeマネージャ3121内部で閉じた話である。ローカルノードに何らかの指令を出すわけではない。
次に、ステップS722にて、60秒が経過した、あるいは、スライドスイッチの位置がLEAVE位置から外れたかどうかを判断する。
ステップS722においてNOと判断した場合には、リーブモードを維持する。
ステップS722においてYESと判断した場合には、中継器1001を通常モードに設定する(ステップS724)。なお、この場合に、中継器1001のLEDを高速点滅から消灯させてモードの変更をユーザに通知する。
そして、処理を終了する(リーブモード処理終了)。
図24は、定期的(たとえば3分間隔)で実施される全生存ノードPING応答確認処理についてのフローチャートである。なお、ノードの電源情報(図8参照)の初期値は、“Powered”である。PINGは、具体的には、IEEE_addr_reqである。宛先アドレスをショートアドレスで指定する。
ステップS800において、中継器1001のZigBeeマネージャ3121は、ZigBeeマネージャ3121の管理するノードのうち生存情報が生存であるノードに対して、PINGを送信する。ステップS802において、ZigBeeマネージャ3121は、ノードからPING応答があれば、ZigBeeマネージャ3121の管理するノード情報において「最後に受信した時刻」を更新する。ステップS806において、ZigBeeマネージャ3121は、当該ノードの電源情報は“unplugged”にセットされているか否かを判断する。
ZigBeeマネージャ3121は、ステップS806においてYESの場合、ステップS808において、ノード状態変化を通知する。なお、通知理由は、「ノード電源が投入された」である(図9参照)。ステップS810において、ZigBeeマネージャ3121は、当該ノードの電源情報を“powered”にセットする。
ZigBeeマネージャ3121は、ステップS806においてNOの場合、ステップS804において、ZigBeeマネージャ3121の管理するノード情報のうちの生存ノードにおいて、電源情報が”powered”にセットされており、「最後に受信した時刻」が現在時刻から所定期間を差し引いた時刻よりも前のノードがあるか否かを判断する。なお、所定期間は、たとえば10分とする。要するに、ZigBeeマネージャ3121は、定期的にPINGを送って、しばらく応答を返さなかったノードがあれば、当該ノードは電源を抜かれた(給電停止)ものと判断する。
ZigBeeマネージャ3121は、ステップS804においてNOの場合、全生存ノードPING応答確認処理を終了する。ZigBeeマネージャ3121は、ステップS804においてYESの場合、ステップS812において、ノード状態変化を通知する。なお、通知理由は、「ノードの電源が抜かれた」である(図9参照)。ステップS814において、ZigBeeマネージャ3121は、当該ノードの電源情報を“unplugged”にセットする。
図25は、デバイスアンスを受信したときに実施されるデバイスアンス受信処理につていのフローチャートである。図26は、ZigBeeマネージャ3121がデバイスアンスを受信したときに、どのような動作をすべきかを表した図である。図25のフローチャートは、図26に示した図の内容に基づいたものである。
なお、一般的に、ZigBeeノードは、パケットを受信したとき、それをユニキャストで受信したか、ブロードキャストで受信したかの区別を付けることができる。
また、デバイスアンスのペイロードを解析すると、送信元ノードのIEEEアドレス、ショートアドレス、MAC能力が分かる。
図25を参照して、ステップS900において、ZigBeeマネージャ3121は、デバイスアンスを受信すると、ノード管理情報を参照して、”当該ノード(デバイスアンスの送信元ノードの意味)が存在しないか行方不明であるか、または、当該ノードが生存するがショートアドレスが異なる”か否かを判断する。
ZigBeeマネージャ3121は、ステップS900においてYESと判断した場合、ステップS908においてアソシエートサーチを実行する。アソシエートサーチの詳細については、図27に基づいて説明する。ZigBeeマネージャ3121は、ステップS900においてNOと判断した場合、ステップS902において、“当該デバイスアンスをユニキャストで受信し、当該ノードがノード管理情報で生存しているノードであり、ショートアドレスの変更がなく、かつ中継器1001がリーブモード中でない”か否かを判断する。
ZigBeeマネージャ3121は、ステップS902においてYESの場合、ステップS910において、ノード状態変化を通知する。なお、通知理由は、「ノードのボタンが押された」である(図9参照)。ZigBeeマネージャ3121は、ステップS902においてNOの場合には、ステップS904において、“当該デバイスアンスをブロードキャストで受信し、当該ノードがノード管理情報で生存しているノードであり、かつショートアドレスの変更がない”か否かを判断する。
ZigBeeマネージャ3121は、ステップS904においてYESの場合には、ステップS912において、ノード状態変化を通知する。なお、通知理由は、「ノード電源が投入された」である(図9参照)。その後、ZigBeeマネージャ3121は、ステップS913において、当該ノードの電源情報を“powered”にセットする。ZigBeeマネージャ3121は、ステップS904においてNOの場合には、ステップS906において、“当該デバイスアンスをユニキャストで受信し、かつ中継器1001がリーブモード中である”か否かを判断する。
ZigBeeマネージャ3121は、ステップS906においてYESの場合には、ステップS914において、当該デバイスアンスの送信元アドレスを指定してリーブ処理を実行する。なお、当該リーブ処理の詳細については、図28に基づいて説明する。ZigBeeマネージャ3121は、ステップS906においてNOの場合には、デバイスアンス受信処理を終了する。
図27は、アソシエートサーチについてのフローチャートである。当該アソシエートサーチは、ZigBeeマネージャ3121が何らかの変化を検出したとき、または変化がなくても定期的(たとえば3分間隔)に実施される処理である。なお、アソシエートデバイスリストには、アソシエートされているノードのIEEEアドレス、ショートアドレス、ノード関係などが含まれる。
ステップS1000を参照して、ZigBeeマネージャ3121は、ローカルノードのアソシエートデバイスリストを取得する。ステップS1002において、ZigBeeマネージャ3121は、取得したアソシエートデバイスリストと、ZigBeeマネージャ3121が管理するノード情報とを比較する。ステップS1004において、ZigBeeマネージャ3121は、ノード管理情報で生存していないノード(新規ノード含む)が追加されたか否かを判断する。ZigBeeマネージャ3121は、ステップS1004においてYESの場合、ステップS1012において、ノード状態変化を通知する。なお、通知理由は、「ノードがネットワークにジョインした」である(図9参照)。
ZigBeeマネージャ3121は、ステップS1004においてNOの場合、ステップS1006において、ノード管理情報で生存しているノードが削除されたか否かを判断する。ZigBeeマネージャ3121は、ステップS1006においてYESの場合、ステップS1014において、ノード状態変化を通知する。なお、通知理由は、「ノードがネットワークからリーブした」である(図9参照)。
ZigBeeマネージャ3121は、ステップS1006においてNOの場合、ステップS1008において、ノード管理情報で生存しているノードのショートアドレスが変更されたか否かを判断する。ZigBeeマネージャ3121は、ステップS1008においてYESの場合、ステップS1016において、ノード状態変化を通知する。なお、通知理由は、「ノードのショートアドレスが変化した」である(図9参照)。
ZigBeeマネージャ3121は、ステップS1008においてNOの場合、ステップS1010において、ノード管理情報を更新する。具体的には、ZigBeeマネージャ3121の管理するノード情報をアソシエートデバイスリストに合わせる。そのうちの一つとして、ZigBeeマネージャ3121は、ノード管理情報における生存情報を更新する。ジョインを検出すれば当該ノードの生存情報を生存にセットし、リーブしたことを検出すれば当該ノードの生存情報を行方不明にセットする。
以上により、ZigBeeマネージャ3121は、アソシエートサーチを終了する。
図28は、本発明の実施の形態に従う中継器1001のリーブ処理について説明するフロー図である。当該処理は、中継器1001のZigBeeマネージャ3121(制御部1101)によって実施される処理である。
図28を参照して、まず、指定されたデバイスに対して初期化フラグの設定指令を送信する(ステップS1100)。初期化フラグとは、初期化状態(工場出荷時等の状態)に戻すことを規定するフラグをいう。初期化フラグの設定指令は、タップ1004に登録されているコンフィグ情報のデータの一部に対してフラグをセットすることを要求する指令である。当該フラグの設定の有無に応じてリセット後の起動処理は変更される。具体的には、初期化フラグがセットされていない場合の起動処理は、タップ1004に登録されているネットワーク情報等のデータが維持された状態で起動する。一方、初期化フラグをセットした場合の起動処理は、タップ1004に登録されているネットワーク情報等のデータを工場出荷時の初期値に戻した状態で起動する。
次に、ステップS1102にて、初期化フラグの設定指令の応答を受信したかどうかを判断する。
ステップS1102においてYESと判断した場合には、ステップS1104に進む。
ステップS1104において、指定されたデバイスに対して遅延リセット指令を送信する。遅延リセット指令とは、タップ1004が当該遅延リセット指令に対する応答を返すことを可能とするための処理期間を確保するために所定の遅延時間(一例として200ms)を指定して、当該遅延経過後にリセット処理の実行を指示する指令である。
次に、ステップS1106にて、当該リセット指令を送信したタップ1004から遅延リセット指令に対する応答を受信したかどうかを判断する。
ステップS1106においてYESと判断した場合には、ローカルノードのアソシエートデバイスリストから指定されたデバイスに関する情報を削除する(ステップS1108)。
具体的には、指定されたデバイスに関する情報(IEEEアドレス、ショートアドレス、ノード関係など)を削除する。
そして、処理を終了する(リーブ処理終了)。
一方、ステップS1102においてNOと判断した場合には、当該指令をタップ1004が確実に受信したかどうかが不明であるため処理を中断し、処理を終了する(リーブ処理終了)。
一方、ステップS1106においてNOと判断した場合、には、当該リセット指令をタップ1004が確実に受信したかどうかが不明であるため処理を中断し、アソシエートデバイスリストから削除することなく処理を終了する(リーブ処理終了)。
以上まとめると、応答を受信しない場合は、タップ1004がリーブされなかったと判断して、中継器1001におけるローカルノードのアソシエートデバイスリストから当該タップに関する情報を削除しない。応答を受信した場合は、タップ1004がリーブされたと判断して、中継器1001におけるローカルノードのアソシエートデバイスリストから当該タップに関する情報を削除する。このことにより、中継器1001とタップ1004との間で連携を保ってリーブ処理が行うことができる。
なお、ステップS1100とステップS1104とをまとめて1つのパケットとして指定を送信することも可能である。この場合、指定されたデバイスに対して、初期化フラグをセットするような指令と、遅延リセットするような指令の、両方の指令を含めた1つのパケットを送信する。
(f5.タブレット端末1008における制御構造)
図29は、リアルタイム表示モードを開始したときに実施されるUIアプリケーション3801の処理を示したフローチャートである。図29を参照して、ステップS1202において、UIアプリケーション3801は、ノード管理情報で生存しているタップ1004全てに対してレポート開始指令を送る。ステップS1204において、UIアプリケーション3801は、レポートを受信したか否かを判断する。
UIアプリケーション3801は、ステップS1204においてYESの場合、ステップS1210において、レポート内容(電力情報)に基づきリアルタイム表示を行なう。一例として、図11のような画面を更新する。UIアプリケーション3801は、ステップS1204においてNOの場合、ステップS1206において、ノード状態変化通知(通知理由=電源が投入された)を受信したか否かを判断する。
UIアプリケーション3801は、ステップS1206においてYESの場合、ステップS1212において、当該タップに対して、再度、レポート開始指令を送信する。UIアプリケーション3801は、ステップS1206においてNOの場合、ステップS1208において、リアルタイム表示モードが終了するか否かを判断する。つまり、UIアプリケーション3801は、タブレット端末1008がユーザからリアルタイム表示モードを終了するための指示を受け付けたか否かを判断する。
UIアプリケーション3801は、ステップS1208においてYESの場合、ステップS1214において、ノード管理情報で生存しているタップ全てに対してレポート停止指令を送信する。UIアプリケーション3801は、ステップS1208においてNOの場合、処理をステップS1204に進める。
UIアプリケーション3801は、ステップS1214の後、リアルタイム表示モードを終了する。
(f6.タブレット端末1008の機能ブロック)
図30は、タブレット端末1008の機能的構成を表した機能ブロック図である。図30を参照して、タブレット端末1008は、再設定部4802と、動作モード変更部4803と、受信部4804と、表示部4805とを備える。
動作モード変更部4803は、ユーザからの指示に基づき、動作モードを変更する。動作モード変更部4803は、タブレット端末1008の動作モードを、たとえば、非リアルタイム表示モードからリアルタイム表示モードに、あるいはリアルタイム表示モードから非リアルタイム表示モードに変更する。受信部4804は、中継器1001を介して、タップ1004からレポートを受信する。表示部4805は、受信したレポートに基づく電力情報の表示を行なう。つまり、表示部4805は、収集した電力情報を表示する。
(1)タブレット端末1008は、タップ1004を管理する中継器1001と通信する。タップ1004は、タブレット端末1008によって設定されたレポート条件に基づき、タップ1004に接続された家電における消費電力を表す電力情報を、中継器1001を介してタブレット端末1008に送信する。レポート条件は、タップ1004の揮発性メモリであるRAM2123に格納されている。
受信部4804は、さらに、タップ1004への給電が停止した後に当該給電が再開されたことに基づいてタップ1004から送信されるデバイスアンスに基づいたノード状態変化通知を中継器1001から受信する。再設定部4802は、上記ノード状態変化通知を取得したことに基づき、中継器1001を介して、タップ1004に対してレポート条件を再設定する。
したがって、タブレット端末1008は、タップ1004への給電が停止した場合であっても、タブレット端末1008に対して電力情報が通知されない期間を短くできる。さらに、タップ1004は、レポート開始指令を受信する度にレポート条件を揮発性のメモリ(RAM)に書き込めばよいため、レポート条件を不揮発性のメモリに書き込む場合に比べて、タップ1004におけるメモリの有効利用が可能となる。
(2)ところで、上記においては、タブレット端末1008の動作モードがリアルタイム表示モードとなった場合に、タブレット端末1008が各タップ1004に対してレポート条件を再設定する構成について説明した。しかしながら、タブレット端末1008が電力情報の表示を行なっていない場合であっても電力情報を収集している場合であれば、タップ1004に対してレポート条件を再設定するようにタブレット端末1008を構成してもよい。
このような構成の場合、タブレット端末1008は、以下のような構成であるといえる。タブレット端末1008は、電力情報を収集する第1の動作モード(たとえば、リアルタイム表示モード)と、電力情報を収集しない第2の動作モード(たとえば、非リアルタイム表示モード)とを備える。再設定部4802は、タブレット端末1008が第1の動作モードである場合に、タップ1004に対してレポート条件を再設定する。好ましくは、再設定部4802は、上記第1の動作モードにおいて電力情報が表示部4805に表示されている場合(つまり、リアルタイム表示モードである場合)に、タップ1004に対してレポート条件を再設定する。
当該構成によれば、タブレット端末1008は、電力情報が必要なときにのみ、タップ1004に対してレポート条件の再設定を行なう。このため、タブレット端末1008は、電力情報が必要でないときにレポート条件の再設定を行なう構成に比べて、ネットワークZにおけるトラフィックの量を低減できる。
(3)タブレット端末1008は、動作モードが第1の動作モードから第2の動作モードに切替わると、中継器1001を介して、タップ1004に対して電力情報の送信を停止させる。これにより、タブレット端末1008は、ネットワークZにおいて不要なトラフィックが発生することを抑止できる。
(f7.中継器1001の機能ブロック)
図31は、中継器1001の機能的構成を表した機能ブロック図である。図31を参照して、中継器1001は、受信部1201と、送信部1202と、転送部1203とを備える。1つのタップ1004に着目すれば、中継器1001の各部1201〜1203は、以下の処理を行なう構成であると言える。
受信部1201は、タップ1004から、レポートを受信する。また、受信部1201は、タップ1004の状態が変化したことに基づいて送信されるデバイスアンスを受信する。
送信部1202は、受信したレポートをタブレット端末1008に送信する。また、送信部1202は、デバイスアンスを受信したこと等に基づき、タブレット端末1008にノード状態変化通知を送信する。
転送部1203は、タブレット端末1008からレポート開始指令やレポート停止指令を受信したことに基づき、当該指令をタップ1004に転送する。
<G.変形例>
(g1.第1の変形例)
次に、中継器1001の代替構成について説明する。図32は、ネットワークZの制御装置としてタブレット端末を用いた場合における、ネットワークの概略構成を示した図である。具体的には、図32は、中継器1001、パーソナルコンピュータ1003、およびタブレット端末1008の代わりに、タブレット端末1009を用いたネットワークZの構成を示した図である。
図32を参照して、ネットワークZは、タブレット端末1009と、ワイヤレスブロードバンドルータ1002と、複数のタップ1004a,1004b,1004cと、複数の家電(エアーコンディショナ1005,冷蔵庫1006,テレビ1007など)とを備える。また、タブレット端末1009と、複数のタップ1004と、複数の家電1005〜1007とにより、低速無線通信ネットワークZを構成する。タブレット端末1009は、ワイヤレスブロードバンドルータ1002とWiFi等の高速無線通信により接続される。
図33は、タブレット端末1009のブロック図である。タブレット端末1009は、制御部1901と、操作部1902と、表示部1903と、高速通信インターフェイス部1904と、電源部1905と、低速無線通信モジュール1906と、アンテナ1907とを備える。
操作部1902は、操作キー、タッチセンサ等の入力デバイスである。表示部1903は、液晶ディスプレイ等の出力デバイスである。高速通信インターフェイス部1904は、ワイヤレスブロードバンドルータ1002との間で無線通信を行なうためのインターフェイスである。電源部1905は、制御部1901と低速無線通信モジュール1906とに電力を供給する。
制御部1901は、操作部1902、表示部1903と、高速通信インターフェイス部1904と、電源部1905と、低速無線通信モジュール1906とに接続されている。制御部1901は、タブレット端末1009の全体的な動作を制御する。制御部1901は、操作部1902からの入力を受け付ける。また、制御部1901は、表示部1903に出力指示を出す。
より詳しくは、制御部1901は、CPUと、RAMと、ROMと、UARTと、GPIOとで構成される。RAMと、ROMと、UARTと、GPIOとは、それぞれ、CPUに接続されている。
低速無線通信モジュール1906は、アンテナ1107と接続されている。低速無線通信モジュール1906は、低速無線通信ネットワークZにおける消費電力測定器との間の通信を制御する。低速無線通信モジュール1906は、CPUと、RAMと、ROMと、UARTと、GPIOと、無線RF(Radio Frequency)部で構成される。RAMと、ROMと、UARTと、GPIOとは、それぞれ、CPUに接続されている。
タブレット端末1009は、以上のような構成を有することにより、中継器1001とパーソナルコンピュータ1003とタブレット端末1008を用いた構成の場合と同様の効果を奏する。
(g2.第2の変形例)
タップ1004は、ユーザがタップ1004への給電をオン・オフできる電源スイッチを備えていてもよい。当該構成の場合には、電源スイッチが給電を停止する状態(オフ位置)となることにタップ1004への給電が停止した後に電源スイッチが給電を再開する状態(オン位置)となることによりタップ1004への給電が再開した場合にも、上述したようにタップ1004がコンセントから抜き差しされる場合と同様の処理を適用できる。
(g3.第3の変形例)
上記においては、パーソナルエリアネットワークとしてZigBeeを例に挙げて説明したが、これに限定されるものではない。パーソナルエリアネットワークとして、マルチホップをサポートするような他の通信方式にも適用することができる。
<H.付記>
次に、中継器1001のZigBeeマネージャ3121が、タップ1004のノード状態が変更したことを通知する構成について説明する。タブレット端末1008は、中継器1001からノード状態変更通知を受けることに基づいて、シーンに応じて適切な処理をする。
タップ1004のノード状態が変更された場合として、(1)ノードがネットワークにジョインした、(2)ノードがネットワークからリーブした、(3)ノードのショートアドレスが変化した、(4)ノードの電源が投入された、(5)ノードのボタンが押された、(6)ノードの電源が抜かれた、のような場合がある。ZigBeeマネージャ3121は、これらのノード状態変化を検出して、適切なノード状態変化通知を、他のアプリケーションに送信する。
参考までに、中継器1001のZigBeeマネージャ3121は、過去にアクセスがあったクライアントすべてに対して、ノード状態変化通知を送信する。ただし、あるクライアントからアクセスのない状態が3時間以上続いた場合には、ZigBeeマネージャ3121は当該クライアントがもう使われなくなったと判断して当該クライアントを削除する。
タブレット端末1008のUIアプリケーション3801は、ZigBeeマネージャ3121にアクセスする。よって、ZigBeeマネージャ3121は、当該UIアプリケーション3801からアクセスがあったことを覚えており、当該UIアプリケーション3801に対して、ノード状態変化通知を送信する。
図34は、新しいタップがネットワークに参加した場合に、タブレット端末1008のUIアプリケーション3801で表示される画面を説明するための図である。図34を参照して、UIアプリケーション3801は、新しいタップが参加したことを検出して気づきのポップアップを表示する。
つまり、設定されていないタップがあることをディスプレイ4021に表示することによって、ユーザに対して、当該タップの設定を行なうように促すのである。
当該表示処理は、中継器1001のZigBeeマネージャ3121が、タブレット端末1008のUIアプリケーション3801に対して、適切なノード状態変化(ノードがネットワークにジョインした)を通知することにより行なわれる。
図35は、タップを選択する方法を説明するための図である。後述するようにタップを選択するために、あるタップが画面上のどのタップに対応するかを容易に把握できるようにしたい。本実施例は、そのための手段を提供している。
図35を参照して、タップを選択するには2通りの方法がある。1つはタップ1004の電源を入れ直した場合である。もう1つは、タップ1004の設定ボタン2106を短押した場合である。いずれの場合でも、当該タップ1004からデバイスアンスが(ブロードキャストまたはユニキャストで)通知される。
中継器のZigBeeマネージャ3121は、デバイスアンスを受信すると、適切なノード状態変化(ノードの電源が投入された、または、ノードのボタンが押された)を、他のアプリケーションへ通知する。UIアプリケーション3801は、ノード状態変化の通知を受けると、タップの機器設定画面において、変化のあったタップ1004をハイライト表示させる。当該ハイライト表示によって、ユーザは、どのタップ1004がUIアプリケーション3801による画面上のどのタップに対応するかを容易に知ることができる。図36にタップが選択されて、ハイライト表示された画面を示す。図36では(同画面上における)2番のタップが選択されたことを示す。
図37は、各タップ1004と各家電とを紐付けする画面を示した図である。具体的には、図37は、図36における設定ボタンがユーザによって選択された後の状態を表した図である。
図36を参照して、選択されたタップ1004に対して、設定ボタンを押すことによって、紐付けをする家電を選択させるための入力受付画面(図37)を表示する。これにより、ユーザは、当該タップに紐付けする家電を選択することができる。なお、ユーザは画面上で任意のタップを選択することもできるし、先に述べたように、タップの設定ボタンを短押しすること(または、タップの電源を入れ直すこと)によっても選択することができる。
なお、上記においては、タブレット端末1008を例に挙げて説明しているが、タブレット端末1009を用いた図32の構成であっても、上記と同様の処理を行なわせることができる。
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。