(57)【特許請求の範囲】
【請求項１】
ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段と、
前記動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段と、
前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段と、
前記動作指示の対象の機器に関する情報に基づいて、当該機器が前記ワイドエリアネットワークを介してデータを受信可能であるかを判定する手段と、を含み、
前記動作指示の対象の機器が前記ワイドエリアネットワークを介して情報を受信可能である場合に、前記コマンドデータ送信手段は、前記動作指示の対象の機器を前記ローカルエリア装置として、前記ワイドエリアネットワークを介して前記コマンドデータを前記動作指示の対象の機器に送信する、
コマンドデータ送信装置。
【請求項２】
請求項１に記載のコマンドデータ送信装置において、
前記動作指示の対象の機器に関する情報は、当該機器の代わりに、前記ワイドエリアネットワークを介してデータを受信する代替機器に関する代替機器情報を含み、
前記動作指示の対象の機器が前記ワイドエリアネットワークを介してデータを受信可能でない場合に、前記コマンドデータ送信手段は、前記代替機器を前記ローカルエリア装置として、前記ワイドエリアネットワークを介して前記コマンドデータを前記代替機器に送信する、
コマンドデータ送信装置。
【請求項３】
請求項１または２に記載のコマンドデータ送信装置において、
前記コマンドデータ生成手段は、前記動作指示に基づいて、複数のコマンドデータを生成する、
コマンドデータ送信装置。
【請求項４】
請求項３に記載のコマンドデータ送信装置において、
前記コマンドデータ送信手段は、前記複数のコマンドデータを一つのデータにまとめて送信する、
コマンドデータ送信装置。
【請求項５】
請求項３又は４に記載のコマンドデータ送信装置において、
前記コマンドデータ生成手段は、
第１のコマンドを示す第１のコマンドデータと、
前記第１のコマンドが送信されてから第２のコマンドが送信されるまでに設けられるべき待ち時間を示す待ち時間データと、
前記第２のコマンドを示す第２のコマンドデータとを生成する、
コマンドデータ送信装置。
【請求項６】
請求項３乃至５のいずれかに記載のコマンドデータ送信装置において、
前記複数のコマンドデータは、前記動作指示に応じた動作を行わせるために一つの機器に対して送信すべき複数のコマンドを示す、
コマンドデータ送信装置。
【請求項７】
請求項６に記載のコマンドデータ送信装置において、
前記動作指示は、特定動作を行うことを指示するものであり、
前記複数のコマンドデータは、
前記機器を起動させるコマンドを示すコマンドデータと、
前記機器に対して前記特定動作を行わせるコマンドを示すコマンドデータと、を含む、
コマンドデータ送信装置。
【請求項８】
ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段と、
前記動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段と、
前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段と
前記機器の現在の状態を示す現在状態情報に基づいて、前記機器が起動状態であるか否かを判定する手段と、を含み、
前記コマンドデータ生成手段は、前記動作指示に基づいて、複数のコマンドデータを生成し、
前記複数のコマンドデータは、前記動作指示に応じた動作を行わせるために一つの機器に対して送信すべき複数のコマンドを示し、
前記動作指示は、特定動作を行うことを指示するものであり、
前記複数のコマンドデータは、
前記機器を起動させるコマンドを示すコマンドデータと、
前記機器に対して前記特定動作を行わせるコマンドを示すコマンドデータと、を含み、
前記コマンドデータ生成手段は、前記機器が起動状態でない場合に、前記機器を起動させるコマンドを示すコマンドデータを前記複数のコマンドデータに含める、
コマンドデータ送信装置。
【請求項９】
請求項３乃至５のいずれかに記載のコマンドデータ送信装置において、
前記複数のコマンドデータは、前記動作指示に応じた動作を行わせるために複数の機器の各々に対して送信すべきコマンドと、当該コマンドを前記伝送手段を介して前記複数の機器の各々に送信する際の宛先とを示す、
コマンドデータ送信装置。
【請求項１０】
請求項９に記載のコマンドデータ送信装置において、
前記動作指示が第１の機器に対するものである場合に、当該動作指示に応じた動作を前記第１の機器に行わせる際に動作させる必要のある第２の機器を特定する手段を含み、
前記複数のコマンドデータは、
前記第１の機器に対して送信すべきコマンドと、当該コマンドを前記伝送手段を介して前記第１の機器に送信する際の宛先とを示すコマンドデータと、
前記第２の機器に対して送信すべきコマンドと、当該コマンドを前記伝送手段を介して前記第２の機器に送信する際の宛先とを示すコマンドデータと、を含む、
コマンドデータ送信装置。
【請求項１１】
ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段と、
前記動作指示が第１の機器に対するものである場合に、当該動作指示に応じた動作を前記第１の機器に行わせる際に動作させる必要のある第２の機器を特定する手段と、
前記動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段と、
前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段と、を含み、
前記コマンドデータ生成手段は、前記動作指示に基づいて、複数のコマンドデータを生成し、
前記複数のコマンドデータは、前記動作指示に応じた動作を行わせるために複数の機器の各々に対して送信すべきコマンドと、当該コマンドを前記伝送手段を介して前記複数の機器の各々に送信する際の宛先とを示し、
前記複数のコマンドデータは、
前記第１の機器に対して送信すべきコマンドと、当該コマンドを前記伝送手段を介して前記第１の機器に送信する際の宛先とを示すコマンドデータと、
前記第２の機器に対して送信すべきコマンドと、当該コマンドを前記伝送手段を介して前記第２の機器に送信する際の宛先とを示すコマンドデータと、を含み、
前記動作指示は、前記第１の機器から出力される音信号を放音手段から放音させることを指示するものであり、
前記第２の機器は、複数の機器と接続されて当該複数の機器の各々から入力される音信号を前記放音手段から放音させるための機器であり、
前記複数のコマンドデータは、
前記第２の機器に対して、前記放音手段から放音させる音信号を前記第１の機器から入力される音信号に切り替えさせるコマンドを示すコマンドデータと、
前記第１の機器に対して、前記音信号の出力を開始させるコマンドを示すコマンドデータと、を含む、
コマンドデータ送信装置。
【請求項１２】
請求項１乃至１１のいずれかに記載のコマンドデータ送信装置において、
前記機器の現在の状態を示す現在状態情報に基づいて、前記機器が第１状態であるか否かを判定する手段を含み、
前記コマンドデータ送信手段は、前記機器が前記第１状態である場合に、前記機器を前記第１状態から第２状態に変えるためのコマンドを示すコマンドデータを送信する、
コマンドデータ送信装置。
【請求項１３】
請求項１乃至１２のいずれかに記載のコマンドデータ送信装置において、
前記機器の現在の状態を示す現在状態情報を取得する現在状態情報取得手段を含み、
前記現在状態情報取得手段は、
前記機器に対して前記現在状態情報を返信させるためのコマンドと、当該コマンドを前記伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成し、当該コマンドデータを前記ワイドエリアネットワークを介して前記ローカルエリア装置に送信する手段と、
前記ローカルエリア装置が前記伝送手段を介して前記宛先に前記コマンドを送信することによって前記ローカルエリア装置に返信される前記現在状態情報を、前記ワイドエリアネットワークを介して、前記ローカルエリア装置から受信する手段、を含む、
コマンドデータ送信装置。
【請求項１４】
請求項１乃至１３のいずれかに記載のコマンドデータ送信装置において、
前記コマンドデータ送信手段は、ＭＱＴＴ（Message Queueing Telemetry Transport）プロトコルを使用して、前記コマンドデータを前記ローカルエリア装置に送信する、
コマンドデータ送信装置。
【請求項１５】
請求項１３に従属する請求項１４に記載のコマンドデータ送信装置において、
前記コマンドデータ送信手段は、前記ＭＱＴＴプロトコルに則った第１のトピックを使用して、前記コマンドデータを前記ローカルエリア装置に送信し、
前記現在状態情報取得手段は、前記ＭＱＴＴプロトコルに則った、第１のトピックとは別の第２のトピックを使用して、前記現在状態情報を前記ローカルエリア装置から受信する、
コマンドデータ送信装置。
【請求項１６】
ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段と、
前記動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段と、
前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段と、を含み、
前記コマンドデータ生成手段は、前記動作指示の対象の機器が特定されていない場合において、前記ローカルエリアに１つの機器のみが設置されている場合に、当該１つの機器が前記動作指示の対象であるとみなし、
前記動作指示の対象の機器が特定されていない場合において、前記ローカルエリアに複数の機器が設置されている場合に、前記動作指示の対象の機器をユーザに問い合わせる手段をさらに含む、
コマンドデータ送信装置。
【請求項１７】
請求項１乃至１６のいずれかに記載のコマンドデータ送信装置において、
前記動作指示は、音声入力装置を介して入力された音声に基づいて生成される、
コマンドデータ送信装置。
【請求項１８】
ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段と、
前記動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段と、
前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段と、を含み、
前記動作指示は、音声入力装置を介して入力された音声に基づいて生成され、
前記動作指示が放音手段から放音される音量に関する指示を含む場合に、指示された音量が基準音量よりも大きいか否かを判定する手段と、
前記指示された音量が前記基準音量よりも大きい場合にユーザに通知する手段と、を含む、
コマンドデータ送信装置。
【請求項１９】
請求項１乃至１８のいずれかに記載のコマンドデータ送信装置において、
前記機器は、リモートコントローラから送信されるコードに応じた動作を行い、
前記コマンドデータ生成手段は、前記コードを含むコマンドと、当該コマンドを前記伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成する、コマンドデータ送信装置。
【請求項２０】
請求項１乃至１９のいずれかに記載のコマンドデータ送信装置において、
ユーザからの登録要求に応じて、複数のコマンド情報を一つの識別情報と関連付けて記憶手段に登録する登録手段を含み、
前記コマンドデータ生成手段は、前記識別情報を含む動作指示が受信された場合に、当該識別情報と関連付けられた前記複数のコマンド情報に基づいて、複数のコマンドデータを取得する、
コマンドデータ送信装置。
【請求項２１】
請求項１乃至２０のいずれかに記載のコマンドデータ送信装置において、
前記機器は、前記伝送手段を介して送信されるコマンドを受信して当該コマンドに対応する動作を行い、
前記機器は、前記ワイドエリアネットワークを介してデータを受信可能な装置であって、前記伝送手段を介して前記宛先に前記コマンドを送信可能な装置である、
コマンドデータ送信装置。
【請求項２２】
ワイドエリアネットワークを介してコマンドデータを送信可能なコマンドデータ送信装置であって、
ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段と、
前記動作指示に基づいて、当該動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段と、
前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、前記ワイドエリアネットワークを介して送信するコマンドデータ送信手段と、
前記動作指示の対象の機器に関する情報に基づいて、当該機器が前記ワイドエリアネットワークを介してデータを受信可能であるかを判定する手段と、を含むコマンドデータ送信装置と、
前記ローカルエリア装置であって、
前記コマンドデータを前記ワイドエリアネットワークを介して受信するコマンドデータ受信手段と、
前記コマンドデータに基づいて、前記伝送手段を介して前記宛先に前記コマンドを送信するコマンド送信手段と、を含む前記ローカルエリア装置と、
を含み、
前記動作指示の対象の機器が前記ワイドエリアネットワークを介して情報を受信可能である場合に、前記コマンドデータ送信手段は、前記動作指示の対象の機器を前記ローカルエリア装置として、前記ワイドエリアネットワークを介して前記コマンドデータを前記動作指示の対象の機器に送信する、
機器制御システム。
【請求項２３】
ワイドエリアネットワークを介してコマンドデータを送信可能なコマンドデータ送信装置の制御方法であって、
ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付ステップと、
前記動作指示に基づいて、当該動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成ステップと、
前記動作指示の対象の機器に関する情報に基づいて、当該機器が前記ワイドエリアネットワークを介してデータを受信可能であるかを判定する判定ステップと、
前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成ステップによって生成されたコマンドデータを、前記ワイドエリアネットワークを介して送信するコマンドデータ送信ステップと、を含み、
前記コマンドデータ送信ステップでは、前記動作指示の対象の機器が前記ワイドエリアネットワークを介して情報を受信可能である場合に、前記動作指示の対象の機器を前記ローカルエリア装置として、前記ワイドエリアネットワークを介して前記コマンドデータを前記動作指示の対象の機器に送信する、
コマンドデータ送信装置の制御方法。
【請求項２４】
コマンドデータ送信装置が、ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付ステップと、
前記コマンドデータ送信装置が、前記動作指示に基づいて、当該動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成ステップと、
前記動作指示の対象の機器に関する情報に基づいて、当該機器がワイドエリアネットワークを介してデータを受信可能であるかを判定する判定ステップと、
前記コマンドデータ送信装置が、前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成ステップによって生成されたコマンドデータを、前記ワイドエリアネットワークを介して送信するコマンドデータ送信ステップと、
前記ローカルエリア装置が、前記コマンドデータを前記ワイドエリアネットワークを介して受信するコマンドデータ受信ステップと、
前記ローカルエリア装置が、前記コマンドデータに基づいて、前記伝送手段を介して前記宛先に前記コマンドを送信するコマンド送信ステップと、を含み、
前記コマンドデータ送信ステップでは、前記動作指示の対象の機器が前記ワイドエリアネットワークを介して情報を受信可能である場合に、前記動作指示の対象の機器を前記ローカルエリア装置として、前記ワイドエリアネットワークを介して前記コマンドデータを前記動作指示の対象の機器に送信する、
を含む機器制御方法。
【請求項２５】
ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段、
前記動作指示に基づいて、当該動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段、
前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段、及び、
前記動作指示の対象の機器に関する情報に基づいて、当該機器が前記ワイドエリアネットワークを介してデータを受信可能であるかを判定する手段、
としてコンピュータとして機能させ、
前記動作指示の対象の機器が前記ワイドエリアネットワークを介して情報を受信可能である場合に、前記コマンドデータ送信手段は、前記動作指示の対象の機器を前記ローカルエリア装置として、前記ワイドエリアネットワークを介して前記コマンドデータを前記動作指示の対象の機器に送信する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコマンドデータ送信装置、ローカルエリア装置、機器制御システム、コマンドデータ送信装置の制御方法、ローカルエリア装置の制御方法、機器制御方法、及びプログラムに関する。
【背景技術】
【０００２】
ローカルエリアネットワーク（ＬＡＮ）を介して送信されるコマンドを受信して当該コマンドに対応する動作を行う機器が知られている（特許文献１）。このような機器に関してはＬＡＮを介して制御できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１０００８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般的に、上記のような機器に対してはローカルエリア内でのみ有効なプライベートＩＰアドレスが設定されることが多い。プライベートＩＰアドレスが設定された機器に対しては、インターネット（ワイドエリアネットワーク）を介してコマンドを直接送信できないため、上記コマンドを使用して、インターネットを介して機器を制御することができなかった。【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、ローカルエリアで使用されるコマンドを使用しつつ、インターネット等のワイドエリアネットワークを介して機器を制御することが可能なコマンドデータ送信装置、ローカルエリア装置、機器制御システム、コマンドデータ送信装置の制御方法、ローカルエリア装置の制御方法、機器制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係るコマンドデータ送信装置は、ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段と、前記動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段と、前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段と、を含む。【０００７】
また、本発明に係るローカルエリア装置は、ローカルエリアでの伝送手段を介してコマンドを送信すべき宛先と、前記伝送手段を介して当該宛先に送信すべきコマンドとを示すコマンドデータをワイドエリアネットワークを介して受信するコマンドデータ受信手段と、前記コマンドデータに基づいて、前記伝送手段を介して前記宛先に前記コマンドを送信するコマンド送信手段と、を含む。【０００８】
また、本発明に係る機器制御システムは、ワイドエリアネットワークを介してコマンドデータを送信可能なコマンドデータ送信装置であって、ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段と、前記動作指示に基づいて、当該動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段と、前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段と、を含むコマンドデータ送信装置と、前記ローカルエリア装置であって、前記コマンドデータを前記ワイドエリアネットワークを介して受信するコマンドデータ受信手段と、前記コマンドデータに基づいて、前記伝送手段を介して前記宛先に前記コマンドを送信するコマンド送信手段と、を含む前記ローカルエリア装置と、を含む。【０００９】
また、本発明に係るコマンドデータ送信装置の制御方法は、ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付ステップと、前記動作指示に基づいて、当該動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成ステップと、前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成ステップによって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信ステップと、を含む。【００１０】
また、本発明に係るローカルエリア装置の制御方法は、ローカルエリアでの伝送手段を介してコマンドを送信すべき宛先と、前記伝送手段を介して当該宛先に送信すべきコマンドとを示すコマンドデータをワイドエリアネットワークを介して受信するコマンドデータ受信ステップと、前記コマンドデータに基づいて、前記伝送手段を介して前記宛先に前記コマンドを送信するコマンド送信ステップと、を含む。【００１１】
また、本発明に係るローカルエリア装置の制御方法は、コマンドデータ送信装置が、ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付ステップと、前記コマンドデータ送信装置が、前記動作指示に基づいて、当該動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成ステップと、前記コマンドデータ送信装置が、前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信ステップと、前記ローカルエリア装置が、前記コマンドデータを前記ワイドエリアネットワークを介して受信するコマンドデータ受信ステップと、前記ローカルエリア装置が、前記コマンドデータに基づいて、前記伝送手段を介して前記宛先に前記コマンドを送信するコマンド送信ステップと、を含む。【００１２】
また、本発明に係るプログラムは、ローカルエリアに設置される機器に対する動作指示を受け付ける動作指示受付手段、前記動作指示に基づいて、当該動作指示に応じた動作を行わせるために前記機器に対して送信すべきコマンドと、当該コマンドを前記ローカルエリア内での伝送手段を介して前記機器に送信する際の宛先とを示すコマンドデータを生成するコマンドデータ生成手段、及び、前記ローカルエリアに設置されるローカルエリア装置に対して、前記コマンドデータ生成手段によって生成されたコマンドデータを、ワイドエリアネットワークを介して送信するコマンドデータ送信手段、としてコンピュータとして機能させるためのプログラムである。また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。【００１３】
また、本発明に係るプログラムは、ローカルエリアでの伝送手段を介してコマンドを送信すべき宛先と、前記伝送手段を介して当該宛先に送信すべきコマンドとを示すコマンドデータをワイドエリアネットワークを介して受信するコマンドデータ受信手段、及び、前記コマンドデータに基づいて、前記伝送手段を介して前記宛先に前記コマンドを送信するコマンド送信手段、としてコンピュータを機能させるためのプログラムである。また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【発明の効果】
【００１４】
本発明によれば、ローカルエリアで使用されるコマンドを使用しつつ、インターネット等のワイドエリアネットワークを介して機器を制御することが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る機器制御システムの構成を示す図である。
【図２】コマンドの例を示す図である。
【図３】機器テーブルの一例を示す図である。
【図４】機器制御システムの機能ブロック図である。
【図５】コマンドデータの例を示す図である。
【図６】ＭＱＴＴサーバについて説明するための図である。
【図７】アレイコマンドデータの一例を示す図である。
【図８】コマンドデータ及び応答データの一例を示す図である。
【図９】キーワードコマンドテーブルの一例を示す図である。
【図１０】機器制御システムで実行される処理を示す図である。
【図１１】機器制御システムで実行される他の処理を示す図である。
【図１２】機器制御システムで実行される他の処理を示す図である。
【図１３】機器制御システムで実行される他の処理を示す図である。
【図１４】機器制御システムで実行される他の処理を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態の例を図面に基づいて説明する。
【００１７】
［１．システム構成］図１は、本発明の実施形態に係る機器制御システムの構成を示す。図１に示すように、機器制御システム１は、第１機器２０−１、第２機器２０−２、第３機器２０−３、第４機器２０−４、音声入力装置３０、音声認識装置４０、及びコマンド処理システム５０を含む。以下では、第１機器２０−１、第２機器２０−２、第３機器２０−３、及び第４機器２０−４を総称して「機器２０」と記載する場合がある。
【００１８】
機器２０及び音声入力装置３０はローカルエリアに設置され、ＬＡＮ２に接続される。ＬＡＮ２は有線ＬＡＮであってもよいし、無線ＬＡＮであってもよい。ＬＡＮ２はルータ４を介してインターネット６（ワイドエリアネットワーク）に接続される。音声認識装置４０及びコマンド処理システム５０はローカルエリア外に設置される。すなわち、機器２０及び音声入力装置３０から見て、音声認識装置４０及びコマンド処理システム５０はインターネット６側に設置される。なお、「ローカルエリア」とは、ＬＡＮ２を介した通信が可能な限られた範囲のエリアである。一方、「ワイドエリア」とは、ローカルエリア外も含むエリアであり、インターネット６を介した通信が可能な範囲のエリアである。
【００１９】
機器２０は機器制御システム１による制御の対象となる機器である。図１では、４台の機器２０のみが示されているが、５台以上の機器２０が含まれていてもよいし、３台以下の機器２０のみが含まれていてもよい。
【００２０】
例えば、機器２０はオーディオ機器又はオーディオビジュアル機器である。具体的には、機器２０は、ＡＶレシーバ、ＡＶアンプ、スピーカ、光ディスク再生機器（ブルーレイディスク（登録商標）プレーヤ又はＤＶＤ（登録商標）プレーヤ等）、又はテレビジョン受像機である。また例えば、機器２０は楽器（電子楽器又は電気楽器等）であってもよい。なお、機器２０はこれら以外の機器であってもよい。
【００２１】
以下では、第１機器２０−１がＡＶレシーバであり、第２機器２０−２が自動演奏機能（データに基づいて鍵盤やペダルの動きを再現して自動的に演奏を行う機能）を備えた電子ピアノであり、第３機器２０−３がテレビジョン受像機であり、第４機器２０−４がブルーレイディスクプレーヤである例を想定する。第２機器２０−２はオーディオケーブルを介して第１機器２０−１の外部入力端子に接続され、第３機器２０−３はＨＤＭＩ（High-Definition Multimedia Interface：登録商標）ケーブルを介して第１機器２０−１の第１のＨＤＭＩ端子（ＨＤＭＩ１）に接続され、第４機器２０−４はＨＤＭＩケーブルを介して第１機器２０−１の第２のＨＤＭＩ端子（ＨＤＭＩ２）に接続されている。また、第１機器２０−１のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：１１」であり、プライベートＩＰアドレス「１９２．１６８．０．２」が第１機器２０−１に対して設定されている。第２機器２０−２のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：２２」であり、プライベートＩＰアドレス「１９２．１６８．０．３」が第２機器２０−２に対して設定されている。第３機器２０−３のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：３３」であり、プライベートＩＰアドレス「１９２．１６８．０．４」が第３機器２０−３に対して設定されている。第４機器２０−４のＭＡＣアドレスは「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：４４」であり、プライベートＩＰアドレス「１９２．１６８．０．５」が第４機器２０−４に対して設定されている。
【００２２】
図１に示すように、第１機器２０−１は制御部２１、記憶部２２、及び通信部２３を含む。制御部２１は少なくとも一つのマイクロプロセッサ（ＣＰＵ）を含み、記憶部２２に記憶されたプログラムに従って処理を実行する。記憶部２２は、主記憶部（例えばＲＡＭ）及び補助記憶部（例えば、不揮発性の半導体メモリ、ハードディスクドライブ、又はソリッドステートドライブ）を含む。記憶部２２はプログラムやデータを記憶するためのものである。通信部２３は他の装置との間でデータを送受信するためのものである。図１では省略されているが、第２機器２０−２、第３機器２０−３、及び第４機器２０−４も制御部２１、記憶部２２、及び通信部２３を含む。
【００２３】
なお、機器２０は、情報記憶媒体（例えば光ディスク又はメモリカード等）に記憶されたプログラムやデータを読み取るための構成要素（例えば光ディスクドライブ又はメモリーカードスロット等）を備えてもよい。そして、プログラムが情報記憶媒体を介して機器２０に供給されてもよい。プログラムはインターネット６を介して機器２０に供給されてもよい。
【００２４】
機器２０は、ＬＡＮ２（ローカルエリア内での伝送手段の一例）を介して送信されるコマンドを受信して当該コマンドに対応する動作を行う。このため、ＬＡＮ２を介して機器２０を制御できる。すなわち、スマートフォン又はタブレット型コンピュータ等の端末からＬＡＮ２を介してコマンドを機器２０に送信することによって、当該コマンドに応じた動作を機器２０に行わせることができる。
【００２５】
図２はコマンドの例を示す。図２に示すコマンドＣ１〜Ｃ４は第１機器２０−１（ＡＶレシーバ）に対するコマンドの例であり、コマンドＣ５〜Ｃ７は第２機器２０−２（電子ピアノ）に対するコマンドの例である。
【００２６】
図２に示すコマンドはＨＴＴＰプロトコルを使用したものになっており、コマンドとしてＵＲＬが設定されている。図２に示す例の場合、コマンドがＨＴＴＰリクエストの形で第１機器２０−１又は第２機器２０−２に対して送信される。第１機器２０−１又は第２機器２０−２ではＨＴＴＰデーモンが起動されており、ＨＴＴＰデーモンによってＨＴＴＰリクエストが受け付けられ、当該ＨＴＴＰリクエストに応じた処理が実行される。そして、その処理結果を示すＨＴＴＰレスポンスがコマンドの送信元に返信される。なお、第３機器２０−３及び第４機器２０−４に対しても、ＨＴＴＰプロトコルを使用したコマンドを送信することが可能である。
【００２７】
コマンドＣ１は第１機器２０−１をスタンバイ状態（非起動状態）から起動するコマンドである。「スタンバイ状態」とは消費電力が通常状態（起動状態）よりも低減された状態である。すなわち、スタンバイ状態は完全に電源がオフになった状態ではなく、スタンバイ状態でもネットワーク通信機能等は有効になっており、コマンドデータを受信したり、コマンドを実行（送信）したり、コマンドを受け付けたりすることが可能である。
【００２８】
コマンドＣ２は第１機器２０−１の入力を外部入力に切り替えるコマンドである。例えば、第１機器２０−１（ＡＶレシーバ）は複数の入力端子（例えばＨＤＭＩ端子や外部入力端子等）を備え、第２機器２０−２を含む複数の機器２０がそれら複数の入力端子に接続される。また、第１機器２０−１にはスピーカ（放音手段の一例）が接続され、第１機器２０−１はいずれかの入力端子から入力される音声信号をスピーカから放音させる。コマンドＣ２は、スピーカに供給する音声信号を外部入力端子から入力される音声信号に切り替えるコマンドである。
【００２９】
コマンドＣ３は出力音量を設定するコマンドである。コマンドＣ４は第１機器２０−１の機器情報を要求するコマンドである。コマンドＣ４が実行された場合、第１機器２０−１の機器情報（機種名又は現在状態情報等）がコマンドＣ４の送信元に返信される。
【００３０】
コマンドＣ５は第２機器２０−２をスタンバイ状態から起動するコマンドである。コマンドＣ６は第２機器２０−２（電子ピアノ）の自動演奏を開始させるコマンドである。コマンドＣ７は第２機器２０−２の機器情報を要求するコマンドである。なお、第２機器２０−２と第１機器２０−１とでコマンドの形式は同じであってもよいし、異なっていてもよい。第１機器２０−１、第２機器２０−２、第３機器２０−３、及び第４機器２０−４の間でもコマンドの形式は同じであってもよいし、異なっていてもよい。
【００３１】
音声入力装置３０はマイクロフォンを含み、音声入力を受け付ける。本実施形態では、ユーザが機器２０への動作指示を音声入力するために音声入力装置３０が使用される。例えば、Ｘ社製の電子ピアノに自動演奏させたい場合、ユーザは「Ｘ  ｐｉａｎｏ  ｐｌａｙ」等を音声入力装置３０に入力する。また例えば、居間に設置されているＸ社製のオーディオシステムに音楽を再生させたい場合、ユーザは「Ｘ  ｐｌａｙ  ｉｎ  ｌｉｖｉｎｇ  ｒｏｏｍ」等を音声入力装置３０に入力する。
【００３２】
音声入力装置３０に入力された音声（動作指示）を示す音声データはユーザＩＤとともにインターネット６を介して音声認識装置４０に送信される。音声認識装置４０は例えばサーバコンピュータによって実現される。音声認識装置４０は音声認識処理を実行することによって、音声データを、プログラム（コマンド処理システム５０）によって理解しやす形式のデータに変換する。例えば、音声データを所定形式のテキストデータに変換する。そして、テキストデータに変換された動作指示はユーザＩＤとともにコマンド処理システム５０に送信される。なお、ユーザＩＤは、音声データがコマンド処理システム５０に送信されるまでの間に、いずれかのインターネット側の装置（処理）によって付与されてもよい。
【００３３】
なお、機器２０の製造元ごとに異なるコマンド処理システム５０が用意されている場合であれば、Ｘ社製の機器２０に対する動作指示は、Ｘ社製の機器２０用のコマンド処理システム５０に送信される。また、コマンドの形式ごとに異なるコマンド処理システム５０が用意されている場合であれば、機器２０に対する動作指示は、当該機器２０で採用されているコマンドの形式用のコマンド処理システム５０に送信される。
【００３４】
図１に示すように、コマンド処理システム５０は、コマンドデータ送信装置１０、データベース６０、及びＭＱＴＴ（Message Queueing Telemetry Transport）サーバ７０を含む。
【００３５】
データベース６０は各種データを記憶する。例えば、データベース６０は各ユーザの所有している機器２０の情報を記憶する。図３はデータベース６０に記憶される機器テーブルの一例を示す。機器テーブルＴ１はユーザごとに（ユーザＩＤと関連付けて）記憶される。なお、コマンド処理システム５０（データベース６０）で使用されるユーザＩＤは、音声入力装置３０及び音声認識装置４０で使用されるユーザＩＤと異なっていてもよいし、同じであってもよい。ただし、これらのユーザＩＤが異なる場合には、それらのユーザＩＤを変換するための対応関係データがコマンド処理システム５０又は音声認識装置４０に記憶されている必要がある。
【００３６】
図３に示すように、機器テーブルＴ１は「ＩＤ」、「名称」、「機種」、「ＭＡＣアドレス」、「ＩＰアドレス」、「コマンド種類」、「端子」、「音量範囲」、「接続先」、「受信可否」、「代替機器」フィールドを含む。
【００３７】
「ＩＤ」フィールドは、ユーザの所有している各機器２０を一意に識別する情報を示す。図３では、第１機器２０−１が機器ＩＤ「１」に相当し、第２機器２０−２が機器ＩＤ「２」に相当する。
【００３８】
「名称」フィールドは機器２０の名称を示す。この名称はユーザが動作指示の対象の機器２０を指定するために使用される。名称としては、ユーザによって設定された任意の名称が使用されるようにしてもよいし、機器２０の製造元等によって設定された名称が使用されるようにしてもよい。「機種」フィールドは機器２０の機種名（型名）を示す。
【００３９】
「ＭＡＣアドレス」及び「ＩＰアドレス」フィールドは、機器２０が備えている有線又は無線ネットワークインタフェースカードに対して設定されたＭＡＣアドレス及びＩＰアドレスを示す。「コマンド種類」フィールドは、機器２０で使用されているコマンドの種類（体系）を示す。なお、機種ごとにコマンドの種類が定められる場合には、機種とコマンドの種類とを関連付けてなるテーブルを別途設けておき、その代わりに、「コマンド種類」フィールドを機器テーブルＴ１に設けないようにしてもよい。「端子」フィールドは、機器２０が備えている入力端子のリストを示す。「音量範囲」フィールドは、機器２０で設定可能な音量の範囲を示す。「接続先」フィールドは、機器２０が他の機器２０の入力端子に接続されて、機器２０から出力される音声が他の機器２０に入力される場合に、機器２０が接続された他の機器２０の入力端子を示す。
【００４０】
「受信可否」フィールドは、インターネット６を介してコマンドデータを受信可能であるか否かを示す。コマンドデータについては後述する。例えば、「０」又は「１」が「受信可否」フィールドに登録される。「０」は、インターネット６を介してコマンドデータを受信できないことを示し、「１」は、インターネット６を介してコマンドデータを受信できることを示す。「代替機器」フィールドは、機器２０がインターネット６を介してコマンドデータを受信できない場合に、当該機器２０の代わりにコマンドデータを受信する機器２０（代替機器）を示す。
【００４１】
例えば、機器テーブルＴ１は各ユーザによって登録される。ユーザは端末からコマンドデータ送信装置１０にアクセスすることによって、自らの所有する機器２０の情報を機器テーブルＴ１に登録できる。機器２０をＬＡＮ２に接続して起動した際に、機器２０の情報がユーザＩＤとともにコマンド処理システム５０（コマンドデータ送信装置１０）に送信されて機器テーブルＴ１に登録されるようにしてもよい。
【００４２】
なお、データベース６０には機器テーブルＴ１以外のデータも記憶される。例えば、動作指示とコマンドとの対応関係を示すデータ（言い換えれば、動作指示をコマンドに変換するためのデータ）がデータベース６０に記憶される。このデータはコマンドの種類（体系）ごとに記憶される。
【００４３】
コマンドデータ送信装置１０は例えばサーバコンピュータによって実現される。図１に示すように、コマンドデータ送信装置１０は制御部１１、記憶部１２、及び通信部１３を含む。制御部１１、記憶部１２、及び通信部１３は制御部２１、記憶部２２、及び通信部２３と同様である。なお、コマンドデータ送信装置１０は、情報記憶媒体（例えば光ディスク又はメモリカード等）に記憶されたプログラムやデータを読み取るための構成要素（例えば光ディスクドライブ又はメモリーカードスロット等）を備えてもよい。そして、プログラムが情報記憶媒体を介してコマンドデータ送信装置１０に供給されてもよい。プログラムはインターネット６を介してコマンドデータ送信装置１０に供給されてもよい。
【００４４】
コマンドデータ送信装置１０はデータベース６０にアクセス可能である。コマンドデータ送信装置１０とデータベース６０とは一つのサーバコンピュータによって実現されてもよいし、別のサーバコンピュータによって実現されてもよい。
【００４５】
コマンドデータ送信装置１０は、機器２０に対する動作指示を受け付け、当該動作指示に基づいてコマンドデータを生成し、当該コマンドデータを当該機器２０又は他の機器２０（代替機器）に送信する。後述するように、コマンドデータはＭＱＴＴサーバ７０を介して機器２０又は他の機器２０（代替機器）に送信される。ＭＱＴＴサーバ７０は、ＭＱＴＴプロトコルを使用してデータを送受信するためのものである。コマンドデータ送信装置１０とＭＱＴＴサーバ７０とは一つのサーバコンピュータによって実現されてもよいし、別のサーバコンピュータによって実現されてもよい。
【００４６】
［２．機能ブロック］図４は、コマンドデータ送信装置１０及び機器２０で実現される機能ブロックの一例を示す。
【００４７】
図４に示すように、コマンドデータ送信装置１０は動作指示受付部１１０、コマンドデータ生成部１２０、コマンドデータ送信部１３０、機器情報取得部１４０、判定部１５０、通知部１６０、及びキーワードコマンド登録部１７０を含む。これらの機能ブロックは例えば制御部１１によって実現される。
【００４８】
また図４に示すように、機器２０はコマンドデータ受信部２１０、コマンド送信部２２０、及び機器情報送信部２３０を含む。これらの機能ブロックは例えば制御部２１によって実現される。
【００４９】
［２−１］まず、動作指示受付部１１０、コマンドデータ生成部１２０、コマンドデータ送信部１３０、コマンドデータ受信部２１０、及びコマンド送信部２２０について説明する。
【００５０】
動作指示受付部１１０は、第１機器２０−１又は第２機器２０−２に対する動作指示を受け付ける。例えば、動作指示受付部１１０は、音声認識装置４０によってテキストデータ等のプログラムにとって理解しやすい形式のデータに変換された動作指示を音声認識装置４０から受信する。
【００５１】
コマンドデータ生成部１２０は、動作指示に応じた動作を行わせるために第１機器２０−１又は第２機器２０−２に対して送信すべきコマンドと、当該コマンドをＬＡＮ２を介して第１機器２０−１又は第２機器２０−２に送信する際の宛先とを示すコマンドデータを生成する。
【００５２】
図５はコマンドデータの例を示す。図５に示すコマンドデータＤ１は、第１機器２０−１をスタンバイ状態から起動する旨の動作指示が受け付けられた場合に生成されるコマンドデータの一例を示す。すなわち、コマンドデータＤ１は、図２に示したコマンドＣ１を第１機器２０−１に対して実行したい場合に生成されるコマンドデータの一例を示す。
【００５３】
コマンドデータＤ１は項目「ｔｙｐｅ」，「ｉｄ」，「ｃｏｍｍａｎｄ」を含む。項目「ｔｙｐｅ」はデータの種別を示す。図５に示す例では「ｃｍｄ」が項目「ｔｙｐｅ」に設定されている。これはデータがコマンドデータであることを示している。項目「ｉｄ」はデータ（コマンドデータ）を一意に識別する識別情報を示す。項目「ｃｏｍｍａｎｄ」はコマンドデータの内容を示す。項目「ｃｏｍｍａｎｄ」は項目「ｉｐ」，「ｐａｔｈ」，「ｍｅｔｈｏｄ」を含む。項目「ｉｐ」はコマンドの宛先を示す。第１機器２０−１のＩＰアドレスが項目「ｉｐ」に設定されている。項目「ｐａｔｈ」はコマンド本体に相当する。項目「ｉｐ」はコマンドＣ１のうちのＩＰアドレス部分に相当し、項目「ｐａｔｈ」はコマンドＣ１のうちのＩＰアドレス以降の部分に相当する。項目「ｍｅｔｈｏｄ」は、使用されるＨＴＴＰプロトコルのメソッドを示す。
【００５４】
図５に示すコマンドデータＤ２は、第２機器２０−２をスタンバイ状態から起動する旨の動作指示が受け付けられた場合に生成されるデータの一例を示す。すなわち、コマンドデータＤ２は、図２に示したコマンドＣ５を第２機器２０−２に対して実行したい場合に生成されるコマンドデータの一例を示す。コマンドデータＤ１と同様、コマンドデータＤ２も項目「ｔｙｐｅ」，「ｉｄ」，「ｃｏｍｍａｎｄ」を含む。コマンドデータＤ２では、第２機器２０−２のＩＰアドレスが項目「ｉｐ」に設定されている。コマンドデータＤ２では、項目「ｉｐ」がコマンドＣ５のうちのＩＰアドレス部分に相当し、項目「ｐａｔｈ」はコマンドＣ５のうちのＩＰアドレス以降の部分に相当する。
【００５５】
なお、コマンドデータＤ１，Ｄ２では、ＨＴＴＰプロトコルのＧＥＴメソッドを使用する場合について示していたが、ＰＯＳＴメソッドを使用するようにしてもよい。図５のコマンドデータＤ３に示すように、ＰＯＳＴメソッドを使用する場合には、ＰＯＳＴメソッドによって送信される内容を示す項目「ｂｏｄｙ」を含む。なお、ＨＴＴＰヘッダ情報によって送信される内容を示す項目「ｈｅａｄｅｒｓ」をコマンドデータに含めてもよい。例えば、“ｈｅａｄｅｒｓ”：［“Ｘ−ＨＥＡＤＥＲ１：ＩＮＦＯ１”，“Ｘ−ＨＥＡＤＥＲ２：ＩＮＦＯ２”］のような項目「ｈｅａｄｅｒｓ」をコマンドデータに含め、コマンド送信時に当該内容をＨＴＴＰヘッダに追加して送信するようにしてもよい。
【００５６】
コマンドデータ送信部１３０は、コマンドデータ生成部１２０によって生成されたコマンドデータをインターネット６を介してローカルエリア装置に送信する。「ローカルエリア装置」とは、ローカルエリアに設置される装置であり、インターネット６を介してデータを受信可能な装置であり、ＬＡＮ２を介してコマンドを宛先に送信可能な装置である。
【００５７】
例えば、第１機器２０−１はインターネット６を介して送信されるデータを受信可能である（図３参照）。このため、第１機器２０−１に対するコマンドを示すコマンドデータが生成された場合、コマンドデータ送信部１３０は当該コマンドデータをインターネット６を介して第１機器２０−１（ローカルエリア装置）に送信する。
【００５８】
一方、第２機器２０−２はインターネット６を介して送信されるデータを受信可能でない（図３参照）。このため、第２機器２０−２に対するコマンドを示すコマンドデータがて生成された場合、コマンドデータ送信部１３０は当該コマンドデータを、インターネット６を介して、代替機器として登録されている第１機器２０−１（ローカルエリア装置）に送信する。
【００５９】
コマンドデータはＭＱＴＴプロトコルを使用してローカルエリア装置に送信される。すなわち、コマンドデータ送信部１３０はＭＱＴＴサーバ７０を介してコマンドデータをローカルエリア装置に送信する。図６はＭＱＴＴサーバ７０について説明するための図である。なお、図６ではローカルエリア装置が第１機器２０−１である場合を想定している。
【００６０】
図６に示すように、ＭＱＴＴサーバ７０には第１トピックＴＰ１が設定される。第１トピックＴＰ１は、コマンドデータ送信装置１０から第１機器２０−１へデータを送信するためのトピックである。第１トピックＴＰ１の識別情報（名称）は第１機器２０−１の識別情報に基づいて設定される。例えば、第１機器２０−１の識別情報であるＭＡＣアドレスと、第１機器２０−１へデータを送信するためのトピックであることを示す「ＳＥＮＤ」の文字列とを組み合わせてなる「ａａｂｂｃｃｄｄｅｅ１１＿ＳＥＮＤ」という識別情報が第１トピックＴＰ１に対して設定される。
【００６１】
また図６に示すように、ＭＱＴＴサーバ７０には第２トピックＴＰ２も設定される。第２トピックＴＰ２は、第１機器２０−１からコマンドデータ送信装置１０へデータ（応答）を送信するためのトピックである。第２トピックＴＰ２の識別情報（名称）も第１機器２０−１の識別情報に基づいて設定される。例えば、第１機器２０−１の識別情報であるＭＡＣアドレスと、コマンドデータ送信装置１０へ応答を送信するためのトピックであることを示す「ＲＥＳＰＯＮＤ」の文字列とを組み合わせてなる「ａａｂｂｃｃｄｄｅｅ１１＿ＲＥＳＰＯＮＤ」という識別情報が第２トピックＴＰ２に対して設定される。
【００６２】
コマンドデータを第１機器２０−１に送信する場合、コマンドデータ送信部１３０はコマンドデータを第１トピックＴＰ１にパブリッシュする。第１トピックＴＰ１には第１機器２０−１がサブスクライバとして登録されており、第１トピックＴＰ１にパブリッシュされたコマンドデータは、第１トピックＴＰ１をサブスクライブしている第１機器２０−１にパブリッシュされる。すなわち、第１トピックＴＰ１にパブリッシュされたコマンドデータは第１機器２０−１に送信される。このようにして、コマンドデータは第１トピックＴＰ１を介して第１機器２０−１に送信される。なお、第２トピックＴＰ２を設ける意義については後述する。
【００６３】
ここで、電子ピアノに自動演奏が行わせる旨の動作指示が動作指示受付部１１０によって受け付けられた場合を想定する。なお、当該動作指示はユーザＵ１（ユーザＩＤが「Ｕ１」であるユーザ）によってなされたものとする。
【００６４】
この場合、コマンドデータ生成部１２０はユーザＵ１の機器テーブルＴ１を参照し、電子ピアノが第２機器２０−２であることを特定し、第２機器２０−２の情報を取得する。
【００６５】
コマンドデータ生成部１２０は、第２機器２０−２に自動演奏を行わせる際に動作させる必要のある他の機器２０を特定する。第２機器２０−２は第１機器２０−１の外部入力端子に接続され、第２機器２０−２から出力される音声が第１機器２０−１を介してスピーカから放音されるため（「接続先」フィールド参照）、コマンドデータ生成部１２０は、第２機器２０−２に自動演奏を行わせる際に動作させる必要のある他の機器２０として第１機器２０−１を特定する。このため、コマンドデータ生成部１２０は、第２機器２０−２に対するコマンドを示すコマンドデータだけでなく、第１機器２０−１に対するコマンドを示すコマンドデータも生成する。
【００６６】
また、コマンドデータ生成部１２０は、第１機器２０−１及び第２機器２０−２で使用されるコマンドの種類（体系）を把握し（「コマンド種類」又は「機種」フィールド参照）、どのような種類（体系）のコマンドのコマンドデータを生成すればよいのかを把握する。さらに、コマンドデータ生成部１２０は、第２機器２０−２がインターネット６を介してデータを受信できないことや、第２機器２０−２の代替機器が第１機器２０−１であることを把握する（「受信可否」及び「代替機器」フィールド参照）。
【００６７】
そして、コマンドデータ生成部１２０は、第１機器２０−１に対するコマンドを示すコマンドデータと、第２機器２０−２に対するコマンドを示すコマンドデータとを一つにまとめたデータを生成し、コマンドデータ送信部１３０は当該データをＭＱＴＴサーバ７０を介して第１機器２０−１に送信する。なお以下では、複数のコマンドデータを一つにまとめたデータのことを「アレイコマンドデータ」と呼ぶ。
【００６８】
図７はアレイコマンドデータの一例を示す。図７に示すアレイコマンドデータＤ４は複数のコマンドデータを含む。図７に示すアレイコマンドデータＤ４では項目「ｔｙｐｅ」に「ａｒｒａｙ」が設定されている。これはこのデータがアレイコマンドデータであり、複数のコマンドデータを含むことを示す。この場合、複数のコマンドデータを格納するための項目「ａｒｒａｙ」がアレイコマンドデータＤ４に含まれる。
【００６９】
図７に示す例では、要素データＤ４１、要素データＤ４２、要素データＤ４３、及び要素データＤ４４が項目「ａｒｒａｙ」に含まれている。要素データＤ４１は第１機器２０−１をスタンバイ状態から起動するためのコマンドデータである。先述の通り、第２機器２０−２は第１機器２０−１に接続されているため、第２機器２０−２の自動演奏をスピーカから放音するためには第１機器２０−１をスタンバイ状態から起動する必要がある。このため、第１機器２０−１を起動するためのコマンドデータが要素データＤ４１として含まれる。要素データＤ４１は図５に示すコマンドデータＤ１と同様である。
【００７０】
要素データＤ４２は待ち時間（ディレイ時間）を設けることを示す待ち時間データである。第１機器２０−１の起動には時間がかかるため、第１機器２０−１を起動した後で次のコマンドを第１機器２０−１に対して実行する場合には、第１機器２０−１の起動が完了するのを待って次のコマンドを実行する必要がある。このため、第１機器２０−１の起動が完了するのを待つべく、待ち時間データが要素データＤ４２として含まれる。要素データＤ４２では項目「ｔｙｐｅ」に「ｄｅｌａｙ」が設定されている。これは要素データＤ４２が待ち時間データであることを示す。要素データＤ４２は項目「ｔｉｍｅ」を含む。項目「ｔｉｍｅ」は待ち時間を示す。図７に示す例では５００ミリ秒が項目「ｔｉｍｅ」に設定されている。なお、５００ミリ秒よりも長い時間（例えば２秒）を待ち時間として設定してもよいし、５００ミリ秒よりも短い時間を待ち時間として設定してもよい。第１機器２０−１の起動に要する時間を考慮して待ち時間を設定すればよい。
【００７１】
要素データＤ４３は第１機器２０−１の入力を外部入力に切り替えるためのコマンドデータである。第２機器２０−２の自動演奏をスピーカから放音するためには、第１機器２０−１の入力を、第２機器２０−２が接続された外部入力に切り替える必要がある。このため、第１機器２０−１の入力を外部入力に切り替えるためのコマンドデータが要素データＤ４３として含まれる。要素データＤ４３では、図２に示したコマンドＣ２のうちのＩＰアドレス部分が項目「ｉｐ」に設定され、コマンドＣ２のうちのＩＰアドレス以降の部分が項目「ｐａｔｈ」に設定されている。
【００７２】
要素データＤ４４は、第２機器２０−２に自動演奏を開始させるためのコマンドデータである。要素データＤ４４では、図２に示したコマンドＣ６のうちのＩＰアドレス部分が項目「ｉｐ」に設定され、コマンドＣ６のうちのＩＰアドレス以降の部分が項目「ｐａｔｈ」に設定されている。要素データＤ４４を送信する際には、自動演奏する楽曲を指定するためのコマンドデータも一緒に送信してもよい。このコマンドデータを送信しない場合には、所定の楽曲を自動演奏の対象として自動的に設定すればよい。例えば、お気に入り登録された楽曲のうちのいずれかや、過去に自動演奏されたことのある楽曲のいずれかを自動演奏の対象として自動的に設定すればよい。
【００７３】
図７では省略しているが、実際には、要素データＤ４３と要素データＤ４４との間には、第２機器２０−２をスタンバイ状態から起動するためのコマンドデータや、第２機器２０−２の起動が完了するの待つための待ち時間データが要素データとして含まれる。
【００７４】
コマンドデータ送信部１３０はアレイコマンドデータＤ４をＭＱＴＴサーバ７０の第１トピックＴＰ１にパブリッシュする。先述の通り、第１トピックＴＰ１にパブリッシュされたアレイコマンドデータＤ４は、第１トピックＴＰ１にサブスクライブした第１機器２０−１にパブリッシュされる。すなわち、アレイコマンドデータＤ４が第１機器２０−１に送信される。
【００７５】
コマンドデータ受信部２１０はコマンドデータをインターネット６を介して受信する。コマンド送信部２２０は、コマンドデータに基づいて、ＬＡＮ２を介して宛先にコマンドを送信する。
【００７６】
ここで、アレイコマンドデータＤ４が第１機器２０−１のコマンドデータ受信部２１０によって受信された場合を想定する。この場合、コマンド送信部２２０はアレイコマンドデータＤ４に含まれるコマンドデータを先頭から順番に実行していく。
【００７７】
まず、コマンド送信部２２０は要素データＤ４１に基づいてコマンドを第１機器２０−１に対して実行する。すなわち、要素データＤ４１の項目「ｉｐ」及び「ｐａｔｈ」に基づき、コマンド送信部２２０は図２に示したコマンドＣ１を取得する。そして、コマンド送信部２２０はコマンドＣ１として設定されたＵＲＬにアクセスする。この場合、ＨＴＴＰリクエストが第１機器２０−１に送信される。要素データＤ４１の項目「ｉｐ」には第１機器２０−１自身のＩＰアドレスが設定されているため、第１機器２０−１自身のＨＴＴＰデーモンに対してＨＴＴＰリクエストが送信される。その結果、第１機器２０−１がスタンバイ状態から起動される。
【００７８】
その後、要素データＤ４２に基づき、コマンド送信部２２０は待ち時間（５００ミリ秒）が経過するのを待つ。待ち時間が経過したら、コマンド送信部２２０は要素データＤ４３に基づいてコマンドを第１機器２０−１に対して実行する。すなわち、要素データＤ４３の項目「ｉｐ」及び「ｐａｔｈ」に基づき、コマンド送信部２２０は図２に示したコマンドＣ２を取得する。そして、コマンド送信部２２０はコマンドＣ２として設定されたＵＲＬにアクセスする。この場合、第１機器２０−１の入力が外部入力に切り替えられる。
【００７９】
さらに、その後、図７で省略されているコマンドデータに基づき、コマンド送信部２２０は図２に示したコマンドＣ５を取得し、コマンドＣ５として設定されたＵＲＬにアクセスする。この場合、第２機器２０−２がスタンバイ状態から起動される。また、図７で省略されている待ち時間データに基づき、コマンド送信部２２０は待ち時間（例えば５００ミリ秒）が経過するのを待つ。待ち時間が経過したら、コマンド送信部２２０は要素データＤ４４に基づいてコマンドを第２機器２０−２に対して実行する。すなわち、要素データＤ４４の項目「ｉｐ」及び「ｐａｔｈ」に基づき、コマンド送信部２２０は図２に示したコマンドＣ６を取得する。そして、コマンド送信部２２０はコマンドＣ６として設定されたＵＲＬにアクセスする。この場合、ＨＴＴＰリクエストが第２機器２０−２に送信され、その結果、第２機器２０−２による自動演奏が開始される。
【００８０】
［２−２］次に、機器情報取得部１４０及び機器情報送信部２３０について説明する。
【００８１】
機器情報取得部１４０は機器２０の機器情報を取得する。機器情報取得部１４０は、機器２０に対して当該機器２０の機器情報を返信させるためのコマンドと、当該コマンドをＬＡＮ２を介して機器２０に送信する際の宛先とを示すコマンドデータを生成し、当該コマンドデータをインターネット６を介してローカルエリア装置に送信する。なお、このコマンドデータの生成及び送信もコマンドデータ生成部１２０及びコマンドデータ送信部１３０を介して実行されてもよい。
【００８２】
例えば、第１機器２０−１の機器情報を取得する場合、機器情報取得部１４０は図８に示すコマンドデータＤ５をインターネット６を介して第１機器２０−１に送信する。コマンドデータＤ５では、図２に示したコマンドＣ４のうちのＩＰアドレス部分が項目「ｉｐ」に設定され、コマンドＣ４のうちのＩＰアドレス以降の部分が項目「ｐａｔｈ」に設定されている。
【００８３】
機器情報取得部１４０はコマンドデータＤ５をＭＱＴＴサーバ７０の第１トピックＴＰ１にパブリッシュする。コマンドデータＤ５は第１機器２０−１に送信される。
【００８４】
機器情報送信部２３０は機器２０の機器情報をインターネット６を介してコマンドデータ送信装置１０に返信する。
【００８５】
例えば、コマンドデータＤ５が第１機器２０−１で受信された場合、コマンドデータＤ５に基づき、機器情報送信部２３０は図２に示したコマンドＣ４を取得する。そして、機器情報送信部２３０はコマンドＣ４として設定されたＵＲＬにアクセスする。この場合、ＨＴＴＰリクエストが第１機器２０−１に送信され、第１機器２０−１の機器情報がＨＴＴＰレスポンスとして返信される。この場合の機器情報は、第１機器２０−１の機種を示す機種情報や、第１機器２０−１の現在の状態を示す現在情報情報等を含む。
【００８６】
機器情報送信部２３０は、取得された機種情報を示す応答データを生成し、当該応答データをインターネット６を介してコマンドデータ送信装置１０に返信する。
【００８７】
例えば図８に示す応答データＤ６が生成される。応答データＤ６では項目「ｔｙｐｅ」に「ｒｅｓｐｏｎｓｅ」が設定されている。これはこのデータが応答データであることを示す。応答データＤ６の項目「ｉｄ」には、コマンドデータＤ５の項目「ｉｄ」に設定されたＩＤ「１０」と同じＩＤが設定される。これはこのデータがコマンドデータＤ５に対する応答データであることを示す。
【００８８】
さらに、応答データＤ６には項目「ｒｅｓｐｏｎｓｅ」が含まれている。項目「ｒｅｓｐｏｎｓｅ」には機器情報が格納される。項目「ｒｅｓｐｏｎｓｅ」は項目「ｃｏｄｅ」や「ｍｏｄｅｌ」を含む。項目「ｒｅｓｐｏｎｓｅ＿ｃｏｄｅ」には、機器情報を正常に取得できたか否かを示すフラグ情報が設定される。例えば、「０」又は「１」が項目「ｃｏｄｅ」に設定される。「０」は、機器情報を正常に取得できたことを示し、「１」は、機器情報を正常に取得できなかったことを示す。項目「ｍｏｄｅｌ」には、機器情報の一部として取得された機種情報が設定される。図８では省略されているが、機種情報以外を格納するための要素も項目「ｒｅｓｐｏｎｓｅ」に含まれる。
【００８９】
機器情報送信部２３０は応答データＤ６をＭＱＴＴサーバ７０の第２トピックＴＰ２にパブリッシュする。第２トピックＴＰ２にはコマンドデータ送信装置１０がサブスクライバとして登録されており、第２トピックＴＰ２にパブリッシュされた応答データＤ６は、第２トピックＴＰ２をサブスクライブしている第１機器２０−１にパブリッシュされる。すなわち、第２トピックＴＰ２にパブリッシュされた応答データＤ６は第１機器２０−１に送信される。機器情報取得部１４０は応答データＤ６を受信して取得する。このようにして機器情報取得部１４０は第１機器２０−１の機器情報を取得する。ここでは、第１機器２０−１の機器情報を取得する場合について説明したが、第２機器２０−２、第３機器２０−３、又は第４機器２０−４の機器情報も同様にして取得できる。またここでは、機種情報を取得する場合について記載したが、機種情報以外の情報を第２トピックＴＰ２を介してコマンドデータ送信装置１０に送信してもよい。例えば、第１機器２０−１が通常のコマンド（起動コマンド等）を実行した場合に当該コマンドの実行結果がＨＴＴＰレスポンスとしてとして第１機器２０−１に返信されるような場合には、当該実行結果を第２トピックＴＰ２を介して応答としてコマンドデータ送信装置１０に返信してもよい。
【００９０】
［２−３］次に、判定部１５０及び通知部１６０について説明する。
【００９１】
［２−３−１］例えば、判定部１５０は、機器２０の現在の状態を示す現在状態情報に基づいて、機器２０が所定の第１状態であるか否かを判定する。そして、機器２０が第１状態である場合に、コマンドデータ生成部１２０が、機器２０を第１状態から所定の第２状態に変えるためのコマンドを示すコマンドデータを生成し、コマンドデータ送信部１３０が当該コマンドデータを送信してもよい。具体的には、例えば、判定部１５０は、現在状態情報に基づいて、機器２０がスタンバイ状態（第１状態の一例）であるか否か（機器２０が起動状態であるか否か）を判定する。そして、機器２０がスタンバイ状態である場合（機器２０が起動状態でない場合）に、コマンドデータ生成部１２０は、機器２０をスタンバイ状態から起動するコマンド（機器２０をスタンバイ状態から起動状態（第２状態の一例）に変えるコマンド）を示すコマンドデータを生成し、コマンドデータ送信部１３０が当該コマンドデータを送信してもよい。
【００９２】
例えばアレイコマンドデータＤ４を生成する際、判定部１５０は、第１機器２０−１の現在の状態を示す現在状態情報に基づいて、第１機器２０−１が起動状態であるか否かを判定してもよい。そして、第１機器２０−１が起動状態でない場合に、コマンドデータ生成部１２０は、第１機器２０−１を起動するためのコマンドデータを要素データＤ４１としてアレイコマンドデータＤ４に含めてもよい。一方、第１機器２０−１が起動状態である場合に、コマンドデータ生成部１２０は、第１機器２０−１を起動するためのコマンドデータをアレイコマンドデータＤ４に含めなくてもよい。なお、第１機器２０−１を起動するためのコマンドデータを含める場合には、次のコマンドを実行（送信）するまでの待ち時間を示す待ち時間データを上記コマンドデータの後に含めてもよい。
【００９３】
同様に、判定部１５０は、第２機器２０−２の現在の状態を示す現在状態情報に基づいて、第２機器２０−２が起動状態であるか否かを判定してもよい。そして、第２機器２０−２が起動状態でない場合に、コマンドデータ生成部１２０は、第２機器２０−２を起動するためのコマンドデータをアレイコマンドデータＤ４に含めてもよい。一方、第２機器２０−２が起動状態である場合に、コマンドデータ生成部１２０は、第２機器２０−２を起動するためのコマンドデータをアレイコマンドデータＤ４に含めなくてもよい。なお、第２機器２０−２を起動するためのコマンドデータを含める場合には、次のコマンドを実行（送信）するまでの待ち時間を示す待ち時間データを上記コマンドデータの後に含めてもよい。
【００９４】
［２−３−２］また例えば、動作指示がスピーカから放音される音量に関する指示を含む場合に、判定部１５０は指示音量が基準音量よりも大きいか否かを判定してもよい。そして、指示音量が基準音量よりも大きい場合に通知部１６０はユーザに通知してもよい。すなわち、通知部１６０は指示音量が基準音量よりも大きいことをユーザに通知し、指示音量に誤りがないか否かをユーザに問い合わせてもよい。例えば、通知部１６０は、音声認識装置４０を介して（又は音声認識装置４０を介さずに）、指示音量に誤りがないか否かをユーザに問い合わせるための通知を表示又は音声出力するように音声入力装置３０に要求する。この場合、ユーザは問いに対する回答を音声入力する。指示音量に誤りがない場合にはその旨が音声入力され、指示音量に誤りがある場合には正しい音量が改めて音声入力される。回答は音声認識装置４０を介してコマンドデータ送信装置１０に供給される。回答に基づいて、コマンドデータ生成部１２０は音量を設定するためのコマンドデータを生成し、コマンドデータ送信部１３０は当該コマンドデータを送信する。
【００９５】
指示音量が音声入力された場合には指示音量が誤って認識されるおそれがある。例えば、ユーザが指示音量として「１８」を音声入力したにもかかわらず、英語の発音が「１８」と類似する「８０」が指示音量として認識されるおそれがある。この場合、ユーザの意図している音量よりもかなり大きい音量に設定されてしまう。この点、上記のような判定部１５０を設け、基準音量を例えば「５０」に設定しておくことによって、ユーザの意図していない大音量で放音されてしまうことを防ぐことができる。
【００９６】
［２−３−３］また例えば、動作指示の対象の機器２０が特定されていない場合に、判定部１５０は１つの機器２０のみがＬＡＮ２に設置されているか否かを判定してもよい。すなわち、判定部１５０はユーザの機器テーブルＴ１を参照し、１つの機器２０のみが機器テーブルＴ１に登録されているか否かを判定してもよい。１つの機器２０のみがＬＡＮ２に設置されている場合、コマンドデータ生成部１２０は当該１つの機器２０が動作指示の対象であるとみなしてもよい。一方、複数の機器２０がＬＡＮ２に設置されている場合、通知部１６０は動作指示の対象の機器２０が特定されていない旨をユーザに通知し、動作指示の対象の機器２０をユーザに問い合わせてもよい。例えば、通知部１６０は、音声認識装置４０を介して（又は音声認識装置４０を介さずに）、動作指示の対象の機器２０が特定されていない旨をユーザに通知し、動作指示の対象の機器２０をユーザに問い合わせるように音声入力装置３０に要求してもよい。
【００９７】
［２−４］次に、キーワードコマンド登録部１７０について説明する。
【００９８】
キーワードコマンド登録部１７０は、ユーザからの登録要求に応じて、複数のコマンド情報を一つの識別情報と関連付けてデータベース６０（記憶手段の一例）に登録する。
【００９９】
例えば、ユーザは、スマートフォン又はタブレット型コンピュータ等の端末の画面に表示される複数のコマンド情報のうちから、ディナーシーン等の特定の場面用の複数のコマンド情報を選択する。具体的には、ユーザは、ディナーシーン用の複数のコマンド情報として、（１）ＡＶレシーバをスタンバイ状態から起動するためのコマンド情報、（２）次のコマンドの実行まで５００ミリ秒待機させるための待機情報、（３）ＡＶレシーバの入力を第１のＨＤＭＩ端子（ＨＤＭＩ１）に切り替えるためのコマンド情報、（４）ＡＶレシーバからの出力音量を「４０」に設定するためのコマンド情報、（５）テレビジョン受像機をスタンバイ状態から起動するためのコマンド情報、（６）次のコマンドの実行まで５００ミリ秒待機させるための待機情報、（７）テレビジョン受像機のチャンネルを特定のチャンネルに変更するためのコマンド情報を選択する。または、ユーザは、ディナーシーン用の複数のコマンド情報として、（１）ＡＶレシーバをスタンバイ状態から起動するためのコマンド情報、（２）次のコマンドの実行まで５００ミリ秒待機させるための待機情報、（３）ＡＶレシーバの入力を外部入力に切り替えるためのコマンド情報、（４）電子ピアノをスタンバイ状態から起動するためのコマンド情報、（５）次のコマンドの実行まで５００ミリ秒待機させるための待機情報、（６）電子ピアノの演奏曲を特定の楽曲（ディナーシーンに適した楽曲）に設定するためのコマンド情報、（７）電子ピアノの自動演奏を開始させるためのコマンド情報を選択する。なお、上記の待機情報は、ユーザによる選択に応じて挿入されてもよいし、機器制御システム１によって自動的に挿入されてもよい。
【０１００】
また、ユーザは、選択した複数のコマンド情報に対して、例えば「Ｄｉｎｎｅｒ」等の場面を示すキーワード（識別情報）を設定する。この場合、選択された複数のコマンド情報とキーワードとを示す登録要求が端末からコマンドデータ送信装置１０に送信される。キーワードコマンド登録部１７０は、選択された複数のコマンド情報をキーワードと関連付けてデータベース６０に登録する。
【０１０１】
図９はデータベース６０に記憶されるキーワードコマンドテーブルの一例を示す。キーワードコマンドテーブルＴ２はユーザごとに（ユーザＩＤと関連付けて）記憶される。キーワードコマンドテーブルＴ２には、ユーザによって選択された複数のコマンド情報がユーザによって設定されたキーワードと関連付けて記憶される。図９に示す例では、個々のコマンド情報として、順番と、コマンドの対象となる対象機器と、コマンドの内容とを示す情報が登録されている。なお、コマンド情報はコマンドデータを取得するための情報である。コマンドデータを生成する際の基礎となる情報がコマンド情報として記憶されてもよいし、コマンドデータ自体がコマンド情報として記憶されてもよい。
【０１０２】
この場合、ユーザがキーワード「Ｄｉｎｎｅｒ」を音声入力装置３０に音声入力すると、音声入力されたキーワード「Ｄｉｎｎｅｒ」が音声認識装置４０を介してコマンドデータ送信装置１０に供給される。そして、コマンドデータ生成部１２０はキーワードコマンドテーブルＴ２を参照し、キーワード「Ｄｉｎｎｅｒ」と関連付けられた複数のコマンド情報を取得する。そして、コマンドデータ生成部１２０はそれら複数のコマンド情報に基づいてコマンドデータを取得（生成）し、コマンドデータ送信部１３０は当該コマンドデータをＭＱＴＴサーバ７０を介して機器２０に送信する。この場合、コマンドデータ生成部１２０は複数のコマンドデータを取得し、コマンドデータ送信部１３０はそれら複数のコマンドデータを一つずつ送信してもよいし、コマンドデータ生成部１２０は複数のコマンドデータを一つにまとめてなるアレイコマンドデータを生成し、コマンドデータ送信部１３０はアレイコマンドデータを送信してもよい。
【０１０３】
［３．処理］機器制御システム１で実行される処理について説明する。
【０１０４】
［３−１］図１０は、テキストデータに変換された動作指示がユーザＩＤとともにコマンドデータ送信装置１０に送信された場合に実行される処理の一例を示す。制御部１１がプログラムに従って図１０に示す処理を実行することによって、制御部１１が動作指示受付部１１０、コマンドデータ生成部１２０、及びコマンドデータ送信部１３０として機能する。以下では、電子ピアノの自動演奏を指示する動作指示がユーザＩＤ「Ｕ１」とともに受信された場合を想定して、図１０に示す処理を説明する。
【０１０５】
図１０に示すように、まず、制御部１１は動作指示を受信する（Ｓ１００）。そして、制御部１１は対象機器を特定する（Ｓ１０２）。すなわち、制御部１１はユーザＵ１の機器テーブルＴ１を参照し、動作指示の対象となる機器２０を特定する。例えば、電子ピアノは第２機器２０−２であるため、制御部１１は第２機器２０−２が対象機器であると判断する。
【０１０６】
また、制御部１１は関連機器を特定する（Ｓ１０４）。すなわち、制御部１１はユーザＵ１の機器テーブルＴ１を参照し、対象機器が動作指示に応じた動作を行う際に動作させる必要のある他の機器２０を特定する。例えば、第２機器２０−２は第１機器２０−１の外部入力端子に接続され、第２機器２０−２から出力される音が第１機器２０−１を介してスピーカから放音されるため、制御部１１は第１機器２０−１を関連機器として特定する。
【０１０７】
その後、制御部１１は対象機器及び関連機器を制御するためのコマンドデータを生成する（Ｓ１０６）。
【０１０８】
例えば、制御部１１は、第２機器２０−２が自動演奏を行う際に第１機器２０−１が行う必要のある動作を第１機器２０−１に行わせるためのコマンドデータを生成する。具体的には、制御部１１は、第１機器２０−１をスタンバイ状態から起動するためのコマンドデータ（要素データＤ４１）や、第１機器２０−１の入力を外部入力に切り替えるためのコマンドデータ（要素データＤ４３）を生成する。なお、第１機器２０−１を起動するためのコマンドデータのように、待ち時間を設定する必要のあるものに関しては、待ち時間データ（要素データＤ４２）が挿入される。また、この際、第１機器２０−１がスタンバイ状態であるか否かを判定し、第１機器２０−１がスタンバイ状態である場合にのみ、第１機器２０−１をスタンバイ状態から起動するためのコマンドデータ（要素データＤ４１）や待ち時間データ（要素データＤ４２）を生成するようにしてもよい。
【０１０９】
また、制御部１１は、第２機器２０−２に自動演奏を行わせるためのコマンドデータを生成する。具体的には、制御部１１は、第２機器２０−２をスタンバイ状態から起動するためのコマンドデータ、待ち時間を設定するための待ち時間データや、第２機器２０−２に自動演奏を開始させるためのコマンドデータ（要素データＤ４４）を生成する。なお、この際、第２機器２０−２がスタンバイ状態であるか否かを判定し、第２機器２０−２がスタンバイ状態である場合にのみ、第２機器２０−２をスタンバイ状態から起動するためのコマンドデータや待ち時間データを生成するようにしてもよい。
【０１１０】
その後、制御部１１はコマンドデータを送信する（Ｓ１０８）。
【０１１１】
例えば、制御部１１はユーザＵ１の機器テーブルＴ１を参照し、対象機器がインターネット６を介してデータを受信可能な状態であるか否かを判定する。対象機器がインターネット６を介してデータを受信可能な状態である場合、制御部１１は、対象機器のためのコマンドデータをＭＱＴＴサーバ７０を介して対象機器に送信する。すなわち、制御部１１はコマンドデータを対象機器への送信用のトピックにパブリッシュする。
【０１１２】
一方、対象機器がインターネット６を介してデータを受信可能な状態でない場合、制御部１１はユーザＵ１の機器テーブルＴ１を参照し、対象機器の代替機器を特定し、対象機器のためのコマンドデータをＭＱＴＴサーバ７０を介して代替機器に送信する。すなわち、制御部１１はコマンドデータを代替機器への送信用のトピックにパブリッシュする。なお、代替機器が関連機器と同一である場合、制御部１１は、対象機器のためのコマンドデータと関連機器のためのコマンドデータとを一つのデータ（アレイコマンドデータ）にまとめて上記トピックにパブリッシュする。代替機器が関連機器と同一であったとしても、制御部１１は、対象機器のためのコマンドデータと関連機器のためのコマンドデータとを一つのデータ（アレイコマンドデータ）にまとめずに、個別に上記トピックにパブリッシュしてもよい。
【０１１３】
また例えば、制御部１１はユーザＵ１の機器テーブルＴ１を参照し、関連機器がインターネット６を介してデータを受信可能な状態であるか否かを判定する。関連機器がインターネット６を介してデータを受信可能な状態である場合、制御部１１は、関連機器のためのコマンドデータをＭＱＴＴサーバ７０を介して関連機器に送信する。すなわち、制御部１１はコマンドデータを関連機器への送信用のトピックにパブリッシュする。
【０１１４】
一方、関連機器がインターネット６を介してデータを受信可能な状態でない場合、制御部１１はユーザＵ１の機器テーブルＴ１を参照し、関連機器の代替機器を特定し、関連機器のためのコマンドデータをＭＱＴＴサーバ７０を介して代替機器に送信する。すなわち、制御部１１はコマンドデータを代替機器への送信用のトピックにパブリッシュする。なお、代替機器が対象機器と同一である場合、制御部１１は、対象機器のためのコマンドデータと関連機器のためのコマンドデータとを一つのデータ（アレイコマンドデータ）にまとめて上記トピックにパブリッシュする。代替機器が対象機器と同一であったとしても、制御部１１は、対象機器のためのコマンドデータと関連機器のためのコマンドデータとを一つのデータ（アレイコマンドデータ）にまとめずに、個別に上記トピックにパブリッシュしてもよい。
【０１１５】
［３−２］図１１は、コマンドデータが機器２０に送信された場合に実行される処理の一例を示す。制御部２１がプログラムに従って図１１に示す処理を実行することによって、制御部２１がコマンドデータ受信部２１０及びコマンド送信部２２０として機能する。
【０１１６】
図１１に示すように、まず、制御部２１はコマンドデータを受信する（Ｓ２００）。そして、制御部２１は受信されたコマンドデータがアレイコマンドデータであるか否かを判定する（Ｓ２０２）。受信されたコマンドデータがアレイコマンドデータでない場合、すなわち、一つのコマンドデータのみが受信された場合、制御部２１は、当該コマンドデータの項目「ｉｐ」及び「ｐａｔｈ」に基づいてコマンドを取得し（Ｓ２２０）、当該コマンドを送信する（Ｓ２２２）。すなわち、制御部２１はコマンドとして取得されたＵＲＬにアクセスする。そして、制御部２１は本処理を終了する。
【０１１７】
一方、受信されたコマンドデータがアレイコマンドデータである場合、制御部２１は先頭の要素データをアレイコマンドデータから読み出す（Ｓ２０４）。そして、制御部２１は当該要素データがコマンドデータであるか否かを判定する（Ｓ２０６）。要素データがコマンドデータである場合、制御部１１は当該コマンドデータの項目「ｉｐ」及び「ｐａｔｈ」に基づいてコマンドを取得し（Ｓ２０８）、当該コマンドを送信する（Ｓ２１０）。すなわち、制御部２１はコマンドとして生成されたＵＲＬにアクセスする。その後、制御部２１は次の要素データがアレイコマンドデータに存在するか否かを判定し（Ｓ２１２）。次の要素データがアレイコマンドデータに存在する場合、制御部２１は当該要素データを読み出し（Ｓ２１４）、ステップＳ２０６を実行する。
【０１１８】
一方、要素データがコマンドデータでない場合、例えば、要素データが待ち時間データである場合、制御部２１は当該待ち時間データの項目「ｔｉｍｅ」に基づいて待ち時間を設定する（Ｓ２１６）。そして、制御部２１は待ち時間が経過したか否かを監視する（Ｓ２１８）。待ち時間が経過した場合、制御部２１はステップＳ２１２を実行する。
【０１１９】
ステップＳ２１２において、次の要素データがアレイコマンドデータに存在しないと判定された場合、制御部２１は本処理を終了する。なお、以上に説明した処理（Ｓ２０６，Ｓ２１６）では、アレイコマンドデータに含まれる要素データがコマンドデータ及び待機時間データのいずれかである（すなわち、要素データの項目「ｔｙｐｅ」に「ｃｍｄ」及び「ｔｉｍｅ」のいずれかが設定される）ことが前提となっているが、要素データはコマンドデータ及び待機時間データ以外のデータであってもよい。すなわち、要素データの項目「ｔｙｐｅ」に「ｃｍｄ」及び「ｔｉｍｅ」以外を設定して、別の処理が実行されるようにしてもよい。同様に、以上に説明した処理（Ｓ２００，Ｓ２０２，Ｓ２２０）では、コマンドデータ又はアレイコマンドデータが機器２０で受信される（すなわち、データの項目「ｔｙｐｅ」に「ｃｍｄ」及び「ａｒｒａｙ」のいずれかが設定される）ことが前提となっているが、データの項目「ｔｙｐｅ」に「ｃｍｄ」及び「ａｒｒａｙ」以外を設定して、別の処理が実行されるようにしてもよい。
【０１２０】
［３−３］図１２は、機器２０の機器情報を取得する場合に実行される処理の一例を示す。制御部１１，２１がプログラムに従って図１２に示す処理を実行することによって、制御部１１が機器情報取得部１４０として機能し、制御部２１が機器情報送信部２３０として機能する。
【０１２１】
図１２に示すように、まず、コマンドデータ送信装置１０の制御部１１が対象機器の機器情報を取得するためのコマンドデータを生成する（Ｓ１１０）。例えば図８に示したようなコマンドデータＤ５が生成される。そして、制御部１１はコマンドデータを送信する（Ｓ１１２）。この処理はステップＳ１０８と同様にして実行される。
【０１２２】
コマンドデータが機器２０（対象機器又は代替機器）で受信された場合、機器２０の制御部２１は、当該コマンドデータの項目「ｉｐ」及び「ｐａｔｈ」に基づいてコマンドを取得し（Ｓ２３０）、当該コマンドを送信する（Ｓ２３２）。すなわち、制御部２１はコマンドとして取得されたＵＲＬにアクセスする。この場合、対象機器に対してＨＴＴＰリクエストが送信され、対象機器では機器情報を返信するための処理が実行され、機器情報がＨＴＴＰレスポンスとして返信される。その結果、制御部２１は機器情報を取得し（Ｓ２３４）、当該機器情報に基づいて応答データを生成する（Ｓ２３６）。例えば図８に示したような応答データＤ６が生成される。
【０１２３】
そして、制御部２１は応答データをＭＱＴＴサーバ７０を介してコマンドデータ送信装置１０に送信する（Ｓ２３８）。すなわち、制御部２１は応答データをコマンドデータ送信装置１０への送信用のトピックにパブリッシュする。パブリッシュされた応答データはコマンドデータ送信装置１０に送信される。
【０１２４】
応答データがコマンドデータ送信装置１０で受信された場合、制御部１１は対象機器の機器情報を応答データから取得する（Ｓ１１４）。例えば、取得された機種情報はデータベース６０（ユーザＵ１の機器テーブルＴ１）に登録される。
【０１２５】
［３−４］図１３は、キーワードコマンドの登録要求がユーザの端末からコマンドデータ送信装置１０に送信された場合に実行される処理の一例を示す。制御部１１がプログラムに従って図１３に示す処理を実行することによって、制御部１１がキーワードコマンド登録部１７０として機能する。
【０１２６】
図１３に示すように、まず、制御部１１はキーワードコマンドの登録要求を受信する（Ｓ１２０）。この登録要求はユーザＩＤとともに受信される。この登録要求には、ユーザによって設定されたキーワード情報と、ユーザによって選択された複数のコマンド情報とが含まれる。
【０１２７】
上記の登録要求が受信された場合、制御部１１はユーザのキーワードコマンドテーブルＴ２にアクセスし、ユーザによって選択された複数のコマンド情報を、ユーザによって設定されたキーワードと関連付けてキーワードコマンドテーブルＴ２に登録する（Ｓ１２２）。
【０１２８】
［３−５］図１４は、キーワードを含む動作指示がユーザＩＤとともにコマンドデータ送信装置１０に送信された場合に実行される処理の一例を示す。
【０１２９】
図１４に示すように、まず、制御部１１はユーザのキーワードコマンドテーブルＴ２を参照し、キーワードに関連付けられた複数のコマンド情報を読み出す（Ｓ１３０）。そして、制御部１１はそれら複数のコマンド情報に基づいて複数のコマンドデータを取得し、当該複数のコマンドデータを送信する（Ｓ１３２）。このコマンドデータの送信処理はステップＳ１０８と同様にして実行される。
【０１３０】
［４．まとめ］以上に説明した機器制御システム１によれば、プライベートＩＰアドレスが設定された機器２０をインターネット６を介して制御できる。その結果、例えば、ユーザがインターネット６で提供されるサービス（音声認識サービス等）を使用して機器２０に対する動作指示を行うことができる。
【０１３１】
また、機器制御システム１によれば、ＬＡＮ２を介して機器２０を制御するために元々使用していたコマンドを、インターネット６を介して機器２０を制御する際にも流用できる。その結果、別個にコマンドを定義する必要がない。
【０１３２】
また、機器制御システム１では、すべての機器２０がコマンドデータ送信装置１０からコマンドデータを受信可能な状態になっていなくてもよい。少なくとも一つの機器２０がコマンドデータ送信装置１０からコマンドデータを受信可能な状態になっていれば、当該機器２０（代替機器）を介して、他の機器２０に対してもコマンドを送信できる。
【０１３３】
また、機器制御システム１によれば、一つの機器２０に対する複数のコマンドデータや、複数の機器２０に対する複数のコマンドデータを一つのデータ（パケット）にまとめて送信できる（図７参照）。その結果、一つの機器２０に対する複数の制御を一度に送信したり、複数の機器２０に対する制御を同時に行ったりできる。また、複数のコマンドデータを速く送受信したり、パケット量を削減したりできる。
【０１３４】
また、機器制御システム１によれば、待ち時間データを挿入することによって、あるコマンドが実行されてから次のコマンドが実行されるまでの時間を調整できる。例えば、機器２０をスタンバイ状態から起動するコマンドを実行した場合に、機器２０の起動が完了するのを待って、次のコマンドを実行することができる。
【０１３５】
また、機器制御システム１によれば、ＭＱＴＴサーバ７０に第１トピックＴＰ１と第２トピックＴＰ２との２つのトピックを設け、これらを使い分けることによって、コマンドデータ送信装置１０から機器２０へのデータ送信と、機器２０からコマンドデータ送信装置１０へのデータ送信とを行うことができる。その結果、例えば、コマンドデータ送信装置１０は機器２０の機器情報を取得できる。
【０１３６】
［５．変形例］本発明は以上に説明した実施形態に限定されるものではない。
【０１３７】
［５−１］以上では、主に、第１機器２０−１、第２機器２０−２、第３機器２０−３、及び第４機器２０−４がＡＶレシーバ、電子ピアノ、テレビジョン受像機、又はブルーレイディスクプレーヤである場合を想定して説明したが、機器制御システム１による制御の対象となる機器２０はこれらに限られない。機器２０は、ＡＶレシーバ、テレビジョン受像機、及びブルーレイディスクプレーヤ以外のオーディオ機器又はオーディオビジュアル機器であってもよいし、電子ピアノ以外の楽器（電子オルガン又はギター等のネットワーク機能を有する楽器）であってもよい。ネットワーク通信機能を有するオーディオ機器、オーディオビジュアル機器、又は楽器は機器制御システム１による制御の対象となり得る。また、機器２０は、オーディオ機器、オーディオビジュアル機器、及び楽器以外の機器であってもよい。ネットワーク通信機能を有する機器は機器制御システム１による制御の対象となり得る。
【０１３８】
また、コマンドデータ送信装置１０からコマンドデータを受信するローカルエリア装置は、機器制御システム１による制御の対象となる機器２０以外の装置であってもよい。例えば、ローカルエリア装置は、ルータ、スイッチ、無線通信アクセスポイント等のネットワーク機器であってもよい。
【０１３９】
［５−２］音声入力装置３０はインターネット６に接続していればよく、機器２０と同じＬＡＮ２に接続されていなくてもよい。
【０１４０】
［５−３］以上に説明した実施形態では、ユーザが機器２０の動作指示を音声入力装置３０に入力するようになっていたが、動作指示は音声入力されなくてもよい。例えば、ユーザが端末の画面に表示されるボタンを選択することによって動作指示を入力できるようにしてもよい。
【０１４１】
［５−４］第１機器２０−１に対するコマンドを示すコマンドデータを第１機器２０−１に送信する場合には、項目「ｉｐ」の指定を省略してもよい。項目「ｉｐ」が省略されている場合、第１機器２０−１は自らのＩＰアドレス（１９２．１６８．０．２）又は１２７．０．０．１を使用すればよい。
【０１４２】
［５−５］ＬＡＮ２が有線ＬＡＮと無線ＬＡＮとの両方を含む場合、コマンドの送信先の機器２０に応じて、いずれかを優先的に使用してもよい。
【０１４３】
［５−６］以上に説明した実施形態では、コマンドがＬＡＮ２を介して送信されていたが、コマンドはＬＡＮ２以外の伝送手段を介して送信されてもよい。例えば、コマンドは、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の、無線ＬＡＮ以外の無線通信を介して送信されてもよいし、ＨＤＭＩケーブル等の、ＬＡＮケーブル以外のケーブルを介して送信されてもよい。この場合、「ローカルエリア」とは、無線通信又はケーブルを介して通信可能なエリアである。
【０１４４】
また、コマンドは以上に説明した形式（図２参照）に限られず、他の形式であってもよい。コマンドデータも以上に説明した形式（図５，７，８参照）に限られず、他の形式であってもよい。つまり、コマンドはＨＴＴＰプロトコルを使用したものでなくてもよい。
【０１４５】
［５−６−１］例えば、コマンドはＷａｋｅ  Ｏｎ  ＬＡＮを使用したものであってもよい。例えば、第２機器２０−２がＷａｋｅ  Ｏｎ  ＬＡＮ機能に対応している場合には、第２機器２０−２のＭＡＣアドレスを１６回繰り返してなるマジックパケット（コマンドに相当）を第１機器２０−１から第２機器２０−２に対して送信することによって、第２機器２０−２を第１機器２０−１から起動するようにしてもよい。第３機器２０−３又は第４機器２０−４を第１機器２０−１から起動する場合も同様である。なお、この場合、機器テーブルＴ１には、Ｗａｋｅ  Ｏｎ  ＬＡＮ機能に対応しているか否かを示すフィールドを設けることによって、各機器２０がＷａｋｅ  Ｏｎ  ＬＡＮ機能に対応しているか否かを特定できるようにすればよい。
【０１４６】
［５−６−２］また例えば、第３機器２０−３（テレビジョン受像機）や第４機器２０−４（ブルーレイディスクプレーヤ）は第１機器２０−１（ＡＶレシーバ）とＨＤＭＩケーブルを介して接続されているため、第３機器２０−３又は第４機器２０−４に対するコマンドがＨＤＭＩケーブルを介して送信されてもよい。具体的には、ＨＤＭＩ規格で定められたＣＥＣ（Consumer Electronics Control）機能を使用して、第３機器２０−３又は第４機器２０−４に対するコマンドが送信されてもよい。
【０１４７】
ここで、Ｘ社製のテレビジョン受像機でテレビジョン放送を見る旨の動作指示「Ｘ  ｗａｔｃｈ  ＴＶ」が音声入力装置３０に入力された場合を想定する。この場合、第３機器２０−３（テレビジョン受像機）を起動するためのコマンドデータが第１機器２０−１（第３機器２０−３の代替機器：図３参照）に送信され、第１機器２０−１から第３機器２０−３に対して、第３機器２０−３を起動するためのコマンドが実行される。この場合、ＣＥＣ機能に則ったＯＮコマンド（起動コマンド）がＨＤＭＩケーブルを介して送信されてもよい。すなわち、第１機器２０−１のコマンド送信部２２０は、上記コマンドを、第３機器２０−３が接続された第１のＨＤＭＩ端子（ＨＤＭＩ１）に対して出力してもよい。なお、テレビジョン受像機に関する他の動作指示が音声入力装置３０に入力された場合にも、同様にして、第１機器２０−１から第３機器２０−３に対して、ＣＥＣ機能に則ったコマンドがＨＤＭＩケーブルを介して送信されてもよい。例えば、テレビジョン受像機をＯＦＦにする（スタンバイ状態にする）旨の動作指示「Ｘ  tｕｒｎ  oｆｆ  ＴＶ」が音声入力装置３０に入力された場合には、第１機器２０−１から第３機器２０−３に対して、ＣＥＣ機能に則ったＯＦＦコマンドがＨＤＭＩケーブルを介して送信されてもよい。
【０１４８】
また、Ｘ社製のブルーレイディスクプレーヤで再生される映像を見る旨の動作指示「Ｘ  ｗａｔｃｈ  ＢＤ」が音声入力装置３０に入力された場合を想定する。この場合、第４機器２０−４（ブルーレイディスクプレーヤ）にコンテンツの再生を行わせるためのコマンドデータが第１機器２０−１（第４機器２０−４の代替機器：図３参照）に送信され、第１機器２０−１から第４機器２０−４に対して、コンテンツの再生を行わせるためのコマンドが実行される。この場合、ＣＥＣ機能に則ったＰＬＡＹコマンド（再生コマンド）がＨＤＭＩケーブルを介して送信されてもよい。すなわち、第１機器２０−１のコマンド送信部２２０は、上記コマンドを、第４機器２０−４が接続された第４のＨＤＭＩ端子（ＨＤＭＩ２）に対して出力してもよい。なお、ブルーレイディスクプレーヤに関する他の動作指示（起動、終了、停止、スキップ等）が音声入力装置３０に入力された場合にも、同様にして、第１機器２０−１から第４機器２０−４に対して、ＣＥＣ機能に則ったコマンド（ＯＮ，ＯＦＦ，ＳＴＯＰ，ＳＫＩＰ等）がＨＤＭＩケーブルを介して送信されてもよい。
【０１４９】
なお、上記の場合、機器テーブルＴ１には、制御タイプを示す「制御タイプ」フィールドを設けることによって、各機器２０をＬＡＮ２又はＨＤＭＩケーブルのいずれを介して制御するのかを特定できるようにすればよい。例えば、ＨＤＭＩケーブルを介して制御するテレビジョン受像機やブルーレイディスクプレーヤに関しては「ＣＥＣ＿ＴＶ」や「ＣＥＣ＿ＢＤ」等を「制御タイプ」フィールドに登録することによって、これらの機器２０がＣＥＣ機能に則ったコマンドで制御されることを特定できるようにすればよい。また、ＬＡＮ２を介して機器２０を制御するために元々使用されていたコマンドに対して、ＣＥＣ機能に則ったコマンドの実行指示を追加するようにしてもよい。例えば、ＣＥＣ機能に則ったＯＮコマンドを第１のＨＤＭＩ端子（ＨＤＭＩ１）に対して出力する動作を第１機器２０−１に行わせる場合には、「ｈｔｔｐ：／／１９２．１６８．０．２／ｃｔｒｌ？ＣＥＣ＿ＯＮ：ＨＤＭＩ１」のようなコマンドを実行するようにしてもよい。
【０１５０】
［５−６−３］また例えば、リモートコントローラで制御可能な機器２０に関しては、リモートコントローラから赤外線通信を介して送信されるコードを含むコマンドデータを生成し送信してもよい。ここで、Ｘ社製のテレビジョン受像機でテレビジョン放送を見る旨の動作指示「Ｘ  ｗａｔｃｈ  ＴＶ」が音声入力装置３０に入力された場合を想定する。この場合、リモートコントローラから第３機器２０−３（テレビジョン受像機）を起動する場合に送信されるコードを含むコマンドデータが第１機器２０−１（第３機器２０−３の代替機器：図３参照）に送信され、第１機器２０−１から第３機器２０−３に対して、第３機器２０−３を起動するためのコマンドが実行される。この場合、第１機器２０−１は上記コードをＬＡＮ２又は赤外線通信等を介して送信するようにしてもよい。
【０１５１】
［５−７］以上に説明した実施形態では、第２機器２０−２に対するコマンドを示すコマンドデータ（例えばコマンドデータＤ２）を第２機器２０−２が受信せずに、第１機器２０−１が代わりに受信するようになっていたが、第２機器２０−２がインターネット６に接続されている場合には第２機器２０−２自身がコマンドデータＤ２を受信してもよい。この場合、コマンドデータＤ２の送信先を第１機器２０−１から第２機器２０−２へと変えるだけでよく、コマンドデータＤ２の内容を変える必要がない。またこの場合、第１機器２０−１用のトピックである第１トピックＴＰ１及び第２トピックＴＰ２とは別に、第２機器２０−２用の２つのトピック（例えば、第２機器２０−２のＭＡＣアドレスに基づく名称のトピック）をＭＱＴＴサーバ７０に設定しておき、第２機器２０−２は、当該トピックのうちの一方を介してコマンドデータをコマンドデータ送信装置１０から受信したり、当該トピックのうちの他方を介して機器情報等をコマンドデータ送信装置１０に送信したりすればよい。第３機器２０−３又は第４機器２０−４に関しても同様である。
【０１５２】
［５−８］機器２０が起動されてネットワーク接続されたことを示すブート情報、機器２０がシャットダウンされてネットワーク接続が切断されたことをシャットダウン情報や、機器２０のネットワーク接続にエラーが発生したことを示すエラー情報をＭＱＴＴサーバ７０を介して機器２０からコマンド処理システム５０（コマンドデータ送信装置１０）に送信してもよい。コマンド処理システム５０（コマンドデータ送信装置１０）は、上記情報に基づいて、機器２０の状態を管理するようにしてもよい。
【０１５３】
［５−９］以上に説明した実施形態では、ＭＱＴＴプロトコルを使用した方法でコマンドデータを送信していたが、他の手法を採用してもよい。例えば、コマンドデータをサーバに登録しておき、機器２０がサーバにアクセスすることによって、サーバに登録されたコマンドデータをダウンロードするようにしてもよい。
【符号の説明】
【０１５４】
１  機器制御システム、２  ＬＡＮ、４  ルータ、６  インターネット、１０  コマンドデータ送信装置、１１  制御部、１２  記憶部、１３  通信部、２０−１  第１機器、２０−２  第２機器、２０−３  第３機器、２０−４  第４機器、２１  制御部、２２  記憶部、２３  通信部、３０  音声入力装置、４０  音声認識装置、５０  コマンド処理システム、６０  データベース、７０  ＭＱＴＴサーバ、１１０  動作指示受付部、１２０  コマンドデータ生成部、１３０  コマンドデータ送信部、１４０  機器情報取得部、１５０  判定部、１６０  通知部、１７０  キーワードコマンド登録部、２１０  コマンドデータ受信部、２２０  コマンド送信部、２３０  機器情報送信部、Ｃ１〜Ｃ７  コマンド、Ｄ１〜Ｄ３  コマンドデータ、Ｄ４  アレイコマンドデータ、Ｄ４１〜Ｄ４４  要素データ、Ｄ５  コマンドデータ、Ｄ６  応答データ、Ｔ１  機器テーブル、Ｔ２  キーワードコマンドテーブル、ＴＰ１  第１トピック、ＴＰ２  第２トピック。
【図１】
0006725008.tif 000002
【図２】
0006725008.tif 000003
【図３】
0006725008.tif 000004
【図４】
0006725008.tif 000005
【図５】
0006725008.tif 000006
【図６】
0006725008.tif 000007
【図７】
0006725008.tif 000008
【図８】
0006725008.tif 000009
【図９】
0006725008.tif 000010
【図１０】
0006725008.tif 000011
【図１１】
0006725008.tif 000012
【図１２】
0006725008.tif 000013
【図１３】
0006725008.tif 000014
【図１４】
0006725008.tif 000015