(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数のデバイスを制御する制御装置に、
前記デバイスの稼動状況の変化通知を受信したときに、前記稼動状況の変化時刻と前記稼動状況の変化情報とを関連付けた履歴情報を記憶部に蓄積し、
前記記憶部に蓄積された履歴情報を参照して、前記稼動状況の変化通知に係るデバイスに連動して稼動状況が変化する関連デバイスを特定し、前記稼動状況の変化通知に係るデバイスの情報と前記関連デバイスの情報とを関連付けた関連情報を前記記憶部に格納し、
前記デバイスを排他制御する排他制御コマンドを受信したときに、前記排他制御コマンドに係るデバイスをロックし、
前記デバイスを制御する制御コマンドを受信したときに、前記記憶部に格納された関連情報を参照して、前記制御コマンドに係るデバイスに連動して稼動状況が変化する関連デバイスをロックすると共に、前記制御コマンドに係るデバイスを制御する、
処理を実行させるデバイス制御プログラム。
【請求項２】
前記記憶部は、前記デバイスの設置場所情報を更に格納し、
前記関連デバイスをロックする処理は、前記記憶部に格納されたデバイスの設置場所情報を参照して、前記制御コマンドに係るデバイスの設置場所と前記関連デバイスの設置場所とが同一であるときに、前記関連デバイスをロックする、
請求項１に記載のデバイス制御プログラム。
【請求項３】
前記記憶部は、季節及び時間帯ごとに前記関連情報を更に格納し、
前記関連情報を記憶部に格納する処理、及び、前記関連デバイスをロックする処理は、季節及び時間帯に応じた前記関連情報を選択して各処理を実行する、
請求項１又は請求項２に記載のデバイス制御プログラム。
【請求項４】
前記関連デバイスを特定する処理は、前記稼動状況の変化通知に係るデバイスに連動して稼動状況を示す情報が所定の閾値以上変化したデバイスを、前記関連デバイスであると特定する、
請求項１〜請求項３のいずれか１つに記載のデバイス制御プログラム。
【請求項５】
前記所定の閾値は、前記デバイスの特性に応じて変化する、
請求項４に記載のデバイス制御プログラム。
【請求項６】
前記関連デバイスを特定する処理は、前記記憶部に蓄積された履歴情報のうち、前記稼動状況の変化通知に係るデバイスの稼動状況の変化時刻を含む所定時間内の履歴情報を対象として、前記関連デバイスを特定する、
請求項１〜請求項５のいずれか１つに記載のデバイス制御プログラム。
【請求項７】
前記所定時間は、前記稼動状況の変化通知に係るデバイスの特性、及び、前記関連デバイスの特定対象となるデバイスの特性に応じて変化する、
請求項６に記載のデバイス制御プログラム。
【請求項８】
前記記憶部は、前記履歴情報の蓄積対象となるデバイスのリストを更に格納し、
前記履歴情報を記憶部に蓄積する処理は、前記記憶部に格納されたリストを参照して、前記リストに登録されているデバイスについて前記履歴情報を蓄積する、
請求項１〜請求項７のいずれか１つに記載のデバイス制御プログラム。
【請求項９】
ネットワークを介して接続された複数のデバイスのいずれかから、前記デバイスの稼動状況の変化通知を受信したときに、前記稼動状況の変化時刻と前記稼動状況の変化情報と
を関連付けた履歴情報を蓄積する履歴情報蓄積部と、
前記履歴情報蓄積部に蓄積された履歴情報を参照して、前記稼動状況の変化通知に係るデバイスに連動して稼動状況が変化する関連デバイスを特定し、前記稼動状況の変化通知に係るデバイスの情報と前記関連デバイスの情報とを関連付けた関連情報を格納する関連情報格納部と、
前記デバイスを排他制御する排他制御コマンドを受信したときに、前記排他制御コマンドに係るデバイスをロックするデバイスロック部と、
前記デバイスを制御する制御コマンドを受信したときに、前記関連情報格納部に格納された関連情報を参照して、前記制御コマンドに係るデバイスに連動して稼動状況が変化する関連デバイスをロックすると共に、前記制御コマンドに係るデバイスを制御するデバイス制御部と、
を有するデバイス制御装置。
【請求項１０】
ネットワークを介して接続された複数のデバイスを制御する制御装置が、
前記デバイスの稼動状況の変化通知を受信したときに、前記稼動状況の変化時刻と前記稼動状況の変化情報とを関連付けた履歴情報を記憶部に蓄積し、
前記記憶部に蓄積された履歴情報を参照して、前記稼動状況の変化通知に係るデバイスに連動して稼動状況が変化する関連デバイスを特定し、前記稼動状況の変化通知に係るデバイスの情報と前記関連デバイスの情報とを関連付けた関連情報を前記記憶部に格納し、
前記デバイスを排他制御する排他制御コマンドを受信したときに、前記排他制御コマンドに係るデバイスをロックし、
前記デバイスを制御する制御コマンドを受信したときに、前記記憶部に格納された関連情報を参照して、前記制御コマンドに係るデバイスに連動して稼動状況が変化する関連デバイスをロックすると共に、前記制御コマンドに係るデバイスを制御する、
処理を実行するデバイス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで接続された複数のデバイスを制御する技術に関する。
【背景技術】
【０００２】
近年、住宅に設置される様々な家電、照明、住宅設備、各種センサなどのデバイスが、ホームネットワークに接続されはじめている。従って、今後、省エネやエンターテイメントなどの各種サービスが、ユーザの行動や在室状態、センサにより検出された環境情報などの状況（コンテキスト）に応じて、住宅内のデバイスを遠隔制御するシーンが増加すると考えられる。
【０００３】
このようなシーンにおいては、複数のサービスが同一のデバイスを制御対象とする可能性があるため、サービス間で制御の矛盾を起こさないような排他制御が必要となる。具体的には、「番組録画サービス」がＤＶＤレコーダで録画を開始したとき、「省エネサービス」がＤＶＤレコーダの電源を切らないようにするなどの排他制御が必要である。このため、ある機器によって制御されているデバイスは、他の機器からの制御コマンドを受信しても、その制御コマンドを拒否する排他制御が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−９４７５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような排他制御を利用することで、あるデバイスにおいて、複数のサービスから矛盾した制御がなされることが回避されるが、これだけでは不十分となる場合がある。具体的には、「番組録画サービス」がＤＶＤレコーダで録画を開始したとき、ＤＶＤレコーダが接続されている電源タップ（コンセント）や分電盤も排他制御しなければ、「省エネサービス」がコンセントや分電盤のスイッチを切ってしまう可能性がある。このように、あるサービスがデバイスを制御する際に、直接の制御対象であるデバイスだけでなく、これに関連するデバイス（関連デバイス）も併せて排他制御しなければ、そのサービスが正しく提供されない場合がある。従って、各サービスが関連デバイスも排他制御する必要があるが、ユーザの住宅に設置されるデバイスを特定することは困難であり、関連デバイスの排他制御が行われていなかった。
【０００６】
そこで、本発明は従来技術の問題点に鑑み、直接の制御対象であるデバイスに加え、これに関連するデバイスも排他制御できるようにした技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
ネットワークを介して接続された複数のデバイスを制御する制御装置は、デバイスの稼動状況の変化通知を受信したときに、稼動状況の変化時刻と稼動状況の変化情報とを関連付けた履歴情報を記憶部に蓄積する。また、制御装置は、記憶部に蓄積された履歴情報を参照して、稼動状況の変化通知に係るデバイスに連動して稼動状況が変化する関連デバイスを特定し、稼動状況の変化通知に係るデバイスの情報と関連デバイスの情報とを関連付けた関連情報を記憶部に格納する。制御装置は、デバイスを排他制御する排他制御コマンドを受信したときに、排他制御コマンドに係るデバイスをロックする。制御装置は、デバイスを制御する制御コマンドを受信したときに、記憶部に格納された関連情報を参照して、制御コマンドに係るデバイスに連動して稼動状況が変化する関連デバイスをロックする
と共に、制御コマンドに係るデバイスを制御する。
【発明の効果】
【０００８】
直接の制御対象であるデバイスに加え、これに関連する関連デバイスも排他制御できるようになる。
【図面の簡単な説明】
【０００９】
【図１】デバイス制御装置が組み込まれた情報システムの一例を示す構成図である。
【図２】ホームサーバの内部構造の一例を示す構造図である。
【図３】ホームサーバの一例を示す機能ブロック図である。
【図４】履歴テーブルの一例を示すデータ構造図である。
【図５】変化テーブルの一例を示すデータ構造図である。
【図６】ロックテーブルの一例を示すデータ構造図である。
【図７】デバイス制御処理の一例を示すフローチャートである。
【図８】デバイス制御処理の一例を示すフローチャートである。
【図９】デバイスリストの一例を示すデータ構造図である。
【図１０】検索範囲テーブルの一例を示すデータ構造図である。
【図１１】閾値テーブルの一例を示すデータ構造図である。
【図１２】プロファイルテーブルの一例を示すデータ構造図である。
【図１３】デバイス制御処理の他の例を示すフローチャートである。
【図１４】実施例１における履歴テーブル（１）の説明図である。
【図１５】実施例１における履歴テーブル（２）の説明図である。
【図１６】実施例１における変化テーブル（１）の説明図である。
【図１７】実施例１における履歴テーブル（３）の説明図である。
【図１８】実施例１における変化テーブル（２）の説明図である。
【図１９】実施例１におけるロックテーブル（１）の説明図である。
【図２０】実施例１におけるロックテーブル（２）の説明図である。
【図２１】実施例２における履歴テーブル（１）の説明図である。
【図２２】実施例２における履歴テーブル（２）の説明図である。
【図２３】実施例２における変化テーブル（１）の説明図である。
【図２４】実施例２における履歴テーブル（３）の説明図である。
【図２５】実施例２における変化テーブル（２）の説明図である。
【図２６】実施例２におけるロックテーブル（１）の説明図である。
【図２７】実施例２におけるロックテーブル（２）の説明図である。
【発明を実施するための形態】
【００１０】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳細に説明する。
図１は、デバイス制御装置が組み込まれた情報システムの一例を示す。
【００１１】
ユーザの住宅１００には、遠隔制御可能なデバイスＤＶＣの一例として、ＤＶＤレコーダ１１０、スマートコンセント１２０、エアコンディショナ１３０、温度センサ１４０、電動窓１５０及び分電盤１６０が設置されている。ＤＶＤレコーダ１１０、スマートコンセント１２０、エアコンディショナ１３０、温度センサ１４０、電動窓１５０及び分電盤１６０は、有線ＬＡＮ（Local Area Network）を介してプライベートネットワークであるホームネットワーク２００に接続されている。また、ホームネットワーク２００には、有線ＬＡＮを介して、デバイス制御装置として機能するホームサーバ１７０が接続されている。
【００１２】
ＤＶＤレコーダ１１０は、例えば、通信プロトコルの一例であるＤＬＮＡ（Digital Li
ving Network Alliance、登録商標）を用いて、稼動状況の変化をホームサーバ１７０に
通知したり、外部からの制御コマンドに応じて録画予約の設定などを行うことができる。
【００１３】
スマートコンセント１２０及び分電盤１６０は、例えば、通信プロトコルの一例であるＥＣＨＯＮＥＴ（Energy Conservation and Home Network、登録商標）を用いて、各端子に接続されているデバイスＤＶＣの消費電力を定期的にホームサーバ１７０に通知したり、外部からの制御コマンドに応じて各端子に接続されているデバイスＤＶＣの消費電力を通知することができる。また、スマートコンセント１２０及び分電盤１６０は、外部からの制御コマンドに応じて各端子への給電を遮断することもできる。なお、本実施形態では、スマートコンセント１２０及び分電盤１６０は、所定時間（例えば１秒）ごとに各端子に接続されているデバイスＤＶＣの消費電力を測定し、その測定値をホームサーバ１７０に通知するものとする。
【００１４】
エアコンディショナ１３０及び電動窓１５０は、例えば、ＥＣＨＯＮＥＴを用いて、稼動状況の変化をホームサーバ１７０に通知したり、外部からの制御コマンドに応じて稼動状況を変更することができる。
【００１５】
温度センサ１４０は、例えば、ＥＣＨＯＮＥＴを用いて、現在の温度（室温）を定期的にホームサーバ１７０に通知したり、外部からの要求に応じて現在の温度を通知することができる。なお、本実施形態では、温度センサ１４０は、定期的（例えば１分ごと）に室温を測定し、その測定値をホームサーバ１７０に通知するものとする。
【００１６】
住宅１００に設置された各種デバイスＤＶＣの通信プロトコルとしては、ＤＬＮＡやＥＣＨＯＮＥＴに限らず、公知の各種通信プロトコルを採用することができる。また、図１に示す情報システムでは、各デバイスＤＶＣは、有線ＬＡＮを介してホームネットワーク２００に接続されているが、無線ＬＡＮを介してホームネットワーク２００に接続されていてもよい。さらに、各デバイスＤＶＣは、各種アダプタなどを用いることで、ＺｉｇＢｅｅ（登録商標）やＢｌｕｅｔｏｏｔｈ（登録商標）などの無線通信技術によってホームネットワーク２００に接続されていてもよい。
【００１７】
ホームネットワーク２００は、ブロードバンドルータ１８０を介して、インターネット３００に接続されている。インターネット３００には、住宅１００に設置されたデバイスＤＶＣを遠隔制御するサービスの一例として、例えば、「番組録画サービス」、「省エネサービス」及び「空調サービス」などを提供するサービス業者のサーバ４００が接続されている。「番組録画サービス」は、例えば、ユーザが携帯電話を用いてテレビ番組の予約を行うと、住宅１００に設置された録画機器（ＤＶＤレコーダ１１０など）を遠隔制御して番組録画を実現するサービスである。「省エネサービス」は、ユーザの環境情報などに応じて、住宅１００に設置されたエアコンディショナ１３０や電動窓１５０などを遠隔制御して消費電力を低減するサービスである。「空調サービス」は、例えば、ユーザが携帯電話を用いて室温を設定すると、住宅１００に設置されたエアコンディショナ１３０や電動窓１５０を遠隔制御して室温を設定温度にするサービスである。
【００１８】
なお、インターネット３００に接続されたサーバ４００が住宅１００のデバイスＤＶＣにアクセスすることは通常不可能であるが、ブロードバンドルータ１８０でポートフォワーディングを設定しておくことで実現可能である。具体的には、ブロードバンドルータ１８０において、特定のポート番号への通信データをホームサーバ１７０に転送するように設定しておくことで、デバイスＤＶＣを遠隔制御できるようになる。インターネット３００に接続されたサーバ４００からデバイスＤＶＣへのアクセスは、ポートフォワーディング以外の技術を利用して実現してもよい。
【００１９】
ホームサーバ１７０は、図２に示すように、メモリＡ、ＣＰＵ（Central Processing Unit）などのプロセッサＢ、ハードディスクＣ、リムーバブルディスクＤを読み込むドラ
イブ装置Ｅ及び通信装置ＦがバスＧで接続されたコンピュータである。ハードディスクＣは、記憶部として機能する。リムーバブルディスクＤは、例えば、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）などの可搬記録媒体である。リムーバブルディスクＤに代えて、フラッシュメモリを内蔵したＵＳＢ（Universal Serial Bus）メモリなどを使用することもできる。通信装置Ｆは、バスＧとホームネットワーク２００とを接続する、例えば、ＮＩＣ（Network Interface Card）などである。
【００２０】
ホームサーバ１７０のハードディスクＣは、図３に示すように、履歴テーブル１７２と、変化テーブル１７４と、ロックテーブル１７６と、を夫々格納する。履歴テーブル１７２は、デバイスＤＶＣの稼動状況の変化を時系列に沿って記憶するテーブルであって、図４に示すように、稼動状況が変化した時刻、デバイスＤＶＣを特定するデバイスＩＤ、変化した稼動状況を特定するプロパティ、及び、プロパティの値を関連付けた履歴情報を保持する。変化テーブル１７４は、図５に示すように、稼動状況が変化したデバイスＤＶＣ（トリガデバイス）と、トリガデバイスに連動して稼動状況が変化したデバイスＤＶＣ（関連デバイス）と、を関連付けた関連情報を保持する。トリガデバイス及び関連デバイスは、夫々、デバイスＩＤ、プロパティ及びその値（変化特性）を含む。ロックテーブル１７６は、デバイスＤＶＣの排他制御状況を記憶するテーブルであって、図６に示すように、排他制御を実現するためのロックを特定するロックＩＤ、サービス内容を特定するサービスＩＤ、直接の制御対象となるデバイスＤＶＣを特定するデバイスＩＤ、及び、関連ロックＩＤを関連付けたロック情報を保持する。ここで、関連ロックＩＤは、ロックＩＤにより特定されるロックが実行された契機となったロックＩＤを示す。なお、履歴テーブル１７２は、住宅１００に設置されるデバイスＤＶＣが変更されることに鑑み、例えば、１ヶ月などの所定期間に亘る履歴情報を保持すればよい。
【００２１】
ホームサーバ１７０のプロセッサＢは、メモリＡに展開されたデバイス制御プログラムを実行することで、図３に示すように、履歴情報蓄積部１７０Ａと、関連情報格納部１７０Ｂと、デバイスロック部１７０Ｃと、デバイス制御部１７０Ｄと、を具現化する。履歴情報蓄積部１７０Ａは、デバイスＤＶＣから稼動状況の変化通知があったことを契機として、履歴テーブル１７２に履歴情報を時系列で蓄積する。関連情報格納部１７０Ｂは、履歴情報蓄積部１７０Ａが履歴テーブル１７２に履歴情報を蓄積したことを契機として、変化テーブル１７４に関連情報を格納する。デバイスロック部１７０Ｃは、サーバ４００からロックコマンド（排他制御コマンド）又はロック解除コマンドを受信したことを契機として、デバイスＤＶＣのロック情報を管理するためのロックテーブル１７６を更新する。デバイス制御部１７０Ｄは、サーバ４００から制御コマンドを受信したことを契機として、ロックテーブル１７６を更新すると共に、デバイスＤＶＣを制御する。
【００２２】
図７及び図８は、ホームサーバ１７０の履歴情報蓄積部１７０Ａ、関連情報格納部１７０Ｂ、デバイスロック部１７０Ｃ及びデバイス制御部１７０Ｄが協働して実行するデバイス制御処理を示す。なお、デバイス制御処理は、イベント通知があったとき、具体的には、デバイスＤＶＣから稼動状況の変化通知があったとき、又は、サーバ４００から各種コマンドが到着したことを契機として実行される。
【００２３】
ステップ１（図では「Ｓ１」と略記する。以下同様。）では、履歴情報蓄積部１７０Ａが、通知されたイベントを解析することで、イベントはデバイスＤＶＣの稼動状況の変化通知であるか否かを判定する。そして、履歴情報蓄積部１７０Ａは、稼動状況の変化通知であると判定すれば処理をステップ２へと進める一方（Ｙｅｓ）、稼動状況の変化通知でないと判定すれば処理をステップ６へと進める（Ｎｏ）。
【００２４】
ステップ２では、履歴情報蓄積部１７０Ａが、ハードディスクＣに格納された履歴テーブル１７２を更新する。即ち、履歴情報蓄積部１７０Ａは、デバイスＤＶＣの稼動状況が変化した時刻、稼動状況が変化したデバイスのデバイスＩＤ、変化した稼動状況のプロパティ及びプロパティの値を関連付けた履歴情報を生成し、この履歴情報を履歴テーブル１７２に追加する。
【００２５】
ステップ３では、関連情報格納部１７０Ｂが、ハードディスクＣの履歴テーブル１７２を参照し、稼動状況の変化通知に係るデバイスＤＶＣに連動して稼動状況が変化した関連デバイスの候補を抽出する。即ち、関連情報格納部１７０Ｂは、履歴テーブル１７２を参照し、稼動状況の変化通知に係るデバイスＤＶＣの時刻（イベント発生時刻）を取得する。また、関連情報格納部１７０Ｂは、履歴テーブル１７２を再度参照し、イベント発生時刻を含む所定時間内（例えば前後３秒）に、プロパティの値が所定の閾値（例えば１）を越えて変化した他のデバイスを検索し、これを関連デバイスの候補として抽出する。
【００２６】
ステップ４では、関連情報格納部１７０Ｂが、関連デバイスの候補があるか否か、即ち、ステップ３において関連デバイスの候補が抽出できたか否かを判定する。そして、関連情報格納部１７０Ｂは、関連デバイスの候補があると判定すれば処理をステップ５へと進める一方（Ｙｅｓ）、関連デバイスの候補がないと判定すれば処理を終了させる（Ｎｏ）。
【００２７】
ステップ５では、関連情報格納部１７０Ｂが、ハードディスクＣに格納された変化テーブル１７４を更新する。即ち、関連情報格納部１７０Ｂは、稼動状況の変化通知に係るデバイスＤＶＣのデバイスＩＤ、プロパティ及びその値に対して、関連デバイスの候補のデバイスＩＤ、プロパティ及びその変化特性を関連付けた関連情報を生成し、この関連情報を変化テーブル１７４に追加する。
【００２８】
ステップ６では、デバイスロック部１７０Ｃが、通知されたイベントを解析することで、イベントはロックコマンド又はロック解除コマンドであるか否かを判定する。そして、デバイスロック部１７０Ｃは、ロックコマンド又はロック解除コマンドであると判定すれば処理をステップ７へと進める一方（Ｙｅｓ）、ロックコマンド又はロック解除コマンドのいずれでもないと判定すれば処理をステップ１１へと進める（Ｎｏ）。
【００２９】
ステップ７では、デバイスロック部１７０Ｃが、ロックコマンド又はロック解除コマンドから、サービス内容を特定するサービスＩＤ、及び、ロック又はロック解除の対象となるデバイスＤＶＣのデバイスＩＤを抽出する。
【００３０】
ステップ８では、デバイスロック部１７０Ｃが、ハードディスクＣのロックテーブル１７６を参照し、ロック又はロック解除の対象となるデバイスＤＶＣが他のサービスによりロックされているか否かを判定する。即ち、デバイスロック部１７０Ｃは、ロックテーブル１７６を参照し、ステップ７で抽出されたデバイスＩＤを含むロック情報のうち、ステップ７で抽出されたサービスＩＤとは異なるサービスＩＤを含むものが存在するか否かを介して、他のサービスによりロックされているか否かを判定する。そして、デバイスロック部１７０Ｃは、他のサービスによりロックされていないと判定すれば処理をステップ９へと進める一方（Ｙｅｓ）、他のサービスによりロックされていると判定すれば処理をステップ１０へと進める（Ｎｏ）。
【００３１】
ステップ９では、デバイスロック部１７０Ｃが、ハードディスクＣに格納されたロックテーブル１７６を更新する。即ち、デバイスロック部１７０Ｃは、イベントがロックコマンドである場合、ロックＩＤに対して、ステップ７で抽出されたサービスＩＤ及びデバイ
スＩＤを関連付けたロック情報を生成し、このロック情報をロックテーブル１７６に追加する。また、デバイスロック部１７０Ｃは、イベントがロック解除コマンドである場合、ステップ７で抽出されたサービスＩＤ及びデバイスＩＤを含むロック情報、並びに、このロック情報のロックＩＤが関連ロックＩＤに格納されているロック情報を、ロックテーブル１７６から削除する。
【００３２】
ステップ１０では、デバイスロック部１７０Ｃが、ロックコマンド又はロック解除コマンドを発行したサーバ４００に対して、ロックコマンド又はロック解除コマンドの対象となるデバイスＤＶＣが他のサービスによりロックされていることを示すエラーメッセージを返却する。
【００３３】
ステップ１１では、デバイス制御部１７０Ｄが、通知されたイベントを解析することで、イベントはデバイスＤＶＣを遠隔制御する制御コマンドであるか否かを判定する。そして、デバイス制御部１７０Ｄは、制御コマンドであると判定すれば処理をステップ１２へと進める一方（Ｙｅｓ）、制御コマンドでないと判定すれば処理を終了させる（Ｎｏ）。
【００３４】
ステップ１２では、デバイス制御部１７０Ｄが、制御コマンドから、制御対象となるデバイスＤＶＣを特定するデバイスＩＤ、及び、どのように制御するかを特定する制御内容を抽出する。
【００３５】
ステップ１３では、デバイス制御部１７０Ｄが、ハードディスクＣのロックテーブル１７６を参照し、ステップ１２で抽出されたデバイスＩＤを含むロック情報が存在するか否かを介して、制御対象となるデバイスＤＶＣがロック中であるか否かを判定する。そして、デバイス制御部１７０Ｄは、デバイスＤＶＣがロック中であると判定すれば処理をステップ１４へと進める一方（Ｙｅｓ）、デバイスＤＶＣがロック中でないと判定すれば処理をステップ１７へと進める（Ｎｏ）。
【００３６】
ステップ１４では、デバイス制御部１７０Ｄが、ハードディスクＣの変化テーブル１７４を参照し、制御対象となるデバイスＤＶＣの関連デバイスを抽出する。即ち、デバイス制御部１７０Ｄは、制御コマンドからプロパティ及びその値を抽出し、トリガデバイスとして、制御コマンドから抽出されたデバイスＩＤ、プロパティ及びその値を含む関連情報を特定する。また、デバイス制御部１７０Ｄは、特定された関連情報の関連デバイスからデバイスＩＤ、プロパティ及びその値を抽出し、抽出されたデバイスＩＤ、プロパティ及びその値の逆の変化特性を含む関連デバイスに対応したトリガデバイスを特定する。そして、デバイス制御部１７０Ｄは、特定されたトリガデバイスのうち、制御コマンドのデバイスＩＤとは異なるデバイスＩＤを有するトリガデバイスを、関連デバイスとして抽出する。
【００３７】
ステップ１５では、デバイス制御部１７０Ｄが、関連デバイスがあるか否か、即ち、ステップ４において関連デバイスが抽出できたか否かを判定する。そして、デバイス制御部１７０Ｄは、関連デバイスがあると判定すれば処理をステップ１６へと進める一方（Ｙｅｓ）、関連デバイスがないと判定すれば処理をステップ１７へと進める（Ｎｏ）。
【００３８】
ステップ１６では、デバイス制御部１７０Ｄが、ハードディスクＣに格納されたロックテーブル１７６を更新する。即ち、デバイス制御部１７０Ｄは、ロックＩＤに対して、制御コマンドから抽出したサービスＩＤ、関連デバイスから抽出したデバイスＩＤ、並びに、制御コマンドから抽出したサービスＩＤ及びデバイスＩＤにより特定されるロック情報のロックＩＤを関連付けたロック情報を生成し、このロック情報をロックテーブル１７６に追加する。
【００３９】
ステップ１７では、デバイス制御部１７０Ｄが、制御コマンドに基づいて、デバイスＤＶＣを制御する。
かかるデバイス制御処理によれば、デバイスＤＶＣから稼動状況の変化通知があると、イベント発生時刻、デバイスＩＤ、プロパティ及びその値を関連付けた履歴情報が履歴テーブル１７２に追加される。また、稼動状況の変化通知を契機として、関連デバイスの候補として、履歴テーブル１７２から、イベント発生時刻を含む所定時間内にプロパティの値が所定の閾値を越えて変化した他のデバイスが検索される。そして、稼動状況の変化通知に係るデバイスＤＶＣのデバイスＩＤ、プロパティ及びその値と、関連デバイスの候補に係るデバイスＤＶＣのデバイスＩＤ、プロパティ及びその値（変化特性）と、を関連付けた関連情報が変化テーブル１７４に追加される。
【００４０】
このため、ユーザの住宅１００において、各種デバイスＤＶＣの稼動状況の変化に応じて、このデバイスＤＶＣに連動して稼動状況が変化する関連デバイスの候補が自動的に蓄積されることとなる。従って、ユーザ又は各種サービスを提供するサービス業者が事前に関連デバイスを把握する必要がなく、また、新たなデバイスＤＶＣの追加にも容易に対応可能であるため、サービス管理者及びユーザの利便性を改善することができる。
【００４１】
各種サービスを提供するサーバ４００からロックコマンド又はロック解除コマンドが到着したとき、ロック又はロック解除の対象となるデバイスＤＶＣが他のサービスによりロックされていなければ、排他制御のためのロックテーブル１７６が更新される。一方、各種サービスを提供するサーバ４００からロックコマンド又はロック解除コマンドが到着したとき、ロック又はロック解除の対象となるデバイスＤＶＣが他のサービスによりロックされていれば、そのデバイスＤＶＣは他のサービスにより排他制御されていることを示すエラーメッセージが返却される。
【００４２】
また、各種サービスを提供するサーバ４００から制御コマンドが到着したとき、制御対象となるデバイスＤＶＣがロック中であれば、変化テーブル１７４から、制御対象となるデバイスＤＶＣに連動して稼動状況が変化する関連デバイスが抽出される。また、関連デバイスがあれば、制御対象となるデバイスＤＶＣに加え、関連デバイスがロックされるように、ロックテーブル１７６が更新される。一方、関連デバイスがなければ、制御対象となるデバイスＤＶＣは他に影響を与えないと判断される。そして、制御コマンドに基づいて、デバイスＤＶＣが制御される。
【００４３】
このため、デバイスＤＶＣの稼動状況の変化通知を契機として自動的に蓄積された履歴情報を利用し、制御対象となるデバイスＤＶＣに連動して稼動状況が変化する関連デバイスの排他制御が実行されることとなる。従って、あるサービスがデバイスＤＶＣを制御する際に、直接の制御対象であるデバイスＤＶＣだけでなく、これに関連する関連デバイスも併せて排他制御されることとなり、そのサービスが正しく提供されるようになる。
【００４４】
ここで、図７のステップ３において、関連情報格納部１７０Ｂが関連デバイスの候補を抽出するとき、次のような処理を更に行うようにしてもよい。
関連デバイスの候補の抽出は、図９に示すように、デバイスＩＤが列挙されたデバイスリスト５００を用い、デバイスリスト５００に列挙されたデバイスＩＤにより特定されるデバイスＤＶＣに対してのみ実行してもよい。このようにすれば、特定のデバイスＤＶＣの稼動状況が変化したときのみ、関連デバイスの候補の抽出が実行されるので、いわゆる検索対象の絞り込みを通して、抽出効率を向上させることができる。特定のデバイスＤＶＣとしては、例えば、テレビ、ＤＶＤレコーダ、エアコンディショナ、ＰＣ（Personal Computer）、照明など、ユーザが主に操作するデバイスが想定される。
【００４５】
また、関連デバイスの候補を抽出するための所定時間は、図１０に示すような検索範囲
テーブル５１０を用い、検索対象となるデバイスＤＶＣ（検索対象デバイス）及び稼動状況の変化通知に係るデバイスＤＶＣ（トリガデバイス）に応じた値をとるようにしてもよい。このようにすれば、検索対象デバイス及びイベントの特性に合わせて、所定時間を動的に変更することができる。なお、図１０に示す検索範囲テーブル５１０は、通信プロトコルがＥＣＨＯＮＥＴである場合の一例を示している。
【００４６】
検索範囲テーブル５１０は、検索対象デバイスの種別及びその値と、トリガデバイスの種別、値、プロパティ及びプロパティ値と、検索範囲と、を関連付けたレコードを保持する。検索対象デバイスの種別には、検索対象デバイスの値に格納された情報がデバイスの種別を示す“CategoryID”、又は、検索対象デバイスの値に格納された情報がデバイスＩＤを示す“DeviceID”が格納される。検索対象デバイスの値には、検索対象デバイスの種別に応じた値が格納される。トリガデバイスの種別には、対象デバイスの種別と同様に、“CategoryID”又は“DeviceID”が格納される。トリガデバイスの値には、トリガデバイスの種別に応じた値が格納される。トリガデバイスのプロパティには、関連デバイスの候補を抽出する契機となったイベントのプロパティが格納される。トリガデバイスのプロパティ値には、トリガデバイスのプロパティに応じた値が格納される。検索範囲には、所定時間を規定するための時間、例えば、イベント発生時刻を中心とした時間幅を規定する所定時間の１／２が格納される。なお、トリガデバイスの種別、値、プロパティ及びプロパティ値を特定しない場合には、そのエントリが空白とされる。
【００４７】
図１０に示す検索範囲テーブル５１０では、種別が“Outlet”である検索対象デバイスの検索範囲は、トリガデバイスの如何にかかわらず、イベント発生時刻の前後１秒であることが規定されている。デバイスＩＤが“Thermometer1”である検索対象デバイスの検索範囲は、トリガデバイスのデバイスＩＤが“AirConditioner1”である場合、トリガデバ
イスのプロパティ及びプロパティ値の如何にかかわらず、イベント発生時刻の前後３分であることが規定されている。デバイスＩＤが“Thermometer2”である検索対象デバイスの検索範囲は、トリガデバイスのデバイスＩＤが“AirConditioner2”である場合、プロパ
ティが“OperationStatus”でプロパティ値が“On”であれば、イベント発生時刻の前後
５分、プロパティが“OperationStatus”でプロパティ値が“Off”であれば、イベント発生時刻の前後３分であることが規定されている。
【００４８】
さらに、関連デバイスの候補を抽出するための閾値は、図１１に示すような閾値テーブル５２０を用い、検索対象となるデバイスＤＶＣのイベント特性に応じた値をとるようにしてもよい。このようにすれば、検索対象となるデバイスＤＶＣのイベント特性に合わせて、所定の閾値を動的に変更することができる。なお、なお、図１１に示す閾値テーブル５２０は、通信プロトコルがＥＣＨＯＮＥＴである場合の一例を示している。
【００４９】
閾値テーブル５２０は、検索対象デバイスの種別、値及びプロパティと、閾値と、を関連付けたレコードを保持する。検索対象デバイスの種別には、検索対象デバイスの値に格納された情報がデバイスの種別を示す“CategoryID”、又は、検索対象デバイスの値に格納された情報がデバイスＩＤを示す“DeviceID”が格納される。検索対象デバイスの値には、検索対象デバイスの種別に応じた値が格納される。検索対象デバイスのプロパティには、関連デバイスの候補を抽出する対象となるイベントのプロパティが格納される。閾値には、イベント発生時刻を含む所定時間内で、プロパティ値がどれだけ変化したときに関連デバイスの候補であると判定するための値が格納される。なお、検索対象デバイスの種別及び値を特定しない場合には、そのエントリが空白とされる。
【００５０】
図１１に示す閾値テーブル５２０では、あるデバイスＤＶＣのプロパティ“OperationStatus”に変化があったときに、このデバイスを関連デバイスの候補であると判定するこ
とが規定されている。これは、プロパティが文字列である場合に有効な指定方法であり、
閾値の“CHANGED”はプロパティ値に何らかの変化があることを示す固定値である。種別
が“Outlet”である検索対象デバイスは、プロパティ“SmallSensorInstantPower”が１
以上変化したときに、このデバイスを関連デバイスの候補であると判定することが規定されている。種別が“Thermometer”である検索対象デバイスは、プロパティ“MeasuredTemp”が１以上変化したときに、このデバイスを関連デバイスの候補であると判定すること
が規定されている。
【００５１】
なお、デバイスリスト５００、検索範囲テーブル５１０及び閾値テーブル５２０は、例えば、ユーザ又はサービス業者により予め設定され、公知の手段により、ホームサーバ１７０のハードディスクＣに格納されていればよい。
【００５２】
ところで、各種サービスを提供するサーバ４００からデバイスＤＶＣの制御コマンドが到着したときに、その関連デバイスを排他制御することが必ずしも適切でない場合がある。冬季の場合、リビングルームに設置されたエアコンディショナ１３０の電源をＯＮにすると、リビングルームの室温が上昇する一方、リビングルームとは異なる部屋に設置された電動窓１５０を開放すると、その部屋の室温が下降する。このため、前述したデバイス制御装置では、電動窓１５０は、エアコンディショナ１３０に関連する関連デバイスであると判定されてしまう。しかし、エアコンディショナ１３０を排他制御する際に、これとは異なる部屋に設置された電動窓１５０も併せて排他制御されてしまうと、例えば、電動窓１５０が設置された部屋の換気を行いたくてもできなくなってしまう。
【００５３】
このため、ホームサーバ１７０のデバイス制御部１７０Ｄは、ハードディスクＣに格納されたプロファイルテーブル５３０（図１２参照）を用いて、直接の制御対象であるデバイスＤＶＣとは異なる部屋に設置されている関連デバイスをロックしないように排他制御してもよい。プロファイルテーブル５３０は、デバイスＩＤ、デバイス種別及び設置場所を関連付けた設置場所情報を保持する。
【００５４】
そして、ホームサーバ１７０のデバイス制御部１７０Ｄは、図８に示すステップ１５とステップ１６との間において、図１３に示すようなステップ２１及びステップ２２を更に実行する。
【００５５】
ステップ２１では、デバイス制御部１７０Ｄが、ハードディスクＣのプロファイルテーブル５３０を読み込む。
ステップ２１では、デバイス制御部１７０Ｄが、制御コマンドにより直接制御されるデバイスＤＶＣと関連デバイスとの設置場所が異なるか否かを判定する。そして、デバイス制御部１７０Ｄは、設置場所が異なると判定すれば処理をステップ１６へと進める一方（Ｙｅｓ）、設置場所が同じであると判定すれば処理をステップ１７へと進める（Ｎｏ）。
【００５６】
このようにすれば、各種サービスを提供するサーバ４００から制御コマンドが到着したときに、異なる部屋に設置されたデバイスＤＶＣが同時に排他制御されることがなく、ユーザの利便性を確保することができる。
【００５７】
エアコンディショナ１３０の電源をＯＮにすると、冬季では暖房運転のため室温が上昇するが、夏季では冷房運転のため室温が低下する。また、電動窓１５０を開放すると、冬季では室温が低下するが、夏季では時間帯に応じて室温が上昇したり低下したりする。このように、季節（例えば、夏期、冬期、中間期）及び時間帯（例えば、午前、午後、夜間）に応じて、デバイスＤＶＣに連動して変化する稼動状況が変動するため、次のような処理を更に追加してもよい。
【００５８】
ホームサーバ１７０のハードディスクＣは、季節及び時間帯ごとに異なる、図５に示す
変化テーブル１７４を格納する。そして、ホームサーバ１７０のデバイス制御部１７０Ｄは、変化テーブル１７４を参照又は更新する際に、季節及び時間帯に応じて変化テーブル１７４を選択すればよい。
【００５９】
このようにすれば、季節及び時間帯に応じたデバイスＤＶＣの排他制御が実行されるようになる。
なお、以上の実施形態においては、ホームサーバ１７０においてデバイス制御装置が作動していたが、コンピュータを内蔵したデバイスＤＶＣ、ブロードバンドルータ１８０などにおいてデバイス制御装置が作動していてもよい。
【００６０】
次に、以上の実施形態について理解を容易ならしめることを目的として、具体的な事例を想定した実施例について説明する。なお、以下の説明では、特に断らない限り、通信プロトコルとして、ＥＣＨＯＮＥＴを使用するものとする。
［実施例１］
実施例１の前提条件として、ＤＶＤレコーダ１１０のデバイスＩＤが“DVD1”、ＤＶＤレコーダ１１０の電源ケーブルが接続されているスマートコンセント１２０のデバイスＩＤが“Outlet1”、「番組録画サービス」のサービスＩＤが“RecordService”であるとする。
【００６１】
スマートコンセント１２０は、１秒ごとにＤＶＤレコーダ１１０の消費電力を測定し、デバイスＩＤが“Outlet1”、プロパティが“SmallSensorInstantPower”、プロパティの値が電力測定値に設定されたイベントを生成し、このイベントをホームサーバ１７０に送信する。一方、ホームサーバ１７０は、スマートコンセント１２０からイベントを受信すると、イベント発生時刻、デバイスＩＤ、プロパティ及びその値（消費電力）を関連付けた履歴情報を生成し、図１４に示すように、この履歴情報をハードディスクＣの履歴テーブル１７２に時系列で順次蓄積する。ここで、図１４に示す履歴テーブル１７２において、スマートコンセント１２０で測定された消費電力が１〜２又は３９〜４０の範囲で変化しているのは、待機時又は稼動時の揺らぎ又は計測誤差のためである。
【００６２】
ユーザがＤＶＤレコーダ１１０の電源をＯＮにすると、ＤＶＤレコーダ１１０は、デバイスＩＤが“DVD1”、プロパティが“OperationStatus”、プロパティの値が“On”に設
定されたイベントを生成し、このイベントをホームサーバ１７０に送信する。一方、ホームサーバ１７０は、ＤＶＤレコーダ１１０からのイベントを受信すると、イベント発生時刻、デバイスＩＤ、プロパティ及びその値を関連付けた履歴情報を生成し、図１５に示すように、この履歴情報をハードディスクＣの履歴テーブル１７２に蓄積する。なお、図１５に示す履歴テーブル１７２は、説明を簡単にすることを目的として、ＤＶＤレコーダ１１０に関する履歴情報のみが格納されている。
【００６３】
また、ホームサーバ１７０は、ハードディスクＣに格納された履歴テーブル１７２を参照し、ＤＶＤレコーダ１１０の稼動状況が変化した時刻“2011/1/4 09:12:15”を含む所
定時間（例えば前後３秒）に稼動状況が変化した他のデバイスＤＶＣを検索する。図１４に示す履歴テーブル１７２では、時刻“2011/1/4 09:12:15”においてスマートコンセン
ト１２０で測定された消費電力が１Ｗから４０Ｗへと所定の閾値を越えて変化したため、スマートコンセント１２０はＤＶＤレコーダ１１０の関連デバイスであると判定される。そして、ホームサーバ１７０は、ＤＶＤレコーダ１１０のデバイスＩＤ、プロパティ及びその値と、スマートコンセント１２０のデバイスＩＤ、プロパティ及びその変化特性と、を関連付けた関連情報を生成し、図１６に示すように、この関連情報をハードディクスＣの変化テーブル１７４に追加する。
【００６４】
ユーザがスマートコンセント１２０のスイッチを切ると、スマートコンセント１２０は
、デバイスＩＤが“Outlet1”、プロパティが“OperationStatus”、プロパティの値が“Off”に設定されたイベントを生成し、このイベントをホームサーバ１７０に送信する。
一方、ホームサーバ１７０は、スマートコンセント１２０からのイベントを受信すると、イベント発生時刻、デバイスＩＤ、プロパティ及びその値を関連付けた履歴情報を生成し、図１７に示すように、この履歴情報をハードディスクＣの履歴テーブル１７２に時系列で順次蓄積する。
【００６５】
ホームサーバ１７０は、ハードディスクＣに格納された履歴テーブル１７２を参照し、スマートコンセント１２０の稼動状況が変化した時刻“2011/1/4 10:07:15”を含む所定
時間に稼動状況が変化したデバイスを検索する。図１７に示す履歴テーブル１７２では、時刻“2011/1/4 10:07:15”においてスマートコンセント１２０で測定された消費電力が
２Ｗから０Ｗへと所定の閾値を越えて変化したため、ホームサーバ１７０は、前述したような手順により、図１８に示すような関連情報を生成し、この関連情報をハードディスクＣの変化テーブル１７４に追加する。
【００６６】
「番組録画サービス」を提供するサーバ４００は、次のように、デバイスＩＤが“DVD1”であるＤＶＤレコーダ１１０のロックコマンドを生成し、このロックコマンドをホームサーバ１７０に送信する。なお、ロックコマンドは、例えば、ＸＭＬ（eXtensible Markup Language）により記述される。
【００６７】
<?xml version=”1.0” encoding=”UTF-8”?>
<controlCommand>
<serviceId>RecordService</serviceId>
<targetDeviceId>DVD1</targetDeviceId>
<command>lock</command>
<paramList/>
</controlCommand>
ホームサーバ１７０は、サーバ４００からのロックコマンドを受信すると、ハードディスクＣに格納されたロックテーブル１７６を参照し、「番組録画サービス」以外のサービスによりデバイスＩＤが“DVD1”であるＤＶＤレコーダ１１０がロックされているか否かを判定する。そして、ホームサーバ１７０は、ＤＶＤレコーダ１１０がロックされていないので、例えば、ロックＩＤが“3”、サービスＩＤが“RecordService”、デバイスＩＤが“DVD1”に設定されたロック情報を生成し、図１９に示すように、このロック情報をロックテーブル１７６に追加する。
【００６８】
「番組録画サービス」を提供するサーバ４００は、ＤＶＤレコーダ１１０の電源をＯＮにするため、次のような制御コマンドを生成し、この制御コマンドをホームサーバ１７０に送信する。
【００６９】
<?xml version=”1.0” encoding=”UTF-8”?>
<controlCommand>
<serviceId>RecordService</serviceId>
<targetDeviceId>DVD1</targetDeviceId>
<command>set</command>
<paramList>
<property name=”OparationStatus”>On</property>
</paramList>
</controlCommand>
ホームサーバ１７０は、サーバ４００からの制御コマンドを受信すると、ハードディスクＣに格納された変化テーブル１７４（図１８参照）を参照し、ＤＶＤレコーダ１１０に
関連する関連デバイスを特定する。即ち、ホームサーバ１７０は、変化テーブル１７４を参照し、デバイスＩＤが“DVD1”、プロパティが“OperationStatus”、プロパティの値
が“On”であるトリガデバイスに関連付けられた関連デバイスを特定する。また、ホームサーバ１７０は、変化テーブル１７４を再度参照し、デバイスＩＤが“Outlet1”、プロ
パティが“SmallSensorInstantPower”、プロパティの値が“Down”に設定された他の関
連デバイスを検索する。さらに、ホームサーバ１７０は、検索された関連デバイスのトリガデバイス、即ち、デバイスＩＤが“Outlet1”であるスマートコンセント１２０を関連
デバイスとして特定する。そして、ホームサーバ１７０は、例えば、ロックＩＤが“4”
、サービスＩＤが“RecordService”、デバイスＩＤが“Outlet1”、関連ロックＩＤが“3”に設定されたロック情報を生成し、図２０に示すように、このロック情報をロックテ
ーブル１７６に追加する。
【００７０】
このような状態において、例えば、「省エネサービス」を提供するサーバ４００がスマートコンセント１２０の電源を切ろうとすると、ロックテーブル１７６にスマートコンセント１２０がロック中であることが登録されているため、そのロックコマンドの実行が拒否される。このため、あるデバイスＤＶＣにおいて、複数のサービスから矛盾した制御がなされることが回避される。
【００７１】
また、「番組録画サービス」を提供するサーバ４００は、番組録画サービスの提供が終了したとき、次のようなロック解除コマンドを生成し、このロック解除コマンドをホームサーバ１７０に送信する。
【００７２】
<?xml version=”1.0” encoding=”UTF-8”?>
<controlCommand>
<serviceId>RecordService</serviceId>
<targetDeviceId>DVD1</targetDeviceId>
<command>unlock</command>
<paramList/>
</controlCommand>
ホームサーバ１７０は、サーバ４００からのロック解除コマンドを受信すると、ロックテーブル１７６から、デバイスＩＤが“DVD1”であるロック情報に加え、そのロックＩＤが関連ロックＩＤに設定されている、デバイスＩＤが“outlet1”であるロック情報を削
除する。このため、ＤＶＤレコーダ１１０及びスマートコンセント１２０の排他制御が行われなくなり、他のサービスを提供するサーバ４００からＤＶＤレコーダ１１０及びスマートコンセント１２０を自由に制御できるようになる。
【００７３】
［実施例２］
実施例２の前提条件として、ホームネットワーク２００に接続されたエアコンディショナ１３０を遠隔制御する「空調サービス」と、ホームホームネットワーク２００に接続された電動窓１５０や換気扇を遠隔制御する「換気サービス」と、が稼動しているものとする。
【００７４】
温度センサ１４０は、１分ごとに室温を測定し、デバイスＩＤが“Thermometer1”、プロパティが“MeasuredTemp”、プロパティの値が測定温度に設定されたイベントを生成し、このイベントをホームサーバ１７０に送信する。一方、ホームサーバ１７０は、温度センサ１４０からイベントを受信すると、イベント発生時刻、デバイスＩＤ、プロパティ及びその値（室温）を関連付けた履歴情報を生成し、図２１に示すように、この履歴情報をハードディスクＣの履歴テーブル１７２に時系列で順次蓄積する。
【００７５】
ユーザがエアコンディショナ１３０の電源をＯＮにすると、エアコンディショナ１３０は、デバイスＩＤが“AirConditioner1”、プロパティが“OperationStatus”、プロパテ
ィの値が“On”に設定されたイベントを生成し、このイベントをホームサーバ１７０に送信する。一方、ホームサーバ１７０は、エアコンディショナ１３０からのイベントを受信すると、イベント発生時刻、デバイスＩＤ、プロパティ及びその値を関連付けた履歴情報を生成し、図２２に示すように、この履歴情報をハードディスクＣの履歴テーブル１７２に蓄積する。なお、図２２に示す履歴テーブル１７２では、説明を簡単にするため、エアコンディショナ１３０に関する履歴情報のみが格納されている。
【００７６】
また、ホームサーバ１７０は、ハードディスクＣに格納された履歴テーブル１７２を参照し、エアコンディショナ１３０の稼動状況が変化した時刻“2011/1/7 13:15:00”を含
む所定時間（例えば前後３分）に稼動状況が変化した他のデバイスＤＶＣを検索する。図２１に示す履歴テーブル１７２では、時刻“2011/1/7 13:18:00”において室温が１６．
５℃から１７．６℃へと所定の閾値を越えて変化したため、温度センサ１４０はエアコンディショナ１３０の関連デバイスであると判定される。そして、ホームサーバ１７０は、エアコンディショナ１３０のデバイスＩＤ、プロパティ及びその値と、温度センサ１４０のデバイスＩＤ、プロパティ及びその変化特性と、を関連付けた関連情報を生成し、図２３に示すように、この関連情報をハードディスクＣの変化テーブル１７４に追加する。
【００７７】
ユーザが電動窓１５０を開放すると、電動窓１５０は、デバイスＩＤが“Window1”、
プロパティが“OpeningStatus”、プロパティの値が“Found”（開）に設定されたイベントを生成し、このイベントをホームサーバ１７０に送信する。一方、ホームサーバ１７０は、電動窓１５０からのイベントを受信すると、イベント発生時刻、デバイスＩＤ、プロパティ及びその値を関連付けた履歴情報を生成し、図２４に示すように、この履歴情報をハードディスクＣに格納された履歴テーブル１７２に追加する。なお、図２４に示す履歴テーブル１７２では、説明を簡単にするため、電動窓１５０に関する履歴情報のみが格納されている。
【００７８】
また、ホームサーバ１７０は、ハードディスクＣに格納された履歴テーブル１７２を参照し、電動窓１５０の稼動状況が変化した時刻“2011/1/7 12:01:13”を含む所定時間（
例えば前後３分）に稼動状況が変化した他のデバイスＤＶＣを検索する。図２１に示す履歴テーブル１７２では、時刻“2011/1/7 12:04:00”において室温が１８．０℃から１６
．８℃へと所定の閾値を越えて変化したため、温度センサ１４０は電動窓１５０の関連デバイスであると判定される。そして、ホームサーバ１７０は、電動窓１５０のデバイスＩＤ、プロパティ及びその値と、温度センサ１４０のデバイスＩＤ、プロパティ及びその変化特性と、を関連付けた関連情報を生成し、図２５に示すように、この関連情報をハードディスクＣの変化テーブル１７４に追加する。
【００７９】
「空調サービス」を提供するサーバ４００は、次のように、デバイスＩＤが“AirConditioner1”であるエアコンディショナ１３０のロックコマンドを生成し、このロックコマ
ンドをホームサーバ１７０に送信する。
【００８０】
<?xml version=”1.0” encoding=”UTF-8”?>
<controlCommand>
<serviceId>AirConditioningService</serviceId>
<targetDeviceId>AirConditionser1</targetDeviceId>
<command>lock</command>
<paramList/>
</controlCommand>
ホームサーバ１７０は、サーバ４００からのロックコマンドを受信すると、ハードディスクＣに格納されたロックテーブル１７６を参照し、「空調サービス」以外のサービスによりデバイスＩＤが“AirConditioner1”であるエアコンディショナ１３０がロックされ
ているか否かを判定する。そして、ホームサーバ１７０は、エアコンディショナ１３０がロックされていないので、例えば、ロックＩＤが“2”、サービスＩＤが“AirConditioningService”、デバイスＩＤが“AirConditioner1”に設定されたロック情報を生成し、図２６に示すように、このロック情報をロックテーブル１７６に追加する。
【００８１】
次に、「空調サービス」を提供するサーバ４００は、エアコンディショナ１３０の電源をＯＮにするため、次のような制御コマンドを生成し、この制御コマンドをホームサーバ１７０に送信する。
【００８２】
<?xml version=”1.0” encoding=”UTF-8”?>
<controlCommand>
<serviceId>AirConditioningService</serviceId>
<targetDeviceId>AirConditiner1</targetDeviceId>
<command>set</command>
<paramList>
<property name=”OparationStatus”>On</property>
</paramList>
</controlCommand>
ホームサーバ１７０は、サーバ４００からの制御コマンドを受信すると、ハードディスクＣに格納された変化テーブル１７４を参照し、エアコンディショナ１３０に関連する関連デバイスを特定する。即ち、ホームサーバ１７０は、変化テーブル１７４を参照し、デバイスＩＤが“AirConditiner1”、プロパティが“OperationStatus”、プロパティの値
が“On”であるトリガデバイスに関連付けられた関連デバイスを特定する。また、ホームサーバ１７０は、変化テーブル１７４を再度参照し、デバイスＩＤが“Thermometer1”、プロパティが“MeasuredTemp”、プロパティの値が“Down”に設定された他の関連デバイスを検索する。さらに、ホームサーバ１７０は、検索された関連デバイスのトリガデバイス、即ち、デバイスＩＤが“Window1”である電動窓１５０を関連デバイスとして特定す
る。
【００８３】
このとき、ホームサーバ１７０は、ハードディスクＣに格納されたプロファイルテーブル５３０（図１２参照）を参照し、エアコンディショナ１３０と電動窓１５０とが共にダイニングに設置されているため、図２７に示すように、電動窓１５０をロックするためのロック情報をロックテーブル１７６に追加する。なお、例えば、ＤＶＤレコーダ１１０のように、エアコンディショナ１３０と設置場所が異なるデバイスの場合には、これをロックするためのロック情報はロックテーブル１７６に追加されない。
【００８４】
このような状態において、例えば、「換気サービス」を提供するサーバ４００が電動窓１５０を開放しようとすると、ロックテーブル１７６に電動窓１５０がロック中であることが登録されているため、そのロックコマンドの実行が拒否される。このため、あるデバイスＤＶＣにおいて、複数のサービスから矛盾した制御がなされることが回避される。
【００８５】
なお、この後の動作は、先の実施例１と同様であるので、その説明は省略する。
【符号の説明】
【００８６】
１１０  ＤＶＤレコーダ
１２０  スマートコンセント
１３０  エアコンディショナ
１４０  温度センサ
１５０  電動窓
１６０  分電盤
１７０  ホームサーバ（制御装置）
１７０Ａ  履歴情報蓄積部
１７０Ｂ  関連情報格納部
１７０Ｃ  デバイスロック部
１７０Ｄ  デバイス制御部
１７２  履歴テーブル
１７４  変化テーブル
１７６  ロックテーブル
１８０  ブロードバンドルータ
２００  ホームネットワーク
５００  デバイスリスト
５１０  検索範囲テーブル
５２０  閾値テーブル
５３０  プロファイルテーブル
Ａ  メモリ
Ｂ  プロセッサ
Ｃ  ハードディスク（記憶部）
ＤＶＣ  デバイス
【図１】
0005564662.tif 000002
【図２】
0005564662.tif 000003
【図３】
0005564662.tif 000004
【図４】
0005564662.tif 000005
【図５】
0005564662.tif 000006
【図６】
0005564662.tif 000007
【図７】
0005564662.tif 000008
【図８】
0005564662.tif 000009
【図９】
0005564662.tif 000010
【図１０】
0005564662.tif 000011
【図１１】
0005564662.tif 000012
【図１２】
0005564662.tif 000013
【図１３】
0005564662.tif 000014
【図１４】
0005564662.tif 000015
【図１５】
0005564662.tif 000016
【図１６】
0005564662.tif 000017
【図１７】
0005564662.tif 000018
【図１８】
0005564662.tif 000019
【図１９】
0005564662.tif 000020
【図２０】
0005564662.tif 000021
【図２１】
0005564662.tif 000022
【図２２】
0005564662.tif 000023
【図２３】
0005564662.tif 000024
【図２４】
0005564662.tif 000025
【図２５】
0005564662.tif 000026
【図２６】
0005564662.tif 000027
【図２７】
0005564662.tif 000028