(実施形態1)
図1に、本実施形態に係る通信システム1の構成を示す。制御装置100は、宅内(需要家内)に設置される様々な通信機器120(図1では120A,120B,120Cの三つ)によって消費される電力量を監視し、また、各通信機器120の動作を制御する。通信システム1に含まれる通信機器120の数は本発明によって限定されず任意である。
制御装置100は、図2に示すように、ユーザからの指示を受け付ける管理画面200を表示する。ユーザからの指示が入力されると、制御装置100は、入力された指示に対応するコマンドを通信機器120へ送信する。通信機器120は、制御装置100から送信されたコマンドを受信し、受信したコマンドに基づいて動作する。
制御装置100は、インターネット等、外部の通信ネットワーク140に接続され、通信ネットワーク140上にある他のコンピュータと通信可能であってもよい。
通信機器120は、宅外から供給される電力、もしくは、宅内に設置される発電システム又は蓄電システムから供給される電力により動作する。通信機器120とは、具体的には、制御装置100と通信可能な、空気調和機、換気システム、照明機器、給湯システム、床暖房システム、電気調理器、等である。
通信機器120と制御装置100は、無線LAN(Local Area Network)、有線LAN、PLC(Power Line Communication)等により接続される。
例えば通信機器120が空気調和機である場合、通信機器120は、コマンドを制御装置100から受信し、受信したコマンドに基づいて、電源のオン又はオフ、目標温度の設定、風量の設定、動作時間の設定等を行う。
コマンドには、大別して、操作コマンドと状態取得コマンドとの二種類がある。
操作コマンドは、主としてユーザからの指示に基づいて制御装置100から通信機器120へ送信されるコマンドである。制御装置100は、管理画面200を介してユーザから通信機器120を動作させる指示が入力されると、入力された指示に対応する操作コマンドを通信機器120へ送信する。通信機器120は、操作コマンドを制御装置100から受信し、操作コマンドに従って動作する。ただし、制御装置100は、ユーザからの指示にかかわらず、予め決められたアルゴリズムに基づいて操作コマンドを自動的に通信機器120へ送信することがあってもよい。
図2に、管理画面200の例を示す。管理画面200には、宅内に設置される通信機器120の一覧表250と間取り図260とが表示される。
制御装置100は、一覧表250の中に、通信機器120に対応付けられるオブジェクト210(図2では210A,210B,210C,210Dの四つ)を配置する。オブジェクト210と対応付けて、通信機器120の名称と、通信機器120から取得した最新の動作状態とが表示される。オブジェクト210はソフトウェアボタンになっている。
オブジェクト210がユーザによって操作されると(オブジェクト210がユーザによってタッチされると)、制御装置100は、図3に示すように、操作されたオブジェクト210に対応する通信機器120に指定可能な設定値の入力をユーザから受け付けるサブ画面300を管理画面200の上に重畳して表示する。
例えば、図3に示すサブ画面300は、“リビングのエアコン”に対応付けられているオブジェクト210Bがユーザによって操作されると表示される。サブ画面300には、動作を開始させる指示に対応付けられるボタン301、動作を停止させる指示に対応付けられるボタン302、目標温度の入力が可能なテキストボックス303、目標温度を予め決められた量(例えば1度)だけ増加又は減少させるボタン304が配置される。
ボタン301がユーザによって操作されると、制御装置100は、通信機器120(この場合、空気調和機)の動作を開始させる開始コマンドを通信機器120へ送信する。ただし、通信機器120が既に動作中ならば、制御装置100は、ボタン301に対する操作を無効にするか、もしくはボタン301に対する操作を受け付けない。通信機器120は、開始コマンドを制御装置100から受信すると、動作(この場合、目標温度を23度に設定した暖房運転)を開始する。
ボタン302がユーザによって操作されると、制御装置100は、通信機器120の動作を停止させる停止コマンドを通信機器120へ送信する。ただし、通信機器120が既に停止中ならば、制御装置100は、ボタン302に対する操作を無効にするか、もしくはボタン302に対する操作を受け付けない。通信機器120は、停止コマンドを制御装置100から受信すると、動作(この場合、目標温度を23度に設定した暖房運転)を停止する。
テキストボックス303に数値が入力されると、制御装置100は、入力された数値に目標温度を変更する変更コマンドを通信機器120へ送信する。数値ではない文字や記号等がテキストボックス303に入力されると、制御装置100は、入力された値を無効とする。もしくは、制御装置100は、テキストボックス303に数値ではない文字や記号等の入力を許可しない。通信機器120は、変更コマンドを制御装置100から受信すると、変更コマンドが示す値に目標温度を変更する。
ボタン304がユーザによって操作されると、制御装置100は、テキストボックス303に表示されている値を予め決められた値(例えば1度)だけ増加又は減少させ、変化させた値に目標温度を設定する変更コマンドを通信機器120へ送信する。通信機器120は、変更コマンドを制御装置100から受信すると、変更コマンドが示す値に目標温度を変更する。
通信機器120の種類によって、サブ画面300に含まれるボタンやテキストボックス等のオブジェクト210の数、位置、形状、及び、オブジェクト210に対応付けられる指示内容は、それぞれ異なる。
また、図2において、制御装置100は、間取り図260のうち、通信機器120が設置される場所に対応する位置に、通信機器120を示すアイコン220(図2では220A,220B,220C,220D等)を配置する。アイコン220は、通信機器120の種別をユーザが容易に判別可能な画像であることが望ましい。アイコン220が配置される位置は、現実に通信機器120が設置される場所と正確に一致する必要はなく、少なくとも通信機器120が現実に設置される部屋とその部屋に対応する間取り図260内の位置とが合致していればよい。
一覧表250の中のオブジェクト210がユーザによって操作されると、制御装置100は、操作されたオブジェクト210に対応付けられるアイコン220を、色の変更や点滅等によって強調して表示する。そして、上述したように、制御装置100は、操作されたオブジェクト210に対応付けられる通信機器120に設定可能なパラメータの入力をユーザから受け付けるサブ画面300を管理画面200の上に重畳して表示する。
間取り図260の中の通信機器120を示すアイコン220がユーザによって操作されると、制御装置100は、操作されたアイコン220に対応付けられるオブジェクト210を、色の変更や点滅等によって強調して表示し、また、サブ画面300を表示する。つまり、一覧表250の表示と間取り図260の表示は連動する。ユーザは、特定の通信機器120に動作を指示したければ、一覧表250の中から所望の通信機器120に対応付けられるオブジェクト210を選択してもよいし、間取り図260の中から所望の通信機器120に対応付けられるアイコン220を選択してもよい。
状態取得コマンドは、制御装置100が通信機器120の現在の動作状態等の送信を要求するコマンドである。制御装置100は、予め決められた送信条件が満たされると、状態取得コマンドを通信機器120へ送信する。通信機器120は、状態取得コマンドを受信すると、通信機器120の現在の状態(例えば通信機器120が空気調和機ならば、設定されている目標温度、測定した温度と湿度等)を取得し、取得した情報を制御装置100へ送信する。なお、制御装置100は、ユーザからの指示に基づいて状態取得コマンドを通信機器120へ送信することがあってもよい。
送信条件とは、予め決められた定期的なタイミングが到来することである。例えば、制御装置100は、最後に状態取得コマンドを通信機器120へ送信してから一定期間(1分、5分、等)が経過すると、再び状態取得コマンドを通信機器120へ送信する。制御装置100は、定期的に通信機器120の最新の状態を取得し、管理画面200の表示を更新する。
また、送信条件は、ユーザから最新の状態を表示させる旨の指示が入力されたことでもよい。制御装置100は、ユーザから最新の状態を管理画面200に表示させる旨の指示を受け付けると、状態取得コマンドを通信機器120へ送信する。制御装置100は、ユーザからの指示があると、通信機器120の最新の状態を取得し、表示する。
次に、制御装置100のハードウェア構成について、図4を用いて説明する。
通信部401は、NIC(Network Interface Card)を備え、通信機器120と通信する。本実施形態では、通信部401は、ECHONET Lite(登録商標)に準拠したプロトコルにて通信機器120と通信する。
画像処理部402は、管理画面200やサブ画面300等をディスプレイ451に表示する。
音声処理部403は、記憶部405から音声データを取得して再生し、音声をスピーカ452から出力する。
入力部404は、ボタンやタッチパネル等、ユーザからの入力を受け付ける入力デバイスを備える。本実施形態では、制御装置100は、ディスプレイ451の表示領域の上に重畳してタッチパネルが配置される、いわゆるタッチスクリーンを備える。
記憶部405は、ハードディスク等の記憶装置を備え、制御装置100を制御する各種のプログラム、通信機器120から受信した動作状態を示すデータ、オペレーティングシステム(OS)、画像データ、音声データ、テキストデータ等を記憶する。
制御部406は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)を備え、制御装置100全体を制御する。
次に、通信システム1によって実行される通信処理の詳細について説明する。
図5に、通信システム1の機能的な構成を示す。図5には通信機器120が一つしか描かれていないが、制御装置100は複数の通信機器120と通信することができる。
制御装置100の制御部406は、新たな通信機器120からの接続要求を受信すると、その通信機器120の通信性能に合わせて、データの伝送単位であるパケットのサイズと、連続する二つのパケットの送信間隔ΔTと、通信が成功したか否かの判別基準となるタイムアウト値TOUTとを決定する。制御装置100の制御部406が、通信機器120との通信に用いる通信パラメータを通信機器120と通信することにより決定する決定部501として機能する。
新たな通信機器120とは、制御装置100がその通信機器120と通信する際の通信仕様を未だ決定していない状態の通信機器120のことであり、例えば、ユーザが新規に購入して設置し、制御装置100が初めて通信する通信機器120が該当する。
制御装置100の制御部406は、通信機器120からの応答を要求するコマンドを通信機器120へ送信し、コマンドを送信した時刻からタイムアウト値TOUTが示す時間が経過するまでの間に、その通信機器120から応答を受信しないと、その通信機器120との通信に失敗したと判別する。
あるいは、制御装置100の制御部406は、コマンドを送信した時刻からタイムアウト値TOUTが示す時間が経過するまでの間に、その通信機器120から応答を受信しないと、再びコマンドを通信機器120へ送信して通信をリトライしてもよい。リトライの回数は任意である。
図6に、パケットの構成を示す。パケットは、宛先アドレスとコマンド識別子とを含む固定ビット長のヘッダ部と、可変ビット長のデータ部(ペイロードとも呼ばれる)とから構成される。データ部のビット長は、コマンドの種類等によって、もしくは、パケットに含まれるプロパティの数Nによって、変化する。
プロパティには、例えば、稼働中(オン)か非稼働(オフ)かを示すプロパティ、通信機器120の設置場所を示すプロパティ、規格のバ−ジョンを示すプロパティ、通信機器120を識別する識別情報を示すプロパティ等がある。一般には、コマンドの種類によって、あるいはコマンドに対して応答すべき情報の内容によって、プロパティの数Nは異なる。
図7に、制御装置100から通信機器120へのパケット送信のタイムチャートを示す。制御装置100の制御部406は、時刻T1に第1のパケットの発出を開始し、第1のパケットの発出が終わった時刻T2から時間ΔTが経過する時刻T3までの間は待機し、時刻T3に第2のパケットの発出を開始し、第2のパケットの発出が終わった時刻T4から時間ΔTが経過する時刻T5までの間は待機し、時刻T5に第3のパケットの発出を開始し、時刻T6に第3のパケットの発出を終了する。
制御装置100の制御部406は、新たな通信機器120を検知すると、その通信機器120との間の通信を試み、一つのパケットに含めることができるプロパティの最大数NMAXと、パケットの送信間隔ΔTと、タイムアウト値TOUTを決定する。一つのパケットに含めることができるプロパティの最大数NMAXが決まれば、一つのパケットに格納可能なデータ量の最大値が決まる。
図8に、通信仕様を決定する通信処理の流れを示す。
まず、制御装置100の制御部406は、新たな通信機器120を検知したか否かを判別する(ステップS801)。
具体的には、通信機器120は、自身の通信相手となる制御装置100が決定されていないと、送信先を特定しないブロードキャストにて接続要求を送信する。接続要求を受信した制御装置100の制御部406は、この接続要求を送信した通信機器120を新たな通信機器120と判別する。
新たな通信機器120を検知しない場合(ステップS801;NO)、制御装置100はステップS801の処理を繰り返す。新たな通信機器120を検知した場合(ステップS801;YES)、制御装置100の制御部406は、パケットサイズ決定処理(ステップS802)、送信間隔決定処理(ステップS803)、タイムアウト値決定処理(ステップS804)を実行する。
なお、制御装置100の制御部406は、パケットサイズ決定処理と送信間隔決定処理とタイムアウト値決定処理とを実行する順序を任意に変更してもよい。また、制御装置100の制御部406は、パケットサイズ決定処理と送信間隔決定処理とタイムアウト値決定処理とを同時に並行して実行してもよい。
そして、制御装置100の制御部406は、通信部401を制御して、パケットサイズ決定処理により決定されたプロパティの最大数NMAXと、送信間隔決定処理によって決定されたパケットの送信間隔ΔTと、タイムアウト値決定処理によって決定されたタイムアウト値TOUTとを含む通信パラメータを用いて通信機器120と通信する。制御装置100の制御部406と通信部401が協働して、通信部502として機能する。
制御装置100の制御部406は、通信機器120と通信すると、通信の履歴(以下、「通信ログ」という。)を記憶部405に保存する。通信ログには、例えば、パケットが制御装置100又は通信機器120から送信された日時、パケットが制御装置100又は通信機器120によって受信された日時、正常に通信されたかエラーが発生したかを示す情報等が含まれる。制御装置100の制御部406と記憶部405が協働して、通信機器120との通信の履歴を記録する記録部503として機能する。
なお、制御装置100の制御部406は、管理画面200とサブ画面300をディスプレイ451に表示することによってユーザに提示するほか、決定した通信パラメータに基づいて、通信機器120へ送信したコマンドに対する応答が得られるまでにかかる時間の目安となる情報をユーザに提示したり、決定した通信パラメータを含む情報をユーザに提示したりしてもよい。制御装置100の制御部406と画像処理部402が協働して、提示部504として機能する。
次に、パケットサイズ決定処理の詳細について、図9のフローチャートを用いて説明する。
まず、制御装置100の制御部406は、一つのパケットに含めることができるプロパティの最大数NMAXを既定値に設定する(ステップS901)。制御装置100の制御部406は、NMAX個のプロパティを格納したコマンドを含むパケットを生成し、通信機器120へ送信する。既定値は、パケットサイズ決定処理により決定される前の暫定的な値である。
ここで通信機器120へ送信されるコマンドは、例えば通信機器120の現在の動作状態の送信を要求する状態取得コマンド等、受信した通信機器120が何らかの応答を制御装置100へ返す必要があるコマンドとする。
制御装置100の制御部406は、ステップS901にて設定したNMAX個のプロパティを含むパケットによる通信が成功したか否かを判別する(ステップS902)。
例えば、制御装置100の制御部406は、送信したコマンドに対する応答データを受信すれば、通信が成功したと判別し、送信したコマンドに対する応答データを受信しなければ、通信が失敗したと判別する。
あるいは、制御装置100の制御部406は、NMAX個のプロパティに対するすべての応答を含む応答データを受信すれば、通信が成功したと判別し、NMAX個のプロパティに対するすべての応答のうち少なくとも一つの応答が含まれない応答データを受信すれば、通信が失敗したと判別する。つまり、NMAXの問い合わせに対する回答が一つでも欠けていれば、通信が失敗したと判別する。
ステップS902において通信が成功したと判別した場合(ステップS902;YES)、制御装置100の制御部406は、一つのパケットに含めることができるプロパティの最大数NMAXを、予め決められた数(例えば1個)だけ増加させ(ステップS903)、NMAX個のプロパティ(前回より1個多いプロパティ)を格納したコマンドを含むパケットを生成し、通信機器120へ送信する。
制御装置100の制御部406は、ステップS903にて設定したNMAX個のプロパティを含むパケットによる通信が成功したか否かを判別する(ステップS904)。
ステップS904において通信が成功したと判別した場合(ステップS904;YES)、制御装置100の制御部406は、一つのパケットに含めることができるプロパティの最大数NMAXを、予め決められた数(例えば1個)だけ更に増加させ(ステップS903)、NMAX個のプロパティ(前回より更に1個多いプロパティ)を格納したコマンドを含むパケットを生成し、通信機器120へ送信する。
ステップS904において通信が失敗したと判別した場合(ステップS904;NO)、制御装置100の制御部406は、通信機器120との通信において一つのパケットに含めることができるプロパティの最大数NMAXを、最後に通信に成功したときのプロパティの数に設定する(ステップS907)。
つまり、制御装置100の制御部406は、通信に失敗したと判別するまで、一つのパケットに含めることができるプロパティの最大数NMAXを増加させていき、通信に失敗したと判別すると、直前に通信に成功したと判別したときの最大数NMAXに戻す。このようにすれば、制御装置100と通信機器120との間の通信に使用できるパケットサイズの最大値、言い換えれば、制御装置100と通信機器120との間で正常に一度に送受信できるパケットサイズの最大値が分かる。
一方、ステップS902において通信が失敗したと判別した場合(ステップS902;NO)、制御装置100の制御部406は、一つのパケットに含めることができるプロパティの最大数NMAXを、予め決められた数(例えば1個)だけ減少させ(ステップS905)、NMAX個のプロパティ(前回より1個少ないプロパティ)を格納したコマンドを含むパケットを生成し、通信機器120へ送信する。
制御装置100の制御部406は、ステップS905にて設定したNMAX個のプロパティを含むパケットによる通信が成功したか否かを判別する(ステップS906)。
ステップS906において通信が成功したと判別した場合(ステップS906;YES)、制御装置100の制御部406は、一つのパケットに含めることができるプロパティの最大数NMAXを、その通信に成功したと判別したときのプロパティの数に設定する(ステップS907)。
ステップS906において通信が失敗したと判別した場合(ステップS906;NO)、制御装置100の制御部406は、通信機器120との通信において一つのパケットに含めることができるプロパティの最大数NMAXを、予め決められた数(例えば1個)だけ更に減少させ(ステップS905)、NMAX個のプロパティ(前回より更に1個少ないプロパティ)を格納したコマンドを含むパケットを生成し、通信機器120へ送信する。
つまり、制御装置100の制御部406は、通信に成功したと判別するまで、一つのパケットに含めることができるプロパティの最大数NMAXを減少させていく。通信に成功したと判別すると、通信に成功したときの最大数NMAXを、通信機器120との間の通信に用いる。このようにすれば、制御装置100と通信機器120との間の通信に使用できるパケットサイズの最大値、言い換えれば、制御装置100と通信機器120との間で一度に送受信できるパケットサイズの最大値が分かる。なお、プロパティの概念がない通信方式の場合は、パケット内のデータ量を増加又は減少させることにより、パケットによって一度に送受信できるデータのサイズを調整してもよい。また、本実施形態にて各通信パラメータを決定するフローは、あくまで一例であり、例えば、二分木探索等によって通信パラメータを決定してもよい。
次に、送信間隔決定処理の詳細について、図10のフローチャートを用いて説明する。
まず、制御装置100の制御部406は、新たな通信機器120との通信にてパケットを送信する際のパケットの送信間隔を既定値に設定する(ステップS1001)。制御装置100の制御部406は、既定値の送信間隔にて、少なくとも二つのパケットからなるコマンドを通信機器120へ送信する。既定値は、送信間隔決定処理により決定される前の暫定的な値である。
ここで通信機器120へ送信されるコマンドは、例えば通信機器120の現在の動作状態の送信を要求する状態取得コマンド等、受信した通信機器120が何らかの応答を制御装置100へ返す必要があるコマンドとする。
制御装置100の制御部406は、ステップS1001にて設定した送信間隔による通信が成功したか否かを判別する(ステップS1002)。
ステップS1002において通信が成功したと判別した場合(ステップS1002;YES)、制御装置100の制御部406は、パケットの送信間隔を、予め決められた長さ(例えば1ミリ秒)だけ短くし(ステップS1003)、短くした送信間隔で少なくとも二つのパケットを通信機器120へ送信する。
制御装置100の制御部406は、ステップS1003にて設定した送信間隔による通信が成功したか否かを判別する(ステップS1004)。
ステップS1004において通信が成功したと判別した場合(ステップS1004;YES)、制御装置100の制御部406は、送信間隔を、予め決められた長さ(例えば1ミリ秒)だけ更に短くし(ステップS1003)、短くした送信間隔で少なくとも二つのパケットを通信機器120へ送信する。
ステップS1004において通信が失敗したと判別した場合(ステップS1004;NO)、制御装置100の制御部406は、通信機器120との通信における送信間隔ΔTを、最後に通信に成功したときの送信間隔に設定する(ステップS1007)。
つまり、制御装置100の制御部406は、通信に失敗したと判別するまで、送信間隔を短くしていき、通信に失敗したと判別すると、直前に通信に成功したと判別したときの送信間隔に戻す。このようにすれば、制御装置100と通信機器120との間の通信に使用できる送信間隔の最小値、言い換えれば、最も効率良く通信できる送信間隔が分かる。
一方、ステップS1002において通信が失敗したと判別した場合(ステップS1002;NO)、制御装置100の制御部406は、送信間隔を、予め決められた長さ(例えば1ミリ秒)だけ長くし(ステップS1005)、長くした送信間隔で少なくとも二つのパケットを通信機器120へ送信する。
制御装置100の制御部406は、ステップS1005にて設定した送信間隔による通信が成功したか否かを判別する(ステップS1006)。
ステップS1006において通信が成功したと判別した場合(ステップS1006;YES)、制御装置100の制御部406は、通信機器120との通信におけるパケットの送信間隔ΔTを、その通信に成功したと判別したときの送信間隔に設定する(ステップS1007)。
ステップS1006において通信が失敗したと判別した場合(ステップS1006;NO)、制御装置100の制御部406は、送信間隔を、予め決められた長さ(例えば1ミリ秒)だけ更に長くし(ステップS1005)、長く設定した送信間隔で少なくとも二つのパケットを通信機器120へ送信する。
つまり、制御装置100の制御部406は、通信に成功したと判別するまで、パケットの送信間隔を増加させていく。通信に成功したと判別すると、その通信に成功したときの送信間隔を、通信機器120との間の通信に用いる。このようにすれば、制御装置100と通信機器120との間の通信に使用できる送信間隔の最小値、言い換えれば、最も効率良く通信できる送信間隔が分かる。
次に、タイムアウト値決定処理の詳細について、図11のフローチャートを用いて説明する。
ここで、コマンドの種類について説明する。制御装置100から通信機器120へ送信されるコマンドには、上述したように、操作コマンド(第1のコマンド)と、状態取得コマンド(第2のコマンド)とがある。
操作コマンドは、主にユーザからの要求に基づいて送信される。制御装置100の制御部406は、ユーザから通信機器120への動作の指示が入力されると、ユーザからの入力に基づいて、操作コマンドを通信機器120へ送信する。
一方、状態取得コマンドは、ユーザからの要求にかかわらず、制御装置100から通信機器120へ送信される。制御装置100の制御部406は、予め決められた送信条件が満たされると、状態取得コマンドを通信機器120へ送信する。
例えば、通信機器120が空気調和機である場合には、操作コマンドと状態取得コマンドは次に示すように分類される。
(a)操作コマンド(第1のコマンド)
・冷房、暖房、除湿、送風等の動作を開始させるコマンド
・冷房、暖房、除湿、送風等の動作を終了させるコマンド
・目標温度を設定するコマンド
・送風量を設定するコマンド
・動作モード(冷房、暖房、除湿、送風の各モードのいずれか)を設定するコマンド
(b)状態取得コマンド(第2のコマンド)
・現在設定されている動作モードを問い合わせるコマンド
・通信機器120によって測定された温度と湿度の送信を要求するコマンド
・以上のほか、ユーザからの明示的な指示に基づかないコマンド
通信機器120は、操作コマンドを制御装置100から受信すると、操作コマンドに基づいて動作する。通信機器120は、操作コマンドを受信したことを示す信号(ACK)を返してもよい。一方、状態取得コマンドを制御装置100から受信すると、通信機器120は、要求された動作状態等を示す情報を含む応答データを返す。
図11のタイムアウト値決定処理では、制御装置100は、制御装置100から通信機器120へ状態取得コマンドを送信してから、送信した状態取得コマンドに対する応答データを受信するまでにかかる時間を計測する。
まず、制御装置100の制御部406は、状態取得コマンドを通信機器120へ送信する(ステップS1101)。制御装置100が状態取得コマンドを通信機器120へ送信したときのシステム時刻をTAとする。
通信機器120は、状態取得コマンドに対する応答データを制御装置100へ送信する。制御装置100の制御部406は、応答データを受信する(ステップS1102)。制御装置100が状態取得コマンドに対する応答データを通信機器120から受信したときのシステム時刻をTBとする。
制御装置100の制御部406は、状態取得コマンドを通信機器120へ送信したシステム時刻TAから、応答データを通信機器120から受信したシステム時刻TBまでの経過時間を計算する(ステップS1103)。
制御装置100の制御部406は、計算して得た経過時間に予め決められた値を加算した値を、通信に成功したか否かを判別するためのタイムアウト値TOUTに決定する(ステップS1104)。この予め決められた値だけ余裕が与えられる。
制御装置100の制御部406は、ステップS1101からステップS1103までを複数回繰り返して実行し、制御装置100から通信機器120へ状態取得コマンドを送信してから、送信した状態取得コマンドに対する応答データを受信するまでにかかった経過時間をそれぞれ計測し、得られた経過時間のそれぞれに基づいて、タイムアウト値TOUTを決定してもよい。
例えば、制御装置100の制御部406は、複数回の経過時間の最大値、もしくは最大値に予め決められた値を加算した値を、タイムアウト値TOUTに決定してもよい。最大値の代わりに、平均値、最頻値、中央値等を用いてもよい。
本実施形態によれば、制御装置100は、通信機器120の性能に合わせて最適な通信パラメータを決定することができる。一般に、通信機器120によって、通信機器120が有するメモリのサイズやプロセッサの処理速度等が異なるが、本実施形態の制御装置100によれば、通信機器120ごとに最適な通信パラメータを都度決定することができる。
また、制御装置100が通信機器120と通信して得られた実測値に基づいて、一つのパケットに含めることができるプロパティの最大数NMAXとパケットの送信間隔ΔTとタイムアウト値TOUTが決められるので、信頼性が高く、どのような通信性能の通信機器120であっても対応可能である。
(実施形態2)
次に、実施形態2について、図12を用いて説明する。本実施形態では、制御装置100は、通信機器120との通信に用いる通信パラメータを示す情報を通信機器120から取得する。
まず、制御装置100の制御部406は、一つのパケットに含めることができるプロパティの最大数NMAXとパケットの送信間隔ΔTとタイムアウト値TOUTとを含む性能情報の送信を要求するコマンドを通信機器120へ送信する(ステップS1201)。
通信機器120は、予めメモリに記憶している性能情報を制御装置100へ送信する。制御装置100の制御部406は、性能情報を通信機器120から受信する(ステップS1202)。なお、通信機器120が有するメモリには、出荷時に、性能情報が書き込まれている。
そして、制御装置100の制御部406は、受信した性能情報に基づいて、一つのパケットに含めることができるプロパティの最大数NMAXとパケットの送信間隔ΔTとタイムアウト値TOUTとを決定する(ステップS1203)。
本実施形態によれば、制御装置100は、通信機器120の性能に合わせて最適な通信パラメータを決定することができる。通信パラメータは通信機器120から直接得られるので、信頼性が高い。
(実施形態3)
次に、実施形態3について、図13を用いて説明する。本実施形態では、制御装置100は、通信機器120との通信に用いる通信パラメータを示す情報を、予め用意されたデータベース等から取得する。
まず、制御装置100の制御部406は、通信機器120の種類を識別可能な機器情報の送信を要求するコマンドを通信機器120へ送信する(ステップS1301)。
機器情報には、例えば、空気調和機や照明機器等といった通信機器120の種類、通信機器120の製造会社、通信機器120の型番、通信機器120の製造年月日、通信機器120の製造ロット番号、等が含まれる。
通信機器120は、予めメモリに記憶している機器情報を制御装置100へ送信する。制御装置100の制御部406は、機器情報を通信機器120から受信する(ステップS1302)。なお、通信機器120が有するメモリには、出荷時に、機器情報が書き込まれている。
制御装置100の制御部406は、受信した機器情報に対応付けられる性能情報を取得する(ステップS1303)。例えば、制御装置100の記憶部405には、様々な機器情報と対応付けて性能情報が予め記憶されており、制御部406は、記憶部405から性能情報を読み出す。
あるいは、制御装置100の制御部406は、通信ネットワーク140上に設置されている、機器情報と性能情報とを対応付けて記憶したデータベースを有するサーバ(図示せず)に接続し、そのサーバからステップS1302で受信した機器情報に対応する性能情報を受信する。
そして、制御装置100の制御部406は、取得した性能情報に基づいて、一つのパケットに含めることができるプロパティの最大数NMAXとパケットの送信間隔ΔTとタイムアウト値TOUTとを決定する(ステップS1304)。
本実施形態によれば、制御装置100は、通信機器120の性能に合わせて最適な通信パラメータを決定することができる。通信パラメータは制御装置100と通信機器120に予め記憶されている必要はない。
(実施形態4)
次に、実施形態4について、図14と図15を用いて説明する。本実施形態では、制御装置100は、複数の通信機器120と通信する。制御装置100は、通信相手ごとに通信パラメータを使い分ける。
まず、制御装置100の制御部406は、複数の通信機器120のそれぞれについて、上述した実施形態1、2、3のいずれかに示した手順により、通信パラメータを決定する(ステップS1401)。
制御装置100の制御部406は、決定した通信パラメータを、通信機器120を識別可能な識別情報と対応付けて、記憶部405に記憶する(ステップS1402)。
図15に、記憶部405に記憶される、通信機器120の識別情報と対応付けて通信パラメータを定義する定義データの例を示す。記憶部405には、複数の通信機器120の識別情報のそれぞれと対応付けて、一つのパケットに格納できるプロパティの最大数NMAXと、パケットの送信間隔ΔTと、タイムアウト値TOUTとが記憶される。
制御装置100の制御部406は、新たな通信機器120を検知してその通信機器120との通信に用いる通信パラメータを決定すると、図15に示す定義データに、決定した通信パラメータを含むレコードを追加していく。
制御装置100の制御部406は、いずれかの通信機器120との間の通信を開始するか否かを判別する(ステップS1403)。
通信を開始しない場合(ステップS1403;NO)、通信処理を終了する。通信を開始する場合(ステップS1403;YES)、制御装置100の制御部406は、通信を開始する相手である通信機器120を示す識別情報に対応付けて記憶されている通信パラメータを記憶部405から読み出し(ステップS1404)、読み出した通信パラメータを用いて通信する(ステップS1405)。
本実施形態によれば、制御装置100は、複数の通信機器120のそれぞれと、最適な通信方式を用いて通信することができる。なお、制御装置100の制御部406は、図15に示す情報を、上述した実施形態1、2、3に示した手順のいずれに従って決定してもよい。例えば、第1の通信機器については、実施形態1に示したように実測値に基づいて通信パラメータを決定し、第2の通信機器については、実施形態2に示したように通信機器120から取得した性能情報に基づいて通信パラメータを決定する、といったように、通信機器120ごとに通信パラメータの決定手順が異なっていてもよい。
(実施形態5)
次に、実施形態5について、図16を用いて説明する。本実施形態では、制御装置100は、複数の通信機器120と通信する。制御装置100は、最も性能が低いと推定される通信機器120との間の通信について決定した通信パラメータを、すべての通信機器120との間の通信に利用する。
まず、制御装置100の制御部406は、複数の通信機器120のそれぞれについて、上述した実施形態1、2、3のいずれかに示した手順により、通信パラメータを決定する(ステップS1601)。
制御装置100の制御部406は、決定した通信パラメータを、通信機器120を識別可能な識別情報と対応付けて、例えば図15に示すように、記憶部405に記憶する(ステップS1602)。
制御装置100の制御部406は、記憶部405に記憶されている識別情報と通信パラメータとの対応付けを示すデータの中から、一つのパケットに格納できるプロパティの最大数NMAXのうち最も小さい値を取得し、パケットの送信間隔ΔTのうち最も長い値を取得し、タイムアウト値TOUTのうち最も長い値を取得し、すべての通信機器120との間の通信に用いると決定する(ステップS1603)。
すなわち、制御装置100は、通信可能な通信機器120のうち、最も性能が低い通信機器120に通信パラメータを合わせる。これにより、一組のプロパティの最大数NMAXと送信間隔ΔTとタイムアウト値TOUTが、すべての通信機器120との通信に用いられるので、通信処理が簡略化し、メモリの消費量をより少なく抑えることができる。
制御装置100の制御部406は、いずれかの通信機器120との間の通信を開始するか否かを判別する(ステップS1604)。
通信を開始しない場合(ステップS1604;NO)、通信処理を終了する。通信を開始する場合(ステップS1604;YES)、制御装置100の制御部406は、ステップS1601で決定した通信パラメータを用いて通信する(ステップS1605)。
本実施形態によれば、制御装置100は、複数の通信機器120のそれぞれと、共通した通信パラメータを用いて通信することができ、通信処理の簡略化が可能となる。
なお、制御装置100の制御部406は、プロパティの最大数NMAXと送信間隔ΔTとタイムアウト値TOUTのうちいずれか一つ又は二つをすべての通信機器120に共通して用い、残りの一つ又は二つを通信機器120ごとに使い分けるようにしてもよい。例えば、制御装置100の制御部406は、一つのタイムアウト値TOUTをすべての通信機器120について共通して用い、プロパティの最大数NMAXと送信間隔ΔTを通信機器120ごとに個別に設定して用いてもよい。
(実施形態6)
次に、実施形態6について、図17等を用いて説明する。本実施形態では、制御装置100は、複数の通信機器120と通信する。制御装置100は、通信機器120の性能に基づいて通信機器120をグループ化し、グループ単位で通信パラメータを使い分ける。
まず、制御装置100の制御部406は、複数の通信機器120のそれぞれについて、上述した実施形態1、2、3のいずれかに示した手順により、通信パラメータを決定する(ステップS1701)。
制御装置100の制御部406は、決定した通信パラメータを、通信機器120を識別可能な識別情報と対応付けて、例えば図15に示すように、記憶部405に記憶する(ステップS1702)。
制御装置100の制御部406は、複数の通信機器を、通信性能に基づいてグループ化する(ステップS1703)。
例えば、制御装置100の制御部406は、図18Aに示すように、複数の通信機器120を、一つのパケットに格納できるプロパティの最大数NMAXが、(a)第1の値から、第1の値より大きい第2の値までの第1グループと、(b)第2の値に1を加算した第3の値から、第3の値より大きい第4の値までの第2グループと、(c)第4の値に1を加算した第5の値よりも大きい第3グループと、の三つに分類する。
ただし、グループの数、グループを規定する値の範囲は、任意に変更可能である。
また、制御装置100の制御部406は、図18Bに示すように、各グループについて、一つのパケットに格納できるプロパティの最大数NMAXを設定する。
例えば、制御装置100の制御部406は、グループ内におけるプロパティの最大数NMAXのうち最も小さい値を、そのグループに対応付けられるプロパティの最大数NMAXに設定する。ただし、最も小さい値の代わりに、平均値、中央値、最頻値等が用いられてもよい。
つまり、プロパティの最大数NMAXについて、通信機器120が属するグループが決まれば、制御装置100がその通信機器120と通信する際のプロパティの最大数NMAXが決まる。二つの通信機器120が属するグループが同じであれば、プロパティの最大数NMAXは両方とも同じになる。
同様に、制御装置100の制御部406は、図19Aに示すように、複数の通信機器120を、パケットの送信間隔ΔTが、(a)第1の値から、第1の値より大きい第2の値までの第1グループと、(b)第2の値に最小単位(例えば1ミリ秒)を加算した第3の値から、第3の値より大きい第4の値までの第2グループと、(c)第4の値に最小単位(例えば1ミリ秒)を加算した第5の値よりも大きい第3グループと、の三つに分類する。
制御装置100の制御部406は、図19Bに示すように、各グループについて、パケットの送信間隔ΔTを設定する。
例えば、制御装置100の制御部406は、グループ内におけるパケットの送信間隔ΔTのうち最も大きい値を、そのグループに対応付けられるパケットの送信間隔ΔTに設定する。ただし、最も大きい値の代わりに、平均値、中央値、最頻値等が用いられてもよい。
つまり、パケットの送信間隔ΔTについて、通信機器120が属するグループが決まれば、制御装置100がその通信機器120と通信する際のパケットの送信間隔ΔTが決まる。二つの通信機器120が属するグループが同じであれば、パケットの送信間隔ΔTは同じになる。
ただし、グループの数、グループを規定する値の範囲は、任意に変更可能である。送信間隔ΔTについてグループ分けする場合の第1、第2、第3、第4、第5の各値は、プロパティの最大数NMAXについてグループ分けする場合の第1、第2、第3、第4、第5の各値とは異なる。
同様に、制御装置100の制御部406は、図20Aに示すように、複数の通信機器120を、タイムアウト値TOUTが、(a)第1の値から、第1の値より大きい第2の値までの第1グループと、(b)第2の値に最小単位(例えば1ミリ秒)を加算した第3の値から、第3の値より大きい第4の値までの第2グループと、(c)第4の値に最小単位(例えば1ミリ秒)を加算した第5の値よりも大きい第3グループと、の三つに分類する。
制御装置100の制御部406は、図20Bに示すように、各グループについて、タイムアウト値TOUTを設定する。
例えば、制御装置100の制御部406は、グループ内におけるタイムアウト値TOUTのうち最も大きい値を、そのグループに対応付けられるタイムアウト値TOUTに設定する。ただし、最も大きい値の代わりに、平均値、中央値、最頻値等が用いられてもよい。
つまり、タイムアウト値TOUTについて、通信機器120が属するグループが決まれば、制御装置100がその通信機器120との間で通信する際のタイムアウト値TOUTが決まる。二つの通信機器120が属するグループが同じであれば、タイムアウト値は同じになる。
ただし、グループの数、グループを規定する値の範囲は、任意に変更可能である。タイムアウト値TOUTについてグループ分けする場合の第1、第2、第3、第4、第5の各値は、プロパティの最大数NMAXと送信間隔ΔTについてグループ分けする場合の第1、第2、第3、第4、第5の各値とは異なる。
例えば、識別情報が“A001”の通信機器120は、プロパティの最大数NMAXについては第1グループに属し、パケットの送信間隔ΔTについては第3グループに属し、タイムアウト値TOUTについては第2グループに属する。制御装置100の制御部406は、この識別情報が“A001”の通信機器120と通信する際には、プロパティの最大数NMAXについては第1グループに対応付けられる値“10”が、送信間隔ΔTについては第3グループに対応付けられる値“1”が、タイムアウト値TOUTについては第2グループに対応付けられる値“1000”が、それぞれ用いられる。
本実施形態では、プロパティの最大数NMAXと送信間隔ΔTとタイムアウト値TOUTとのそれぞれについて別途グループ化しているが、これら通信パラメータのうちいずれか二つあるいは三つを組み合わせてグループ化してもよい。例えば、制御装置100の制御部406は、図21に示すように、プロパティの最大数NMAXと送信間隔ΔTとタイムアウト値TOUTの三つを用いて通信機器120をグループ化し、グループごとにプロパティの最大数NMAXと送信間隔ΔTとタイムアウト値TOUTを設定してもよい。
次に、制御装置100の制御部406は、いずれかの通信機器120との間の通信を開始するか否かを判別する(ステップS1704)。
通信を開始しない場合(ステップS1704;NO)、通信処理を終了する。通信を開始する場合(ステップS1704;YES)、制御装置100の制御部406は、通信を開始する相手となる通信機器120が属するグループに対応付けられる通信パラメータ(具体的にはプロパティの最大数NMAXと送信間隔ΔTとタイムアウト値TOUTのうち少なくともいずれか一つ)を記憶部405から読み出し(ステップS1705)、読み出した通信パラメータを用いて通信する(ステップS1706)。
本実施形態によれば、制御装置100は、複数の通信機器120のそれぞれと、グループ単位で共通した通信パラメータを用いて通信することができ、通信処理の簡略化が可能となる。
(実施形態7)
次に、実施形態7について、図22、図23を用いて説明する。本実施形態では、制御装置100は、通信可能なすべての通信機器120の中に、相対的に性能が大きく劣っている通信機器があれば、その通信機器120との通信を制限する。
制限とは、制御装置100が通信機器120との一切の通信を行わないことでもよいし、コマンドの種類によって通信したり通信しなかったりすることでもよい。
図22に、上記実施形態1、2、3に示した手順にて決定して記憶部405に記憶した、通信機器120ごとの通信パラメータを定義する定義データの例を示す。
制御装置100の制御部406は、決定された通信パラメータの値のそれぞれについて、制御装置100が通信対象とするか否かの判別に用いるしきい値を設定する。そして、制御部406は、しきい値を用いて通信条件を定義し、通信パラメータが通信条件を満たせば、その通信パラメータが対応付けられる通信機器120と通信する。一方、通信パラメータが通信条件を満たさなければ、制御部406は、その通信パラメータが対応付けられる通信機器120と通信しない、と決定する。
具体的には、通信条件は、“決定された一つのパケットに格納できるプロパティの最大数NMAXが第1のしきい値以上であること”である。制御装置100の制御部406は、一つのパケットに格納できるプロパティの最大数NMAXに第1のしきい値を設定し、決定されたプロパティの最大数NMAXが第1のしきい値より少なければ、その通信機器120との通信を制限する。つまり、プロパティの最大数NMAXが極端に少ないと、その通信機器120との通信の効率が悪くなり、通信システム1全体の通信に悪い影響を与えかねないため、その通信機器120との通信に制限を設けるのである。
例えば、図22において、通信条件を“プロパティの最大数NMAXが10以上であること”と定義すると、制御装置100の制御部406は、この通信条件を満たさない識別情報が“A004”の通信機器120との通信を制限する。
また、通信条件は、“決定されたパケットの送信間隔ΔTが第2のしきい値以下であること”である。制御装置100の制御部406は、パケットの送信間隔ΔTに第2のしきい値を設定し、決定された送信間隔ΔTが第2のしきい値より長ければ、その通信機器120との通信を制限する。つまり、パケットの送信間隔が極端に長いと、その通信機器120との通信の効率が悪くなり、通信システム1全体の通信に悪い影響を与えかねないため、その通信機器120との通信に制限を設けるのである。
例えば、図22において、通信条件を“送信間隔ΔTが20ミリ秒以下であること”と定義すると、制御装置100の制御部406は、この通信条件を満たさない識別情報が“A003”及び“A004”の通信機器120との通信を制限する。
また、通信条件は、“決定されたタイムアウト値TOUTが第3のしきい値以下であること”である。制御装置100の制御部406は、タイムアウト値TOUTに第3のしきい値を設定し、決定されたタイムアウト値TOUTが第3のしきい値より大きければ、その通信機器120との通信を制限する。つまり、タイムアウト値TOUTが極端に長いと、その通信機器120との通信の効率が悪くなり、通信システム1全体の通信に悪い影響を与えかねないため、その通信機器120との通信に制限を設けるのである。
例えば、図22において、通信条件を“タイムアウト値TOUTが1000ミリ秒以下であること”と定義すると、制御装置100の制御部406は、この通信条件を満たさない識別情報が“A002”及び“A003”及び“A004”の通信機器120との通信を制限する。
制御装置100の制御部406は、プロパティの最大数NMAXと送信間隔ΔTとタイムアウト値TOUTのうち少なくともいずれか一つを含む通信条件を定義することができる。例えば、制御部406は、通信条件を、“決定された一つのパケットに格納できるプロパティの最大数NMAXが第1のしきい値以上であり、且つ、決定されたパケットの送信間隔ΔTが第2のしきい値以下であり、且つ、決定されたタイムアウト値TOUTが第3のしきい値以下であること”としてもよい。
制御装置100の制御部406は、通信条件を満たさない通信機器120との間のすべての通信を制限してもよいし、状況に応じて、例えばコマンドの種類に応じて、通信条件を満たすか否かを判別したり判別しなかったりしてもよい。
また、制御装置100の制御部406は、通信条件を満たさない場合には、図22に示す定義データにその通信機器120に対応するレコードを格納せずに通信対象から除外してもよい。
次に、図23に、本実施形態における通信処理を説明するフローチャートを示す。ここでは、制御装置100は、コマンドの種類ごとに制限対象となり得るか否かを予め定義している。
まず、制御装置100の制御部406は、通信機器120に送信すべきコマンドが制限対象となり得るか否かを判別する(ステップS2301)。
通信機器120に送信すべきコマンドが制限対象となり得る場合(ステップS2301;YES)、制御装置100の制御部406は、送信先となる通信機器120に設定されている通信パラメータが通信条件を満たすか否かを判別する(ステップS2302)。
通信条件が満たされると判別した場合(ステップS2302;YES)、制御装置100の制御部406は、コマンドを通信機器120へ送信し(ステップS2303)、応答データを受信する(ステップS2304)。ただし、コマンドに対する応答データが必須でない場合には、ステップS2304は省略される。
一方、通信条件が満たされないと判別した場合(ステップS2302;NO)、制御装置100の制御部406は、コマンドを通信機器120へ送信しない。
送信すべきコマンドが制限対象に含まれるとしても、通信条件が満たされるのであれば、そのコマンドは通信機器120へ送信される。しかし、通信条件が満たされないのであれば、そのコマンドは通信機器120へ送信されない。
なお、ステップS2301においてコマンドが制限対象となり得ないと判別した場合には(ステップS2301;NO)、制御装置100の制御部406は、通信条件にかかわらず、コマンドを通信機器120へ送信する。
例えば、制御装置100が通信可能なすべての通信機器120の現在の動作状態を表示させる旨の指示がユーザから入力されると、制御装置100の制御部406は、すべての通信機器120に対応付けられる通信パラメータのそれぞれについて、通信条件が満たされるか否かを判別する。そして、制御部406は、通信条件が満たされる通信パラメータが対応付けられている通信機器120には状態取得コマンドを送信し、通信条件が満たされない通信パラメータが対応付けられている通信機器120には状態取得コマンドを送信しない。なお、通信条件が満たされない場合には、制御部406は、通信条件が満たされない旨、もしくは、通信を制限している旨を表示してユーザに報知することが望ましい。
本実施形態によれば、制御装置100は、状況に応じて通信を制限し、通信システム1全体の通信効率が悪くなることを防止することができる。また、制御装置100にかかる負荷を軽減することができる。
(実施形態8)
次に、実施形態8について、図24を用いて説明する。本実施形態では、コマンドの種類に応じて通信パラメータを使い分ける。
上述したように、制御装置100は、通信システム1に含まれる通信機器120と、操作コマンドと状態取得コマンドを用いて、通信する。ところで、通信機器120には様々な種類があるし、一般に処理速度や記憶容量といったハードウェア的な性能も様々である。また、制御装置100と通信機器120とで製造会社や通信仕様が異なる場合がある。更に、製造会社が同じであったとしても、通信機器120の型式が古かったり通信仕様が異なっていたりする可能性がある。そこで、本実施形態の制御装置100は、様々な通信機器120に対応できるように構成される。
制御装置100の制御部406は、通信機器120に送信するコマンドが、操作コマンドに分類されるか状態取得コマンドに分類されるかを判別する(ステップS2401)。そして、制御装置100の制御部406は、操作コマンドに分類されるならば(ステップS2401;YES)、通信パラメータを第1の通信仕様に設定し(ステップS2402)、状態取得コマンドに分類されるのであれば(ステップS2401;NO)、通信パラメータを第2の通信仕様に設定する(ステップS2403)。
より詳細には、制御装置100の制御部406は、コマンドの種類に応じて、一つのパケットに格納できるプロパティの最大数NMAXと、パケットの送信間隔ΔTと、タイムアウト値TOUTとを決定する。
制御装置100の制御部406は、通信機器120へ送信するコマンドが操作コマンドであれば、一つのパケットに格納するプロパティの最大数NMAXを第1の値VAに設定し、通信機器120へ送信するコマンドが状態取得コマンドであれば、一つのパケットに格納するプロパティの最大数NMAXを第2の値VBに設定する。第1の値VAは第2の値VBよりも大きく設定される。
また、制御装置100の制御部406は、通信機器120へ送信するコマンドが操作コマンドであれば、パケットの送信間隔ΔTを第1の値VCに設定し、通信機器120へ送信するコマンドが状態取得コマンドであれば、パケットの送信間隔ΔTを第2の値VDに設定する。第1の値VCは第2の値VDよりも短く設定される。
また、制御装置100の制御部406は、通信機器120へ送信するコマンドが操作コマンドであれば、タイムアウト値TOUTを第1の値VEに設定し、通信機器120へ送信するコマンドが状態取得コマンドであれば、タイムアウト値TOUTを第2の値VFに設定する。第1の値VEは第2の値VFよりも短く設定される。
そして、制御装置100の制御部406は、設定した通信仕様にて通信機器120と通信する(ステップS2404)。
操作コマンドは、主にユーザからの要求に基づいて送信されるため、その要求に対する応答が遅いと、ユーザにストレスを感じさせてしまうおそれがある。そこで、操作コマンドの送受信の際には、制御装置100は、一度に送受信するデータの最大量を相対的に大きくしたり、パケットの送信間隔ΔTを相対的に短くしたりすることにより、通信の高速化を図る。一方、状態取得コマンドは、主に制御装置100内部の処理のために送信することが多く、応答が遅くても、ユーザにストレスを感じさせにくい。そこで、状態取得コマンドの送受信の際には、制御装置100は、一度に送受信するデータの最大量を相対的に小さくしたり、パケットの送信間隔ΔTを相対的に長くしたりすることにより、制御装置100への負荷及び通信環境への負荷の低減を図る。
本実施形態によれば、状況に応じて通信仕様を使い分けることができる。ユーザに結果を提示する必要があるコマンドであれば、比較的性能が高い仕様にて通信し、必ずしもユーザに結果を提示しなくてよいコマンドであれば、比較的性能が低い仕様にて通信することにより、制御装置100への負荷を軽減することができる。
(実施形態9)
次に、実施形態9について、図25を用いて説明する。本実施形態では、制御装置100は、通信結果に基づいて通信パラメータを最適化していく。
上記の各実施形態では、制御装置100の制御部406は、新たな通信機器120を検知すると、図9、図10、図11に示した通信パラメータ決定処理を実行して通信パラメータを決定する。一方、本実施形態では、通信パラメータを決定するタイミングは、新たな通信機器120を検知したときでなくてもよい。
制御装置100の制御部406は、通信機器120と通信すると(ステップS2501;YES)、その通信の内容を含む通信ログを記録する(ステップS2502)。通信機器120と通信しない場合には(ステップS2501;NO)、制御装置100の制御部406は通信ログを記録しない。
制御装置100の制御部406は、通信機器120と通信する際に用いる通信パラメータを最適化するか否かを判別する(ステップS2503)。
例えば、制御装置100の制御部406は、毎日の定時等、予め決められた日時になると、通信パラメータを最適化すると判別する。あるいは、制御装置100の制御部406は、前回通信パラメータの最適化を行ってから追記した通信ログの量が予め決められた量以上増加すると、通信パラメータを最適化すると判別する。通信パラメータを最適化するタイミングは任意である。
通信パラメータを最適化すると判別すると(ステップS2503;YES)、制御装置100の制御部406は、記憶部405に記録された通信ログに基づいて、通信パラメータを決定する(ステップS2504)。
具体的には、制御装置100の制御部406は、X個(Xは1以上の整数)のプロパティを含む一つ以上のパケットからなる状態取得コマンドを通信機器120へ送信した後、その状態取得コマンドに対する応答データを受信し、且つ、応答データの中にX個のプロパティが含まれており、且つ、X個のプロパティのすべてにエラー値がセットされていなければ、その状態取得コマンドの送受信に成功したと判別する。制御装置100の制御部406は、通信機器120との通信に成功したときにパケットに格納していたプロパティの数Xを判別する。
同じ通信機器120との間の通信を示す通信ログがあれば、制御装置100の制御部406は、同様に、その通信機器120との通信において一つのパケットに格納していたプロパティの数Y(Yは1以上の整数)を判別する。
そして、制御装置100の制御部406は、その通信機器120との通信において一つのパケットに格納されたプロパティの数X,Yのうち、最も大きい数を、通信機器120との間の通信において一つのパケットに格納できるプロパティの最大数NMAXに決定する。
一旦プロパティの最大数NMAXが決定された後にも、通信ログは追記されていく。追記された通信ログに基づいて判別された、通信に成功したときに一つのパケットに格納されていたプロパティの数が、以前に決定されたプロパティの最大数NMAXより大きければ、制御装置100の制御部406は、追記された通信ログに基づいて判別されたプロパティの数を、通信機器120との通信において一つのパケットに格納できるプロパティの最大数NMAXと決定する。つまり、通信が発生するたびに、プロパティの最大数NMAXが更新され得る。
また、制御装置100の制御部406は、送信間隔ΔTがΔTAである二つ以上の連続したパケットからなる状態取得コマンドを通信機器120へ送信した後、その状態取得コマンドに対するエラーではない応答データを受信すれば、その状態取得コマンドの送受信に成功したと判別する。制御装置100の制御部406は、通信機器120との通信に成功したときのパケットの送信間隔ΔTAを判別する。
パケットの送信間隔ΔTAは、隣り合う二つのパケットにおいて、第1のパケットの送信時刻と第2のパケットの送信時刻との差である。
同じ通信機器120との間の通信を示す通信ログがあれば、制御装置100の制御部406は、同様に、その通信機器120との通信におけるパケットの送信間隔ΔTBを判別する。
そして、制御装置100の制御部406は、その通信機器120との通信におけるパケットの送信間隔ΔTA,ΔTBのうち、最も小さい値を、通信機器120との通信におけるパケットの送信間隔ΔTに決定する。
一旦送信間隔ΔTが決定された後にも、通信ログは追記されていく。追記された通信ログに基づいて判別された、通信に成功したときのパケットの送信間隔が、以前に決定された送信間隔ΔTより短ければ、制御装置100の制御部406は、追記された通信ログに基づいて判別された送信間隔を、通信機器120との間の通信におけるパケットの送信間隔ΔTと決定する。つまり、通信が発生するたびに、送信間隔ΔTが更新され得る。
また、制御装置100の制御部406は、状態取得コマンドを通信機器120へ送信した時刻TAと、その状態取得コマンドに対する応答データを受信した時刻TBとの差を計算する。
同じ通信機器120との通信を示す他の通信ログがあれば、制御装置100の制御部406は、同様に、その通信機器120との通信における、状態取得コマンドを送信した時刻TCと応答データを受信した時刻TDとの差を計算する。
そして、制御装置100の制御部406は、時刻TAと時刻TBとの差と、時刻TCと時刻TDとの差のうち、最も短い値を、通信機器120との間の通信におけるタイムアウト値TOUTに決定する。
一旦タイムアウト値TOUTが決定された後にも、通信ログは追記されていく。追記された通信ログに基づいて判別されたタイムアウト値が、以前に決定されたタイムアウト値TOUTより短ければ、制御装置100の制御部406は、追記された通信ログに基づいて判別されたタイムアウト値を、通信機器120との間の通信におけるタイムアウト値TOUTと決定する。つまり、通信が発生するたびに、タイムアウト値TOUTが更新され得る。
なお、ステップS2503において最適化しないと判別した場合には(ステップS2503;NO)、制御装置100の制御部406は、通信パラメータを再計算しない。
本実施形態によれば、制御装置100は、通信機器120との通信の結果から相応しい通信パラメータを学習し、適宜最適化することができる。また、制御装置100は、新たな通信機器120を検知したときに必ずしも通信パラメータ決定処理を実行しなくてよい。勿論、制御装置100は、新たな通信機器120を検知したときに上述したように通信パラメータ決定処理を実行し、且つ、適切なタイミングで通信パラメータを最適化するようにしてもよい。
(実施形態10)
次に、実施形態10について、図26を用いて説明する。本実施形態では、制御装置100は、予め決められた開始条件が満たされると、通信パラメータ決定処理を実行する。
開始条件は、例えば、制御装置100が再起動されたことである。再起動とは、実行中の処理を終了してオペレーティングシステムを非稼働にした後にオペレーティングシステムを立ち上げ直すことである。例えば、通信システム1のメンテナンス時に、制御装置100が再起動される。
開始条件は、予めスケジュールによって決められた日時が到来することでもよい。例えば、1ヶ月に一回、1年に一回といったように、通信パラメータ決定処理を定期的に実行するようにスケジュールが設定される。
開始条件は、ユーザからの明示的な指示が入力されたことでもよい。制御装置100の制御部406は、通信パラメータを再計算する旨の指示がユーザから入力されると、開始条件が満たされたと判別する。
開始条件は、記憶部405に記憶された通信ログが予め決められた件数以上に達することでもよい。制御装置100の制御部406は、通信の回数が増えると、通信パラメータを最適化してもよい。
制御装置100の制御部406は、開始条件を任意に設定することができる。開始条件を、新たな通信機器120を検知したことと定義すれば、本実施形態の通信処理は、図8に示した通信処理と同一となる。
制御装置100の制御部406は、開始条件が満たされたか否かを判別する(ステップS2601)。
開始条件が満たされないと判別した場合(ステップS2601;NO)、制御装置100の制御部406はステップS2601の処理を繰り返す。開始条件が満たされたと判別した場合(ステップS2601;YES)、制御装置100の制御部406は、図9に示すパケットサイズ決定処理(ステップS2602)、図10に示す送信間隔決定処理(ステップS2603)、図11に示すタイムアウト値決定処理(ステップS2604)を実行する。
なお、制御装置100の制御部406は、パケットサイズ決定処理と送信間隔決定処理とタイムアウト値決定処理を実行する順序を任意に変更してもよい。また、制御装置100の制御部406は、パケットサイズ決定処理と送信間隔決定処理とタイムアウト値決定処理を同時に並行して実行してもよい。
本実施形態によれば、制御装置100は、任意のタイミングで通信パラメータを決定することができる。
(実施形態11)
次に、実施形態11について、図27と図28を用いて説明する。本実施形態では、制御装置100は、決定した通信パラメータ等に基づいて、通信機器120からの応答を得るまでにかかる時間やアドバイス等をユーザに報知する。
上述したように、制御装置100の制御部406は、通信パラメータを決定して記憶部405に記憶し、通信機器120と通信する際には記憶部405に記憶された通信パラメータを用いて通信機器120と通信する。通信パラメータは、通信機器120ごとに異なる可能性がある。従って、応答に時間がかかる可能性がある通信機器120への操作をユーザが指示すると、ユーザが比較的長い時間待たされることになるかもしれない。そこで、制御装置100は、通信機器120ごとに、応答を得るまでにかかる時間等をユーザに報知し、ユーザにストレスを感じさせないようにする。
具体的には、制御装置100の制御部406は、ユーザからの指示に基づく操作コマンドを、比較的通信性能が低い通信機器120へ送信すると、図27に示すように、応答が遅い旨のメッセージ2700をディスプレイ451に表示する。
そして、その通信機器120からの応答データを受信すると、制御装置100の制御部406は、管理画面200を更新し、メッセージ2700を消去する。
例えば、図27に示す管理画面において、一覧表250に含まれるすべてのオブジェクト210に対応するすべての通信機器120の動作状態、もしくは、間取り図260に含まれるすべてのアイコン220に対応するすべての通信機器120の動作状態を最新の値に更新する旨のユーザからの指示が入力されると、制御装置100の制御部406は、すべての通信機器120に状態取得コマンドを送信する。
状態取得コマンドの送信先に、プロパティの最大数NMAXが予め決められた数より少ない通信機器120、又は、送信間隔ΔTが予め決められた値よりも長い通信機器120、又は、タイムアウト値TOUTが予め決められた値より長い通信機器120が含まれていると、言い換えれば、状態取得コマンドの送信先に比較的通信性能が低い通信機器120が含まれていると、制御装置100の制御部406は、状態取得コマンドの送信後、通信機器120からの応答が遅い旨のメッセージ2700を表示する。
制御装置100の制御部406は、状態取得コマンドに対する応答データを受信すると、管理画面200の表示を直ちに更新する。すべての状態取得コマンドに対する応答データを受信すれば、応答が遅い旨のメッセージ2700を消去する。
そして、制御装置100の制御部406は、すべての状態取得コマンドに対する応答データを受信し、図28に示すように、管理画面200の更新を完了した旨のメッセージ2800をディスプレイ451に表示する。
本実施形態によれば、制御装置100は、決定した通信仕様の違いによって応答に時間がかかることを予めユーザに報知することにより、ユーザにストレスをなるべく感じさせないようにすることができる。
なお、制御装置100の制御部406は、状態取得コマンドの送信先に比較的通信性能が低い通信機器120が含まれていないならば、メッセージ2700を表示することなく、状態取得コマンドに対する応答データを受信すると直ちに管理画面200の表示を更新する。
(実施形態12)
次に、実施形態12について、図29を用いて説明する。本実施形態の制御装置100は、通信機器120ごとの通信状態や決定された通信パラメータ等をディスプレイ451に表示する。
制御装置100の制御部406は、図29に示すように、制御装置100が通信可能な通信機器120のそれぞれについて、通信機器120の現在の通信状態(正常に通信が行われているか、通信に異常が発生しているか等)と、通信機器120との通信における応答の速さ、制御装置100が定期的に通信する時間間隔の設定値、等の情報を表示する。
制御装置100の制御部406は、図29に示す情報に加えて、もしくは、図29に示す情報の代わりに、上記各実施形態に示すように計算した通信パラメータをディスプレイ451に表示するようにしてもよい。
制御装置100の制御部406は、現在の通信状態等に基づいて、通信の効率をより良くするためのユーザへのアドバイスを提示してもよい。
ユーザは、ディスプレイ451に表示された各通信機器120の通信性能に関する情報を見て、制御装置100に通信パラメータを再計算させたり、通信機器120に故障が発生していないかを点検したりすればよい。
本実施形態によれば、制御装置100は、通信機器120との間の通信の状態や、決定した通信仕様をユーザに提示し、ユーザにアドバイスを提示することができる。
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
上記各実施形態では、管理画面200やサブ画面300等を制御装置100が表示している。しかし、制御装置100が、制御装置100と通信可能に接続された端末装置(図示せず)に管理画面200やサブ画面300を構成するデータを送信し、この端末装置が、管理画面200やサブ画面300等を表示装置に表示してもよい。図5に示す提示部504は、制御装置100の制御部406と画像処理部402が協働して機能することにより実現される代わりに、制御装置100と通信可能に接続された端末装置が有する制御部と画像処理部が協働して機能することにより実現されてもよい。
なお、端末装置は、オブジェクト210とアイコン220を表す画像データ等、固定されたデータを予め記憶しておき、通信機器120の動作状態等、変化する可能性がある情報のみを制御装置100から受信し、管理画面200やサブ画面300を生成して表示してもよい。
通信機器120は、通信機能を持たない電気機器に後から追加することによってその電気機器に通信機能を持たせるようにする機器、いわゆる通信アダプタでもよい。この場合、通信機器120は、制御装置100と電気機器との間の通信を中継する役割を果たし、空気調和機における空調機能や照明機器における照明機能等を備えなくてよい。また、制御装置100は、通信機器120の動作を統括的に管理するのではなく、通信機器120が繋がれた電気機器の動作を統括的に管理することとなる。
上記各実施形態の制御装置100と通信機器120は、ECHONET Lite(登録商標)に準拠したプロトコルにて通信するが、プロトコルはこれに限定されず任意である。
上記の制御装置100の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、CD−ROM(Compact Disc-ROM)、DVD(Digital Versatile Disk)、MO(Magneto Optical disk)などのコンピュータが読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
更に、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
以上のように、上記各実施形態によれば、様々な性能を有する通信相手との通信に効率良く対応できるようにする制御装置、通信システム、通信方法、及び、プログラムを提供することができる。