(57)【要約】【課題】制御命令が競合した場合に制御命令を選択可能な通信システムを得る。【解決手段】通信システムは、サーバ装置１００と、被制御装置を制御するコントローラ３００とを備える。コントローラ３００は、被制御装置を制御するための指令がサーバ装置１００に存在するか否かを、指定されたタイミングでサーバ装置１００に問い合わせる。サーバ装置１００は、スマートフォン５０１およびスマートフォン５０２の各々から指令を受信する。サーバ装置１００は、各指令を受信した後に問い合わせがあった場合、予め定められた規則に基づいて、スマートフォン５０１およびスマートフォン５０２の各々から受信した各指令のうちのいずれかの指令を選択する。サーバ装置１００は、問い合わせに対して、選択された指令をコントローラ３００に送信する。【選択図】図６
2015033122.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と、被制御装置を制御する制御装置とを備える通信システムであって、
前記制御装置は、前記被制御装置を制御するための指令が前記サーバ装置に存在するか否かを、指定されたタイミングで前記サーバ装置に問い合わせ、
前記サーバ装置は、
第１の電子機器および第２の電子機器の各々から前記指令を受信する受信手段と、
各前記指令を受信した後に前記問い合わせがあった場合、予め定められた第１の規則に基づいて、前記第１の電子機器および前記第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択する選択手段と、
前記問い合わせに対して、前記選択された指令を前記制御装置に送信する送信手段とを含む、通信システム。
【請求項２】
前記サーバ装置は、前記指令が前記制御装置に送信されてから前記問い合わせを再度受け付ける迄の期間に前記受信手段が前記第１の電子機器および前記第２の電子機器の各々から前記指令をさらに受信した場合、前記期間に受信された各前記指令のうち前記第１の規則に基づいて選択された１つの指令の送信元と、前記制御装置に送信された指令の送信元とが同一か否かを判断する判断手段をさらに含み、
前記送信手段は、前記送信元が同一であると判断された場合、前記期間に受信された各前記指令のうち前記選択された指令を前記制御装置にさらに送信する、請求項１に記載の通信システム。
【請求項３】
前記送信手段は、前記送信元が同一でないと判断された場合、前記制御装置に送信された指令を前記受信手段が受信したときから予め定められた時間以上経過した後に、前記期間に受信した各前記指令のうち前記選択された指令を前記受信手段が受信していることを条件に、前記期間に受信した各前記指令のうち前記選択された指令を前記制御装置にさらに送信する、請求項２に記載の通信システム。
【請求項４】
前記第１の規則は、複数の未送信の前記指令のうち最も古い方の指令を選択することを規定、あるいは複数の未送信の前記指令のうちの最も新しい方の指令を選択することを規定している、請求項３に記載の通信システム。
【請求項５】
前記受信手段は、前記第１の電子機器から前記指令を受信してから前記問い合わせがある迄の期間に、前記第１の電子機器から前記指令をさらに受信し、
前記選択手段は、予め定められた第２の規則に基づいて前記第１の電子機器から受信した各前記指令のうちのいずれかの指令を選択し、当該選択の後、前記第１の規則に基づいて当該選択された指令および前記第２の電子機器から受信した指令のうちのいずれかの指令を選択し、
前記送信手段は、前記問い合わせに対して、前記第１の規則に基づいて当該選択された指令および前記第２の電子機器から受信した指令のうちから選択された指令を、前記制御装置に送信する、請求項１に記載の通信システム。
【請求項６】
前記第１の規則は、複数の未送信の前記指令のうち最も古い方の指令を選択することを規定、あるいは複数の未送信の前記指令のうちの最も新しい方の指令を選択することを規定しており、
前記第２の規則は、２つの未送信の前記指令を受信した各時刻の差分が閾値よりも大きい場合には、当該２つの未送信の指令のうち後に受信された指令を選択し、前記差分が前記閾値よりも大きくない場合には、当該２つの未送信の指令のうち先に受信した指令を選択することを規定している、請求項５に記載の通信システム。
【請求項７】
第１の電子機器および第２の電子機器と、被制御装置を制御する制御装置と通信するサーバ装置であって、
前記被制御装置を制御するための指令が前記サーバ装置に存在するか否かが、指定されたタイミングで前記制御装置から前記サーバ装置に問い合わされ、
前記サーバ装置は、
第１の電子機器および第２の電子機器の各々から前記指令を受信する受信手段と、
各前記指令を受信した後に前記問い合わせがあった場合、予め定められた規則に基づいて、前記第１の電子機器および前記第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択する選択手段と、
前記問い合わせに対して、前記選択された指令を前記制御装置に送信する送信手段とを備える、サーバ装置。
【請求項８】
サーバ装置と、被制御装置を制御する制御装置とを備える通信システムにおける制御方法であって、
前記制御装置が、前記被制御装置を制御するための指令が前記サーバ装置に存在するか否かを、指定されたタイミングで前記サーバ装置に問い合わせるステップと、
前記サーバ装置が、第１の電子機器および第２の電子機器の各々から前記指令を受信するステップと、
前記サーバ装置が、各前記指令を受信した後に前記問い合わせがあった場合、予め定められた規則に基づいて、前記第１の電子機器および前記第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択するステップと、
前記サーバ装置が、前記問い合わせに対して、前記選択された指令を前記制御装置に送信するステップとを備える、制御方法。
【請求項９】
第１の電子機器および第２の電子機器と、被制御装置を制御する制御装置と通信するサーバ装置における制御方法であって、
前記被制御装置を制御するための指令が前記サーバ装置に存在するか否かが、指定されたタイミングで前記制御装置から前記サーバ装置に問い合わされ、
前記制御方法は、
第１の電子機器および第２の電子機器の各々から前記指令を受信するステップと、
各前記指令を受信した後に前記問い合わせがあった場合、予め定められた規則に基づいて、前記第１の電子機器および前記第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択するステップと、
前記問い合わせに対して、前記選択された指令を前記制御装置に送信するステップとを備える、制御方法。
【請求項１０】
第１の電子機器および第２の電子機器と、被制御装置を制御する制御装置と通信するサーバ装置を制御するプログラムであって、
前記被制御装置を制御するための指令が前記サーバ装置に存在するか否かが、指定されたタイミングで前記制御装置から前記サーバ装置に問い合わされ、
前記プログラムは、
第１の電子機器および第２の電子機器の各々から前記指令を受信するステップと、
各前記指令を受信した後に前記問い合わせがあった場合、予め定められた規則に基づいて、前記第１の電子機器および前記第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択するステップと、
前記問い合わせに対して、前記選択された指令を前記制御装置に送信するステップとを、前記サーバ装置のプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、サーバ装置、制御方法、およびプログラムに関する。特に、家庭用電気器具等の被制御装置を制御するための通信システム、通信システムを構成するサーバ装置、通信装置における制御方法、サーバ装置における制御方法、およびサーバ装置を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、家庭用電気器具から受信するポーリング信号に基づき、当該家庭用電気器具にユーザ端末から受信した制御指令を送信する遠隔制御システムが知られている。
【０００３】
たとえば、特許文献１には、当該遠隔制御システムとして、制御情報格納手段と、判定手段と、割当手段とを備える構成が開示されている。当該判定手段は、情報家電機器から、第１のタイムスロットにおいて、機器識別情報と初期ポーリング間隔とを含むポーリング信号を受信したことに応じて、制御情報格納手段を参照し、予め定めた制御情報有無判定時間内に、情報家電機器に対する制御情報の受信があったか否かを判定する。また、上記割当手段は、制御情報の受信があった場合に、上記第１のタイムスロットから、上記初期ポーリング間隔を所定の時間長さだけ短縮した時間だけ後の第２のタイムスロットを、次にポーリング信号を送出するタイムスロットとして情報家電機器に割り当てる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６６６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１においては、次のポーリングが行なわれるまでに制御命令を複数受け付けた場合、いずれの制御命令に基づいて被制御装置を制御するかについて考慮されていない。つまり、特許文献１の構成では、制御命令の競合が発生したとき、複数の制御命令から１つの制御命令を選択する処理を行なうことはできない。
【０００６】
本願発明は、上記の問題点に鑑みなされたものであって、その目的は、制御命令が競合した場合に制御命令を選択可能な通信システム、通信システムを構成するサーバ装置、通信装置における制御方法、サーバ装置における制御方法、およびサーバ装置を制御するためのプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある局面に従うと、通信システムは、サーバ装置と、被制御装置を制御する制御装置とを備える。制御装置は、被制御装置を制御するための指令がサーバ装置に存在するか否かを、指定されたタイミングでサーバ装置に問い合わせる。サーバ装置は、第１の電子機器および第２の電子機器の各々から指令を受信する受信手段と、各指令を受信した後に問い合わせがあった場合、予め定められた第１の規則に基づいて、第１の電子機器および第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択する選択手段と、問い合わせに対して、選択された指令を制御装置に送信する送信手段とを含む。
【０００８】
好ましくは、前記サーバ装置は、指令が制御装置に送信されてから問い合わせを再度受け付ける迄の期間に受信手段が第１の電子機器および第２の電子機器の各々から指令をさらに受信した場合、期間に受信された各指令のうち第１の規則に基づいて選択された１つの指令の送信元と、制御装置に送信された指令の送信元とが同一か否かを判断する判断手段をさらに含む。送信手段は、送信元が同一であると判断された場合、期間に受信された各指令のうち選択された指令を制御装置にさらに送信する。
【０００９】
好ましくは、送信手段は、送信元が同一でないと判断された場合、制御装置に送信された指令を受信手段が受信したときから予め定められた時間以上経過した後に、期間に受信した各指令のうち選択された指令を受信手段が受信していることを条件に、期間に受信した各指令のうち選択された指令を制御装置にさらに送信する。
【００１０】
好ましくは、第１の規則は、複数の未送信の指令のうち最も古い方の指令を選択することを規定、あるいは複数の未送信の指令のうちの最も新しい方の指令を選択することを規定している。
【００１１】
好ましくは、受信手段は、第１の電子機器から指令を受信してから問い合わせがある迄の期間に、第１の電子機器から指令をさらに受信する。選択手段は、予め定められた第２の規則に基づいて第１の電子機器から受信した各指令のうちのいずれかの指令を選択し、当該選択の後、第１の規則に基づいて当該選択された指令および第２の電子機器から受信した指令のうちのいずれかの指令を選択する。送信手段は、問い合わせに対して、第１の規則に基づいて当該選択された指令および第２の電子機器から受信した指令のうちから選択された指令を、制御装置に送信する。
【００１２】
好ましくは、第１の規則は、複数の未送信の指令のうち最も古い方の指令を選択することを規定、あるいは複数の未送信の指令のうちの最も新しい方の指令を選択することを規定している。第２の規則は、２つの未送信の指令を受信した各時刻の差分が閾値よりも大きい場合には、当該２つの未送信の指令のうち後に受信された指令を選択し、差分が閾値よりも大きくない場合には、当該２つの未送信の指令のうち先に受信した指令を選択することを規定している。
【００１３】
本発明の他の局面に従うと、サーバ装置は、第１の電子機器および第２の電子機器と、被制御装置を制御する制御装置と通信する。被制御装置を制御するための指令がサーバ装置に存在するか否かが、指定されたタイミングで制御装置からサーバ装置に問い合わされる。サーバ装置は、第１の電子機器および第２の電子機器の各々から指令を受信する受信手段と、各指令を受信した後に問い合わせがあった場合、予め定められた規則に基づいて、第１の電子機器および第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択する選択手段と、問い合わせに対して、選択された指令を制御装置に送信する送信手段とを備える。
【００１４】
本発明のさらに他の局面に従うと、制御方法は、サーバ装置と、被制御装置を制御する制御装置とを備える通信システムにおいて実行される。制御方法は、制御装置が、被制御装置を制御するための指令がサーバ装置に存在するか否かを、指定されたタイミングでサーバ装置に問い合わせるステップと、サーバ装置が、第１の電子機器および第２の電子機器の各々から指令を受信するステップと、サーバ装置が、各指令を受信した後に問い合わせがあった場合、予め定められた規則に基づいて、第１の電子機器および第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択するステップと、サーバ装置が、問い合わせに対して、選択された指令を制御装置に送信するステップとを備える。
【００１５】
本発明のさらに他の局面に従うと、制御方法は、第１の電子機器および第２の電子機器と、被制御装置を制御する制御装置と通信するサーバ装置において実行される。被制御装置を制御するための指令がサーバ装置に存在するか否かが、指定されたタイミングで制御装置からサーバ装置に問い合わされる。制御方法は、第１の電子機器および第２の電子機器の各々から指令を受信するステップと、各指令を受信した後に問い合わせがあった場合、予め定められた規則に基づいて、第１の電子機器および第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択するステップと、問い合わせに対して、選択された指令を制御装置に送信するステップとを備える。
【００１６】
本発明のさらに他の局面に従うと、プログラムは、第１の電子機器および第２の電子機器と、被制御装置を制御する制御装置と通信するサーバ装置を制御する。被制御装置を制御するための指令がサーバ装置に存在するか否かが、指定されたタイミングで制御装置からサーバ装置に問い合わされる。プログラムは、第１の電子機器および第２の電子機器の各々から指令を受信するステップと、各指令を受信した後に問い合わせがあった場合、予め定められた規則に基づいて、第１の電子機器および第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択するステップと、問い合わせに対して、選択された指令を制御装置に送信するステップとを、サーバ装置のプロセッサに実行させる。
【発明の効果】
【００１７】
本発明によれば、制御命令が競合した場合に制御命令を選択可能となる。
【図面の簡単な説明】
【００１８】
【図１】通信システム１の概略構成を表した図である。
【図２】サーバ装置１００のハードウェア構成の典型例を表した図である。
【図３】コントローラ３００のハードウェア構成の典型例を表した図である。
【図４】通信システム１とは異なる通信システムで実行される処理の流れを表したシーケンスチャートである。
【図５】サーバ装置１００に格納されているデータテーブルＤ５を表した図である。
【図６】通信システム１で実行される処理の流れを表したシーケンスチャートである。
【図７】図６におけるステップＳ１５６の処理の詳細を説明するためのフローチャートである。
【図８】通信システム１でさらに実行される処理の流れを表したシーケンスチャートである。
【図９】図８のステップＳ２５６の詳細を説明するためのフローチャートである。
【図１０】サーバ装置１００の機能的構成を説明するための機能ブロック図である。
【図１１】通信システム１Ａの概略構成を表した図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照しつつ、本発明の各実施の形態に係る通信システムについて説明する。また、以下の説明では、同一の部材には同一の参照符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
［実施の形態１］
＜Ａ．システム構成＞
図１は、本実施の形態に係る通信システム１の概略構成を表した図である。図１を参照して、通信システム１は、サーバ装置１００と、コントローラ３００と、エアーコンディショナ４０１と、複数のスマートフォン５０１，５０２，５０３とを備える。本実施の形態では、被制御装置としてエアーコンディショナ４０１を例に挙げているが、これに限定されるものではなく、テレビまたは照明装置等の他の機器であってもよい。なお、以下では、スマートフォン５０１，５０２，５０３を区別しない場合には、「スマートフォン５００」と表記する。すなわち、３台のスマートフォン５０１，５０２，５０３のうちの任意の１台のスマートフォンを「スマートフォン５００」と表記する。
【００２０】
コントローラ３００と、エアーコンディショナ４０１とは、宅内に設置されている。サーバ装置１００は、宅外に設置されている。また、本実施の形態では、スマートフォン５０１，５０２，５０３は、それぞれ宅外にいる異なるユーザ（たとえば、父、母、子供）に所持されているものとして説明する。
【００２１】
スマートフォン５０１，５０２，５０３は、サーバ装置１００と通信可能に接続されている。サーバ装置１００は、図示しないルータを介して、コントローラ３００と通信可能に接続されている。コントローラ３００は、サーバ装置１００およびエアーコンディショナ４０１と通信可能に接続されている。
【００２２】
サーバ装置１００は、ポーリングを利用した双方向通信と、常時接続を利用した双方向通信とを選択的に利用して、コントローラ３００と通信する。通信システム１では、常時接続を利用することにより、ポーリングを行なうことなく双方向通信ができる。以下では、常時接続を利用した通信方式として、ウェブソケット（WebSocket）を用いる例を説明する。
【００２３】
サーバ装置１００は、ポーリングを利用した双方向通信およびウェブソケットを用いた双方向通信の各々において、一例として、ＸＭＬ（Extensible Markup Language）等のマークアップ言語を用いた通信仕様に基づき、コントローラ３００と通信する。なお、サーバ装置１００は、ＪＳＯＮ（JavaScript（登録商標） Object Notation）等の非マークアップ言を用いた通信仕様に基づき、コントローラ３００と通信してもよい。通信に用いるデータの形式は、特に限定されるものではない。
【００２４】
コントローラ３００は、マークアップ言語を用いた制御指令を解釈し、エアーコンディショナ４０１を制御する。ポーリングを利用した双方向通信方式においては、コントローラ３００は、エアーコンディショナ４０１を制御するための制御指令が存在するか否かを、指定されたタイミングでサーバ装置１００に対して問い合わせ（つまり、ポーリングを行ない）、当該問い合わせに基づき制御指令を受信する。
【００２５】
以下においては、問合せのタイミングのデフォルト値がコントローラ３００において予め指定（決定）されており、サーバ装置１００が必要に応じてデフォルト値以外のタイミングで問い合せを行なうようにコントローラ３００に対して指令を送信する構成を例に挙げて説明する。具体的には、ポーリングの送信についての時間間隔がコントローラ３００において規定されており、サーバ装置１００が、デフォルト値以外のタイミングにおいてポーリングを実行させるために、ウェブソケットを用いた通信によってポーリングを実行させるための指令（ポーリング要求指令）をコントローラ３００に送信する構成を例に挙げて説明する。ポーリング要求指令を送信するためのトリガ等については、後述する。
【００２６】
なお、ポーリング要求指令が送信されることによりポーリングが行なわれる場合を含み、次回の問い合わせのタイミングは、サーバ装置１００によって毎回指定される構成であってもよい。つまり、ポーリングのタイミングは、サーバ装置１００によって都度指定される構成としてもよい。問い合わせのタイミングは、たとえば、時間間隔または時刻により指定され得る。
【００２７】
また、以下では、説明を簡略化するために、コントローラ３００は、ポーリング要求指令が送信されることによりポーリングが行なわれる場合を除き、指定されたタイミングの一例として予め定められた時間間隔で、サーバ装置１００に対してポーリングを行なうものとして説明を行なう。すなわち、実際には、ポーリングの時間間隔は、一定範囲のランダム要素が含まれるため、正確には予め定められ時間間隔とはならない。たとえば、次回の問い合わせのタイミングがサーバ装置１００によって毎回指定される構成においては、でサーバ装置１００から指定される時間は、たとえば１５分間隔といった固定された値ではなく、サーバ装置１００への負荷を加味して、１５分前後といったランダム要素が考慮された値となる。また、上述したように問合せのタイミングのデフォルト値がコントローラ３００において予め指定されている構成であっても、ランダム要素が考慮される。しかしながら、以下の説明では、説明を簡略化し、理解を容易とするために、当該ランダム要素を考慮しないで説明を行なう。
【００２８】
スマートフォン５０１，５０２，５０３は、各ユーザ操作に基づき、エアーコンディショナ４０１を制御するための制御指令の入力を受け付ける。スマートフォン５０１，５０１，５０２は、受付けた制御指令をサーバ装置１００に送信する。
【００２９】
サーバ装置１００は、制御指令をスマートフォン５００から受信した場合には、ポーリングに対する応答として、コントローラ３００に当該制御指令を送信する。この場合、コントローラ３００は、受信した制御指令に基づき、エアーコンディショナ４０１を制御する。より詳しくは、コントローラ３００は、マークアップ言語を用いた制御指令から、エアーコンディショナ４０１の制御に必要なデータを抽出する。コントローラ３００は、当該抽出したデータを制御対象であるエアーコンディショナ４０１に送信することより、エアーコンディショナ４０１を制御する。
【００３０】
＜Ｂ．ハードウェア構成＞
（ｂ１．サーバ装置１００）
図２は、サーバ装置１００のハードウェア構成の典型例を表した図である。図２を参照して、サーバ装置１００は、主たる構成要素として、プログラムを実行するＣＰＵ１５１と、データを不揮発的に格納するＲＯＭ１５２と、ＣＰＵ１５１によるプログラムの実行により生成されたデータ、又は入力装置（図示せず）を介して入力されたデータを揮発的に格納するＲＡＭ１５３と、データを不揮発的に格納するＨＤＤ１５４と、ＬＥＤ１５５と、スイッチ１５６と、通信ＩＦ（Interface）１５７と、電源回路１５８と、モニタ１５９と、操作キー１６０とを含む。各構成要素は、相互にデータバスによって接続されている。
【００３１】
電源回路１５８は、コンセントを介して受信した商用電源の電圧を降圧し、サーバ装置１００の各部に電源供給を行なう回路である。スイッチ１５６は、電源回路１５８に給電を行なうか否かを切替えるための主電源用のスイッチ、およびその他の各種の押しボタンスイッチである。モニタ１５９は、各種のデータを表示するためのデバイスである。
【００３２】
通信ＩＦ１５７は、コントローラ３００に対するデータの送信処理およびコントローラ３００から送信されたデータの受信処理、並びに、スマートフォン５００に対するデータの送信処理およびスマートフォン５００から送信されたデータの受信処理を行なう。
【００３３】
ＬＥＤ１５５は、サーバ装置１００の動作状態を表す各種の表示ランプである。たとえば、ＬＥＤ１５５は、サーバ装置１００の主電源のオンまたはオフ状態、およびＨＤＤ１５４への読み出しまたは書き込み状態等を表す。操作キー１６０は、サーバ装置１００のユーザがサーバ装置１００へデータを入力するための用いるキー（キーボード）である。
【００３４】
サーバ装置１００における処理は、各ハードウェアおよびＣＰＵ１５１により実行されるソフトウェアによって実現される。このようなソフトウェアは、ＨＤＤ１５４に予め記憶されている場合がある。また、ソフトウェアは、その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、読取装置によりその記憶媒体から読み取られて、あるいは、通信ＩＦ１５７等を介してダウンロードされた後、ＨＤＤ１５４に一旦格納される。そのソフトウェアは、ＣＰＵ１５１によってＨＤＤ１５４から読み出され、ＲＡＭ１５３に実行可能なプログラムの形式で格納される。ＣＰＵ１５１は、そのプログラムを実行する。
【００３５】
同図に示されるサーバ装置１００を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、ＲＡＭ１５３、ＨＤＤ１５４、記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、サーバ装置１００の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【００３６】
なお、記録媒体としては、ＤＶＤ−ＲＡＭに限られず、ＤＶＤ-ＲＯＭ、ＣＤ−ＲＯＭ、ＦＤ、ハードディスク、磁気テープ、カセットテープ、光ディスク、ＥＥＰＲＯＭ、フラッシュＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。また、ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００３７】
（ｂ２．コントローラ３００）
図３は、コントローラ３００のハードウェア構成の典型例を表した図である。図３を参照して、コントローラ３００は、主たる構成要素として、プログラムを実行するＣＰＵ３５１と、フラッシュＲＯＭ等のデータを不揮発的に格納するＲＯＭ３５２と、ＣＰＵ３５１によるプログラムの実行により生成されたデータ、又は入力装置（図示せず）を介して入力されたデータを揮発的に格納するＲＡＭ３５３と、スイッチ３５６と、通信ＩＦ３５７と、電源回路３５８とを含む。各構成要素は、相互にデータバスによって接続されている。
【００３８】
電源回路３５８は、コンセントを介して受信した商用電源の電圧を降圧し、コントローラ３００の各部に電源供給を行なう回路である。スイッチ３５６は、電源回路３５８に給電を行なうか否かを切替えるための主電源用のスイッチ、およびその他の各種の押しボタンスイッチである。通信ＩＦ３５７は、サーバ装置１００およびエアーコンディショナ４０１との間で通信を行なうために、データの送受信処理を行なう。
【００３９】
コントローラ３００における処理は、各ハードウェアおよびＣＰＵ３５１により実行されるソフトウェアによって実現される。このようなソフトウェアは、ＲＯＭ３５２に予め記憶されている場合がある。また、ソフトウェアは、その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、読取装置によりその記憶媒体から読み取られて、あるいは、通信ＩＦ３５７等を介してダウンロードされた後、ＲＯＭ３５２に一旦格納される。そのソフトウェアは、ＣＰＵ３５１によってＲＯＭ３５２から読み出され、ＲＡＭ３５３に実行可能なプログラムの形式で格納される。ＣＰＵ３５１は、そのプログラムを実行する。
【００４０】
同図に示されるコントローラ３００を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、ＲＡＭ３５３、ＲＯＭ３５２、記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コントローラ３００の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【００４１】
なお、記録媒体としては、ＤＶＤ−ＲＡＭに限られず、ＤＶＤ-ＲＯＭ、ＣＤ−ＲＯＭ、ＦＤ、ハードディスク、磁気テープ、カセットテープ、光ディスク、ＥＥＰＲＯＭ、フラッシュＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。また、ここでいうプログラムとは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００４２】
＜Ｂ．比較例＞
図４は、本実施の形態の通信システム１とは異なる通信システムで実行される処理の流れを表したシーケンスチャートである。つまり、図４は、本実施の形態の通信システム１で行われる処理に対する比較例を表したシーケンスチャートである。なお、以下では、比較例のサーバ装置を、「サーバ装置９００」と称する。また、サーバ装置９００は、ＣＰＵ９５１とＨＤＤ９５４とを有する。当該比較例の通信システムは、サーバ装置１００の代わりにサーバ装置９００を備える以外、他の機器は通信システム１と同じとしている。
【００４３】
図４を参照して、シーケンスＳＱ９０２において、スマートフォン５０１は、被制御装置の動作状態を変更するための機器制御指令をサーバ装置９００に送信する。ステップＳ９５２において、ＣＰＵ９５１は、指令チェックを行なう。すなわち、ＣＰＵ９５１は、どのような種類および内容の指令を受信したかをチェックする。ステップＳ９５４において、ＣＰＵ９５１は、指令を受信していた場合、ロック処理を実行する。「ロック処理」とは、予め定められたデータに対するアクセスおよび更新を一時的に制限することをいう。つまり、ロック処理とは、排他制御と同義である。
【００４４】
シーケンスＳＱ９０４において、スマートフォン５０２は、機器制御指令をサーバ装置９００に送信する。シーケンスＳＱ９０６において、ＣＰＵ９５１は、ロック処理前に受信したスマートフォン５０１からの機器制御指令をＨＤＤ９５４に格納する。シーケンス９０８において、ＣＰＵ９５１は、ウェブソケット通信を用いてポーリング要求指令をコントローラ３００に送信する。また、ＣＰＵ９５１は、スマートフォン５０１に対して、機器制御指令を受信したことおよび当該機器制御指令に基づく制御を行なうことを表す応答信号（ＯＫ信号）を送信する。
【００４５】
ステップＳ９５６において、ＣＰＵ９５１はロックの解除を行なう。ステップＳ９５８において、ＣＰＵ９５１は、指令チェックを行なう。ロック中にスマートフォン５０２から機器制御指令を受信しているため、シーケンスＳＱ９１２において、ＣＰＵ９５１は、スマートフォン５０２に対して、機器制御指令を受信したことおよび当該機器制御指令に基づく制御を行なえないことを表す応答信号（ＮＧ信号）を送信する。
【００４６】
シーケンスＳＱ９１４において、コントローラ３００は、サーバ装置９００に対してポーリングを行なう。換言すれば、コントローラ３００は、サーバ装置９００に対して、指示確認を行なうための確認信号を送信する。ポーリングが行なわれたことに基づき、シーケンスＳＱ９１６において、ＣＰＵ９５１は、ＨＤＤ９５４に格納したスマートフォン５０１からの機器制御指令を、ＨＤＤ９５４から読み出す。
【００４７】
シーケンスＳＱ９１８において、ＣＰＵ９５１は、読み出した機器制御指令を、ポーリングに対する要求信号としてコントローラ３００に送信する。換言すれば、サーバ装置９００は、コントローラ３００に対して、制御を要求するための要求信号を送信する。なお、制御指令には、被制御装置の最新の状態を取得することを指示する状態更新指令、被制御装置の動作状態を変更するための機器制御指令等を含む。動作状態とは、エアーコンディショナ４０１に関しては、運転または停止、運転種別（冷房、除湿、送風、暖房）、設定温度、風量等を含む。
【００４８】
シーケンスＳＱ９２０において、コントローラ３００は、サーバ装置９００に対して、制御指令に基づく処理を実行した旨を表す応答信号を送信する。シーケンスＳＱ９２２において、サーバ装置９００は、応答信号を受信したことに基づき、コントローラ３００に対して、ポーリングの送信を含む一連の通信処理Ｇ９を終了することを表す終了通知を送信する。
【００４９】
以上のように、比較例におけるサーバ装置９００は、ロック処理（ステップＳ９５４）およびロック解除処理（ステップＳ９５６）を実行する必要がある。
【００５０】
＜Ｃ．選択制御＞
次に、本実施の形態の通信システム１における制御の詳細について説明する。
【００５１】
（ｃ１．データ）
図５は、サーバ装置１００に格納されているデータテーブルＤ５を表した図である。図５を参照して、データテーブルＤ５は、機器制御指令に関するデータを記憶している。具体的には、データテーブルＤ５においては、指令ＩＤに対して、指令内容、指令を受信した日時、指令の送信元の機器ＩＤ、および指令を実行したか否かを表すフラグが対応付けられている。
【００５２】
機器ＩＤの欄において、ＳＭＦ００１はスマートフォン５０１の機器ＩＤであり、ＳＭＦ００２はスマートフォン５０２の機器ＩＤであり、ＳＭＦ００３はスマートフォン５０３の機器ＩＤである。フラグの欄において、「１」は制御指令が実行されたことを表し、「０」は、後述する選択処理により制御指令が実行されなかったことを表している。
【００５３】
（ｃ２．複数のスマートフォンからの各制御指令に対する処理）
図６は、通信システム１で実行される処理の流れを表したシーケンスチャートである。具体的には、図６は、比較例として示した図４に対応する図である。詳しくは、図６は、複数のスマートフォンの各々から制御指令が送信された場合に実行される処理について説明するための図である。
【００５４】
図６を参照して、シーケンスＳＱ１０２において、スマートフォン５０１は、機器制御指令をサーバ装置１００に送信する。ステップＳ１５２において、ＣＰＵ１５１は、指令チェックを行なう。シーケンスＳＱ１０４において、スマートフォン５０２は、機器制御指令をサーバ装置１００に送信する。ステップＳ１５４において、ＣＰＵ１５１は、指令チェックを行なう。
【００５５】
シーケンスＳＱ１０６において、ＣＰＵ１５１は、スマートフォン５０１から受信した機器制御指令（先の指令）をＨＤＤ１５４に格納する。シーケンスＳＱ１０８において、ＣＰＵ１５１は、ウェブソケット通信を用いて、ポーリング要求指令をコントローラ３００に送信する。シーケンスＳＱ１１０において、サーバ装置１００は、スマートフォン５０１に対して、機器制御指令を受信したことを表す応答信号を送信する。
【００５６】
シーケンスＳＱ１１２において、ＣＰＵ１５１は、スマートフォン５０２から受信した機器制御指令（後の指令）をＨＤＤ１５４に格納する。シーケンスＳＱ１１４において、ＣＰＵ１５１は、ウェブソケット通信を用いて、ポーリング要求指令をコントローラ３００に再度送信する。シーケンスＳＱ１１０において、サーバ装置１００は、スマートフォン５０２に対して、機器制御指令を受信したことを表す応答信号を送信する。
【００５７】
シーケンスＳＱ１１８において、コントローラ３００は、サーバ装置１００に対してポーリングを行なう。換言すれば、コントローラ３００は、サーバ装置１００に対して、指示確認を行なうための確認信号を送信する。ポーリングが行なわれたことに基づき、ステップＳ１５６において、選択処理を実行する。具体的には、ＣＰＵ１５１は、ステップＳ１５６において、先に受信した機器制御指令（換言すれば、ＨＤＤ１５４に先に格納した機器制御指令）を選択する。なお、選択処理の詳細については、後述する（図７）。
【００５８】
シーケンスＳＱ９１８において、ＣＰＵ９５１は、選択された機器制御指令を、ポーリングに対する要求信号としてコントローラ３００に送信する。換言すれば、サーバ装置１００は、コントローラ３００に対して、制御を要求するための要求信号を送信する。
【００５９】
シーケンスＳＱ１２２において、コントローラ３００は、サーバ装置１００に対して、制御指令に基づく処理を実行した旨を表す応答信号を送信する。シーケンスＳＱ１２４において、サーバ装置１００は、応答信号を受信したことに基づき、コントローラ３００に対して、ポーリングの送信を含む一連の通信処理Ｇ１を終了することを表す終了通知を送信する。
【００６０】
図７は、図６におけるステップＳ１５６の処理の詳細を説明するためのフローチャートである。図７を参照して、ステップＳ２において、サーバ装置１００のＣＰＵ１５１は、最後の実行済みの制御指令（以下、「制御指令Ｘ」と称する）をデータテーブルＤ５から取得する。ステップＳ４において、ＣＰＵ１５１は、データテーブルＤ５に未実行の制御指令が存在するか否かを判断する。
【００６１】
ＣＰＵ１５１は、制御指令が存在すると判断した場合（ステップＳ４においてＹＥＳ）、ステップＳ６において、データテーブルＤ５から最も古い未実行の制御指令（以下、「制御指令Ｙ＿ｏｌｄ」と称する）を取得する。ＣＰＵ１５１は、制御指令が存在しないと判断した場合（ステップＳ４においてＮＯ）、ステップＳ１４において、制御指令をコントローラ３００に送信せずに処理を終了する。
【００６２】
ステップＳ８において、ＣＰＵ１５１は、制御指令Ｘを送信したスマートフォンと、制御指令Ｙ＿ｏｌｄを送信したスマートフォンとが同一か否かを判断する。ＣＰＵ１５１は、同一であると判断された場合（ステップＳ８においてＹＥＳ）、ステップＳ１４において、データテーブルＤ５に残っている未実行の制御命令をキャンセルする。すなわち、ＣＰＵ１５１は、当該未実行の制御命令をデータテーブルＤ５から削除し、あるいは無為なデータとして扱うなどして、当該制御命令を無視する。
【００６３】
ステップＳ１６において、ＣＰＵ１５１は、制御指令Ｙ＿ｏｌｄをコントローラ３００に送信する。このように、ステップＳ８において否定的な判断がなされた場合には、サーバ装置１００は、コントローラ３００に対して直近に送信した制御指令Ｘの送信元と同一の送信元（たとえば、スマートフォン５０１）から発信された未実行かつ最も古い制御指令Ｙ＿ｏｌｄ（サーバ装置１００が先に受信した制御指令）を、コントローラ３００にエアーコンディショナ４０１を制御させるためにコントローラ３００に対して送信する。
【００６４】
ＣＰＵ１５１は、同一でないと判断された場合（ステップＳ８においてＮＯ）、ステップＳ１０において、制御指令を受信してから予め定められた時間以上経過した後に制御指令Ｙ＿ｏｌｄを受信したか否かを判断する。ＣＰＵ１５１は、予め定められた時間以上経過した後に制御指令Ｙ＿ｏｌｄを受信したと判断した場合（ステップＳ１０においてＹＥＳ）、処理をステップＳ１６に進める。このように、ＣＰＵ１５１は、制御指令Ｙ＿ｏｌｄの送信元がコントローラ３００に対して直近に送信した制御指令Ｘの送信元と異なる場合には、ある程度の時間が経過していることを条件に、未実行かつ最も古い制御指令Ｙ＿ｏｌｄ（サーバ装置１００が先に受信した制御指令）を、コントローラ３００に対して送信する。
【００６５】
ＣＰＵ１５１は、予め定められた時間以上経過する前に制御指令Ｙ＿ｏｌｄを受信したと判断した場合（ステップＳ１０においてＮＯ）、ステップＳ１２において、未実行の１つ以上の制御指令から制御指令Ｙ＿ｏｌｄを削除する。具体的には、データテーブルＤ５から制御指令Ｙ＿ｏｌｄを削除する。ＣＰＵ１５１は、ステップＳ１２の後、処理をステップＳ４に戻す。なお、この時点において、削除された制御指令Ｙ＿ｏlｄの次に古い未実行の制御指令が、この後の処理において制御指令Ｙ＿ｏｌｄとして扱われる。
【００６６】
このように、通信システム１によれば、制御命令が競合した場合に制御命令を選択可能となる。また、通信システム１によれば、サーバ装置１００に記憶したデータテーブルＤ５をロックする必要がなくなる。このため、通信システム１によれば、競合が発生した場合であっても、他の機器からデータテーブルＤ５を参照可能となる。
【００６７】
（ｃ３．１つのスマートフォンからの複数の制御指令に対する処理）
次に、通信システム１においてさらに実行される処理について説明する。具体的には、１つのスマートフォンから複数の制御指令が送信されてきた場合の処理について説明する。つまり、同一のスマートフォンからの制御指令が競合した場合の処理について説明する。
【００６８】
図８は、通信システム１でさらに実行される処理の流れを表したシーケンスチャートである。図８を参照して、シーケンスＳＱ２０２において、スマートフォン５０１は機器制御指令をサーバ装置１００に送信する。ステップＳ２５２において、サーバ装置１００のＣＰＵ１５１は指令チェックを行なう。シーケンスＳＱ２０４において、ＣＰＵ１５１は、受信した機器制御指令をＨＤＤ１５４のデータテーブルＤ５に格納する。シーケンスＳＱ２０６において、ＣＰＵ１５１は、ウェブソケット通信を用いて、ポーリング要求指令をコントローラ３００に送信する。シーケンスＳＱ２０８において、ＣＰＵ１５１は、機器制御指令を受信したことを表す応答信号をスマートフォン５０１に送信する。
【００６９】
シーケンスＳＱ２１０において、スマートフォン５０１は、機器制御指令をさらに送信する。ステップＳ２５４において、ＣＰＵ１５１は、指令チェックを行なう。ステップＳ２５６において、サーバ装置１００は、選択処理を行なう。選択処理の詳細については、後述する（図９）。シーケンスＳＱ２１２において、ＣＰＵ１５１は、シーケンスＳＱ２１０に基づく機器制御指令に対応する応答信号をスマートフォン５０１に送信する。
【００７０】
シーケンスＳＱ２１４において、コントローラ３００は、サーバ装置１００に対してポーリングを行なう。ポーリングが行なわれたことに基づき、シーケンスＳＱ２１６において、ＣＰＵ１５１は、ＨＤＤ１５４のデータテーブルＤ５に格納したスマートフォン５０１からの機器制御指令を、ＨＤＤ１５４から読み出す。
【００７１】
シーケンスＳＱ２１８において、ＣＰＵ１５１は、読み出した機器制御指令を、ポーリングに対する要求信号としてコントローラ３００に送信する。シーケンスＳＱ２２０において、コントローラ３００は、サーバ装置１００に対して、制御指令に基づく処理を実行した旨を表す応答信号を送信する。シーケンスＳＱ２２２において、サーバ装置１００は、応答信号を受信したことに基づき、コントローラ３００に対して、ポーリングの送信を含む一連の通信処理Ｇ２を終了することを表す終了通知を送信する。
【００７２】
図９は、図８のステップＳ２５６の詳細を説明するためのフローチャートである。図９を参照して、ステップＳ５２において、ＣＰＵ１５１は、最新の制御指令（以下、説明の便宜上「制御指令Ｑ」と称する）を受信したときに、同一のスマートフォンから送られてきた未実行の制御指令（以下、「制御指令Ｐ」と称する）が既にデータテーブルＤ５に格納されているか否かを判断する。
【００７３】
ＣＰＵ１５１は、格納されていると判断された場合（ステップＳ５２においてＹＥＳ）、ステップＳ５４において、制御指令Ｐを受信したときから予め定められた時間（たとえば、１０分）経過した後に制御指令Ｑを受信したか否かを判断する。ＣＰＵ１５１は、格納されていないと判断された場合（ステップＳ５２においてＮＯ）、ステップＳ６０において、制御指令ＱをデータテーブルＤ５に格納する。
【００７４】
ＣＰＵ１５１は、予め定められた時間経過した後に制御指令Ｑを受信したと判断した場合（ステップＳ５４においてＹＥＳ）、ステップＳ５８において、制御指令Ｐをキャンセルする。すなわち、ＣＰＵ１５１は、制御指令ＰをデータテーブルＤ５において削除し、あるいは無為なデータとして扱う。制御指令Ｐを削除する理由は、制御指令Ｐが古すぎる指令であり、制御指令Ｐに基づく制御を行なうことは適切でないためである。
【００７５】
ＣＰＵ１５１は、予め定められた時間が経過するまでに制御指令を受信したと判断した場合（ステップＳ５４においてＮＯ）、ステップＳ５６において、制御指令Ｑをキャンセルする。すなわち、ＣＰＵ１５１は、制御指令ＱをデータテーブルＤ５において削除し、あるいは無為なデータとして扱う。このように、ステップＳ５４で否定的な判断がなされた場合には、ＣＰＵ１５１は、同一のスマートフォンから送られてきた制御指令のうち、先に受信した機器制御指令を選択する。
【００７６】
＜Ｄ．機能的構成＞
図１０は、サーバ装置１００の機能的構成を説明するための機能ブロック図である。図１０を参照して、サーバ装置１００は、受信部１１１と、記憶部１１２と、送信部１１３と、受付部１１４と、選択部１１５と、判断部１１６とを備える。なお、記憶部１１２は、データテーブルＤ５を記憶している。
【００７７】
（１）上述したように、コントローラ３００は、被制御装置であるエアーコンディショナ４０１を制御するための制御指令がサーバ装置１００に存在するか否かを、指定されたタイミングでサーバ装置１００に問い合わせる。つまり、コントローラ３００は、指定されたタイミングでポーリングを行なう。
【００７８】
サーバ装置１００の受信部１１１は、各種の制御指令を、スマートフォン５０１、スマートフォン５０２、およびスマートフォン５０３から受信する。詳しくは、受信部１１１は、制御指令として、たとえば、被制御装置の最新の状態を取得することを指示する状態更新指令、被制御装置の動作状態を変更するための機器制御指令を受信する。記憶部１１２は、スマートフォン５０１〜５０３から受信した制御指令を記憶する。
【００７９】
選択部１１５は、各制御指令を受信した後に受付部１１４がポーリングを受け付けた場合、予め定められた第１の規則に基づいて、スマートフォン５０１〜５０３の各々から受信した各指令のうちのいずれかの指令を選択する。詳しくは、上記第１の規則は、本実施の形態では、複数の未送信の制御指令のうち最も古い方の制御指令を選択することを規定している。つまり、選択部１１５は、図６のステップＳ１５６の選択処理を実行する。
【００８０】
送信部１１３は、ポーリングに対して、上記選択された制御指令をコントローラ３００に送信する。
【００８１】
したがって、通信システム１では、制御命令が競合した場合に制御命令を選択可能となる。また、通信システム１によれば、制御指令を記憶しているデータベース（データテーブルＤ５）をロックする必要がなくなる。このため、通信システム１によれば、競合が発生した場合であっても、他の機器から当該データベースを参照可能となる。
【００８２】
（２）判断部１１６は、制御指令がコントローラ３００に送信されてからポーリングを再度受け付ける迄の期間（以下、「期間Ｔ１」と称する）に受信部１１１がスマートフォン５０１〜５０３の各々から制御指令をさらに受信した場合、当該期間Ｔ１に受信された各制御指令のうち上記第１の規則に基づいて選択された１つの制御指令の送信元と、コントローラ３００に送信された制御指令の送信元とが同一か否かを判断する。
【００８３】
送信部１１３は、送信元が同一であると判断された場合、期間Ｔ１に受信された各制御指令のうち上記選択された制御指令をコントローラ３００にさらに送信する。
【００８４】
具体的には、サーバ装置１００は、図７のステップＳ８において肯定的な判断がなされた場合（ＹＥＳの場合）、ステップＳ１６において制御指令Ｙ＿ｏｌｄをコントローラ３００に送信する。
【００８５】
このように、サーバ装置１００は、制御命令の送信元が同一のスマートフォンである場合、コントローラ３００が制御指令を既に受け付けているのであれば、当該スマートフォンから送られてきた次の制御指令を連続して実行することができる。つまり、サーバ装置１００は、スマートフォンの同一ユーザの連続操作を受け付けることが可能となる。
【００８６】
（３）送信部１１３は、判断部１１６によって送信元が同一でないと判断された場合、コントローラ３００に送信された制御指令を受信部１１１が受信したときから予め定められた時間以上経過した後に、上記期間Ｔ１に受信した各制御指令のうち上記選択された制御指令を受信部１１１が受信していることを条件に、当該期間Ｔ１に受信した各制御指令のうち上記選択された制御指令をコントローラ３００にさらに送信する。
【００８７】
具体的には、サーバ装置１００は、図７のステップＳ１０において肯定的な判断がなされた場合（ＹＥＳの場合）、ステップＳ１６において制御指令Ｙ＿ｏｌｄをコントローラ３００に送信する。より詳しくは、選択された制御指令Ｙ＿ｏｌｄを送信したスマートフォンと当該制御指令Ｙ＿ｏｌｄの直前の制御指令Ｘを送信したスマートフォンとが異なる場合には、当該直前の制御指令Ｘを受信したときから予め定められた時間以上経過した後に、上記制御指令Ｙ＿ｏｌｄを受信した場合にのみ、サーバ装置１００は当該制御指令Ｙ＿ｏｌｄをコントローラ３００に送信する。
【００８８】
したがって、通信システム１によれば、制御指令Ｘと制御指令Ｙ＿ｏｌｄとの送信元が異なる場合には、一定時間が経過するまでは、送信元のユーザによるエアーコンディショナ４０１の遠隔操作を制限することができる。
【００８９】
（４）受信部１１１は、たとえばスマートフォン５０１から制御指令を受信してからポーリングがある迄の期間に、スマートフォン５０１から制御指令をさらに受信する。
【００９０】
この場合、選択部１１５は、予め定められた第２の規則に基づいてスマートフォン５０１から受信した各制御指令のうちのいずれかの指令を選択する。選択部１１５は、当該選択の後、上述した第１の規則に基づいて、当該選択された制御指令およびスマートフォン５０２（またはスマートフォン５０３）から受信した制御指令のうちのいずれかの制御指令を選択する。
【００９１】
詳しくは、上記第２の規則は、２つの未送信の制御指令を受信した各時刻の差分が閾値よりも大きい場合には、当該２つの未送信の制御指令のうち後に受信された指令を選択し、当該差分が当該閾値よりも大きくない場合には、当該２つの未送信の制御指令のうち先に受信した指令を選択することを規定している。つまり、選択部１１５は、図７のステップＳ２５６の選択処理を実行する。より詳しくは、選択部１１５は、図８のステップＳ５４において否定的な判断がなされた場合（ＮＯの場合）、ステップＳ５６において最新の制御指令Ｑをキャンセルし、ステップＳ５４において肯定的な判断がなされた場合（ＹＥＳの場合）、ステップＳ５８において制御指令Ｐをキャンセルする。
【００９２】
送信部１１３は、上記ポーリングに対して、上記第１の規則に基づいて当該選択された制御指令およびスマートフォン５０２（またはスマートフォン５０３）から受信した制御指令のうちから選択された指令を、コントローラ３００に送信する。
【００９３】
このように、通信システム１においては、サーバ装置１００が、同一のスマートフォンからの制御命令が競合した場合には、ポーリングが行なわれる前（つまり、図８に示すように、ポーリングの送信を含む一連の通信処理Ｇ２の前）に、制御命令の選択制御を行なうことができる。
［実施の形態２］
図１１は、本実施の形態に係る通信システム１Ａの概略構成を表した図である。図１１を参照して、通信システム１Ａは、サーバ装置１００と、ホームサーバ２００と、エアーコンディショナ４０１と、テレビ４０２と、照明装置４０３と、複数のスマートフォン５０１，５０２，５０３とを備える。通信システム１Ａは、コントローラ３００の代わりにホームサーバ２００を備える点、並びに被制御装置としてテレビ４０２および照明装置４０３をさらに備える点において、実施の形態１の通信システム１とは異なる。
【００９４】
ホームサーバ２００、および各家庭用電気器具４０１〜４０３は、宅内に設置されている。
【００９５】
サーバ装置１００は、一例として、ＸＭＬ（Extensible Markup Language）等のマークアップ言語を用いた通信仕様に基づき、ホームサーバ２００と通信する。なお、サーバ装置１００は、ＪＳＯＮ（JavaScript（登録商標） Object Notation）等の非マークアップ言を用いた通信仕様に基づき、ホームサーバ２００と通信してもよい。通信に用いるデータの形式は、特に限定されるものではない。
【００９６】
より詳しくは、ホームサーバ２００は、家庭用電気器具を制御するための指令が存在するか否かを、指定されたタイミングでサーバ装置１００に対して問い合わせ、当該問い合わせに基づき上記指令を受信する。つまり、ホームサーバ２００は、サーバ装置１００に対してポーリングを行なう。ホームサーバ２００が実行するポーリングは、実施の形態１のコントローラ３００が実行するポーリングと同じであるため、ここではホームサーバ２００によるポーリングに関する説明は繰り返さない。
【００９７】
ホームサーバ２００は、スマートハウス向けの制御プロトコルおよびセンサーネットプロトコルを有する通信プロトコルを用いて、各家庭用電気器具４０１〜４０３と通信する。ホームサーバ２００は、たとえばＥＣＨＯＮＥＴ Ｌｉｔｅ（登録商標）によって、各
家庭用電気器具４０１〜４０３と通信する。ただし、ホームサーバ２００と家庭用電気器具４０１〜４０３との通信は、ＥＣＨＯＮＥＴ Ｌｉｔｅのように汎用の通信プロトコル
によるものではなく、独自の通信プロトコルにより実現してもよい。
【００９８】
スマートフォン５０１，５０２，５０３は、ユーザ操作に基づき、各家庭用電気器具４０１〜４０３を制御するための制御指令の入力を受け付ける。スマートフォン５０１，５０２，５０３は、受付けた制御指令をサーバ装置１００に送信する。
【００９９】
ホームサーバ２００は、受信した制御指令に基づき、当該制御指令に示された１つの家庭用電気器具（たとえば、エアーコンディショナ４０１）を制御する。より詳しくは、ホームサーバ２００は、マークアップ言語を用いた制御指令を解釈し、ECHONET LITEの通信に必要なデータを抽出する。ホームサーバ２００は、当該抽出したデータを制御対象である家庭用電気器具に送信することより、家庭用電気器具を制御する。
【０１００】
ホームサーバ２００とエアーコンディショナ４０１との関係は、実施の形態１におけるコントローラ３００とエアーコンディショナ４０１との関係と同じである。ホームサーバ２００は、エアーコンディショナ４０１との関係においてはコントローラ３００と同様の処理を実行する。具体的には、ホームサーバ２００は、図６、図８，および図１０に基づいて説明したコントローラ３００と同じ処理を実行する。このため、本実施の形態においても、実施の形態１で述べた効果（利点）を得ることができる。
［実施の形態３］
実施の形態１では、サーバ装置１００は、図６のステップＳ１５６において、先に受信した機器制御指令を選択した。しかしながら、これに限定されるものではない。たとえば、ステップＳ１５６において、後に受信した機器制御指令を選択するように、サーバ装置１００を構成してもよい。当該構成であっても、本実施の形態に係る通信システムおよびサーバ装置は、実施の形態１と同様の効果を奏する。
［実施の形態４］
実施の形態１では、サーバ装置１００は、図６のステップＳ１５６において、先に受信した機器制御指令を選択した。しかしながら、これに限定されるものではない。たとえば、通信システム１がデマンドレスポンスを実行する構成である場合にステップＳ１５６において、デマンドレスポンスに応じて作成された機器制御指令を選択するように、サーバ装置１００を構成してもよい。当該構成であっても、本実施の形態に係る通信システムおよびサーバ装置は、実施の形態１と同様の効果を奏する。
［実施の形態５］
実施の形態１では、サーバ装置１００は、図６のステップＳ１５６において、先に受信した機器制御指令を選択した。しかしながら、これに限定されるものではない。たとえば、サーバ装置１００の構成を以下のようにしてもよい。
【０１０１】
すなわち、サーバ装置１００は、スマートフォン５０１〜５０３についての優先順位を表した順位情報を予め記憶しておく。たとえば、順位情報には、スマートフォン５０１が１位、スマートフォン５０２が２位、スマートフォン５０３が３位であることが示されている。サーバ装置１００は、制御指令が競合した場合、競合した制御指令のうちから、優先順位が最も高い送信元の制御指令を選択する。当該構成であっても、本実施の形態に係る通信システムおよびサーバ装置は、実施の形態１と同様の効果を奏する。
【０１０２】
＜まとめ＞
（１）通信システム１，１Ａは、サーバ装置１００と、被制御装置（エアーコンディショナ４０１等）を制御する制御装置（コントローラ３００またはホームサーバ２００）とを備える。制御装置は、被制御装置を制御するための制御指令がサーバ装置１００に存在するか否かを、指定されたタイミングでサーバ装置１００に問い合わせる。サーバ装置１００は、各種の制御指令を、第１の電子機器および第２の電子機器（たとえばスマートフォン５０１，５０２）から受信する受信部１１１と、各制御指令を受信した後に問い合わせがあった場合、予め定められた第１の規則に基づいて、第１の電子機器および第２の電子機器の各々から受信した各指令のうちのいずれかの指令を選択する選択部１１５と、問い合わせに対して、上記選択された制御指令を制御装置に送信する送信部１１３とを含む。
【０１０３】
したがって、通信システム１では、制御命令が競合した場合に制御命令を選択可能となる。また、通信システム１によれば、制御指令を記憶しているデータベース（データテーブルＤ５）をロックする必要がなくなる。このため、通信システム１によれば、競合が発生した場合であっても、他の機器から当該データベースを参照可能となる。
【０１０４】
（２）好ましくは、通信システム１，１Ａは、制御指令が制御装置に送信されてから問い合わせを再度受け付ける迄の期間に受信部１１１が第１の電子機器および第２の電子機器の各々から制御指令をさらに受信した場合、当該期間に受信された各制御指令のうち上記第１の規則に基づいて選択された１つの制御指令の送信元と、制御装置に送信された制御指令の送信元とが同一か否かを判断する判断部１１６をさらに備える。送信部１１３は、送信元が同一であると判断された場合、上記期間に受信された各制御指令のうち上記選択された制御指令を制御装置にさらに送信する。
【０１０５】
このように、サーバ装置１００は、制御命令の送信元が同一の電子機器である場合、制御装置が制御指令を既に受け付けているのであれば、当該電子機器から送られてきた次の制御指令を連続して実行することができる。つまり、サーバ装置１００は、電子機器の同一ユーザの連続操作を受け付けることが可能となる。
【０１０６】
（３）好ましくは、送信部１１３は、判断部１１６によって送信元が同一でないと判断された場合、制御装置に送信された制御指令を受信部１１１が受信したときから予め定められた時間以上経過した後に、上記期間に受信した各制御指令のうち上記選択された制御指令を受信部１１１が受信していることを条件に、当該期間に受信した各制御指令のうち上記選択された制御指令を制御装置にさらに送信する。
【０１０７】
したがって、通信システム１によれば、２つの制御指令（具体的には、制御指令Ｘと制御指令Ｙ＿ｏｌｄ）の送信元が異なる場合には、一定時間が経過するまでは、送信元のユーザによる被制御装置の遠隔操作を制限することができる。
【０１０８】
（４）好ましくは、第１の規則は、複数の未送信の制御指令のうち最も古い方の制御指令を選択することを規定、あるいは複数の未送信の制御指令のうちの最も新しい方の制御指令を選択することを規定している。
【０１０９】
（５）好ましくは、受信部１１１は、電子機器（たとえば、スマートフォン５０１）から制御指令を受信してから問い合わせがある迄の期間に、当該電子機器から制御指令をさらに受信する。この場合、選択部１１５は、予め定められた第２の規則に基づいて当該電子機器から受信した各制御指令のうちのいずれかの指令を選択する。選択部１１５は、当該選択の後、上述した第１の規則に基づいて、当該選択された制御指令および他の電子機器（たとえばスマートフォン５０２またはスマートフォン５０３）から受信した制御指令のうちのいずれかの制御指令を選択する。送信部１１３は、上記問い合わせに対して、上記第１の規則に基づいて当該選択された制御指令および上記他の電子機器から受信した制御指令のうちから選択された指令を、制御装置に送信する。
【０１１０】
このように、通信システム１においては、サーバ装置１００が、同一のスマートフォンからの制御命令が競合した場合には、問い合わせが行なわれる前に、制御命令の選択制御を行なうことができる。
【０１１１】
（６）好ましくは、第１の規則は、複数の未送信の制御指令のうち最も古い方の制御指令を選択することを規定、あるいは複数の未送信の制御指令のうちの最も新しい方の制御指令を選択することを規定している。第２の規則は、２つの未送信の制御指令を受信した各時刻の差分が閾値よりも大きい場合には、当該２つの未送信の制御指令のうち後に受信された制御指令を選択し、当該差分が当該閾値よりも大きくない場合には、当該２つの未送信の制御指令のうち先に受信した制御指令を選択することを規定している。
【０１１２】
（７）サーバ装置１００は、第１の電子機器（たとえばスマートフォン５０１）および第２の電子機器（たとえばスマートフォン５０２）と、被制御装置を制御する制御装置（コントローラ３００またはホームサーバ２００）と通信する。
【０１１３】
被制御装置を制御するための制御指令が前記サーバ装置に存在するか否かが、指定されたタイミングで制御装置からサーバ装置１００に問い合わされる。サーバ装置１００は、第１の電子機器および第２の電子機器の各々から制御指令を受信する受信部１１１と、各制御指令を受信した後に問い合わせがあった場合、予め定められた規則に基づいて、第１の電子機器および第２の電子機器の各々から受信した各制御指令のうちのいずれかの指令を選択する選択部１１５と、問い合わせに対して、選択された指令を制御装置に送信する送信部１１３とを備える。
【０１１４】
したがって、サーバ装置１００は、制御命令が競合した場合に制御命令を選択可能となる。また、サーバ装置１００によれば、制御指令を記憶しているデータベース（データテーブルＤ５）をロックする必要がなくなる。このため、サーバ装置１００によれば、競合が発生した場合であっても、他の機器から当該データベースを参照可能となる。
【０１１５】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１６】
１，１Ａ  通信システム、１００，９００  サーバ装置、１１１  受信部、１１２  記憶部、１１３  送信部、１１４  受付部、１１５  選択部、１１６  判断部、１５１，３５１，９５１  ＣＰＵ、１５２，３５２  ＲＯＭ、１５３，３５３  ＲＡＭ、１５４，９５４  ＨＤＤ、２００  ホームサーバ、３００  コントローラ、４０１  エアーコンディショナ、４０２  テレビ、４０３  照明装置、５０１，５０２，５０３  スマートフォン。
【図１】
2015033122.tif 000003
【図２】
2015033122.tif 000004
【図３】
2015033122.tif 000005
【図４】
2015033122.tif 000006
【図５】
2015033122.tif 000007
【図６】
2015033122.tif 000008
【図７】
2015033122.tif 000009
【図８】
2015033122.tif 000010
【図９】
2015033122.tif 000011
【図１０】
2015033122.tif 000012
【図１１】
2015033122.tif 000013