(57)【要約】      （修正有）【課題】複数のデバイスと、それらとネットワークを介して接続されるサーバとの間の接続コストの増大を抑制する機器制御システム、機器制御方法、及びプログラムを提供する。【解決手段】機器制御システムは、動作指示を取得し、動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信し、１または複数のデバイスの１つの動作状況に基づいて、１つのデバイスが、送信手段と他のデバイスを経由せずに通信する第１のモードと、送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御する。【選択図】図８
2019129407.tif 000002
【特許請求の範囲】
【請求項１】
動作指示を取得する動作指示取得手段と、
前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信する送信手段と、
前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御する通信制御手段と、
を含む機器制御システム。
【請求項２】
請求項１に記載の機器制御システムにおいて、
前記１または複数のデバイスは同じローカルエリアネットワーク内に配置され、
前記通信制御手段は、前記１または複数のデバイスの動作状況に基づいて、前記１または複数のデバイスのうち少なくとも１つを除くデバイスが前記第２のモードで通信するよう制御する、
機器制御システム。
【請求項３】
請求項１に記載の機器制御システムにおいて、
前記通信制御手段は、前記１または複数のデバイスのうち１つの動作状況に基づいて、前記１つのデバイスに向けて前記第２のモードで通信させるコマンドを送信する、
機器制御システム。
【請求項４】
請求項１から３のいずれかに記載の機器制御システムにおいて、
前記送信手段は、前記デバイスのうち１つが前記第２のモードで通信する場合に、前記第１のモードで通信する他のデバイスへ向けて、前記第２のモードで通信する１つのデバイスへのコマンドを送信する、
機器制御システム。
【請求項５】
請求項４に記載の機器制御システムにおいて、
前記送信手段は、前記デバイスのうち１つが前記第２のモードで通信する場合に、前記第１のモードで通信し、かつ音楽を再生していないデバイスへ向けて、前記第２のモードで通信する前記１つのデバイスへのコマンドを送信する、
機器制御システム。
【請求項６】
請求項１から５のいずれかに記載の機器制御システムにおいて、
前記通信制御手段は、前記１または複数のデバイスのうち前記第２のモードで通信する１つのデバイスの動作状況に基づいて、前記１つのデバイスが前記第１のモードで通信するよう制御する、
機器制御システム。
【請求項７】
請求項６に記載の機器制御システムにおいて、
前記通信制御手段は、前記第２のモードで通信するデバイスを制御するコマンドが、前記第１のモードで通信するデバイスへ向けて送信された場合に、前記第２のモードで通信するデバイスが前記第１のモードで通信するよう制御する、
機器制御システム。
【請求項８】
請求項７に記載の機器制御システムにおいて、
前記通信制御手段は、前記第１のモードで通信するデバイスへ向けて、前記第２の通信モードで通院するデバイスへのコマンドが送信される頻度に基づいて、前記第２の通信モードで通院するデバイスが前記第１のモードで通信するよう制御する、
機器制御システム。
【請求項９】
請求項６に記載の機器制御システムにおいて、
前記通信制御手段は、前記第１のモードで通信するデバイスが音楽データを再生する処理を実行している場合に、前記処理を実行するデバイスと異なるデバイスが前記第１のモードで通信するよう制御する、
機器制御システム。
【請求項１０】
動作指示を取得するステップと、
前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信するステップと、
前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御するステップと、
を含む機器制御方法。
【請求項１１】
動作指示を取得する動作指示取得手段、
前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信する送信手段、および、
前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御する通信制御手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は機器制御システム、機器制御方法、及びプログラムに関する。
【背景技術】
【０００２】
家電製品やオーディオ機器など、汎用的なコンピュータ機器と異なるデバイスにネットワーク等への接続機能を付加し、それらのデバイスから情報を得たり、それらのデバイスをリモート制御することが盛んに行われている。これらのデバイスは、インターネットを介してサーバと通信している。
【０００３】
特許文献１には、ネットワークを通じてＡＶ機器を遠隔制御するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１５６２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ネットワーク接続機能を有するデバイスと、そのデバイスとネットワークを介して接続されるサーバとの間では、定期的にデータの送受信をする必要がある。すると、ネットワーク接続機能を有するデバイスの数の増加により、サーバと直接的に接続するデバイスが増加し、これにより接続コストが増大する恐れがある。
【０００６】
本発明は上記課題を鑑みてなされたものであって、その目的は、ネットワーク接続機能を有するデバイスと、それらとネットワークを介して接続されるサーバとの間の接続コストの増大を抑制する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る機器制御システムは、動作指示を取得する動作指示取得手段と、前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信する送信手段と、前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御する通信制御手段と、を含む。
【０００８】
また、本発明に係る機器制御方法は、動作指示を取得するステップと、前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信するステップと、前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御するステップと、を含む。
【０００９】
また、本発明に係るプログラムは、動作指示を取得する動作指示取得手段、前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信する送信手段、および、前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御する通信制御手段、としてコンピュータを機能させる。
【発明の効果】
【００１０】
本発明によれば、ネットワーク接続機能を有するデバイスと、それらとネットワークを介して接続されるサーバとの間の接続コストの増大を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態にかかる機器制御システムの構成を示す図である。
【図２】機器テーブルの一例を示す図である。
【図３】音声認識装置、コマンドデータ送信装置および機器により実現される機能を示すブロック図である。
【図４】メッセージの一例を示す図である。
【図５】ＭＱＴＴサーバによる通信を説明する図である。
【図６】対象機器へ送信される再送信メッセージの一例を示す図である。
【図７】動作指示受付部、送信先決定部、メッセージ生成部、メッセージ送信部の処理の一例を示すフロー図である。
【図８】送信先決定部の処理の一例を示すフロー図である。
【図９】通信ログテーブルの一例を示す図である。
【図１０】通信モード制御部の処理の一例を示すフロー図である。
【図１１】メッセージ受信部、コマンド再送信部、コマンド実行部の処理の一例を示すフロー図である。
【図１２】状態メッセージを送受信する処理の一例を示すフロー図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態の例を図面に基づいて説明する。
【００１３】
［１．システム構成］図１は、本発明の実施形態に係る機器制御システム１の構成を示す。図１に示すように、機器制御システム１は、第１機器２０−１、第２機器２０−２、第３機器２０−３、音声入力装置３０、音声認識装置４０、及びコマンド処理システム５０を含む。以下では、第１機器２０−１、第２機器２０−２、および第３機器２０−３を総称して「機器２０」と記載する場合がある。
【００１４】
機器２０および音声入力装置３０はローカルエリアに設置され、ＬＡＮ２に接続される。ＬＡＮ２は有線ＬＡＮであってもよいし、無線ＬＡＮであってもよい。ＬＡＮ２はルータ４を介してインターネット６に接続される。音声認識装置４０及びコマンド処理システム５０はローカルエリア外に設置される。すなわち、機器２０及び音声入力装置３０から見て、音声認識装置４０及びコマンド処理システム５０はインターネット６側に設置される。なお、「ローカルエリア」とは、ＬＡＮ２を介した通信が可能な限られた範囲のエリアである。
【００１５】
機器２０は機器制御システム１による制御の対象となる機器２０である。図１では、３台の機器２０が示されているが、４台以上の機器２０が含まれていてもよいし、２台以下の機器２０のみが含まれていてもよい。以下では機器２０は同じＬＡＮ２に接続されているものとする。
【００１６】
例えば、機器２０はオーディオ装置又はオーディオビジュアル装置である。具体的には、機器２０は、ＡＶレシーバ、ＡＶアンプ、スピーカ、光ディスク再生装置（ブルーレイディスク（登録商標）プレーヤ又はＤＶＤ（登録商標）プレーヤ等）、又はテレビジョン受像機である。また例えば、機器２０は楽器（電子楽器又は電気楽器等）であってもよい。なお、機器２０はこれら以外の装置であってもよい。
【００１７】
以下では、第１機器２０−１がＡＶレシーバであり、第２機器２０−２がテレビジョン受像機であり、第３機器２０−３が他の部屋（キッチン）に設置されスピーカを有する装置である例を想定する。第２機器２０−２はＨＤＭＩ（High-Definition Multimedia Interface：登録商標）ケーブルを介して第１機器２０−１の第１のＨＤＭＩ端子（ＨＤＭＩ１）に接続されている。また、プライベートＩＰアドレス「１９２．１６８．０．２」、「１９２．１６８．０．３」、「１９２．１６８．０．４」がそれぞれ第１機器２０−１、第２機器２０−２、第３機器２０−３に対して設定されている。
【００１８】
図１に示すように、第１機器２０−１は制御部２１、記憶部２２、及び通信部２３を含む。制御部２１は少なくとも一つのマイクロプロセッサ（ＣＰＵ）を含み、記憶部２２に記憶されたプログラムに従って処理を実行する。記憶部２２は、主記憶部（例えばＲＡＭ）及び補助記憶部（例えば、不揮発性の半導体メモリ、またはハードディスクドライブ）を含む。記憶部２２はプログラムやデータを記憶するためのものである。通信部２３は他の装置との間でデータを送受信するためのものである。図１では省略されているが、第２機器２０−２、および第３機器２０−３も制御部２１、記憶部２２、及び通信部２３を含む。
【００１９】
なお、機器２０は、情報記憶媒体（例えば光ディスク又はメモリカード等）に記憶されたプログラムやデータを読み取るための構成（例えば光ディスクドライブ又はメモリーカードスロット等）を備えてもよい。そして、プログラムが情報記憶媒体を介して機器２０に供給されてもよい。プログラムはインターネット６を介して機器２０に供給されてもよい。
【００２０】
音声入力装置３０はマイクロフォンを含み、音声入力を受け付ける。本実施形態では、ユーザが機器２０への動作指示を音声入力するために音声入力装置３０が使用される。例えば、Ｘ社が提供するコマンド処理システム５０を介して、居間に設置された機器２０をスタンバイ状態から起動させたい場合、ユーザは「ＡＡＡ  ａｓｋ  ＭＣ  ｔｏ  ｔｕｒｎ  ｏｎ  ｔｈｅ  Ｌｉｖｉｎｇ  Ｒｏｏｍ」等を音声入力装置３０に入力する。ここで、「ＡＡＡ」は音声入力装置３０に対する音声入力を開始させるための言葉（Ｗａｋｅ  ｗｏｒｄ）であって、例えば音声入力装置３０の名称であり、「ＭＣ」は、コマンド処理システム５０の名称である。
【００２１】
音声入力装置３０に入力された音声（フレーズ）を示す音声データはユーザＩＤとともにインターネット６を介して音声認識装置４０に送信される。音声認識装置４０は例えばサーバコンピュータによって実現される。音声認識装置４０はいわゆるクラウドコンピューティングにより、複数のサーバによって実現されてもよい。音声認識装置４０は音声認識処理を実行することによって、音声データを、プログラム（コマンド処理システム５０）によって理解しやすい形式のデータに変換する。例えば、音声認識装置４０は、フレーズの音声データから、そのユーザの指示の種類と指示の対象とを示す文字列を含む所定形式の動作指示を生成する。そして、動作指示はユーザＩＤとともにコマンド処理システム５０に送信される。なお、ユーザＩＤは、音声データがコマンド処理システム５０に送信されるまでの間に、いずれかのインターネット６側の装置（処理）によって付与されてもよい。
【００２２】
ここで、音声認識装置４０は、ユーザから送信される音声の内容、例えばフレーズ中の特定の単語群に応じて、そのフレーズの内容を処理できるコマンド処理システム５０に対して動作指示を送信することができる。
【００２３】
図１に示すように、コマンド処理システム５０は、コマンドデータ送信装置１０、データベース５２、及びＭＱＴＴ（Message Queueing Telemetry Transport）サーバ５３を含む。
【００２４】
データベース５２は各種データを記憶する。例えば、データベース５２は各ユーザの所有している機器２０の情報を記憶する。図２はデータベース５２に記憶される機器テーブルＴ１の一例を示す。機器テーブルＴ１はユーザごとに（ユーザＩＤと関連付けて）記憶される。なお、コマンド処理システム５０（データベース５２）、機器２０で使用されるユーザＩＤは、音声入力装置３０及び音声認識装置４０で使用されるユーザＩＤと異なっていてもよいし、同じであってもよい。
【００２５】
図２に示すように、機器テーブルＴ１は「ＩＤ」、「名称」、「機器ＩＤ」、「ＩＰアドレス」、「コマンド種類」、「端子」、「信号接続先」、「受信機能」、「接続状態」「受付可能コマンド」フィールドを含む。
【００２６】
「ＩＤ」フィールドは、ユーザの所有している各機器２０を一意に識別する情報を示す。図２では、第１機器２０−１がＩＤ「１」に相当し、第２機器２０−２がＩＤ「２」に相当する。
【００２７】
「名称」フィールドは機器２０の名称を示す。この名称はユーザが動作指示の対象の機器２０を指定するために使用される。名称としては、ユーザによって設定された任意の名称が使用されてよいし、例えば機器２０の製造元等によって設定された初期名称が使用され、ユーザにより修正が可能になっていてもよい。
【００２８】
「機器ＩＤ」フィールドは、これのみで機器２０を一意に特定する機器ＩＤである。機器ＩＤは、機器２０のＭＡＣアドレスであってもよいし、ＭＡＣアドレスに基づいて生成されたＩＤであってもよい。「ＩＰアドレス」フィールドは、機器２０が備えている有線又は無線ネットワークインタフェースカードに対して設定されたＩＰアドレスを示す。「コマンド種類」フィールドは、機器２０で使用されているコマンドの種類（体系）を示す。「端子」フィールドは、機器２０が備えている入力端子のリストを示す。「信号接続先」フィールドは、機器２０が他の機器２０の入力端子に接続されて、機器２０から出力される音声が他の機器２０に入力される場合に、機器２０が接続された他の機器２０の入力端子を示す。
【００２９】
「受信機能」フィールドは、インターネット６を介してコマンドを含むメッセージを受信する機能を有するか否かを示す。メッセージについては後述する。例えば、「０」又は「１」が「受信機能」フィールドに登録される。「０」は、この機器２０がインターネット６を介してメッセージを受信する機能がないことを示し、「１」は、この機器２０がインターネット６を介してメッセージを受信できる機能を有することを示す。
【００３０】
「接続状態」フィールドは、機器２０とコマンド処理システム５０とが直接的に通信可能であるか否かを示す。例えば、「０」又は「１」が「接続状態」フィールドに登録される。「０」は、この機器２０とコマンド処理システム５０のＭＱＴＴサーバ５３とが通信接続されておらず、この機器２０が他の機器２０を介さずにコマンド処理システム５０と通信する状態にないこと（以下では「通信接続されていない状態」とも記載する）を示し、「１」は、この機器２０とコマンド処理システム５０のＭＱＴＴサーバ５３とが通信接続されており、この機器２０が他の機器２０を介さずにコマンド処理システム５０と通信する状態にある（以下では「通信接続されている状態」とも記載する）ことを示す。通信接続の詳細については後述する。
【００３１】
「受付可能コマンド」フィールドは、機器２０が受付可能なコマンドのリストを示す。「受付可能コマンド」フィールドのリスト中に「Ｐｏｗｅｒ」が設定されていれば、その機器は外部からのコマンドによりスタンバイ状態から起動することが可能であることを示し、設定されていなければスタンバイ状態から起動することができないことを示す。また、「受付可能コマンド」フィールドのリスト中に「Ｖｏｌｕｍｅ」が設定されていれば、その機器は外部からのコマンドにより音量を制御することが可能であることを示し、設定されていなければ音量を制御することができないことを示す。
【００３２】
機器テーブルＴ１のデータは各ユーザによる入力によってデータベース５２に登録される。なお、データベース５２には機器テーブルＴ１以外のデータも記憶される。例えば、データベース５２にはユーザと、機器２０のためにそのユーザが入力可能なフレーズの種類を示すデータとが関連付けて記憶されている。他にも、動作指示とコマンドとの対応関係を示すデータ（言い換えれば、動作指示をコマンドに変換するためのデータ）がデータベース５２に記憶されてもよい。
【００３３】
コマンドデータ送信装置１０は例えばサーバコンピュータによって実現される。図１に示すように、コマンドデータ送信装置１０は制御部１１、記憶部１２、及び通信部１３を含む。制御部１１、記憶部１２、及び通信部１３は制御部２１、記憶部２２、及び通信部２３と同様である。なお、コマンドデータ送信装置１０は、情報記憶媒体（例えば光ディスク又はメモリカード等）に記憶されたプログラムやデータを読み取るための構成要素（例えば光ディスクドライブ又はメモリーカードスロット等）を備えてもよい。そして、プログラムが情報記憶媒体を介してコマンドデータ送信装置１０に供給されてもよい。プログラムはインターネット６を介してコマンドデータ送信装置１０に供給されてもよい。
【００３４】
コマンドデータ送信装置１０はデータベース５２にアクセス可能である。コマンドデータ送信装置１０とデータベース５２とは一つのサーバコンピュータによって実現されてもよいし、別のサーバコンピュータによって実現されてもよい。
【００３５】
コマンドデータ送信装置１０は、音声認識装置４０から送信される、機器２０に対する動作指示を受け付け、当該動作指示に基づいてコマンドを含むメッセージを生成し、当該メッセージを当該機器２０へ向けて送信する。より具体的には、メッセージはＭＱＴＴサーバ５３を介して機器２０へ向けて送信される。なお、メッセージはＭＱＴＴサーバ５３を介して直接的に動作指示の対象となる機器２０へ送信されてもよいし、他の機器２０を介して対象の機器２０へメッセージが送信されてもよい。ＭＱＴＴサーバ５３は、ＭＱＴＴプロトコルを使用してデータを送受信するためのものである。コマンドデータ送信装置１０とＭＱＴＴサーバ５３とは一つのサーバコンピュータによって実現されてもよいし、別のサーバコンピュータによって実現されてもよい。
【００３６】
［２．機能ブロック］図３は、コマンドデータ送信装置１０および機器２０により実現される機能を示すブロック図である。
【００３７】
図３に示すように、コマンドデータ送信装置１０は動作指示受付部１１０、送信先決定部１２０、メッセージ生成部１３０、メッセージ送信部１４０、通信モード制御部１６０、および機器情報取得部１８０を含む。動作指示受付部１１０、送信先決定部１２０、メッセージ生成部１３０、メッセージ送信部１４０、通信モード制御部１６０、および機器情報取得部１８０は、制御部１１が記憶部１２に格納された各機能のプログラムを実行することによって実現される。
【００３８】
また図３に示すように、機器２０はメッセージ受信部２１０、コマンド再送信部２２０、コマンド受信部２３０、コマンド実行部２４０、および機器情報送信部２８０を含む。メッセージ受信部２１０、コマンド再送信部２２０、コマンド受信部２３０、コマンド実行部２４０、および機器情報送信部２８０は制御部２１が記憶部２２に格納された各機能のプログラムを実行することによって実現される。
【００３９】
［２−１］まず、動作指示受付部１１０、送信先決定部１２０、通信モード制御部１６０、メッセージ生成部１３０、メッセージ送信部１４０、メッセージ受信部２１０、コマンド再送信部２２０、コマンド受信部２３０、コマンド実行部２４０について説明する。
【００４０】
動作指示受付部１１０は、ある機器２０に対する動作指示を受け付ける。例えば、動作指示受付部１１０は、音声認識装置４０によってテキストデータ等のプログラムにとって理解可能な形式のデータに変換された動作指示を音声認識装置４０から受信する。
【００４１】
送信先決定部１２０は、その動作指示から、その動作指示の対象となる機器２０（対象機器）を特定し、さらに、メッセージ生成部１３０が動作指示に基づいて生成するメッセージの送信先となる機器２０を決定する。動作指示の対象となる機器２０と、メッセージの送信先となる機器２０とは必ずしも異なっていない。
【００４２】
メッセージ生成部１３０は、動作指示受付部１１０が対象機器に対する動作指示を受信した場合に、動作指示に対応するコマンドを含むメッセージを生成する。コマンドは、動作指示に応じた動作を行わせるためのテキスト等のデータである。
【００４３】
図４はメッセージＤ１，Ｄ２の一例を示す図である。図４に示されるメッセージＤ１は、第１機器２０−１をスタンバイ状態から起動する旨の動作指示が受け付けられた場合に生成されるメッセージの一例であり、メッセージＤ２は、第３機器２０−３をスタンバイ状態から起動する旨の動作指示が受け付けられた場合に生成されるメッセージの一例である。
【００４４】
メッセージＤ１，Ｄ２は項目「ｔｙｐｅ」，「ｉｄ」，「ｃｏｍｍａｎｄ」を含む。項目「ｔｙｐｅ」はデータの種別を示す。図５に示す例では「ｃｍｄ」が項目「ｔｙｐｅ」に設定されている。これはメッセージ中にコマンドが含まれることを示している。項目「ｉｄ」はメッセージを一意に識別する識別情報を示す。項目「ｃｏｍｍａｎｄ」に設定されるデータはコマンドの内容を示す。項目「ｃｏｍｍａｎｄ」は項目「ｉｐ」，「ｐａｔｈ」，「ｍｅｔｈｏｄ」を含む。項目「ｉｐ」はコマンドの宛先を示す。図５のメッセージＤ１では第１機器２０−１のＩＰアドレスが項目「ｉｐ」に設定され、メッセージＤ２で第３機器２０−３のＩＰアドレスが項目「ｉｐ」に設定されている。項目「ｐａｔｈ」はコマンド本体に相当する。項目「ｍｅｔｈｏｄ」は、コマンド本体をＬＡＮ２内で送信する際に使用されるＨＴＴＰプロトコルのメソッドを示す。
【００４５】
メッセージ送信部１４０は、動作指示に基づいてメッセージ生成部１３０によって生成されたメッセージを１または複数の機器２０へ向けて送信する。なお、メッセージ送信部１４０は、動作指示の対象となる機器２０がインターネット６経由でメッセージを受信する状態にない場合（接続状態に「０」が設定されている場合）には、他の機器２０へメッセージを送信し、その他の機器２０に対象の機器２０へメッセージの内容を転送させる。
【００４６】
このメッセージは、ＭＱＴＴプロトコルを使用して機器２０へ送信される。言い換えると、メッセージ送信部１４０はＭＱＴＴサーバ５３を介してメッセージを機器２０へ送信する。図５は、ＭＱＴＴサーバ５３による通信を説明する図である。図５は第１機器２０−１との間でＭＱＴＴプロトコルを用いて通信を行う場合の例について説明している。
【００４７】
図５に示すように、ＭＱＴＴサーバ５３には第１トピックＴＰ１が設定される。第１トピックＴＰ１は、コマンドデータ送信装置１０から第１機器２０−１へデータを送信するためのトピックである。第１トピックＴＰ１の識別情報は機器２０を識別する機器ＩＤに基づいて設定される。例えば、第１機器２０−１の機器ＩＤと、コマンド処理システム５０の外にある第１機器２０−１へデータを送信するためのトピックであることを示す「ＯＵＴ」の文字列とを組み合わせてなる「ａａｂｂｃｃｄｄｅｅ１１＿ＯＵＴ」という識別情報が第１トピックＴＰ１に対して設定される。
【００４８】
また図５に示すように、ＭＱＴＴサーバ５３には第２トピックＴＰ２も設定される。第２トピックＴＰ２は、第１機器２０−１からコマンドデータ送信装置１０へデータを送信するためのトピックである。第２トピックＴＰ２の識別情報（名称）も第１機器２０−１の機器ＩＤに基づいて設定される。例えば、第１機器２０−１の機器ＩＤと、コマンド処理システム５０の内側へデータを送信するためのトピックであることを示す「ＩＮ」の文字列とを組み合わせてなる「ａａｂｂｃｃｄｄｅｅ１１＿ＩＮ」という識別情報が第２トピックＴＰ２に対して設定される。
【００４９】
コマンド処理システム５０がメッセージを第１機器２０−１に送信する場合、メッセージ送信部１４０はメッセージを第１トピックＴＰ１にパブリッシュする。第１トピックＴＰ１には第１機器２０−１がサブスクライバとして登録されており、第１トピックＴＰ１にパブリッシュされたメッセージは、第１トピックＴＰ１をサブスクライブしている第１機器２０−１のメッセージ受信部２１０によりサブスクライブされる。すなわち、第１トピックＴＰ１にパブリッシュされたコマンドデータは第１機器２０−１に送信される。このようにして、コマンドデータは第１トピックＴＰ１を介して第１機器２０−１に送信される。なお、第１機器２０−１が何らかのメッセージをコマンド処理システム５０に送信する場合、第１機器２０−１の機器情報送信部２８０はメッセージを第２トピックＴＰ２にパブリッシュする。また第２トピックＴＰ２にパブリッシュされたメッセージは機器情報送信部２８０によりサブスクライブされる。
【００５０】
また、ＭＱＴＴプロトコルでは、ＭＱＴＴサーバ５３と機器２０との間にＴＣＰセッションによる通信接続が確立されており、その接続を維持するために、ＭＱＴＴサーバ５３と機器２０との間では一定期間ごとにデータを送受信する（いわゆる「keepalive」）。ＭＱＴＴプロトコルを用いない場合、いわゆるポーリングを用いることが考えられるが、この場合も、前回の送受信との間隔が所定の期間に収まるようにコマンド処理システム５０と機器２０との間で送受信することが必要である。このように送受信するよう設定されることは、ＭＱＴＴプロトコルにおける上記の通信接続に相当する。これらの例からわかるように、一般的に、インターネット６を介してコマンド処理システム５０から機器２０へのプッシュ的な通信を可能にする場合、送受信するデータがなくても繰り返し送受信することが必要である。したがって、接続する機器２０が増えれば、仮にメッセージそのものの通信量が増えなくても、通信コストが増大する。
【００５１】
メッセージ受信部２１０はメッセージ送信部１４０により送信されたメッセージをインターネット６を介して受信する。
【００５２】
ここで、通信モード制御部１６０は、１または複数の機器２０のうち１つの動作状況に基づいて、その１つの機器２０（対象機器に相当する）が、コマンドデータ送信装置１０のメッセージ送信部１４０と他の機器２０を経由せずに通信する直接通信モードと、メッセージ送信部１４０と他の機器２０を経由して通信する間接通信モードとのうち一方で通信するよう制御する。より具体的には、１または複数の機器２０のうち１つの動作状況に基づいて、その機器２０が直接通信モードと間接通信モードとのうちいずれにするかを判定し、直接通信モードと判断された場合には、その機器２０とコマンド処理システム５０とが通信接続された状態となり、間接通信モードと判断された場合には、その機器２０とコマンド処理システム５０とが通信接続されていない状態になるよう制御する。動作状況は、例えば、その機器２０を対象とするコマンドの送信状況（頻度や最後の送信からの経過期間）であり、その機器２０における音楽の再生状況である。
【００５３】
ＭＱＴＴプロトコルを用いる場合、直接通信モードでは、メッセージ送信部１４０から送信されるメッセージはＭＱＴＴサーバ５３にパブリッシュされ、対象機器はＭＱＴＴサーバ５３からメッセージをサブスクライブすることでメッセージを受信する。また間接通信モードでは、メッセージ送信部１４０から送信されるメッセージはＭＱＴＴサーバ５３にパブリッシュされ、対象機器と異なる送信先となる機器２０がＭＱＴＴサーバ５３からメッセージをサブスクライブする。そして、その送信先となる機器２０は対象機器へそのメッセージまたはそのメッセージが変換されたメッセージを送信する。対象機器は、その送信されたメッセージを受信する。直接通信モードは、機器テーブルＴ１における「接続状態」フィールドに「１」が設定され、通信接続されている状態に対応し、間接通信モードは、「接続状態」フィールドに「０」が設定され、通信接続されていない状態に対応する。
【００５４】
コマンド再送信部２２０は、メッセージ受信部２１０が受信したメッセージに含まれるコマンドを含む再送信メッセージを、そのコマンドを実行する対象機器のコマンド受信部２３０へ向けて送信する。対象機器を示す情報はメッセージ中に含まれており、再送信メッセージは例えばＨＴＴＰプロトコルにより送信される。またコマンド再送信部２２０は、対象機器が自らの機器２０と異なる場合に再送信メッセージを送信してもよいし、対象機器と自らの機器２０との関係に関わらず送信してもよい。
【００５５】
コマンド受信部２３０は、他の機器２０またはみずからの機器２０のコマンド再送信部２２０により送信された再送信メッセージを受信する。例えば、コマンド受信部２３０はＨＴＴＰデーモンにより再送信メッセージを受信する。
【００５６】
図６は、対象機器へ送信される再送信メッセージの一例を示す図である。図６の例では、再送信メッセージのそれぞれは１つのコマンドを含んでいる。図６に示す再送信メッセージＣ１，Ｃ２は第１機器２０−１に対するコマンドの例であり、再送信メッセージＣ３，Ｃ４は第３機器２０−３に対するコマンドの例である。
【００５７】
図６に示す再送信メッセージでは、コマンドとしてＵＲＬが設定されている。再送信メッセージＣ１は第１機器２０−１をスタンバイ状態（非起動状態）から起動するコマンドを含む。「スタンバイ状態」とは消費電力が通常状態（起動状態）よりも低減された状態である。すなわち、スタンバイ状態は完全に電源がオフになった状態ではなく、スタンバイ状態でもネットワーク通信機能等は有効になっており、コマンドデータを受信したり、コマンドを実行（送信）したり、コマンドを受け付けたりすることが可能である。再送信メッセージＣ２は第１機器２０−１に音楽再生を開始させるコマンドを含む。再送信メッセージＣ３は第３機器２０−３をスタンバイ状態から起動するコマンドを含む。再送信メッセージＣ４は第３機器２０−３の音楽再生を開始させるコマンドを含む。第１機器２０−１、第２機器２０−２、第３機器２０−３、及び第４機器２０−４の間でもコマンドの形式は同じであってもよいし、異なっていてもよい。
【００５８】
コマンド実行部２４０は、メッセージに含まれるコマンドに基づいて、コマンドを実行する。コマンド実行部２４０は、メッセージ受信部２１０が受信したメッセージに含まれるコマンドを直接的に解釈して機器２０を直接制御してもよい。またコマンド実行部２４０は、コマンド受信部２３０が他の機器２０のコマンド再送信部２２０から受信した再送信メッセージに含まれるコマンドを実行してもよい。なお、コマンド実行部２４０は、コマンド受信部２３０が自らの機器２０のコマンド再送信部２２０から受信した再送信メッセージに含まれるコマンドを実行してもよい。
【００５９】
［２−２］次に、機器情報送信部２８０および機器情報取得部１８０について説明する。
【００６０】
機器情報送信部２８０は、自らの機器２０の動作状況が変化した場合、または、前回の送信から一定時間が経過した場合に、この機器２０の現在情報を含む状態メッセージを、インターネット６を介してコマンドデータ送信装置１０に送信する。現在情報は、機器２０の現在の状態を示す情報であり、機器２０が再生中であるか否かを示す情報を含む。なお、状態メッセージは、さらに、機器２０の機種情報、ユーザが機器２０を特定する名称、機器ＩＤ、ＩＰアドレスといった情報を含んでもよい。なお、機器情報送信部２８０は状態メッセージをＭＱＴＴサーバ５３を介してコマンドデータ送信装置１０へ送信する。
【００６１】
機器情報取得部１８０は機器２０から現在情報を含む状態メッセージを取得する。より具体的には、機器情報取得部１８０はＭＱＴＴサーバ５３を介して機器２０から送信された状態メッセージを受信する。
【００６２】
［３．処理］機器制御システム１で実行される処理について説明する。
【００６３】
［３−１］まず、動作指示をコマンド処理システム５０が受け付け、機器２０を制御する処理について説明する。図７は、動作指示受付部１１０、送信先決定部１２０、メッセージ生成部１３０、メッセージ送信部１４０の処理の一例を示すフロー図である。この処理は、制御部１１がその機能のプログラムを実行することにより実行される。
【００６４】
はじめに、動作指示受付部１１０は、音声認識装置４０から動作指示を取得する（ステップＳ５１１）。また動作指示受付部１１０は、動作指示の対象となる対象機器を特定する（ステップＳ５１２）。そして、送信先決定部１２０は、動作指示に基づくメッセージの送信先となる機器２０を決定する（ステップＳ５１３）。
【００６５】
図８は、送信先決定部１２０の処理の一例を示すフロー図であり、ステップＳ５１３の処理をより詳細に説明する図である。まず、送信先決定部１２０は、対象機器がコマンド処理システム５０と通信接続されている状態か否かを判定する（ステップＳ５２１）。そして、対象機器が通信接続されている状態である場合には（ステップＳ５２１のＹ）、送信先決定部１２０は対象機器が直接通信モードであると判定し、この対象機器を送信先として決定する（ステップＳ５２２）。一方、対象機器が通信接続されていない状態である場合には（ステップＳ５２１のＮ）、送信先決定部１２０は対象機器が間接通信モードであると判定し、対象機器と異なり、かつ通信接続されている状態にある機器２０を候補として選択する（ステップＳ５２３）。
【００６６】
候補が選択されると、送信先決定部１２０は選択された機器２０のうちに、音楽再生されていない機器２０が存在するか判定する（ステップＳ５２４）。送信先決定部１２０は、各機器２０が音楽再生をしているか否かを、データベース５２に機器２０と関連づけて格納される再生状態フラグが音楽再生をしていることを示すか否かを確認することで判定する。そして、音楽再生されていない機器２０が存在する場合には（ステップＳ５２４のＹ）、音楽再生されていない機器２０（の１つ）を送信先として決定する（ステップＳ５２５）。一方、音楽再生されていない機器２０が存在しない場合には（ステップＳ５２４のＮ）、選択された機器２０のうち１つを送信先として決定する（ステップＳ５２６）。なお、送信先決定部１２０は、単に音楽再生をしていない機器２０が存在するかではなく、他の機器２０へ音楽データをストリーミングしていない機器２０が存在するかを判定してもよい。
【００６７】
音楽再生をしている機器２０、特に音楽データをストリーミングしている機器２０は処理負荷が大きいため、ステップＳ５２４，Ｓ５２５の処理により、処理負荷に起因するメッセージ関連処理の遅延などの問題を抑えることが可能になる。
【００６８】
送信先となる機器２０が決定されると、メッセージ生成部１３０は、取得した動作指示に基づいて、動作指示に対応するコマンドと、対象機器を識別する情報とを含むメッセージを生成する（ステップＳ５１４）。メッセージ送信部１４０は送信先として決定された機器２０へ向けて生成されたメッセージを送信し（ステップＳ５１５）、送信されたメッセージに関する通信ログを通信ログテーブルに格納する（ステップＳ５１６）。
【００６９】
図９は、通信ログテーブルに格納される通信ログの一例を示す図である。通信ログテーブルは、「機器ＩＤ」フィールドと、「メッセージ送信日時」フィールドと、「コマンド」フィールドとを含む。「ＩＤ」フィールドはシーケンス番号である。「機器ＩＤ」フィールドは、メッセージに含まれるコマンドを実行する対象機器の機器ＩＤが設定される。「メッセージ送信日時」フィールドは、メッセージがメッセージ送信部１４０から送信された日時を示す。「コマンド」フィールドは、メッセージに含まれているコマンドを示す。通信ログテーブルに格納された通信ログは、通信モード制御部１６０の処理で使用される。
【００７０】
［３−２］次に、通信モードの制御および機器２０の通信接続の制御について説明する。図１０は、通信モード制御部１６０の処理の一例を示すフロー図である。図１０に示される処理は、例えば一定時間ごとに、各機器２０について実行される。ここでは、図１０の処理の対象となる機器２０を判定対象機器と記載する。
【００７１】
はじめに、通信モード制御部１６０は、通信ログテーブルに格納された情報に基づいて、判定対象機器に対するコマンドの送信頻度を算出する（ステップＳ５４１）。例えば、通信モード制御部１６０は、判定ログテーブルから、メッセージ送信日時と現在との時間間隔が所定の値より小さく、かつ判定対象機器の機器ＩＤが格納された通信ログを抽出し、抽出された通信ログの件数を送信頻度として算出する。なお、通信モード制御部１６０は、現在より前のある時点より新しいメッセージ送信日時を有しかつ判定対象機器の機器ＩＤが格納された通信ログを抽出してもよい。また、通信モード制御部１６０は、通信ログが格納されるごとに、通信ログの機器ＩＤが示す機器２０のカウンタを増加させ、ステップＳ５４１が処理される時点のカウンタの値を送信頻度として取得してもよい。この場合、カウンタは一定時間ごとにクリアされる。
【００７２】
送信頻度が算出されると、通信モード制御部１６０は、例えば機器テーブルＴ１のうち、判定対象機器の「接続状態」フィールドに格納された値により、判定対象機器が通信接続された状態であるか判定する（ステップＳ５４２）。判定対象機器が通信接続されていない状態の場合には（ステップＳ５４２のＮ）、通信モード制御部１６０は送信頻度が第１の閾値より大きいか否かを判定する（ステップＳ５４３）。第１の閾値は、新たな通信接続を増やすか否かを判定するための閾値である。
【００７３】
送信頻度が第１の閾値より大きい場合には（ステップＳ５４３）、通信モード制御部１６０は他の機器２０を介して判定対象機器へ接続開始コマンドを送信し、通信接続された状態となった後に、機器テーブルＴ１の「接続状態」フィールドに「１」を設定することで、判定対象機器の通信モードを直接通信モードに切り替える（ステップＳ５４４）。一方で、送信頻度が第１の閾値以下の場合には（ステップＳ５４３のＮ）、通信モード制御部１６０は判定対象機器と異なり、かつ通信接続されている１または複数の機器２０の再生状態を示す情報（再生状態フラグ）を取得する（ステップＳ５４５）。そして、再生状態フラグが、通信接続された機器２０のすべてが音楽再生をしていることを示す場合には（ステップＳ５４６のＹ）、ステップＳ５４４の、直接通信モードに切り替える処理を実行する。再生状態フラグが、通信接続された機器２０のいずれかが音楽再生していないことを示す場合には（ステップＳ５４６のＮ）、この判定対象機器についての処理を終了する。
【００７４】
一方、判定対象機器が通信接続された状態の場合には（ステップＳ５４２のＹ）、通信モード制御部１６０は送信頻度が第２の閾値より小さいか否かを判定する（ステップＳ５４７）。第２の閾値は、通信接続を切断するか否かを判定するための閾値である。なお、ステップＳ５４７では、送信頻度として、前回の送信からの経過時間を用いてもよい。この場合には、通信モード制御部１６０は経過時間が閾値より長いか否かを判定する。
【００７５】
通信モード制御部１６０は、送信頻度が第２の閾値以上の場合には（ステップＳ５４７のＮ）、この判定対象機器についての処理を終了する。一方、送信頻度が第２の閾値より小さい場合には（ステップＳ５４７のＹ）、通信モード制御部１６０は通信接続されている他の機器２０が存在するか判定する（ステップＳ５４７）。通信接続されている他の機器２０が存在しない場合には（ステップＳ５４７のＮ）、通信接続がされない状態になると、判定対象機器が属するＬＡＮ２に接続される機器２０にコマンドを送信できなくなることを防ぐため、通信モード制御部１６０は処理を終了する。一方、通信接続されている他の機器２０が存在する場合には（ステップＳ５４７のＹ）、通信モード制御部１６０は判定対象機器へ切断コマンドを送信し、通信接続しない状態になったことを確認した後に機器テーブルＴ１の「接続状態」フィールドに「０」を設定することで、判定対象機器の通信モードを間接通信モードに切り替える（ステップＳ５４９）。
【００７６】
図１０に示される処理により、メッセージの送受信が行われない機器２０とコマンド処理システム５０との通信接続が減る一方、他の機器２０を介してメッセージを送信することが可能な状態が維持される。また多くのコマンドの実行対象となる機器２０に対する通信接続が確立され、音楽再生などにより負荷の高い機器２０をバイパスするための通信接続も確立される。これにより、コマンドの送信ができなくなることや、コマンドの送信の際の遅延の発生を抑えつつ、通信接続の接続コストを削減することができる。
【００７７】
［３−３］次に、機器２０がコマンド処理システム５０からコマンドを含むメッセージを受信し、コマンドを実行する処理について説明する。図１１は、メッセージ受信部２１０、コマンド再送信部２２０、コマンド実行部２４０の処理の一例を示すフロー図である。メッセージ受信部２１０、コマンド再送信部２２０、コマンド受信部２３０、コマンド実行部２４０が行う処理は、制御部２１がその機能のプログラムを実行することにより実行される。
【００７８】
はじめに、メッセージ受信部２１０は、コマンド処理システム５０から送信されたメッセージを受信する（ステップＳ５６１）。受信方法の詳細についてはすでに説明しているので省略する、次に、コマンド再送信部２２０は、受信されたメッセージに含まれる対象機器を識別する情報（たとえば機器ＩＤ）と、自らの機器２０を識別する情報とが等しいかを判定する（ステップＳ５６２）。メッセージに含まれる識別情報が自らの識別情報と同じ場合には（ステップＳ５６２のＹ）、コマンド実行部２４０はメッセージ受信部２１０が受信したメッセージに含まれるコマンドを実行する（ステップＳ５６３）。一方、メッセージに含まれる機器ＩＤが自らの機器ＩＤと異なる場合には（ステップＳ５６２のＮ）、コマンド再送信部２２０はメッセージに含まれるコマンドを取得する（ステップS５６４）。そして、コマンド再送信部２２０は取得されたコマンドに基づいて、対象機器に対するコマンドを含む再送信メッセージを生成し、その再送信メッセージを対象機器へ送信する（ステップＳ５６５）。
【００７９】
ここで、図１１には図示されていないが、再送信メッセージが送信された場合には、対象機器のコマンド受信部２３０は、再送信メッセージを受信し、対象機器のコマンド実行部２４０は再送信メッセージに含まれるコマンドを実行する。
【００８０】
なお、ステップＳ５６２，Ｓ５６３の処理の代わりに、コマンド再送信部２２０は常に対象機器へ再送信メッセージを送信してもよい。この場合には、コマンド再送信部２２０は対象機器の送信先を特定する情報（たとえばＩＰアドレス）に基づいて、自らの機器２０のコマンド受信部２３０へ再送信メッセージを送信する（引き渡す）か、他の機器２０のコマンド受信部２３０へ再送信メッセージを送信するかを決定する。また対象機器のコマンド受信部２３０は、対象機器が自らの機器２０である場合にも再送信メッセージを受信し。それを受けてコマンド実行部２４０が再送信メッセージに含まれるコマンドを実行する。
【００８１】
これまでに説明したように、機器２０が受信したメッセージに指定された対象機器の機器ＩＤに基づいて他の機器２０へ再送信メッセージを送信することにより、一部の機器２０がコマンド処理システム５０と接続していても、すべての機器２０をコマンド処理システム５０から制御することができる。
【００８２】
［３−４］最後に、機器２０の機器情報送信部２８０が現在情報を含む状態メッセージを送信し、コマンドデータ送信装置１０の機器情報取得部１８０が状態メッセージを受信しデータベース５２を更新する処理について説明する。図１２は、状態メッセージを送受信する処理の一例を示すフロー図である。図１２のうち機器２０についての処理は、制御部２１がその機能のプログラムを実行することにより実行される。また、図１２のうちコマンドデータ送信装置１０についての処理は、制御部１１がその機能のプログラムを実行することにより実行される。
【００８３】
はじめに、機器情報送信部２８０は、機器２０の動作状況の変化を検出する（ステップＳ６１１）。動作状況の変化は、機器２０における再生の開始や再生の終了、他の機器２０への音楽データのストリーミングの開始および終了を含む。動作状況の変化が検出されると、機器情報送信部２８０は変化した動作状況（現在の状態）を示す現在情報を含む状態メッセージを生成する（ステップＳ６１２）。そして、機器情報送信部２８０はコマンド処理システム５０のコマンドデータ送信装置１０へ向けて状態メッセージを送信する（ステップＳ６１３）。
【００８４】
コマンドデータ送信装置１０の機器情報取得部１８０は、送信された状態メッセージを受信する（ステップＳ６３１）。状態メッセージはたとえば前述のようにＭＱＴＴサーバ５３を用いて送受信される。機器情報取得部１８０は、状態メッセージを受信すると、その状態メッセージを送信した機器のステータスを更新する（ステップＳ６３２）。より具体的には機器情報取得部１８０は、取得した現在情報に基づいて、送信元の機器２０と関連付けて、その機器２０の現在の状態を示す情報をデータベース５２に格納する。
【００８５】
このようにして、機器２０の現在の状態を示す情報をコマンドデータ送信装置１０へ送信する。これにより、コマンドデータ送信装置１０でその情報を管理することができ、通信モード制御部１６０で現在の機器２０の状態に応じて通信モードを制御することが可能になる。
【００８６】
なお、通信モード制御部１６０は、機器２０に設けられてもよい。この場合、機器２０のうちコマンド処理システム５０と通信接続されているものが図１０に示される処理を実行してもよい。またこの場合、送信頻度の算出に用いる通信ログとして、機器２０がメッセージを受信したログを利用してよいし、接続開始コマンドは判定対象機器へ直接的に送信されてよい。
【００８７】
［付記］以上に説明した実施形態についての記載から把握されるように、本明細書では以下に記載の発明を含む多様な技術的思想が開示されている。
【００８８】
動作指示を取得する動作指示取得手段と、前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信する送信手段と、前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御する通信制御手段と、を含む機器制御システム。
【００８９】
動作指示を取得するステップと、前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信するステップと、前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御するステップと、を含む機器制御方法。
【００９０】
動作指示を取得する動作指示取得手段、前記動作指示に基づいて生成されたコマンドを１または複数のデバイスへ送信する送信手段、および、前記１または複数のデバイスの１つの動作状況に基づいて、前記１つのデバイスが、前記送信手段と他のデバイスを経由せずに通信する第１のモードと、前記送信手段と他のデバイスを経由して通信する第２のモードとのうち一方で通信するよう制御する通信制御手段、としてコンピュータを機能させるためのプログラム。
【００９１】
本発明の一形態では、前記１または複数のデバイスは同じローカルエリアネットワーク内に配置され、前記通信制御手段は、前記１または複数のデバイスの動作状況に基づいて、前記１または複数のデバイスのうち少なくとも１つを除くデバイスが前記第２のモードで通信するよう制御してもよい。
【００９２】
本発明の一形態では、前記通信制御手段は、前記１または複数のデバイスのうち１つの動作状況に基づいて、前記１つのデバイスに向けて前記第２のモードで通信させるコマンドを送信してもよい。
【００９３】
本発明の一形態では、前記送信手段は、前記デバイスのうち１つが前記第２のモードで通信する場合に、前記第１のモードで通信する他のデバイスへ向けて、前記第２のモードで通信する１つのデバイスへのコマンドを送信してもよい。
【００９４】
本発明の一形態では、前記送信手段は、前記デバイスのうち１つが前記第２のモードで通信する場合に、前記第１のモードで通信し、かつ音楽を再生していないデバイスへ向けて、前記第２のモードで通信する前記１つのデバイスへのコマンドを送信してもよい。
【００９５】
本発明の一形態では、前記通信制御手段は、前記１または複数のデバイスのうち前記第２のモードで通信する１つのデバイスの動作状況に基づいて、前記１つのデバイスが前記第１のモードで通信するよう制御してもよい。
【００９６】
本発明の一形態では、前記通信制御手段は、前記第２のモードで通信するデバイスを制御するコマンドが、前記第１のモードで通信するデバイスへ向けて送信された場合に、前記第２のモードで通信するデバイスが前記第１のモードで通信するよう制御してもよい。
【００９７】
本発明の一形態では、前記通信制御手段は、前記第１のモードで通信するデバイスへ向けて、前記第２の通信モードで通院するデバイスへのコマンドが送信される頻度に基づいて、前記第２の通信モードで通院するデバイスが前記第１のモードで通信するよう制御してもよい。
【００９８】
本発明の一形態では、前記通信制御手段は、前記第１のモードで通信するデバイスが音楽データを再生する処理を実行している場合に、前記処理を実行するデバイスと異なるデバイスが前記第１のモードで通信するよう制御してもよい。
【符号の説明】
【００９９】
１  機器制御システム、２  ＬＡＮ、４  ルータ、６  インターネット、１０  コマンドデータ送信装置、１１，２１  制御部、１２，２２  記憶部、１３，２３  通信部、２０  機器、２０−１  第１機器、２０−２  第２機器、２０−３  第３機器、３０  音声入力装置、４０  音声認識装置、５０  コマンド処理システム、５２  データベース、５３  ＭＱＴＴサーバ、１１０  動作指示受付部、１２０  送信先決定部、１３０  メッセージ生成部、１４０  メッセージ送信部、１６０  通信モード制御部、１８０  機器情報取得部、２１０  メッセージ受信部、２２０  コマンド再送信部、２３０  コマンド受信部、２４０  コマンド実行部、２８０  機器情報送信部、Ｃ１，Ｃ２，Ｃ３，Ｃ４  再送信メッセージ、Ｄ１，Ｄ２  メッセージ、ＴＰ１  第１トピック、ＴＰ２  第２トピック。
【図１】
2019129407.tif 000003
【図２】
2019129407.tif 000004
【図３】
2019129407.tif 000005
【図４】
2019129407.tif 000006
【図５】
2019129407.tif 000007
【図６】
2019129407.tif 000008
【図７】
2019129407.tif 000009
【図８】
2019129407.tif 000010
【図９】
2019129407.tif 000011
【図１０】
2019129407.tif 000012
【図１１】
2019129407.tif 000013
【図１２】
2019129407.tif 000014