以下で説明する実施形態に係る制御システム1は、選択部46と送信部48とを有する。選択部46は、複数の命令をノード10に送信する場合は、送信後に所定時間だけ応答を待機する電文で複数の命令を送信する第1送信形式、または、応答を待機する時間が所定時間よりも短い複数の電文で複数の命令を送信する第2送信形式を、ノード10との通信状態に基づいて選択する。送信部48は、選択した送信形式で、ノード10に命令を送信する。
また、制御システム1は、第1送信形式として、1つの電文に複数の命令を含める送信形式を選択し、第2送信形式として、1つの電文に1つの命令を含める送信形式を選択することを特徴とする。
また、制御システム1は、電文を送信するまでの通信履歴に基づいて、第1送信形式または第2送信形式を選択する。
また、制御システム1は、電文の送信先となるノード10との通信履歴に基づいて、ノード10との通信状態を判断する。
また、制御システム1は、ノード10との通信に用いる電波の強度に基づいて、ノード10との通信状態を判断する。
また、制御システム1は、ノード10の位置に基づいて、ノード10との通信状態を判断する。
また、制御システム1は、通信状態に基づいて、ノード10に電文を送信した際にタイムアウトが生じる可能性を特定し、特定した可能性に基づいて、ノード10との通信状態を判断する。
以下、図面を参照して、実施形態に係る制御装置、制御システムおよび制御方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する制御装置、制御システムおよび制御方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
ここで、以下の実施形態では、制御システムの一例である制御システムを説明するが、これ以外にも、ノードを制御する任意のシステムに適用することができる。ここで、ノードとは、家電装置等の電化製品であり、照明器具、空調装置、洗濯機、給湯器、電気錠、インターホン(ドアホン)などの生活家電、テレビジョンセット、テレビジョン録画機などのオーディオ・ビジュアル機器などであってもよい。また、ノードは、ゲーム機などのアミューズメント家電、パーソナルコンピュータなどの情報家電、太陽光発電関連機器などであってもよい。すなわち、ノードは、利用者の居住施設に付随する電化機器一般を含むものである。
(実施形態)
[制御システムの構成]
図1は、実施形態に係る制御システムの構成例を示す図である。図1に示した制御システム1は、例えば、宅内に設置されている家電等の制御や監視を実現するシステムであり、HEMSなどと呼ばれる。実施形態に係る制御システム1は、HEMS標準プロトコルのECHONET Liteが適用されているものとする。
この制御システム1には、図1に示すように、ホームネットワークシステム2と、ユーザ端末3と、管理サーバ4とが含まれる。ホームネットワークシステム2、ユーザ端末3および管理サーバ4は、インターネットやLAN(Local Area Network)等であるネットワーク5を介して、有線又は無線により通信可能に接続される。なお、制御システム1には、複数のホームネットワークシステム2や、複数台のユーザ端末3や、複数台の管理サーバ4が含まれてもよい。
ホームネットワークシステム2は、例えばユーザ宅内や店舗内などに構築され、スマートメータ101、家電102、家電103、コントローラ40、ユーザ端末30、アクセスポイント20、通信装置1001〜1003などを有する。
スマートメータ101は、例えばユーザ宅内の壁などに設けられ、各種ブレーカーを有し、家電102や家電103へ電力を供給する。家電102や家電103は、ユーザ宅内に設置されている電化製品である。例えば、家電102や家電103は、冷蔵庫、テレビ、エアコン、クッキングヒーター、暖房器具、給湯器、電気錠、インターホン(ドアホン)、照明器具、洗濯機などのいわゆる電化製品に該当する。
ECHONET Liteにおいて、このようなスマートメータ101、家電102及び103は、「ECHONETオブジェクト」などと呼ばれる。そして、各ECHONETオブジェクトには、設定値や状態といった属性が「ECHONETプロパティ」として定義される。このようなECHONETオブジェクトは、後述するコントローラ40から、アクセスポイント20を介して、「ECHONET Lite電文(以下、単に「電文」と表記する場合がある)」を受信することにより、ECHONETプロパティを書き込む処理や読み出す処理を行う。
例えば、ECHONETオブジェクトは、ECHONETプロパティに所定のプロパティ値を書き込む旨の書込命令が設定されている電文を受信した場合に、ECHONETプロパティに所定のプロパティ値を書き込む。これにより、ECHONETオブジェクトは、コントローラ40によって「電源のオン/オフ」や「動作モードの切り替え」などの各種制御が行われる。
また、例えば、ECHONETオブジェクトは、ECHONETプロパティに設定されているプロパティ値を読み出す旨の読出命令が設定されている電文を受信した場合に、ECHONETプロパティに設定されているプロパティ値をコントローラ40に送信する。これにより、ECHONETオブジェクトは、コントローラ40によって動作状況の監視などが行われる。
以下では、スマートメータ101、家電102及び103などのECHONETオブジェクトを区別する必要がない場合には、単に「ノード10」と表記し、ECHONETプロパティを単に「プロパティ」と表記する。
アクセスポイント20は、アクセスポイントとしての役割を担い、Bluetooth(登録商標)などの近距離無線技術や宅内LANを用いて、コントローラ40やユーザ端末30や通信装置1001〜1003との通信を中継する。
コントローラ40は、アクセスポイント20と接続され、各ノード10の制御を行う制御装置である。また、コントローラ40は、ホームネットワークシステム2を外部のネットワーク5に接続する通信機器であり、いわゆるゲートウェイとしても動作する。例えば、コントローラ40は、ホームネットワークシステム2内のアクセスポイント20と、ホームネットワークシステム2外のユーザ端末3や管理サーバ4とをネットワーク5を介して接続する。
かかるコントローラ40は、ユーザ端末30やユーザ端末3から入力された各種制御命令に基づいて、「プロパティ値の書き込み」や「プロパティ値の読み出し」といった命令が設定されている電文をノード10に送信したり、ノード10から受信した応答電文から得られる各種情報をユーザ端末30やユーザ端末3に送信したりする。なお、アクセスポイント20は、コントローラ40と一体となって形成されてもよい。
ユーザ端末30は、例えば、タブレット端末、PC(Personal Computer)、携帯電話機、PDA(Personal Data Assistance)などであり、無線LAN(Local Area Network)や有線LANなどを介してアクセスポイント20に接続される。かかるユーザ端末30は、ユーザ操作に従ってノード10に対する制御命令をアクセスポイント20に送信したり、アクセスポイント20から受信したノード10に関する各種情報を表示したりする。
通信装置1001〜1003は、ノード10とコントローラ40との間で送受信される電文を中継する。図1の例の場合、通信装置1001は、スマートメータ101とアクセスポイント20との間に設置され、通信装置1002は、家電102とアクセスポイント20との間に設置され、通信装置1003は、家電103とアクセスポイント20との間に設置される。なお、以下では、通信装置1001〜1003を区別する必要がない場合には、単に「通信装置100」と表記する場合がある。家電10が通信装置100の機能を有する場合は、家電10と通信装置100が一体であってもよい。
このように、ホームネットワークシステム2を利用するユーザは、ユーザ端末30を用いることで、コントローラ40を介してノード10を制御することができる。例えば、ユーザ端末30がスマートフォン等の携帯電話機である場合、ユーザは、宅内で携帯電話機を操作するだけで、ノード10の動作を制御したり、ノード10の動作状況を監視したりすることができる。
また、図1において、ホームネットワークシステム2の外部に示したユーザ端末3は、例えば、携帯電話機、PDA、タブレット端末、PCなどであり、無線LANや有線LANなどを介してネットワーク5に接続される。かかるユーザ端末3は、ユーザ端末30と同様に、ユーザ操作に従ってノード10に対する制御命令を管理サーバ4に送信したり、管理サーバ4から受信したノード10に関する各種情報を表示したりする。なお、ユーザ端末3は、ユーザ端末30と同一の端末装置であってもよい。
管理サーバ4は、ネットワーク5を介してユーザ端末3から受信した各種制御命令をコントローラ40に送信する。これにより、コントローラ40は、ホームネットワークシステム2の外部に位置するユーザ端末3から送信された制御命令に基づいて、ノード10を制御する。
また、管理サーバ4は、ネットワーク5を介してコントローラ40から受信したノード10に関する各種情報をユーザ端末3に送信する。これにより、ユーザ端末3は、ホームネットワークシステム2内に設置されているノード10に関する各種情報を表示する。このように、ユーザ端末3のユーザは、ホームネットワークシステム2内に所在しない場合であっても、ノード10を制御することや、ノード10の動作状況を監視したりすることができる。
このような制御システム1では、コントローラ40からノード10に対して制御命令を含む電文を送信することで、ノード10を制御する。かかる電文には、1つ又は複数の制御命令を含めて送信することができるが、通信先となるノードの種別と、送信する制御命令の数とに応じて、応答を待機する時間(以下、タイムアウト時間と記載する場合がある)が規定されている。一般に、複数の制御命令を含む電文には、1つの制御命令を含む電文よりも長いタイムアウト時間が規定されている。
ここで、ノード10とコントローラ40との間の通信状態が良い場合には、制御命令を個別に送信するよりも、全ての制御命令を1つの電文に含め、一括して送信した方が効率的な通信を実現できる。しかしながら、通信装置100とアクセスポイント20との間の無線の電波強度が弱い場合や、他の機器によるノイズが生じた場合等、通信障害が発生し、パケットロスが発生するような場合には、コントローラ40が応答を受信できず、タイムアウトが生じる場合がある。
このような場合には、コントローラ40は、タイムアウト値だけ待機しなければならないため、命令を一括で送信するよりも、個別に送信した方が効率的に通信を行うことができる。そこで、実施形態に係るコントローラ40は、以下に説明する制御処理を実行することで、効率的な通信を実現する。
[コントローラの構成]
図2は、実施形態に係るコントローラの機能構成の一例を示すブロック図である。図2に示すように、実施形態に係るコントローラ40は、通信部41と、記憶部42と、制御部43とを有する。
通信部41は、無線通信処理や有線通信処理を行う。例えば、通信部41は、図1に示したノード10との間で、無線通信又は有線通信により電文等の各種情報を送受信する。また、通信部41は、いわゆるゲートウェイとしての機能を有し、ホームネットワークシステム2で用いられる通信プロトコルとネットワーク5で用いられる通信プロトコルとの変換を行う。
記憶部42は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子等の記憶装置によって実現される。かかる記憶部42は、図3および図4に示すような、判定テーブル42aとログテーブル42bとを有する。
判定テーブル42aは、ノードと電文に含める制御命令の数ごとに、規定されたタイムアウト時間の値を対応付けて記憶する。例えば、図3は、実施形態に係る判定テーブルに登録される情報の一例を示す図である。図3に示す例では、判定テーブル42aには、「機器」、「条件」、「タイムアウト値」、「サポートOPC(処理対象プロパティカウンタ)数」、「接続形態」等が対応付けて登録されている。
ここで、図3の「機器」とは、電文送信先のノードが何であるかを示す情報であり、例えば、スマートメータ、エアコン、太陽光発電、蓄電池、給湯器、燃料電池、照明等といった、電文の送信先となる家電装置の情報が登録される。また、「条件」とは、どのタイムアウト時間を採用するかを判定するための条件であり、1つの電文に含める制御命令の数が格納される。例えば、条件として格納された「OPC=1」とは、1つの電文に1つの制御命令が含まれている旨を示し、「OPC≧2」とは、1つの電文に2つ以上の制御命令が含まれている旨を示す。また、「EPC(アクセス先プロパティ)に履歴要求無し」とは、後述するように、電文に含まれる「EPC」に電力使用履歴を要求する情報が含まれていない旨を示す。
また、「タイムアウト値」とは、タイムアウト時間の値であり、「20秒」や「60秒」といった値が格納される。また、「サポートOPC数」とは、対応付けられた機器が1つの電文で最低限受信可能な制御命令の数である。また、「接続形態」とは、対応付けられた機器とコントローラ40とが一対一もしくは一対多のどちらで接続されているかを示す情報である。
例えば、図3に示す例では、「スマートメータ」に対して、1つの制御命令が含まれ、かつ、EPCに履歴要求が含まれない電文を送信する場合は、送信後から「20秒」の間、応答を待機する旨を示す。また、図3に示す例では、「スマートメータ」に対して、2つの制御命令が含まれる電文を送信する場合、若しくは、EPCに履歴要求が含まれる電文を送信する場合は、送信後から「60秒」の間、応答を待機する旨を示す。なお、図3に示す条件やタイムアウト値は、あくまで一例であり、規則等で家電装置ごとに規定された内容に基づいて、異なる値を設定してもよく、ホームネットワークシステム2の構成等に応じた値が設定されていてもよい。
図4は、実施形態にかかるログテーブルに格納される情報の一例を示す図である。ログテーブル42bには、ノード10との間の通信履歴が登録されている。図4に示す例では、ログテーブル42bには、「通信先」、「時刻」、「結果」が対応付けて格納される。「通信先」とは、コントローラ40との通信先を示す情報であり、「スマートメータ」や「エアコン#1」等といった通信先を示す情報が登録される。「時刻」は、対応付けられた通信先に電文を送信した時刻を示す情報である。「結果」とは、通信の結果を示す情報であり、対応付けられた時刻に送信した電文に対して応答があったか否か、リトライを行ったか否か等の情報が登録される。
例えば、図4に示す例では、ログテーブル42bは、通信先「スマートメータ」に対して時刻「10:00:52」に送信した電文に対し、タイムアウト時間が経過する前に応答があった旨を示す。また、ログテーブル42bは、通信先「エアコン#1」に対し、時刻「10:15:25」および「10:16:25」に送信した電文に対し、タイムアウト時間が経過する前に応答を受信できず、リトライを行った旨を示す。また、ログテーブル42bは、通信先「エアコン#1」に対し、時刻「10:17:25」に送信した電文に対し、タイムアウト時間が経過する前に応答があった旨を示す。なお、図4に示す例以外にも、例えば、ログテーブル42bには、電文を各ノードから受信した際の時刻等を示す履歴が含まれていてもよい。
図2の説明に戻って、制御部43は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。また、制御部43は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置(例えば、記憶部42)に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。かかる制御部43は、受信部44、表示制御部45、選択部46、生成部47、および送信部48を有する。
受信部44は、管理サーバ4から制御命令を受信し、ノード10から応答を含む電文を受信する。例えば、受信部44は、管理サーバ4からノード10に送信する制御命令を受信すると、受信した制御命令を選択部46に出力する。また、受信部44は、ノード10から応答を含む電文を受信すると、受信した電文に含まれる応答を表示制御部45に出力するとともに、応答があった旨を送信部48に出力する。
表示制御部45は、受信部44から受信した応答の内容をユーザ端末30に表示させるための情報を生成する。例えば、表示制御部45は、利用者の操作に従って、スマートメータ101の瞬間電力使用量と積算電力使用量とを取得するための画面を生成する。
また、表示制御部45は、各制御命令に対する応答として、スマートメータ101の瞬間電力使用量と積算電力使用量とを受信部44から受信した場合は、受信したノード10の瞬間電力使用量と積算電力使用量とを表示する画面を生成する。そして、表示制御部45は、通信部41を介して、生成した各画面をユーザ端末30に送信する。
選択部46は、複数の制御命令をノード10に送信する場合は、コントローラ40と各ノード10との通信状態に基づいて、制御命令の送信形式を選択する。具体的には、選択部46は、受信部44や表示制御部45から送信対象となる制御命令を複数受信した場合は、1つの電文で複数の制御命令を送信する第1送信形式、または、タイムアウト時間が第1送信形式で送信する電文よりも短い複数の電文で制御命令を送信する第2送信形式のいずれかを選択する。その後、選択部46は、受信部44や表示制御部45から受信した制御命令を生成部47に出力するとともに、選択した送信形式を生成部47に通知する。
例えば、選択部46は、ノード10に送信する複数の制御命令を受信すると、ログテーブル42bを参照し、それまでの通信履歴を参照する。また、選択部46は、ログテーブル42bに登録された通信履歴に基づいて、ノード10に電文を送信した際にタイムアウトが生じる可能性を算出する。
そして、選択部46は、算出した可能性が所定の閾値よりも低い場合には、タイムアウト値がより長い電文を送信する第1送信形式を選択する。一方、選択部46は、算出した可能性が所定の閾値よりも高い場合は、タイムアウト値がより短い電文を繰り返し送信する第2送信形式を選択する。
以下、選択部46が実行する処理の具体例を説明する。例えば、選択部46は、スマートメータ101の瞬間電力使用量を取得するための制御命令と積算電力使用量を取得するための制御命令とを表示制御部45から受信する。かかる場合、選択部46は、判定テーブル42aを参照し、スマートメータ101に電文を送信する際の条件とタイムアウト値を参照する。
図3に示す例では、判定テーブル42aには、「OPC=1かつEPCに履歴要求無し」の電文を送信する際のタイムアウト値が「20秒」であり、「OPC≧2またはEPCに履歴要求あり」の電文を送信する際のタイムアウト値が「60秒」である旨が登録されている。一方で、本例で送信する制御命令の数は2つであり、履歴要求は含まれていない。そこで、選択部46は、瞬間電力使用量を取得するための制御命令と積算電力使用量を取得するための制御命令とを両方含む電文を1つ送信する形式を第1送信形式として特定し、各制御命令をそれぞれ個別に含む2つの電文を順に送信する形式を第2送信形式として特定する。
また、選択部46は、ログテーブル42bを参照し、スマートメータ101との通信でタイムアウトが生じる可能性を算出する。ここで、可能性の算出方法としては、任意の方法が適用可能であるが、例えば、全てのノード10との通信回数のうち応答を受信した回数の割合、電文の送信先となるノード10との通信回数のうち応答を受信した回数の割合、直近の時間帯における通信のうち応答を受信した回数の割合、パケットロスが生じた割合等をタイムアウトが生じる可能性として採用可能である。
例えば、図4に示す例では、ログテーブル42bには、スマートメータ101との通信履歴が1つであり、係る履歴には「応答あり」が対応付けて登録されている。このような例では、スマートメータ101とコントローラ40との間の通信状態が良好であると予測されるため、選択部46は、制御命令の送信形式として、リトライ時間が長いが制御命令を効率的に送信可能な第1送信形式を選択する。そして、選択部46は、スマートメータ101に送信する制御命令を生成部47に出力するとともに、第1送信形式を生成部47に通知する。
生成部47は、選択部46から通知された送信形式で各制御命令を送信するための電文を生成する。例えば、生成部47は、選択部46からスマートメータ101に送信する2つの制御命令を受信するとともに、両方の制御命令を含む電文を1つ送信する第1送信形式の通知を受信する。かかる場合、生成部47は、スマートメータ101に送信する2つの制御命令を両方とも含む1つの電文、すなわち、タイムアウト値が「60秒」である1つの電文を生成し、生成した電文を送信部48に出力する。
一方、生成部47は、選択部46からスマートメータ101に送信する2つの制御命令を受信するとともに、各制御命令を個別の電文に含める第2送信形式の通知を受信した場合は、各制御命令を個別に含む2つの電文を生成し、生成した2つの電文を送信部48に出力する。
[生成部が生成する電文の一例]
以下、図5、図6を用いて、生成部47が生成する電文の一例について説明する。図5は、実施形態にかかるコントローラが第1送信形式で送信する電文の一例を示す図である。図5には、コントローラ40から出力する電文D10として、m個の制御命令を含む電文のフォーマットを示した。
図5の上段に示すように、電文D10には、「EHD1」、「EHD2」、「TID」、「SEOJ」、「DEOJ」、「ESV」、「OPC」、「EPC1」、「PDC1」、「EDT1」、・・・、「EPCm」、「PDCm」、「EDTm」といった項目が含まれる。
「EHD1」及び「EHD2」は、ECHONET Lite電文のヘッダを示し、プロトコル種別等が設定される。「TID」は、電文を識別するための識別子を示す。かかる「TID」は、ECHONET Lite通信において、送信側(例えば、アクセスポイント20)が、電文と応答電文とを紐付ける際に用いる。「SEOJ」は、送信元ECHONETオブジェクトを識別するための識別子を示す。「DEOJ」は、送信先ECHONETオブジェクトを識別するための識別子を示す。
「ESV」は、ECHONET Liteサービスを示す。例えば、電文D10に含まれる命令が「プロパティ値の書き込み」である場合、「ESV」には「0x61」が設定され、電文D10に含まれる命令が「プロパティ値の読み出し」である場合、「ESV」には「0x62」が設定される。
「OPC」は、処理対象プロパティカウンタを示し、電文D10に含まれる命令数に該当する。具体的には、「OPC」には、「プロパティ値の書き込み対象となるプロパティの数」や「プロパティ値の読み出し対象となるプロパティの数」として、後段の「EPC」、「PDC」及び「EDT」の組合せの数が設定される。
「EPC」、「PDC」及び「EDT」は、1個の制御命令に該当する。このうち、「EPC」は、ECHONET Liteプロパティを示す。「PDC」は、後段の「EDT」のバイト数を示す。「EDT」は、ECHONET Liteプロパティの値を示す。
このように、第1送信形式で送信する電文D10には、「EPC」、「PDC」及び「EDT」の組合せがm個存在するので、制御命令がm個含まれている。生成部47は、選択部46が第1送信形式を選択した場合は、図5に示すように、各制御命令を含む1つの電文D10を生成し、生成した電文D10を送信部48に出力する。
一方、図6は、実施形態にかかるコントローラが第2送信形式で送信する電文の一例を示す図である。図6に示すように、生成部47は、第2送信形式で複数の制御命令を送信する場合には、各制御命令をそれぞれ異なる電文に含めて送信する。例えば、生成部47は、2つの制御命令を送信する場合、一方の制御命令を含む電文D11と、他方の制御命令を含む電文D12とを生成し、生成した電文D11、D12を送信部48に出力する。
送信部48は、制御命令を、選択部46が選択した送信形式で送信する。例えば、送信部48は、生成部47から第1送信形式で送信される電文D10を受信すると、電文D10をノード10に送信するとともに、送信してから規定されたタイムアウト時間である「60秒」の間、応答の受信を待機する。
そして、送信部48は、タイムアウト時間が経過するまでの間に、受信部44から応答があった旨を受信した場合は、ログテーブル42bに通信先、電文D10の送信時刻、および結果「応答あり」を対応付けて格納し、処理を終了する。一方、送信部48は、タイムアウト時間が経過するまでの間に、受信部44から応答があった旨を受信しなかった場合は、ログテーブル42bに通信先、電文D10の送信時刻、および結果「リトライ」を対応付けて格納するとともに、電文D10を再送信する。
また、送信部48は、生成部47から第2送信形式で送信される電文D11、D12を受信すると、電文D11をノード10に送信するとともに、送信してから規定されたタイムアウト時間である「20秒」の間、応答の受信を待機する。そして、送信部48は、タイムアウト時間が経過するまでの間に、受信部44から応答があった旨を受信した場合は、電文D12の送信を開始する。
[コントローラが実行する処理の一例]
次に、図7〜図10を用いて、コントローラ40が実行する処理の一例を説明する。図7は、コントローラが表示する使用電力量表示画面の一例を示す図である。例えば、コントローラ40は、ユーザ端末30に、図7に示すような使用電力量表示画面を送信し、ユーザ端末30が有する表示画面31等に表示させる。かかる使用電力量表示画面には、スマートメータ101の「現在の瞬間使用電力量」や「これまでの積算使用電力量」を表示するとともに、各電力量の値を更新するための更新ボタンC10が配置される。そして、コントローラ40は、更新ボタンC10が押された場合は、アプリケーション等から、スマートメータ101のアドレス、瞬間使用電力量を表すプロパティおよび、積算使用電力量を表すプロパティの情報を取得し、取得した情報に基づいて、電文を作成する。
ここで、コントローラ40が各制御命令を1つの電文でスマートメータ101に送信する場合、規定されたタイムアウト時間は「60秒」であるため、この間は新たな電文を送出できない。一方、各制御命令を個別の電文で1つずつ送付した場合、規定されたタイムアウト時間は「20秒」であるため、一括で送信する場合より短い。
例えば、図8は、複数の制御命令を一括して送信する場合の処理の流れを示すシーケンス図である。例えば、コントローラ40は、更新ボタンが押下されると(ステップS101)、「ESV=Get」、「EPC1=瞬時電力量」、「EPC2=積算電力量」を設定した1つの電文をノード10に送信する(ステップS102)。かかる場合、ノード10は、「ESV=GetRes」、「EPC1=瞬時電力量」「EDT1=72W」、「EPC2=積算電力量」、「EDT2=4249.5kWh」を格納した応答をコントローラ40に送信する(ステップS103)。そして、コントローラ40は、受信した情報を表示させる(ステップS104)。
一方、図9は、複数の制御命令をそれぞれ個別に送信する場合の処理の流れを示すシーケンス図である。例えば、コントローラ40は、更新ボタンが押下されると(ステップS201)、「ESV=Get」、「EPC=瞬時電力量」を設定した電文をノード10に送信する(ステップS202)。かかる場合、ノード10は、「ESV=GetRes」、「EPC=瞬時電力量」、「EDT=72W」を格納した応答をコントローラ40に送信する(ステップS203)。
続いて、コントローラ40は、「ESV=Get」、「EPC=積算電力量」を設定した1つの電文をノード10に送信する(ステップS204)。かかる場合、ノード10は、「ESV=GetRes」、「EPC=積算電力量」、「EDT=4249.5kWh」を格納した応答をコントローラ40に送信する(ステップS205)。そして、コントローラ40は、受信した情報を表示させる(ステップS206)。
このように、コントローラ40と制御対象機器との間の通信状態が良好で、パケットロス等が生じる可能性が小さい場合は、各制御命令を一括して送付した方が、通信時間が短く済むため、効率が良い。一方で、通信状態が悪く、途中でパケットロスが起こる可能性が所定の閾値よりも大きい場合には、制御命令を一括で送信した際に、「60秒」の間、電文を送出できずにユーザを待たせるよりも、各制御命令を個別に送出して順次表示を更新し、電文が途中で失われたとしても「20秒」の間待機する方が効率的であると言える。
例えば、図10は、通信状態が良好ではない場合の処理の流れを示すシーケンス図である。例えば、コントローラ40は、更新ボタンが押下されると(ステップS301)、「ESV=Get」、「EPC1=瞬時電力量」、「EPC2=積算電力量」を設定した1つの電文をノード10に送信する(ステップS302)。かかる場合、ノード10は、応答をコントローラ40に送信しようとするが、通信状態が悪く、パケットロス等が生じた場合は、応答を送信することができない(ステップS303)。かかる場合、コントローラ40は、規定の「60秒」だけ待機し(ステップS304)、その後、「ESV=Get」、「EPC1=瞬時電力量」、「EPC2=積算電力量」を設定した1つの電文をノード10に再送する(ステップS305)。
一方で、コントローラ40は、通信状態が悪い場合に、各制御命令を個々の電文で送信していた場合は、図10中の点線で示すように、電文を送信してから「20秒」だけ待機し(ステップS306)、その後、電文を再送することができるので(ステップS307)より効率的な通信を行うことができる。
そこで、コントローラ40は、ノード10との通信状態に応じて、電文の送信回数が少ない第1送信形式または、タイムアウト時間が第1送信形式よりも短いが、送信する電文の数が多い第2送信形式のいずれか1つを選択し、選択した方式で制御命令を送信する。この結果、コントローラ40は、通信状態が良い場合には、タイムアウト時間が長いが、電文の送信回数が少ない送信形式で制御命令を送信し、通信状態が悪い場合には、電文の送信回数が多いが、タイムアウト時間が短い送信形式で制御命令を送信する。このため、コントローラ40は、ノード10との通信を効率良く行うことができる。
[送信形式の特定について]
上述した実施形態では、コントローラ40は、電文の送信先と、判定テーブル42aに登録された条件およびタイムアウト値と、送信する制御命令の数とに応じて、第1送信形式および第2送信形式を特定した。しかしながら、実施形態は、上述した処理に限定されるものではない。
例えば、選択部46は、3つの制御命令を送信する際、「OPC≦2」の際のタイムアウト値が「20秒」であり、「OPC≧3」の際のタイムアウト値が「60秒」である場合は、第1送信形式として3つの制御命令すべてを含む1つの電文を送信する形式を特定し、第2送信形式として2つの制御命令を含む電文および1つの制御命令を含む電文を順に送信する形式を選択してもよい。
すなわち、選択部46は、第2送信形式で送信する電文のタイムアウト値が、第1送信形式で送信する電文のタイムアウト値よりも短いのであれば、送信する制御命令の数や各タイムアウト値に対応付けられた条件の内容等に応じて、第1送信形式および第2送信形式として自由に特定してよい。かかる特定方法は、機器ごとや装置ごとに任意の手法で最適化してもよい。
また、選択部46は、ノード10ごとに、第1送信形式と第2送信形式とを予め記憶し、電文の送信先となるノード10に応じた第1送信形式と第2送信形式とのいずれかを選択してもよい。例えば、選択部46は、スマートメータ101に電文を送信する場合には、判定テーブル42aに登録された条件に係らず、1つの電文に全ての制御命令を含めて送信する第1送信形式と、各制御命令を別個の電文に含めて送信する第2送信形式とのいずれか一方を選択してもよい。
[パケットロスの可能性を用いた選択について]
上述した実施形態では、コントローラ40は、通信履歴を用いて、タイムアウトが生じる可能性を算出し、算出した可能性が所定の閾値よりも高い場合は、タイムアウト時間がより短い第2送信形式を選択した。しかしながら、実施形態は、これに限定されるものではない。例えば、コントローラ40は、タイムアウトが生じる可能性のみならず、パケットロスが生じた割合や、パケットロスが生じた割合等に基づいて、送信形式を選択してもよい。
例えば、パケットロスの可能性が20パーセントであり、複数の制御命令を一括で送信した際のタイムアウト時間が60秒であり、各制御命令を個別に送出した際のタイムアウト時間が20秒であるものとする。また、正常に通信できた場合のラウンドトリップタイムが3秒であり、リトライ後の通信は必ず成功するものとする。このような場合、複数の制御命令を一括で送信した場合は、3秒間で通信が成功する確率が80パーセント、63秒間(タイムアウト時間とラウンドトリップタイムとの和)で通信が成功する確率が20パーセントとなるため、平均で15秒の通信時間を要する。
一方、2つの制御命令を個別に送信した場合は、両方の通信が成功し、6秒間(2回のラウンドトリップタイム)で通信を行う可能性が64パーセントとなる。また、一方の通信が成功し一方の通信が失敗した結果、26秒(1回のタイムアウトと2回のラウンドトリップタイムとの和)で通信を行う可能性が32パーセントとなる。また、両方とも通信が失敗し、46秒(2回のタイムアウトと2回のラウンドトリップタイムとの和)で通信を行う可能性が4パーセントとなる。この結果、2つの制御命令を個別に送信した場合は、平均で14秒の通信時間を要し、制御命令を一括で送信するよりも効率的に通信を行うことができる。
[電波強度に基づいた選択]
上述した例では、選択部46は、通信履歴に基づいて、タイムアウトが生じる可能性を算出し、算出した可能性に基づいて、送信形式を選択した。しかしながら、実施形態は、これに限定されるものではない。例えば、選択部46は、通信履歴以外にも、電波強度等の現在の通信状態を示す任意の情報に基づいて、タイムアウトが生じる可能性を算出し、算出した可能性に基づいて送信形式を選択してもよい。
また、選択部46は、電波の強度をタイムアウトが生じる可能性として採用してもよい。例えば、選択部46は、ノード10との通信に用いる電波の強度を示すRSSI(Received Signal Strength Indication, Received Signal Strength Indicator)の値を計測する。そして、選択部46は、計測した値が所定の閾値(例えば、−90dBm)よりも高い場合は、複数の制御命令を一括して送信する第1送信形式を選択し、計測した値が所定の閾値よりも低い場合は、タイムアウトの時間が短い第2送信形式を選択してもよい。
[通信状態の動向に基づいた選択]
また、選択部46は、ノード10との通信状態の動向に基づいて、タイムアウトが生じる可能性を予測してもよい。例えば、選択部46は、電文の送信先となるノード10との間の過去5分間における通信履歴を取得し、取得した通信履歴において生じていたパケットロスの発生率が15パーセント以下である場合は、複数の制御命令を一括して送信する第1送信形式を選択してもよい。
ここで、宅内での人の動きには、朝食や夕食時にリビングに集まる、昼間はあまり人がいない等といった時間帯によった傾向が存在すると予測される。また、電子レンジの使用タイミングや他の無線LANネットワークの使用タイミング等にも、時間帯によった傾向が存在すると予測される。一方で、無線LANの通信状態は、人の動きや他の機会の動作の影響により変化することが多い。この結果、宅内に設置されている通信装置100とアクセスポイント20との通信状態は、ノード10が設置された位置毎や、時間帯毎等で通信状態に傾向が生じると考えられる。
そこで、選択部46は、通信履歴から、ノード10ごと若しくは時間帯ごとに、通信状態の傾向を解析し、解析結果に基づいて、タイムアウトが生じる可能性を予測してもよい。例えば、選択部46は、ログテーブル42bに格納された通信履歴を解析し、各ノード10ごとに、正常に通信できるか否かの傾向を特定する。そして、選択部46は、例えば、「17:00」〜「22:00」までの間、あるノード10との通信状態が悪化している場合は、かかるノード10に対して「17:00」〜「22:00」までの間に電文を送信する際に、タイムアウトの時間が短い第2送信形式を選択する。
なお、選択部46は、予め傾向を解析しておいてもよく、電文を送信する際に傾向を解析してもよい。また、傾向を解析する手法については、任意の手法を適用可能である。
[ノードの位置に基づいた選択]
また、無線LANの通信状態は、通信先となるノード10の設置位置によっても変化する。例えば、アクセスポイント20から離れた場所に設置された通信装置100では、パケットロスが生じる可能性が高くなる。
そこで、選択部46は、電文の送信先となるノード10の位置に応じて、第1送信形式または第2送信形式を選択してもよい。例えば、コントローラ40は、各ノード10が設置された位置を示す位置情報を記憶する。そして、選択部46は、電文の送信先となるノード10が、アクセスポイント20から遠い場所に設置されている場合は、かかるノードに電文を送信する形式として、タイムアウトの時間が短い第2送信形式を選択してもよい。また、選択部46は、ログテーブル42bに登録された通信履歴を解析し、パケットロスが生じやすい位置に設置されたノード10に対して電文を送信する場合は、タイムアウトの時間が短い第2送信形式を選択してもよい。ここで言う位置とは、たとえばリビング、子ども部屋、屋外など、部屋の領域であってもよい。
[複数の情報を用いた選択]
なお、選択部46は、上述した各種の情報を総合的に用いて、タイムアウトが生じる可能性を算出してもよい。例えば、選択部46は、ノード10の位置、通信を行う時間帯、ノード10との通信履歴、電波強度等をそれぞれ重みづけして、タイムアウトが生じる可能性を算出してもよい。
また、選択部46は、電文の送信先となるノード10との通信履歴のみを用いて、送信形式を選択してもよく、他のノードとの通信履歴に基づいて、送信形式を選択してもよい。例えば、選択部46は、家電102と家電103とが近傍に配置されている際に、家電102に対して電文を送信する場合は、家電103との通信履歴を用いて、送信形式を選択してもよい。この結果、選択部46は、家電102に対して電文を初めて送信する場合であっても、効率的な通信を実現することができる。
[実行主体について]
なお、上述した例では、コントローラ40が電文を送信する際に、通信状態に応じて送信形式を選択する処理について説明した。しかしながら、実施形態は、これに限定されるものではない。例えば、通信装置100は、コントローラ40と同様に、コントローラ40との通信状態に応じて送信形式を選択してもよい。また、上述した選択部46、生成部47、送信部48が発揮する処理は、アクセスポイント20が有することとしてもよい。
[処理手順]
図11は、実施形態にかかるコントローラが実行する処理の流れを説明するフローチャートである。例えば、コントローラ40は、電文を送信するか否かを判定し(ステップS401)、送信しない場合は(ステップS401:No)、再度ステップS401を行う。また、コントローラ40は、電文を送信すると判定した場合は(ステップS401:Yes)、通信状態に基づいて、タイムアウトの可能性を算出する(ステップS402)。
そして、コントローラ40は、タイムアウトの可能性が所定の閾値よりも大きいか否かを判定し(ステップS403)、小さい場合は(ステップS403:No)、複数の制御命令を含む1つの電文を送信し(ステップS404)、処理を終了する。一方、コントローラ40は、タイムアウトの可能性が所定の閾値よりも大きい場合は(ステップS403:Yes)、制御命令ごとに電文を送信し(ステップS405)、処理を終了する。
上述してきたように、実施形態に係るコントローラ40は、複数の制御命令をノード10に送信する場合は、送信後に所定時間だけ応答を待機する電文で複数の制御命令を送信する第1送信形式、または、応答を待機する時間が所定時間よりも短い複数の電文で複数の制御命令を送信する第2送信形式を、ノード10との通信状態に基づいて選択する。そして、コントローラ40は、選択した送信形式で、ノード10に制御命令を送信する。このため、コントローラ40は、ノード10との間で効率的な通信を実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。