以下、本発明の実施形態について図面を参照して詳細に説明する。
実施の形態1.
図1に示されるように、本実施の形態に係る機器操作システム100は、住宅H1に設置された機器を、ネットワークを介して遠隔操作するためのシステムである。機器操作システム100は、図1に示されるように、住宅H1に設置された電気機器10、電気機器10を操作するための専用端末11、電気機器10を制御するコントローラ20、住宅H1の内外のネットワークにおける通信を中継するルータ30、操作に関するデータを伝送するサーバ40、及び、電気機器10を操作するための操作端末51、52を有している。
電気機器10、センサ12、及びコントローラ20は、機器ネットワークNW1を介して互いに接続されている。機器ネットワークNW1は、LAN(Local Area Network)内のサブネットワークとして構築される。このサブネットワークは、例えば、ECHONET Lite(登録商標)等の通信プロトコルに従って通信するためのネットワークである。電気機器10、センサ12、及びコントローラ20は、この通信プロトコルに従って信号を送受信することにより、機器ネットワークNW1を介して互いに通信する。
また、コントローラ20、ルータ30、及び操作端末51は、通信ネットワークNW2を介して互いに接続されている。通信ネットワークNW2は、例えば住宅H1内に構築されたLANである。また、ルータ30、サーバ40、及び操作端末52は、広域ネットワークNW3を介して互いに接続されている。広域ネットワークNW3は、例えばインターネットである。
コントローラ20、サーバ40、及び操作端末51、52は、HTTPS(Hypertext Transfer Protocol over Secure)等の通信プロトコルに従って信号を送受信することにより、通信ネットワークNW2及び広域ネットワークNW3を介して互いに通信する。ただし、コントローラ20及びサーバ40は、ポーリングによりデータを同期することで、互いに通信する。また、サーバ40及び操作端末52は、ウェブサーバ及びクライアントとして、互いに通信する。
電気機器10は、住宅H1に設置された設備機器又は家電機器であって、例えば、住宅H1内の部屋における空気の状態を調節するエアコンディショナである。なお、電気機器10は、エアコンディショナ以外の機器であってもよい。例えば、電気機器10は、電気給湯器、電磁調理器、床暖房機又は冷蔵庫であってもよい。
電気機器10は、専用端末11及びコントローラ20から受信した制御コマンドに従って動作する。例えば、電気機器10は、運転を停止しているときに、冷房運転を開始するための制御コマンドを受信すると、冷房運転を開始して、冷風を吹き出し口から送風する。
また、電気機器10は、コントローラ20からの要求に対して応答する。例えば、冷房運転中の電気機器10は、状態の出力を要求された場合に、現在の状態として、運転モードが「冷房」であることをコントローラ20に通知する。
本実施の形態に係る電気機器10の状態は、ECHONET Liteにおけるプロパティの値によって示される。例えば、電気機器10についてのプロパティには、「運転モード」が含まれ、この「運転モード」の値は、「暖房」、「冷房」、「除湿」、又は「停止中」となる。電気機器10の状態は、専用端末11及びコントローラ20からの制御コマンドにより設定される。
専用端末11は、ユーザによって入力された操作内容を示す制御コマンドを、例えば赤外線通信により電気機器10へ送信する。
センサ12は、例えば、電気機器10が設置された部屋の室温を検知する温度センサ、住宅H1における人の位置を検出する人感センサ、又は、電気機器10によって消費される電力を検知する電力センサである。
コントローラ20は、電気機器10を制御するHEMS(Home Energy Management System)コントローラである。コントローラ20は、機器ネットワークNW1における通信と通信ネットワークNW2における通信とを中継するゲートウェイサーバとして機能する。コントローラ20は、プロセッサ21、主記憶部22、補助記憶部23、入力部24、出力部25、及びインタフェース部26を有している。主記憶部22、補助記憶部23、入力部24、出力部25、及びインタフェース部26はいずれも、内部バス27を介してプロセッサ21に接続されている。
プロセッサ21は、例えばCPU(Central Processing Unit)等から構成される。プロセッサ21は、補助記憶部23に記憶されるプログラムP1を実行することにより、種々の処理を実行する。
主記憶部22は、例えばRAM(Random Access Memory)等から構成される。主記憶部22は、補助記憶部23からプログラムP1をロードする。そして、主記憶部22は、プロセッサ21の作業領域として用いられる。
補助記憶部23は、フラッシュメモリ等の不揮発性メモリを含んで構成される。補助記憶部23は、プログラムP1の他に、プロセッサ21の処理に用いられる種々のデータを記憶している。そして、補助記憶部23は、プロセッサ21の指示に従って、プロセッサ21が利用するデータをプロセッサ21へ供給し、プロセッサ21から供給されたデータを記憶する。
入力部24は、例えば入力キー及びマウス等のポインティングデバイスを含んで構成される。入力部24は、コントローラ20の管理者によって入力された情報を取得して、プロセッサ21に通知する。
出力部25は、LCD(Liquid Crystal Display)等の表示デバイス及びスピーカを含んで構成される。出力部25は、プロセッサ21の指示に従って種々の図形や文字を管理者に対して表示したり、音響信号を再生したりする。
インタフェース部26は、機器ネットワークNW1及び通信ネットワークNW2を介して通信するための通信インタフェース等から構成される。インタフェース部26は、機器ネットワークNW1及び通信ネットワークNW2を介して受信したフレームに含まれる情報をプロセッサ21に通知する。また、インタフェース部26は、プロセッサ21から出力された情報を含むフレームを生成して、所定の送り先へ送信する。
コントローラ20は、プロセッサ21等のハードウェア資源を利用してソフトウェア処理を実行することにより、種々の機能を発揮する。図2に示されるように、コントローラ20は、その機能として、電気機器10の状態を監視する監視部210、電気機器10を操作するための操作信号を受信する受信部220、制御コマンドを生成する生成部230、電気機器10に対する制御のスケジュールを記憶するスケジュール記憶部240、スケジュールに基づいて制御コマンドを生成する予定実行部250、制御コマンドを一時的に記憶するバッファ260、及び、制御コマンドを電気機器10へ送信する送信部270を有している。
監視部210は、主としてプロセッサ21、主記憶部22及びインタフェース部26によって実現される。監視部210は、電気機器10に対して、状態の出力を定期的に要求する。そして、監視部210は、電気機器10から通知された電気機器10の状態を取得して保持する。また、監視部210は、操作端末51、52からの要求に応じて、電気機器10の状態を操作端末51、52に通知する。
受信部220は、主としてインタフェース部26によって実現される。受信部220は、操作端末51、52から操作信号を受信する。操作信号は、ユーザU1、U2によって操作端末51、52に入力された操作内容を示す信号である。受信部220は、受信した操作信号を、受信した順で生成部230に出力する。
生成部230は、主としてプロセッサ21によって実現される。生成部230は、受信部220から出力された各操作信号に基づいて、この操作信号により示される操作内容を実現するための制御コマンドを生成する。例えば、生成部230は、XML形式で記述された操作信号の内容を解読して、ECHONET Liteにおいて状態を設定するためのSet命令を生成する。そして、生成部230は、生成した制御コマンドをバッファ260に出力する。
スケジュール記憶部240は、主として補助記憶部23によって実現される。スケジュール記憶部240は、図3に示されるように、電気機器10を制御する予定の日時と、この日時に実行される制御の内容とが関連づけられたテーブル241を記憶している。テーブル241の内容は、例えば、コントローラ20の管理者、及び操作端末51、52を使用するユーザU1、U2によって指定される。
予定実行部250は、主としてプロセッサ21によって実現される。予定実行部250は、スケジュール記憶部240からテーブル241を読み込む。そして、予定実行部250は、テーブル241に格納されている日時に、この日時に関連づけられた制御の内容を実行するための制御コマンドを生成して、バッファ260に出力する。
バッファ260は、主として主記憶部22又は補助記憶部23によって実現される。バッファ260は、生成部230及び予定実行部250によって生成された制御コマンドを記憶するFIFO(First-In First-Out)型のバッファである。バッファ260には、受信部220によって操作信号が受信された順で、この操作信号に基づいて生成された制御コマンドが格納される。ただし、予定実行部250によって生成された制御コマンドは、テーブル241において指定されている日時に受信された操作信号に基づいて生成されたものとして格納される。
送信部270は、主としてインタフェース部26によって実現される。送信部270は、バッファ260に格納されている制御コマンドを読み込んで、電気機器10へ順次送信する。ただし、送信部270は、1つの制御コマンドを送信したときに、この制御コマンドに対する電気機器10からの応答を受信するまで待機してから、次の制御コマンドを送信する。すなわち、送信部270は、1つの制御コマンドの送信から、この制御コマンドに対する応答の受信までに要する時間を置いて、制御コマンドを順次送信する。
制御コマンドに対する電気機器10からの応答は、例えば、制御コマンドに従った動作の進行状況に関わらず、単に、制御コマンドが電気機器10に到達したことを示す信号である。本実施の形態に係る応答は、電気機器10に設定される状態を示すプロパティ値が、電気機器10の記憶装置に書き込まれたこと、又は書き込まれなかったことを示し、例えばECHONET LiteにおけるSet_Res応答である。
図1に戻り、操作端末51、52各々は、ユーザU1、U2各々が所持する携帯端末であって、例えばスマートフォン又はタブレット端末である。操作端末51、52は、ユーザU1、U2によって入力された操作内容に基づいて操作信号を生成する。そして、操作端末51は、通信ネットワークNW2を介してコントローラ20へ操作信号を送信し、操作端末52は、広域ネットワークNW3、サーバ40、ルータ30、及び通信ネットワークNW2を介して、コントローラ20へ操作信号を送信する。
続いて、電気機器10、専用端末11、コントローラ20、及び操作端末51、52の間における通信について、図4を用いて説明する。図4のシーケンス図には、電気機器10の状態が専用端末11及び操作端末51、52によって設定される例が示されている。
図4に示される例では、電気機器10の最初の状態が状態Aとなっている(ステップS1)。この電気機器10に対して、あるタイミングで、状態R1を設定するための制御コマンドが、専用端末11から送信される(ステップS2)。これにより、電気機器10の状態が状態Aから変化して、状態R1となる(ステップS3)。
また、別のタイミングで、状態R2を設定するための制御コマンドが、専用端末11から送信される(ステップS4)。これにより、電気機器10の状態が状態R1から変化して、状態R2となる(ステップS5)。
コントローラ20は、電気機器10に対して、定期的に状態の出力を要求する(ステップS11、S13)。電気機器10は、この要求各々に対して応答することにより、コントローラ20に状態を通知する(ステップS12、S14)。図4に示される例では、ステップS12にて状態Aが通知され、ステップS14にて状態R1が通知される。
操作端末51は、あるタイミングで、一連の操作RC1を開始する。一連の操作RC1は、ユーザU1が操作画面を開くことによって開始される。操作画面が開かれると、操作端末51は、電気機器10の現在の状態を取得して、操作画面に表示する。具体的には、図4に示されるように、操作端末51は、コントローラ20に対して、電気機器10の状態の通知を要求する(ステップS21)。コントローラ20は、この要求に対して応答することにより、電気機器10の状態として状態Aを操作端末51に通知する(ステップS22)。
次に、操作端末51は、ユーザU1からの入力に基づいて、電気機器10の状態として状態Bを設定するための操作信号を、コントローラ20へ送信する(ステップS23)。これにより、状態Bを設定するための制御コマンドが生成されて、バッファ260に格納される(ステップS24)。
また、操作端末52は、操作端末51による一連の操作RC1とは異なるタイミングで、一連の操作RC2を開始する。具体的には、操作端末52は、ステップS22の後に、コントローラ20に対して電気機器10の状態の通知を要求する(ステップS31)。コントローラ20は、この要求に対して応答することにより、電気機器10の状態として状態R1を通知する(ステップS32)。
次に、操作端末52は、ユーザU2からの入力に基づいて、電気機器10の状態として状態Cを設定するための操作信号を、コントローラ20へ送信する(ステップS33)。これにより、状態Cを設定するための制御コマンドが生成されて、バッファ260に格納される(ステップS34)。
その後、テーブル241に指定された時刻となって、スケジュールが実行される(ステップS40)。具体的には、電気機器10の状態を状態Tとするための制御コマンドが生成されて、バッファ260に格納される。
次に、コントローラ20は、バッファ260に最初に格納された制御コマンドを、電気機器10へ送信する。具体的には、状態Cを設定するための制御コマンドが送信される(ステップS51)。その後、電気機器10は、制御コマンドに対して応答する(ステップS52)。そして、電気機器10は、制御コマンドに従って、その状態を状態Cに変化させる(ステップS53)。
次に、コントローラ20は、ステップS52の応答を受信したことを確認してから、バッファ260に格納された制御コマンドを、電気機器10へ送信する。具体的には、状態Bを設定するための制御コマンドが送信される(ステップS54)。その後、電気機器10は、制御コマンドに対して応答する(ステップS55)。そして、電気機器10は、その状態を状態Bに変化させる(ステップS56)。
次に、コントローラ20は、ステップS55の応答を受信したことを確認してから、バッファ260に格納された制御コマンドを、電気機器10へ送信する。具体的には、状態Tを設定するための制御コマンドが送信される(ステップS57)。その後、電気機器10は、制御コマンドに対して応答する(ステップS58)。そして、電気機器10は、その状態を状態Tに変化させる(ステップS59)。
以上説明したように、本実施の形態に係る送信部270は、1つの制御コマンドに対する電気機器10からの応答が受信された後に、次の制御コマンドを送信する。これにより、電気機器10は、その内部の記憶装置に格納されるデータを制御コマンドに従って書き換えた場合に、コントローラ20に対して、正常にデータを書き換えたことを示す応答をした上で、次の制御コマンドを受信する。また、電気機器10は、制御コマンドに従ってデータを書き換えない場合(制御コマンドを受け付けない場合)に、コントローラ20に対して、制御コマンドに関する処理が正常に終了したことを示す応答をした上で、次の制御コマンドを受信する。
電気機器10が、制御コマンドに対する応答をする前に次の制御コマンドを受信する場合には、データの書き換え処理が正常に終了する前に、別の書き換え処理が実行されることがある。この場合、複数の制御コマンドが競合してしまうおそれがある。特に、相反する操作をするための制御コマンドが電気機器10に入力された結果、機器操作システム100の動作が破綻してしまうおそれがある。
しかしながら、本実施の形態に係るコントローラ20は、複数の制御コマンドを、電気機器10の書き換え処理に要する時間を置いて、逐次的に送信する。このため、電気機器10におけるデータの書き換え処理は、順次正常に終了する。これにより、制御コマンドの競合を回避することができる。ひいては、複数の端末からの操作の競合を回避することができる。
また、コントローラ20による制御コマンドの送信、及びこの制御コマンドに対する応答の受信は、ユーザU1、U2による操作に比して、非常に短い時間スケールで実行される。このため、ユーザU1、U2の感覚において、コントローラ20が制御コマンドをバッファ260に格納することによる遅延は、ほとんど生じない。したがって、ユーザU1、U2の快適性を損なうことがない。
また、コントローラ20は、操作信号が受信された順で、この操作信号に基づいて生成された制御コマンドを送信した。これにより、操作端末51、52から電気機器10へ伝送される操作内容の順番が、コントローラ20において変化することがない。このため、機器操作システム100は、操作内容をスムースに伝送することができる。
実施の形態2.
続いて、実施の形態2について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
本実施の形態に係る機器操作システム100は、1つの端末から電気機器10が操作されている間は、他の端末からの電気機器10の操作を制限する点で、実施の形態1に係るものと異なっている。
図5には、本実施の形態に係るコントローラ20の機能の構成が示されている。図5に示されるように、コントローラ20は、排他モジュール231を有する生成部230、通知部280、及び情報取得部290を含んで構成される。
排他モジュール231は、1つの端末から電気機器10が操作されているときに、他の端末から受信部220によって受信された操作信号を、制御コマンドを生成するための操作信号から除外する。以下では、1つの端末から電気機器10が操作されていて、他の端末からの操作が制限される期間を、制限時間という。
また、排他モジュール231は、制限時間において、電気機器10を操作している端末以外の端末からの操作信号が受信された場合に、この操作信号を送信した端末を、通知部280に通知する。
通知部280は、排他モジュール231から通知された端末に対して、操作が中止されたことを通知する。また、通知部280は、制限時間が終了した場合に、排他モジュール231から通知された端末に対して、制限が解除されたこと通知する。
情報取得部290は、電気機器10を操作している端末から、操作が完了したことを示す完了情報を取得して、完了情報の取得を排他モジュール231に通知する。
続いて、コントローラ20によって実行されるメイン処理について、図6、7を用いて説明する。このメイン処理は、コントローラ20の電源が投入されることで開始する。また、図6、7に示される各処理は、基本的にプロセッサ21によって実行されるが、以下では、図5に示される機能の構成要素を適宜用いて説明する。
図6に示されるように、プロセッサ21は、受信部220によって操作信号が受信されたか否かを判定する(ステップS61)。操作信号が受信されていないと判定された場合(ステップS61;No)、プロセッサ21は、ステップS61の判定を繰り返す。
操作信号が受信されたと判定された場合(ステップS61;Yes)、生成部230は、操作が制限されているか否かを判定する(ステップS62)。具体的には、排他モジュール231が、補助記憶部23に記憶される情報に基づいて、操作信号を送信した端末からの操作が他の端末からの操作によって制限されているか否かを判定する。
操作が制限されていると判定された場合(ステップS62;Yes)、通知部280は、操作が中止されたことを通知する(ステップS63)。具体的には、通知部280は、ステップS61にて受信されたと判定された操作信号による操作が中止されたことを、この操作信号を送信した端末に通知する。これにより、ユーザは、自らが端末に入力した操作が、他の端末からの操作によって中止されたことを認識することができる。その後、プロセッサ21は、ステップS61以降の処理を繰り返す。
一方、操作が制限されていないと判定された場合(ステップS62;No)、排他モジュール231は、ステップS61にて受信されたと判定された操作信号に基づいて制御コマンドを送信する送信処理を開始する(ステップS64)。この送信処理は、メイン処理と並列に実行される。その後、プロセッサ21は、ステップS61以降の処理を繰り返す。
図7に示されるように、送信処理において、排他モジュール231は、他の端末による操作を制限する(ステップS71)。具体的には、排他モジュール231は、電気機器10を操作している端末と、制限時間中であることを示す情報を補助記憶部23に書き込む。これにより、制限時間が開始することとなる。
次に、生成部230は、ステップS61(図6参照)にて受信されたと判定された操作信号に基づいて、制御コマンドを生成する(ステップS72)。その後、送信部270は、制御コマンドを電気機器10へ送信する(ステップS73)。
次に、排他モジュール231は、操作が完了したか否かを判定する(ステップS74)。具体的には、排他モジュール231は、完了情報の取得が情報取得部290から通知されたか否かを判定する。操作が完了したと判定された場合(ステップS74;Yes)、排他モジュール231は、ステップS76へ処理を移行する。
一方、操作が完了していないと判定された場合(ステップS74;No)、排他モジュール231は、ステップS71にて操作を制限してから一定の上限時間が経過したか否かを判定する(ステップS75)。
この上限時間は、制限時間の上限値を意味する。例えば、上限時間は、1つの端末からの操作にかかる最大の時間を基準としてあらかじめ設定される。例えば、端末に操作結果をフィードバックするのにかかる時間、このフィードバックの通信が失敗した場合に再度のフィードバックを試みる時間(再送処理時間)、及び、各処理の遅延時間の最大値を加算したものが、上限時間として設定される。上限時間は、例えば10秒間である。
上限時間が経過していないと判定された場合(ステップS75;No)、排他モジュール231は、ステップS74以降の処理を繰り返す。これにより、操作が完了する時刻又は上限時間が経過した時刻のうちいずれか早い方まで、制限時間が続くこととなる。
一方、上限時間が経過したと判定された場合(ステップS75;Yes)、排他モジュール231は、制限を解除する(ステップS76)。具体的には、排他モジュール231は、制限時間中ではないことを示す情報を補助記憶部23に書き込む。これにより、制限時間が終了する。
次に、排他モジュール231は、制限時間中に中止された操作があったか否かを判定する(ステップS77)。すなわち、排他モジュール231は、制限時間中に受信部220によって受信された操作信号のうち、電気機器10を操作していない端末からの操作信号の有無を判定する。中止された操作がないと判定された場合(ステップS77;No)、プロセッサ21は、送信処理を終了する。
一方、中止された操作があったと判定された場合(ステップS77;Yes)、通知部280は、制限の解除を通知する(ステップS78)。具体的には、通知部280は、操作が制限された端末に、制限が解除されたことを通知する。これにより、操作が制限された端末には、ステップS63(図6参照)の通知に加えて、操作が可能となったことが通知される。
その後、プロセッサ21は、送信処理を終了する。
なお、コントローラ20は、図6、7に示されるメイン処理及び送信処理と並列に、電気機器10の状態を定期的に取得して監視するための監視処理を実行している。さらに、コントローラ20は、メイン処理、送信処理、及び監視処理と並列に、あらかじめ指定された時刻にスケジュールを実行する予定実行処理を実行している。これにより、スケジュール記憶部240に記憶されている制御の内容は、他の端末からの操作の有無に関わらず、指定された時刻に実行される。
続いて、電気機器10、専用端末11、コントローラ20、及び操作端末51、52の間における通信について、図8を用いて説明する。図8のシーケンス図には、操作端末51による操作が中止される例が示されている。なお、図4に示された処理と同等の処理には同一の符号を付している。
図8に示されるように、操作端末51による一連の操作RC1の方が、操作端末52による一連の操作RC2より早く開始している。しかしながら、操作端末52の方が、操作端末51より早く操作信号を送信している。具体的には、ステップS33の方が、ステップS23より早く実行されている。このため、コントローラ20は、ステップS33に続いて、制限を開始する(ステップS101)。
ステップS101にて開始された制限時間中に、操作端末51からの操作信号がコントローラ20によって受信される(ステップS23)。そこで、コントローラ20は、操作端末51に対して、操作が中止された旨を通知する(ステップS102)。
また、本実施の形態では、操作端末52が、一連の操作RC2において、操作信号を送信した後に、コントローラ20に対して電気機器10の状態の通知を要求する(ステップS103)。図8に示される例では、ステップS52にて、状態Cを設定するための制御コマンドが正常に受け付けられたことを示す応答がなされている。このため、コントローラ20は、ステップS103の要求に対して、電気機器10の状態として状態Cを通知することにより、応答する(ステップS104)。
次に、操作端末52は、電気機器10の状態をユーザU2に対して表示して、操作が完了したとユーザU2によって判断された場合に、操作の完了をコントローラ20に対して通知する(ステップS105)。なお、操作端末52は、ユーザU2の判断を待つことなく、電気機器10の状態がステップS33にて設定された状態に等しいと自ら判断して、操作の完了を通知してもよい。
次に、コントローラ20は、操作の完了が通知されたため、制限を解除する(ステップS106)。そして、コントローラ20は、制限時間中に操作信号を送信した操作端末51に対して、制限が解除されたことを通知する(ステップS107)。この通知を受け付けた操作端末51は、再度の操作をするための画面をユーザU1に対して表示する(ステップS108)。
再度の操作をするための画面には、例えば、制限された操作の内容と、制限時間において設定された電気機器10の状態とを比較するための情報が提示される。また、この画面には、制限された操作を改めて実行するか、又は、電気機器10に対する操作を中止するかを選択するためのボタン等が表示されてもよい。これにより、ユーザU1は、制限時間の終了後すぐに再度の操作を試みることができる。
以上説明したように、本実施の形態に係るコントローラ20は、電気機器10を操作していない端末から制限時間中に受信された操作信号を除いて、操作信号から制御信号を生成して送信する。したがって、通信ネットワークNW2を介する2ヶ所以上からの遠隔操作を、電気機器10が受け付けることはない。これにより、複数の操作の競合を回避することができる。特に、相反する操作が同時にされた結果、機器操作システム100の動作が破綻することを防ぐことができる。
また、コントローラ20は、ユーザが意図しない操作をしてしまうことを回避することができる。例えば、1つの端末からの操作が完了する前に別の端末からの操作が開始すると、電気機器10の状態は、いずれか一方の端末を使用するユーザのみによって意図されたものとなり、他方のユーザによって意図されたものとはならないと考えられる。しかしながら、本実施の形態に係るコントローラ20は、1つの端末から電気機器10が操作されているときに他の端末による操作を制限することで、電気機器10の状態が、ユーザによって意図されないものとなることを防ぐことができる。
また、本実施の形態では、電気機器10の状態がユーザに対して表示され、ユーザが操作の完了を判断した。これにより、ユーザは、誤った操作をしてしまった場合に、誤操作の内容を確認することができる。また、操作が完了する前に、操作の修正をすることができる。
また、本実施の形態では、制限時間に一定の上限が設けられた。これにより、例えば、ユーザが操作の完了の確認を怠った場合であっても、制限時間が終了し、他のユーザが電気機器10を操作することができる。
また、本実施の形態において、あらかじめ時刻を指定された制御の内容は、排他モジュール231によって制限されることなく、指定された時刻に実行された。これにより、予定された制御内容を、指定された時刻に確実に実行することができる。
実施の形態3.
続いて、実施の形態3について、上述の実施の形態2との相違点を中心に説明する。なお、上記実施の形態2と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
本実施の形態に係る機器操作システム100は、操作の完了が電気機器10の動作により規定される点で、実施の形態2に係るものと異なっている。
図9には、本実施の形態に係るコントローラ20の機能の構成が示されている。図9に示されるように、情報取得部290は、電気機器10が制御コマンドに従った動作を開始したことを示す動作情報を、センサ12から取得する。例えば、電気機器10が空調機器であって、センサ12が温度センサである場合において、冷房運転を開始するための制御コマンドに従った動作の開始は、検知される室温の低下を意味する。そして、情報取得部290は、この動作情報を取得したことを、排他モジュール231に通知する。
本実施の形態に係る制限時間は、情報取得部290から動作情報の取得が通知された時刻、又は制限時間が開始してから上限時間が経過した時刻までのうちいずれか早い時刻に終了する。
以上説明したように、本実施の形態に係る制限時間は、動作情報が取得されたときに終了する。これにより、1つの端末からの操作によって電気機器10が確実に動作を開始するまで、電気機器10を操作していない端末からの操作を制限することができる。
なお、動作情報は、電気機器10が制御コマンドに従った動作を終了したことを示す情報であってもよい。例えば、冷房運転を開始するための制御コマンドに従った動作の終了は、検知される室温が、制御コマンドにより設定される温度となったことを意味する。また、電気機器10がセンサ12を内蔵する場合には、情報取得部290は、電気機器10から動作情報を取得してもよい。
実施の形態4.
続いて、実施の形態4について、上述の実施の形態2との相違点を中心に説明する。なお、上記実施の形態2と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
本実施の形態に係る機器操作システム100は、ユーザが電気機器10を視認不可能な場合に限って、このユーザによる操作が制限される点で、実施の形態2に係るものと異なっている。
図10には、本実施の形態に係るメイン処理が示されている。図10に示されるように、ステップS62の判定が否定された場合、プロセッサ21は、操作信号を送信した端末が、電気機器10を視認可能な位置にあるか否かを判定する(ステップS110)。例えば、プロセッサ21は、操作信号に含まれる送信元アドレスとして、通信ネットワークNW2内のアドレスを、端末が電気機器10を視認可能な位置にあることを示す情報として検出する。これにより、端末を使用するユーザが電気機器10を視認可能か否かが検出される。
視認可能な位置にないと判定された場合(ステップS110;No)、排他モジュール231は、送信処理を開始する(ステップS64)。一方、視認可能な位置にあると判定された場合(ステップS110;Yes)、生成部230は、制御コマンドを生成する(ステップS111)。次に、送信部270は、制御コマンドを送信する(ステップS112)。そして、プロセッサ21は、ステップS61以降の処理を繰り返す。
以上説明したように、操作信号を送信した端末が電気機器10を視認可能な位置にある場合には、この端末からの操作が、他の端末からの操作を制限することがない。これにより、電気機器10の近傍にある端末から通信ネットワークNW2を介して行われる操作は、実施の形態2に係る専用端末11による操作と同等に実行される。
実施の形態5.
続いて、実施の形態5について、上述の実施の形態2との相違点を中心に説明する。なお、上記実施の形態2と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
本実施の形態に係る機器操作システム100は、電気機器10を操作するためのキーを端末が有するか否かに基づいて操作を制限する点で、実施の形態2に係るものと異なっている。このキーは、電気機器10に対する操作が許可されていることを示すデータ(アクセス権)であって、例えばサーバ40によって配信される。
図11には、本実施の形態に係るメイン処理が示されている。このメイン処理において、ステップS61の判定が肯定された場合に、プロセッサ21は、操作信号を送信した端末がキーを有するか否かを、操作信号に基づいて判定する(ステップS113)。換言すると、プロセッサ21は、ステップS61にて受信されたと判定された操作信号が、キーを有する端末から送信されたものか否かを判定する。例えば、キーが共通鍵暗号における共通鍵であって、操作信号が暗号化されている場合に、プロセッサ21は、補助記憶部23に記憶されているキーを用いて、操作信号を復号することができるか否かを判定する。
端末がキーを有しないと判定された場合(ステップS113;No)、プロセッサ21は、ステップS63へ処理を移行する。一方、端末がキーを有すると判定された場合(ステップS113;Yes)、生成部230は、操作信号に基づいて制御コマンドを生成する(ステップS114)。その後、送信部270は、制御コマンドを送信する(ステップS115)。そして、プロセッサ21は、ステップS61以降の処理を繰り返す。
以上説明したように、本実施の形態に係るコントローラ20は、キーを用いて操作を制限する。これにより、キーを配布する際に、電気機器10を操作可能な端末を任意に選択することができるようになる。
以上、本発明の実施の形態について説明したが、本発明は上記実施の形態によって限定されるものではない。
例えば、上記実施の形態2に係る制限時間は、操作が完了した時刻、又は制限時間が開始してから上限時間が経過した時刻のうちいずれか早い時刻に終了したが、これには限定されない。例えば、操作が完了した時刻に代えて、操作の完了から一定の遅延時間が経過した時刻を用いて、制限時間を規定してもよい。
一定の遅延時間が経過した時刻を用いて制限時間が設定される場合には、図8に示されるステップS105が実行されてからステップS106が実行されるまでの遅延時間T1が、ある程度長いものとなる。この場合、例えば、ユーザU2が操作の完了を誤って判断した場合に、操作の修正をすることができるようになる。また、操作の修正に要する時間は、電気機器10の機種や機能に応じたものになると考えられる。このため、遅延時間は、電気機器10についてあらかじめ設定されることが好ましい。
また、操作端末52は、サーバ40を介してコントローラ20と通信してもよいし、サーバ40を介さずに直接コントローラ20と通信してもよい。
また、コントローラ20は、複数の機器を操作するための操作信号を受信した場合であっても、各々の機器について、上記実施の形態に係る処理と同様の処理を実行することで、操作の競合を防止することができる。
また、上記実施の形態4において、プロセッサ21が、通信ネットワークNW2内の送信元アドレスを、端末を使用するユーザが電気機器10を視認可能な位置にいることを示す情報として検出したが、これには限定されない。例えば、電気機器10から赤外線通信で送信され、操作信号に付加されたデータを用いて、ユーザが電気機器10を視認可能な位置にいることを検出してもよい。また、電気機器10の近傍に配置されたNFC(Near Field Communication)タグに含まれる情報を操作信号から検出してもよい。また、端末を使用するユーザが電気機器10の内蔵カメラ(センサ12)によって撮影されたことを検出してもよい。
また、上記実施の形態4においては、ステップS62の次にステップS110が実行されたが、この順序を入れ替えてもよい(図10参照)。すなわち、ステップS110の判定が否定された場合にステップS62が実行され、ステップS62の判定が否定された場合にステップS64が実行されてもよい。このようにすれば、電気機器10の近傍にある端末からの操作は、他の端末からの操作によって制限されることもなくなるため、実施の形態2に係る専用端末11による操作と同等に実行される。
また、上記実施の形態5に係るキーの有無の判定(図11参照)を、上記実施の形態4におけるステップS110(図10参照)の判定に代えて実行してもよい。
上記実施の形態に係るコントローラ20の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
例えば、補助記憶部23に記憶されているプログラムP1を、フレキシブルディスク、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムP1をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
また、プログラムP1をインターネット等のネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしてもよい。
また、ネットワークを介してプログラムP1を転送しながら起動実行することによっても、上述の処理を達成することができる。
更に、プログラムP1の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータがネットワークを介して送受信しながらプログラムP1を実行することによっても、上述の処理を達成することができる。
なお、上述の機能を、OS(Operating System)が分担して実現する場合又はOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
また、コントローラ20の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を専用のハードウェア(回路等)によって実現してもよい。