以下、本発明を実施するための形態について、図面を参照しつつ詳細に説明する。
実施の形態1.
図1に示されるように、本実施の形態に係る機器操作システム100は、住宅H1に設置された機器を遠隔から操作するためのシステムである。機器操作システム100は、図1に示されるように、住宅H1に設置された電気機器11〜14、電気機器11〜14を制御するコントローラ20、住宅H1の内外のネットワークにおける通信を中継するルータ30、操作に関するデータを伝送するサーバ40、及び、電気機器11〜14を操作するための操作端末50を有している。
電気機器11〜14及びコントローラ20の各々は、機器ネットワークNW1を介して互いに接続されている。機器ネットワークNW1は、LAN(Local Area Network)内のサブネットワークとして構築される。このサブネットワークは、例えば、ECHONET Lite(登録商標)等の通信プロトコルに従って通信するためのネットワークである。電気機器11〜14及びコントローラ20の各々は、この通信プロトコルに従って信号を送受信することにより、機器ネットワークNW1を介して互いに通信する。
また、コントローラ20及びルータ30の各々は、通信ネットワークNW2を介して互いに接続されている。通信ネットワークNW2は、例えば住宅H1内に構築されたLANである。また、ルータ30、サーバ40、及び操作端末50の各々は、広域ネットワークNW3を介して互いに接続されている。広域ネットワークNW3は、例えばインターネットである。
コントローラ20、サーバ40、及び操作端末50の各々は、HTTPS(Hypertext Transfer Protocol over Secure)等の通信プロトコルに従って信号を送受信することにより、通信ネットワークNW2及び広域ネットワークNW3を介して互いに通信する。ただし、コントローラ20とサーバ40とは、ポーリングによりデータを同期することで、互いに通信する。
電気機器11は、住宅H1に居住するユーザU1によって使用される設備機器又は家電機器であって、例えば、住宅H1内の部屋における空気の状態を調節するエアコンディショナである。なお、電気機器11は、エアコンディショナ以外の機器であってもよい。例えば、電気機器11は、電気給湯器、電磁調理器、床暖房機又は冷蔵庫であってもよい。
電気機器12は、例えば、住宅H1の屋根に設置されたソーラーパネルを用いて太陽光から電力を生成する発電システムである。この電気機器12によって生成された電力は、電気機器11等に供給される。
電気機器13は、例えば電気自動車に搭載された蓄電池を用いて、電力を蓄積する蓄電システムである。この電気機器13は、電気機器12によって過剰に生成された電力を蓄積したり、蓄積した電力を電気機器11に供給したりする。
電気機器14は、種々の物理量を計測する計測装置である。電気機器14は、例えば、電気機器11が設置された部屋の室温を計測する温度センサ、住宅H1における人の位置を検出する人感センサ、又は、電気機器11によって消費される電力を計測する電力センサ等から構成される。電気機器14は、計測の結果をコントローラ20に通知する。
電気機器11〜14はいずれも、コントローラ20から受信した制御コマンドに従って動作する。例えば、電気機器11は、運転を停止しているときに、冷房運転を開始するための制御コマンドを受信すると、冷房運転を開始して、冷風を吹き出し口から送風する。
また、電気機器11〜14はいずれも、コントローラ20からの要求に対して応答する。例えば、冷房運転中の電気機器11は、状態の出力を要求された場合に、現在の状態として、運転モードが「冷房」であることをコントローラ20に通知する。
本実施の形態に係る電気機器11〜14各々の状態は、ECHONET Liteにおけるプロパティの値によって示される。例えば、電気機器11についてのプロパティには、「運転モード」が含まれ、この「運転モード」の値は、「暖房」、「冷房」、「除湿」、又は「停止中」となる。電気機器11〜14各々の状態は、コントローラ20からの制御コマンドに従って変化する。
コントローラ20は、例えば、電気機器11〜14を統括して制御するHEMS(Home Energy Management System)コントローラである。このようなHEMSコントローラは、通常、住宅H1内に設置される。また、コントローラ20は、機器ネットワークNW1における通信と通信ネットワークNW2における通信とを中継するゲートウェイサーバとして機能する通信装置である。
コントローラ20は、図2に示されるように、コントローラ20の各構成要素を制御する制御部21、データを記憶する記憶部22、機器ネットワークNW1を介して通信するための第1通信部23、及び、通信ネットワークNW2を介して通信するための第2通信部24、を有している。
制御部21は、例えばCPU(Central Processing Unit)及びRAM(Random Access Memory)等から構成される。制御部21は、記憶部22に記憶されているプログラムを実行することにより、種々の機能を発揮する。制御部21は、その機能として、電気機器11〜14を制御する機器制御モジュール211、電気機器11〜14の状態を監視する監視モジュール212、記憶部22のデータをサーバ40のデータと同期する同期モジュール213、及び、操作の成否を判定する判定モジュール214、を有している。
機器制御モジュール211は、同期モジュール213による同期が実行されたタイミングで、電気機器11〜14の状態を設定するための操作指令を、第2通信部24から取得する。以下、操作指令により設定される状態を、目標状態という。機器制御モジュール211は、この操作指令を、機器ネットワークNW1に適した形式の制御コマンドに変換して、第1通信部23に出力する。なお、この制御コマンドは、実質的に操作指令を表すものであって、操作指令と同等の命令である。
監視モジュール212は、電気機器11〜14各々に対して状態の出力を要求するための要求コマンドを生成して、第1通信部23に定期的に出力する。また、監視モジュール212は、機器ネットワークNW1を介して通知された電気機器11〜14の状態を、第1通信部23から取得する。そして、監視モジュール212は、取得した状態を記憶部22に格納することにより、電気機器11〜14の状態に関するデータベースを最新の状態に保つ。
同期モジュール213は、記憶部22に記憶されるデータと、サーバ40に記憶されるデータとを同期するための要求コマンドを生成して、第2通信部24に定期的に出力する。この要求コマンドには、記憶部22に記憶されるデータの変更点が含まれる。また、同期モジュール213は、この要求コマンドに対するサーバ40からの応答を、第2通信部24から取得する。この応答には、サーバ40に記憶されるデータの変更点が含まれる。そして、同期モジュール213は、取得した応答に基づいて、サーバ40と同期するためのデータベースを最新の状態に保つ。また、同期モジュール213は、同期のタイミングを機器制御モジュール211及び判定モジュール214に通知する。
判定モジュール214は、操作の対象とされた電気機器11〜14の状態が目標状態に等しいか否かを判定することにより、電気機器11〜14に対する操作が成功したか否かを判定する。そして、判定モジュール214は、操作対象の機器の状態、及び操作の成否を示すデータを、操作の結果を示すものとして、同期モジュール213による同期が実行されるタイミングで第2通信部24に出力する。
記憶部22は、フラッシュメモリ等の不揮発性メモリを含んで構成される。記憶部22は、制御部21によって実行されるプログラムの他に、制御部21による処理に用いられる種々のデータを記憶している。このデータには、電気機器11〜14の状態に関するデータベース、及びサーバ40と同期するためのデータベースが含まれる。そして、記憶部22は、制御部21が利用するデータを制御部21に供給し、制御部21から供給されたデータを記憶する。
第1通信部23は、機器ネットワークNW1を介して通信するための通信インタフェース等から構成される。第1通信部23は、機器制御モジュール211からの制御コマンド、及び監視モジュール212からの要求コマンドを、これらのコマンドにより指定される機器へ送信する。また、第1通信部23は、これらのコマンドに対する電気機器11〜14各々からの応答を受信する。
第2通信部24は、通信ネットワークNW2を介して通信するための通信インタフェース等から構成される。第2通信部24は、同期モジュール213からの要求コマンドに、判定モジュール214から出力されたデータを追加して、サーバ40へ送信する。また、第2通信部24は、要求コマンドに対するサーバ40からの応答を受信する。この応答には、電気機器11〜14を操作するための操作指令が含まれる。
ルータ30は、例えばブロードバンドルータである。ルータ30は、通信ネットワークNW2における通信と広域ネットワークNW3における通信とを中継する。
サーバ40は、例えば、コントローラ20を含む複数のHEMSコントローラを管理するクラウドサーバである。また、サーバ40は、HTTPSリクエスト等の要求に対して応答することにより、コントローラ20及び操作端末50と通信する通信装置である。サーバ40は、図2に示されるように、サーバ40の各構成要素を制御する制御部41、データを記憶する記憶部42、及び、広域ネットワークNW3を介して通信するための通信部43を有している。
制御部41は、例えばCPU及びRAM等から構成される。制御部41は、記憶部42に記憶されているプログラムを実行することにより、種々の機能を発揮する。制御部41は、その機能として、操作端末50と通信するためのWEBサーバモジュール411、及び、コントローラ20と通信するための同期モジュール412を有している。
WEBサーバモジュール411は、操作端末50からの要求に応じて、電気機器11〜14を操作するための操作画面を操作端末50に配信する。操作画面は、例えば、記憶部42に記憶されているウェブページである。なお、操作端末50に配信された操作画面には、例えばAjax(asynchronous JavaScript(登録商標) and XML)等の手法により操作の結果も表示される。また、WEBサーバモジュール411は、この操作画面を用いて入力された操作内容に基づく操作指令を、通信部43から取得して記憶部42に格納する。
同期モジュール412は、データを同期するための要求コマンドを、通信部43から取得する。同期モジュール412は、この要求コマンドに基づいて、記憶部42に記憶されるデータを最新の状態に保つ。そして、同期モジュール412は、要求コマンドに対する応答を通信部43に出力する。
記憶部42は、不揮発性メモリ等から構成される。記憶部42は、制御部41によって実行されるプログラムの他に、種々のデータを記憶している。そして、記憶部42は、制御部41が利用するデータを制御部41に供給し、制御部41から供給されたデータを記憶する。例えば、記憶部42は、コントローラ20及び操作端末50と、サーバ40との間で伝送されるデータを記憶する。このデータには、コントローラ20と同期するためのデータベースが含まれる。
通信部43は、広域ネットワークNW3を介して通信するための通信インタフェース等から構成される。通信部43は、操作画面の配信を要求するための要求コマンドを操作端末50から受信し、コントローラ20からの要求コマンドを受信する。また、通信部43は、これらの要求コマンド各々に対する応答を、操作端末50及びコントローラ20各々へ送信する。
操作端末50は、ユーザU1が所持する携帯端末(例えばスマートフォン、タブレット端末等)である。操作端末50は、移動体通信網を介して広域ネットワークNW3に接続され、例えば、ユーザU1が外出先から電気機器11〜14を操作するために用いられる。操作端末50は、図2に示されるように、操作端末50の各構成要素を制御する制御部51、データを記憶する記憶部52、広域ネットワークNW3を介して通信するための通信部53、電気機器11〜14に対する操作内容を入力するための入力部54、及びユーザU1に対して情報を提示する出力部55を有している。
制御部51は、例えばCPU及びRAM等から構成される。制御部51は、記憶部52に記憶されているプログラムを実行することにより、種々の機能を発揮する。例えば、制御部51は、ウェブブラウザとして機能することにより、入力部54から操作指令を取得したり、操作の結果を示すデータを、内部バス等の信号線を介して出力部55へ送信したりする。
記憶部52は、不揮発性メモリ等から構成される。記憶部52は、制御部51によって実行されるプログラムの他に、制御部51による処理に用いられる種々のデータを記憶している。そして、記憶部52は、制御部51が利用するデータを制御部51に供給し、制御部51から供給されたデータを記憶する。
通信部53は、広域ネットワークNW3を介して通信するための通信インタフェース等から構成される。通信部53は、入力部54に入力された操作内容に基づく操作指令を、広域ネットワークNW3に適した形式のデータに変換して、操作対象の機器へ向けて送信する。また、通信部53は、操作の結果を示すデータを受信する。
入力部54は、例えば入力キー及び静電容量方式のポインティングデバイスを含んで構成される。入力部54は、ユーザU1が電気機器11〜14から操作対象の機器を選択するために用いられる。そして、入力部54は、ユーザU1によって入力された操作内容を取得して、この操作内容により示される操作指令を制御部51に出力する。なお、操作指令には、操作対象の機器を識別するための情報も含まれる。
出力部55は、LCD(Liquid Crystal Display)等の表示デバイス及びスピーカを含んで構成される。本実施の形態に係る出力部55は、入力部54を構成するポインティングデバイスと一体的に形成されることで、タッチスクリーンを構成する。また、出力部55は、制御部51の指示に従って種々の図形や文字をユーザU1に対して表示する。例えば、出力部55は、操作画面を表示する。
続いて、コントローラ20によって実行されるコントローラ処理について、図3を用いて説明する。このコントローラ処理は、コントローラ20の電源が投入されることにより開始する。
図3に示されるように、コントローラ20の制御部21は、まず、前回の要求から一定時間が経過したか否かを判定する(ステップS1)。具体的には、制御部21は、前回のステップS2の実行から、例えば30秒間が経過したか否かを判定する。なお、ステップS1が初めて実行される場合には、前回の要求から一定時間が経過したと判定される。
前回の要求から一定時間が経過していないと判定された場合(ステップS1;No)、制御部21は、一定時間が経過するまで、ステップS1の判定を繰り返す。
一方、前回の要求から一定時間が経過したと判定された場合(ステップS1;Yes)、制御部21は、同期を要求する(ステップS2)。具体的には、同期モジュール213が、データを同期するための要求コマンドを生成して出力する。これにより、要求コマンドがサーバ40へ送信される。この要求コマンドを受信したサーバ40は、要求コマンドに対する応答を返す。これにより、コントローラ20及びサーバ40は、実質的に同一のデータベースを記憶することとなる。
次に、制御部21は、操作指令を取得したか否かを判定する(ステップS3)。具体的には、機器制御モジュール211が、サーバ40からの応答に操作指令が含まれるか否かを判定する。操作指令を取得していないと判定された場合(ステップS3;No)、制御部21は、ステップS5へ処理を移行する。
一方、操作指令を取得したと判定された場合(ステップS3;Yes)、制御部21は、操作指令を伝送する(ステップS4)。具体的には、機器制御モジュール211が、制御コマンドを生成して出力する。これにより、操作指令は、操作対象の機器へ伝送されることとなる。
次に、制御部21は、状態の出力を要求して、状態を取得する(ステップS5)。具体的には、監視モジュール212が、電気機器11〜14各々に対して状態の出力を要求するための要求コマンドを生成して出力する。これにより、要求コマンドが電気機器11〜14各々へ送信される。この要求コマンドを受信した電気機器11〜14各々は、コントローラ20に状態を通知する。そして、監視モジュール212は、電気機器11〜14各々から通知された状態を取得する。
次に、制御部21は、操作結果を既に通知したか否かを判定する(ステップS6)。具体的には、制御部21は、ステップS4にて操作指令を伝送した後に、ステップS8又はステップS10にて操作結果を通知しているか否かを判定する。なお、操作指令が未だ伝送されていない場合には、操作結果が既に通知されたものと判定される。
操作結果を既に通知したと判定された場合(ステップS6;Yes)、制御部21は、ステップS1以降の処理を繰り返す。一方、操作結果を未だ通知していないと判定された場合(ステップS6;No)、制御部21は、取得した状態が目標状態と等しいか否かを判定する(ステップS7)。具体的には、判定モジュール214が、ステップS5にて操作対象の機器から最後に取得された状態と、ステップS4にて最後に伝送された操作指令の目標状態とが等しいか否かを判定する。
取得した状態が目標状態と等しくないと判定された場合(ステップS7;No)、制御部21は、ステップS9へ処理を移行する。すなわち、取得した状態が目標状態と異なると判定された場合には、ステップS9の処理が実行される。
一方、取得した状態が目標状態と等しいと判定された場合(ステップS7;Yes)、制御部21は、操作結果を通知する(ステップS8)。具体的には、判定モジュール214が、操作の結果として、ステップS5にて操作対象の機器から最後に取得された状態、及び操作が成功したことを示すデータを、次回のステップS5にて出力される要求コマンドに追加する。これにより、操作の結果を示すデータが、操作端末50へ向けて送信されることとなる。
次に、制御部21は、待機時間が経過したか否かを判定する(ステップS9)。具体的には、制御部21は、前回のステップS4における伝送から、例えば3分間の待機時間が経過したか否かを判定する。この待機時間は、目標状態と等しい状態の取得を待つための時間を意味する。
待機時間が経過していないと判定された場合(ステップS9;No)、制御部21は、ステップS1以降の処理を繰り返す。これにより、制御部21は、待機時間が経過するまで、目標状態と等しい状態の取得を試みることとなる。
一方、待機時間が経過したと判定された場合(ステップS9;Yes)、制御部21は、操作結果を通知する(ステップS10)。具体的には、判定モジュール214が、操作の結果として、ステップS5にて操作対象の機器から最後に取得された状態、及び操作が失敗したことを示すデータを、次回のステップS5にて出力される要求コマンドに追加する。これにより、操作の結果を示すデータが、操作端末50へ向けて送信されることとなる。
その後、制御部21は、ステップS1以降の処理を繰り返す。
続いて、コントローラ処理を実行するコントローラ20、電気機器11、サーバ40、及び操作端末50の間における通信について、図4〜6を用いて説明する。なお、図4〜6中の太線の矢印は、操作指令の伝送と、操作結果の通知とを示している。
図4のシーケンス図には、電気機器11に対する操作が直ちに成功した例が示されている。
図4に示されるように、コントローラ20は、一定時間T1を置いて、電気機器11に対して状態の出力をくり返し要求する(ステップS11、S13、S15、S17)。そして、電気機器11は、コントローラ20からの各々の要求に対して応答する(ステップS12、S14、S16、S18)。これにより、電気機器11の状態がコントローラ20にくり返し通知される。
また、操作端末50は、あるタイミングで、操作画面に入力された操作内容を取得する(ステップS21)。操作端末50は、例えばGET方式又はPOST方式のHTTPSリクエストにより、サーバ40へ操作指令を伝送する(ステップS22)。サーバ40は、コントローラ20とのデータの同期により、コントローラ20へ操作指令を伝送する(ステップS23)。
次に、コントローラ20は、制御コマンドを送信することにより、電気機器11へ操作指令を伝送する(ステップS24)。この操作指令の伝送は、図3中のステップS4の処理に相当する。また、電気機器11は、この操作指令の伝送に対して、操作指令が電気機器11へ到達したことを示す応答をする(ステップS25)。
その後、電気機器11は、その状態を目標状態へ変化させる(ステップS26)。すなわち、電気機器11は、操作指令に従って動作する。電気機器11の変化後の状態は、ステップS16にてコントローラ20に通知される。
次に、コントローラ20は、状態を比較する(ステップS27)。具体的には、コントローラ20は、ステップS24にて伝送した操作指令により示される目標状態と、ステップS16にて通知された状態とを比較する。なお、この状態の比較は、図3中のステップS7の処理に相当する。図4に示される例では、コントローラ20は、これらの状態が一致すると判断する。この判断は、図3中のステップS7における判定の肯定に相当する。
次に、コントローラ20は、サーバ40とのデータの同期により、サーバ40に操作結果を通知する(ステップS28)。この通知は、図3中のステップS8の処理に相当する。また、サーバ40は、操作端末50に操作結果を通知する(ステップS29)。そして、操作端末50は、操作結果を表示する(ステップS30)。具体的には、操作端末50は、操作された電気機器11の状態及び操作の成功を、ユーザU1に対して表示する。
図5のシーケンス図には、電気機器11に対する操作が、時間をおいて成功した例が示されている。なお、図4に示される処理と共通する処理には、同等の符号が付されている。
図5に示されるように、コントローラ20は、ステップS17における要求の後にも、電気機器11に対して状態の出力を要求する(ステップS19)。電気機器11は、この要求に対して応答する(ステップS20)。
また、ステップS16にて状態が通知される前において、電気機器11は、その状態を目標状態へ変化させていない(ステップS31)。すなわち、電気機器11は、操作指令に従って動作していない。そして、コントローラ20は、ステップS16にて通知された状態を目標状態と比較する(ステップS32)。図5に示される例では、コントローラ20は、状態が一致しないと判断する。この判断は、図3中のステップS7における判定の否定に相当する。
電気機器11は、ステップS16における応答の後に、その状態を目標状態へ変化させる(ステップS33)。電気機器11の変化後の状態は、ステップS20にてコントローラ20に通知される。
次に、コントローラ20は、状態を再度比較する(ステップS34)。具体的には、コントローラ20は、ステップS20にて通知された状態と、ステップS24にて伝送した操作指令により示される目標状態とを比較する。図5に示される例では、コントローラ20は、これらの状態が一致すると判断する。
次に、コントローラ20は、サーバ40に操作結果を通知する(ステップS35)。サーバ40は、操作端末50に操作結果を通知する(ステップS36)。そして、操作端末50は、操作結果を表示する(ステップS37)。これにより、成功した操作の結果が、ユーザU1に対してすみやかに提示される。
図6のシーケンス図には、電気機器11に対する操作が失敗する例が示されている。なお、図5に示される処理と共通する処理には、同等の符号が付されている。
図6に示されるように、ステップS20にて状態が通知されるまでに、電気機器11は、その状態を目標状態へ変化させていない(ステップS38)。このため、ステップS24における操作指令の伝送から待機時間T2が経過するまでに、ステップS16、S18、・・・、S20にてコントローラ20に通知される状態はいずれも、目標状態と異なっている。
コントローラ20は、待機時間T2が経過する前に最後に通知された状態を、目標状態と比較する(ステップS39)。図6に示される例では、コントローラ20は、状態が一致しないと判断する。
次に、コントローラ20は、待機時間T2が経過したため、サーバ40に操作結果を通知する(ステップS40)。この通知は、図3中のステップS10の処理に相当する。また、サーバ40は、操作端末50に操作結果を通知する(ステップS41)。そして、操作端末50は、操作結果を表示する(ステップS42)。具体的には、操作端末50は、電気機器11の最新の状態及び操作の失敗を、ユーザU1に対して表示する。
以上説明したように、本実施の形態に係るコントローラ20は、操作対象の機器から状態をくり返し取得する。そして、コントローラ20は、操作指令が伝送された機器の状態が目標状態と等しい場合には、すぐに、成功した操作の結果を操作端末50に通知する。一方、コントローラ20は、操作指令が伝送された機器の状態が目標状態と異なる場合には、操作結果を操作端末50へ通知することなく、待機時間が経過するまで、目標状態に等しい状態の取得を待つ。そして、コントローラ20は、待機時間が経過したときに、失敗した操作の結果を操作端末50に通知する。
これにより、コントローラ20は、操作の成否に応じて、操作結果を異なったタイミングで通知することとなる。ひいては、操作結果が通知されるまでの時間を短縮することができる。
また、操作の結果が操作端末50に通知される。このため、ユーザU1は、操作が成功した場合に、操作対象の機器が操作内容に従って動作していることを確認することができる。また、ユーザU1は、意図しない操作内容を誤って入力してしまった場合に、操作の修正をすることが可能になる。また、ユーザU1は、操作が失敗した場合にも、再度の操作を試みることができる。
また、コントローラ20は、操作対象の機器の最新の状態に加えて、操作の成否を操作端末50に通知した。これにより、ユーザU1は、機器の状態に基づいて操作の成否を判断することなく、直接的に操作の成否を把握することができる。
実施の形態2.
続いて、実施の形態2について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
本実施の形態に係る機器操作システム100は、コントローラ20に代わって、サーバ40が操作の成否を判定する点で、実施の形態1に係るものと異なっている。
図7には、本実施の形態に係る機器操作システム100の構成が示されている。図7に示されるように、コントローラ20の制御部21は、判定モジュール214(図2参照)を省いて構成される。また、記憶部22に記憶されるデータのうち、サーバ40と同期するためのデータベースは、電気機器11〜14の状態に関するデータベースを含むものとする。これにより、コントローラ20によって取得された電気機器11〜14の状態は、データの同期によりサーバ40へ通知されることとなる。
また、サーバ40の制御部41は、判定モジュール413を有している。この判定モジュール413は、操作指令により示される目標状態、及び、操作対象の機器の最新の状態を、記憶部42から読み込む。判定モジュール413は、これらの状態を比較することで、操作の成否を判定する。そして、判定モジュール413は、操作の結果を示すデータを通信部43に出力する。通信部43は、このデータを操作端末50へ送信する。
続いて、サーバ40によって実行されるサーバ処理について、図8を用いて説明する。このサーバ処理は、サーバ40の電源が投入されることにより開始する。
図8に示されるように、サーバ40の制御部41は、まず、操作指令を取得したか否かを判定する(ステップS51)。具体的には、WEBサーバモジュール411が、操作端末50からの操作指令を取得したか否かを判定する。操作指令を取得していないと判定された場合(ステップS51;No)、制御部41は、ステップS53へ処理を移行する。
一方、操作指令を取得したと判定された場合(ステップS51;Yes)、制御部41は、操作指令をデータベースに格納する(ステップS52)。具体的には、WEBサーバモジュール411が、コントローラ20と同期されるデータベースに、操作指令を格納する。
次に、制御部41は、データベースの同期を要求されたか否かを判定する(ステップS53)。具体的には、同期モジュール412が、コントローラ20からの要求コマンドを取得したか否かを判定する。データベースの同期を要求されていないと判定された場合(ステップS53;No)、制御部41は、ステップS51以降の処理を繰り返す。
一方、データベースの同期を要求されたと判定された場合(ステップS53;Yes)、制御部41は、データベースに操作指令があるか否かを判定する(ステップS54)。具体的には、同期モジュール412が、コントローラ20と同期されるデータベースに、ステップS52にて格納されて、未だコントローラ20へ伝送されていない操作指令があるか否かを判定する。
データベースに操作指令がないと判定された場合(ステップS54;No)、制御部41は、同期の要求に対して応答する(ステップS55)。その後、制御部41は、ステップS57へ処理を移行する。
一方、データベースに操作指令があると判定された場合(ステップS54;Yes)、制御部41は、同期の要求に対して応答し、この応答により、操作指令をコントローラ20へ伝送する(ステップS56)。
次に、制御部41は、状態を取得してデータベースに格納する(ステップS57)。具体的には、同期モジュール412が、要求コマンドに含まれる電気機器11〜14の状態を取得して、コントローラ20と同期されるデータベースに格納する。
次に、制御部41は、操作結果を既に通知したか否かを判定する(ステップS58)。具体的には、制御部41は、ステップS56にて操作指令を伝送した後に、ステップS60又はステップS62にて操作結果を通知しているか否かを判定する。操作結果を既に通知したと判定された場合(ステップS58;Yes)、制御部41は、ステップS51以降の処理を繰り返す。
一方、操作結果を未だ通知していないと判定された場合(ステップS58;No)、制御部41は、取得した状態が目標状態と等しいか否かを判定する(ステップS59)。具体的には、判定モジュール413が、ステップS57にて操作対象の機器から最後に取得された状態と、ステップS56にて最後に伝送された操作指令の目標状態とが等しいか否かを判定する。
取得した状態が目標状態と等しくないと判定された場合(ステップS59;No)、制御部41は、ステップS61へ処理を移行する。すなわち、取得した状態が目標状態と異なると判定された場合には、ステップS61の処理が実行される。
一方、取得した状態が目標状態と等しいと判定された場合(ステップS59;Yes)、制御部41は、操作結果を通知する(ステップS60)。具体的には、判定モジュール413が、操作の結果として、ステップS57にて操作対象の機器から最後に取得された状態、及び操作が成功したことを示すデータを、操作端末50へ向けて出力する。
次に、制御部41は、前回のステップS56における伝送から、待機時間が経過したか否かを判定する(ステップS61)。待機時間が経過していないと判定された場合(ステップS61;No)、制御部41は、ステップS51以降の処理を繰り返す。これにより、制御部41は、待機時間が経過するまで、目標状態と等しい状態の取得を試みることとなる。
一方、待機時間が経過したと判定された場合(ステップS61;Yes)、制御部41は、操作結果を通知する(ステップS62)。具体的には、判定モジュール413が、操作の結果として、ステップS57にて操作対象の機器から取得された状態、及び操作が失敗したことを示すデータを、操作端末50へ向けて出力する。
その後、制御部41は、ステップS51以降の処理を繰り返す。
続いて、サーバ処理を実行するサーバ40、電気機器11、コントローラ20、及び操作端末50の間における通信について、図9〜11を用いて説明する。
図9のシーケンス図には、図4と同様に、電気機器11に対する操作が直ちに成功した例が示されている。なお、図4に示される例と同様に、コントローラ20と電気機器11との間では、定期的な状態の出力の要求(ステップS11、S13、S15、S17)及びこの要求に対する応答(ステップS12、S14、S16、S18)と、操作指令の伝送(ステップS24)とがなされている。また、電気機器11は、操作指令に従ってその状態を変化させている(ステップS26)。また、操作端末50は、操作内容を取得し(ステップS21)、操作指令を伝送している(ステップS22)。
図9に示されるように、コントローラ20は、一定時間T3を置いて、サーバ40に対してデータの同期をくり返し要求する(ステップS71、S73、S75、S77)。これにより、電気機器11の状態がサーバ40に定期的に通知される。なお、一定時間T3は、図4に示される一定時間T1に等しい。
また、サーバ40は、コントローラ20からの各々の要求に対して応答する(ステップS72、S74、S76、S78)。ステップS72、S76、S78の応答は、図8中のステップS55の処理に相当する。ステップS74の応答は、操作指令を伝送するものであるため、図8中のステップS56の処理に相当する。
また、電気機器11の変化後の状態は、ステップS75にてサーバ40に通知される。サーバ40は、この状態を、目標状態と比較する(ステップS81)。この状態の比較は、図8中のステップS59の処理に相当する。図9に示される例では、サーバ40は、これらの状態が一致すると判断する。
次に、サーバ40は、操作端末50に操作結果を通知する(ステップS82)。この通知は、図8中のステップS60の処理に相当する。そして、操作端末50は、図4に示される例と同様に、操作結果を表示する。
図10のシーケンス図には、図5と同様に、電気機器11に対する操作が時間をおいて成功した例が示されている。なお、図5に示される例と同等の処理には、同一の符号を付している。
サーバ40は、ステップS75にて通知された状態を、目標状態と比較する(ステップS83)。図10に示される例では、サーバ40は、これらの状態が一致しないと判断する。この判断は、図8中のステップS59における判定の否定に相当する。
コントローラ20は、ステップS77における要求の後にも、サーバ40に対してデータの同期を要求する(ステップS79)。これにより、電気機器11の変化後の状態がサーバ40に通知される。また、サーバ40は、この要求に対して応答する(ステップS80)。
次に、サーバ40は、ステップS79にて通知された状態を、目標状態と比較する(ステップS84)。図10に示される例では、サーバ40は、これらの状態が一致すると判断する。
次に、サーバ40は、操作端末50に操作結果を通知する(ステップS85)。そして、操作端末50は、図5に示される例と同様に、操作結果を表示する。
図11のシーケンス図には、図6と同様に、電気機器11に対する操作が失敗した例が示されている。なお、図6に示される例と同等の処理には、同一の符号を付している。
図11に示される例において、ステップS74における操作指令の伝送から待機時間T4が経過するまでに、ステップS75、・・・、S79にてサーバ40に通知される状態はいずれも、目標状態と異なっている。なお、待機時間T4は、図6に示される待機時間T2に等しい。
サーバ40は、待機時間T2が経過する前に最後に通知された状態を、目標状態と比較する(ステップS86)。図11に示される例では、サーバ40は、状態が一致しないと判断する。
次に、サーバ40は、待機時間T4が経過したため、操作端末50に操作結果を通知する(ステップS87)。この通知は、図8中のステップS62の処理に相当する。そして、操作端末50は、図6に示される例と同様に、操作結果を表示する。
以上説明したように、本実施の形態に係るサーバ40は、操作の成否に応じて、操作結果を異なったタイミングで通知する。これにより、操作結果が通知されるまでの時間を短縮することができる。
実施の形態3.
続いて、実施の形態3について、上述の実施の形態2との相違点を中心に説明する。なお、上記実施の形態2と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
本実施の形態に係る機器操作システム100は、操作端末50が、操作対象の機器の状態を一定の時間に渡って表示しない点で、実施の形態2に係るものと異なっている。
図12には、本実施の形態に係る機器操作システム100の構成が示されている。図12に示されるように、サーバ40の制御部41は、判定モジュール413を省いて構成される。なお、本実施の形態では、説明の理解を容易にするため、判定モジュール413を省いてサーバ40を構成したが、サーバ40は、判定モジュール413を有してもよい。また、コントローラ20が、判定モジュール214を有してもよい。
また、操作端末50の制御部51は、遅延モジュール511を有している。遅延モジュール511は、出力部55による状態の表示を遅延させる。
続いて、操作端末50によって実行される端末処理について、図13を用いて説明する。この端末処理は、操作端末50の電源が投入されることにより開始する。
図13に示されるように、操作端末50の制御部51は、まず、操作指令を取得したか否かを判定する(ステップS91)。具体的には、制御部51は、操作内容が入力された入力部54から、操作指令を示すデータを、信号線を介して受信したか否かを判定する。操作指令を取得していないと判定された場合(ステップS91;No)、制御部51は、ステップS94へ処理を移行する。
一方、操作指令を取得したと判定された場合(ステップS91;Yes)、制御部51は、サーバ40へ操作指令を伝送する(ステップS92)。その後、制御部51は、出力部55に目標状態を表示させる(ステップS93)。これにより、出力部55は、例えば図14に示される操作画面A1をユーザU1に対して表示する。
操作画面A1は、電気機器11を操作するための画面である。操作画面A1は、電気機器11を示すアイコンA2、電気機器11に対する操作内容を入力するためのパネルA3、電気機器11の状態を示すボックスA4、及び、電気機器11に対する操作の成否を示すボックスA5を有している。図14に示されるように、制御部51は、電気機器11の状態として、例えば「冷房」という目標状態を、ボックスA4に表示させる。
次に、制御部51は、状態を要求して取得する(ステップS94)。具体的には、制御部51は、サーバ40に対して状態の通知を要求して、電気機器11〜14各々の最新の状態を取得する。
次に、制御部51は、遅延時間が経過したか否かを判定する(ステップS95)。具体的には、遅延モジュール511が、前回のステップS92における操作指令の伝送から、例えば10秒間の遅延時間が経過したか否かを判定する。
遅延時間が経過していないと判定された場合(ステップS95;No)、制御部51は、ステップS91以降の処理を繰り返す。これにより、制御部51が状態を取得していた場合であっても、遅延時間が経過するまでは、操作画面に、取得された状態ではなく目標状態が表示されることとなる。
一方、遅延時間が経過したと判定された場合(ステップS95;Yes)、制御部51は、操作の成否を判定して、出力部55に操作結果を表示させる(ステップS96)。これにより、図15に示されるように、ボックスA4には電気機器11の最新の状態が表示され、ボックスA5には操作の成否が表示される。なお、アイコンA2の色調を変えることで、電気機器11の状態を表してもよい。
その後、制御部51は、ステップS91以降の処理を繰り返す。
続いて、端末処理を実行する操作端末50、電気機器11、コントローラ20、及びサーバ40の間における通信について、図16を用いて説明する。
図16のシーケンス図には、図9と同様に、電気機器11に対する操作が直ちに成功した例が示されている。なお、図9に示される処理と同等の処理には、同一の符号を付している。
図16に示されるように、操作端末50は、ステップS22にて操作指令を伝送した後に、目標状態を表示する(ステップS101)。この目標状態の表示は、図13中のステップS93の処理に相当する。
次に、操作端末50は、サーバ40に対して状態の通知をくり返し要求する(ステップS102、S104、S106)。この要求はいずれも、図13中のステップS94の処理に相当する。サーバ40は、これらの要求各々に対して応答する(ステップS103、S105、S107)。これにより、操作対象の電気機器11の状態が、操作端末50に通知される。
そして、操作端末50は、ステップS22における操作指令の伝送から遅延時間T5が経過した後に、操作結果を表示する(ステップS108)。この操作結果には、電気機器11の最新の状態、及び操作の成否が含まれる。
以上説明したように、本実施の形態に係る操作端末50は、操作指令の伝送後に、取得した操作対象の機器の状態を、遅延時間が経過するまでの間を除いて、ユーザU1に対して表示する。したがって、操作指令が到達する前における操作対象の機器の状態が、操作端末50による操作指令の伝送の直後に表示されることがない。図16に示される例では、ステップS14、S73、S103にて通知された電気機器11の状態が、ステップS22の直後に表示されることがない。
これにより、操作対象の機器の状態として、目標状態と異なる状態が、操作内容の入力直後にユーザU1に対して表示されることがなくなるため、操作指令が伝送される前における機器の状態を、操作が失敗した結果を示すものとしてユーザU1が誤認することを防止することができる。ひいては、操作端末50の操作性が向上する。
また、操作端末50は、遅延時間が経過するまでの間に、操作対象の機器の状態として目標状態を表示する。これにより、例えば操作が失敗した場合に、ユーザU1は、遅延時間の終了時に、操作対象の機器の状態が目標状態から目標状態と異なる状態に変化する様子を視認することとなる。このため、ユーザU1は操作が失敗したことを容易に認識することができる。
実施の形態4.
続いて、実施の形態4について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
本実施の形態に係る機器操作システム100は、待機時間が、状態を取得した回数によって規定される点で、実施の形態1に係るものと異なっている。
図17に示されるように、本実施の形態に係るコントローラ処理において、制御部21は、ステップS8に続いて、状態を所定回数取得したか否かを判定する(ステップS111)。具体的には、制御部21は、ステップS4における操作指令の伝送の後にくり返し実行されたステップS5の処理によって、操作対象の機器の状態を所定回数取得したかを判定する。所定回数は、例えば3回である。
状態を所定回数取得していないと判定された場合(ステップS111;No)、制御部21は、ステップS1以降の処理を繰り返す。これにより、制御部21は、目標状態と等しい状態の取得を再度試みることとなる。ただし、状態の取得を試みる回数が所定回数に限られているため、制御部21は、所定回数だけ状態を取得するまでの時間に限って、目標状態と等しい状態の取得を待つこととなる。
一方、状態を所定回数取得したと判定された場合(ステップS111;Yes)、制御部21は、ステップS10へ処理を移行する。
以上説明したように、本実施の形態に係るコントローラ20は、状態を取得する回数を限って、目標状態と等しい状態の取得を待つ。このため、コントローラ20は、待機時間を計測するためのタイマー処理に代えて、状態を取得した回数のカウント処理を実行することとなる。これにより、制御部21は、ハードウェア資源を節約することができる。
以上、本発明の実施の形態について説明したが、本発明は上記実施の形態によって限定されるものではない。
例えば、機器操作システム100は、上記実施の形態においてサーバ40を有していたが、図18に示されるように、サーバ40を省いて構成されてもよい。サーバ40が省略される場合には、操作指令が、操作端末50から広域ネットワークNW3、ルータ30、及び通信ネットワークNW2をこの順で介して、コントローラ20へ伝送される。また、操作結果を示すデータが、コントローラ20から通信ネットワークNW2、ルータ30、及び広域ネットワークNW3をこの順で介して、操作端末50へ伝送される。
また、上記実施の形態に係る操作端末50は、広域ネットワークNW3に接続されたが、これには限定されない。例えば、図18に示されるように、操作端末50と同様に構成される操作端末501が、広域ネットワークNW3に接続されることなく、通信ネットワークNW2に接続されてもよい。操作端末501は、通信ネットワークNW2を介して操作指令をコントローラ20へ伝送し、コントローラ20から通信ネットワークNW2を介して操作結果を示すデータを取得する。操作端末501を使用するユーザU2は、住宅H1内から電気機器11〜14を操作することができる。
また、上記実施の形態に係るコントローラ20及びサーバ40は、ポーリングによりデータを同期したが、ロングポーリング(Comet方式)によって同期してもよいし、WebSocketプロトコルに従う通信で同期してもよい。
また、上記実施の形態に係る操作の結果には、操作指令が伝送された機器の最新の状態、及び操作の成否が含まれたが、これには限られない。例えば、操作の結果は、機器の状態及び操作の成否のいずれか一方のみであってもよい。また、操作の結果は、操作対象の機器の状態の履歴を含んでもよい。さらに操作の結果は、操作指令が伝送された機器の状態に関する他の情報を含んでもよい。
また、上記実施の形態では、コントローラ20又はサーバ40が操作の成否を判定したが、これには限定されない。例えば、操作端末50の制御部51が、判定モジュール214、413と同様に操作の成否を判定してもよい。具体的には、制御部51は、目標状態と等しい状態を取得した場合にはすぐに、成功した操作の結果を示すデータを出力部55へ送信してもよい。また、制御部51は、目標状態と異なる状態を取得した場合に、待機時間の経過まで状態の取得を試行してもよい。また、制御部51は、待機時間が経過した場合に、失敗した操作の結果を示すデータを出力部55へ送信してもよい。
また、上記実施の形態に係る操作端末50は、図14に示されるように、タッチスクリーン上に「冷房開始」又は「停止」と表示されたボタンにより、操作内容を受け付けたが、これには限定されない。例えば、トグルスイッチ等の操作によって入力された操作内容を取得してもよい。
また、上記実施の形態4において、目標状態と等しい状態を取得するための試行の回数は3回であったが、これには限られない。この回数が複数回(2回以上)であれば、コントローラ20は、操作対象の機器の状態に応じて、異なったタイミングで操作の結果を通知することができる。
上記実施の形態に係るコントローラ20、サーバ40、及び操作端末50の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
例えば、記憶部22、42、52に記憶されているプログラムを、フレキシブルディスク、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
また、プログラムをインターネット等のネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしてもよい。
また、ネットワークを介してプログラムを転送しながら起動実行することによっても、上述の処理を達成することができる。
更に、プログラムの全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータがネットワークを介して送受信しながらプログラムを実行することによっても、上述の処理を達成することができる。
なお、上述の機能を、OS(Operating System)が分担して実現する場合又はOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
また、コントローラ20、サーバ40、及び操作端末50の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を専用のハードウェア(回路等)によって実現してもよい。