(57)【特許請求の範囲】
【請求項１】
複数のデバイス（３１８）を制御してモニタするシステム（３００）であって、前記システムは、
各々のデバイスに対応する少なくとも１つのデバイス属性を含むとともに、前記複数のデバイスの少なくとも幾つかに対応する複数のデバイスオブジェクトを含む少なくとも２つのルックアップサービス（３１０）であって、ユーザーまたはセンサからの入力に対応して少なくとも一つのデバイス属性および／またはオブジェクトを判定し、かつ、前記属性に関連するオブジェクトおよび／またはデバイスの対応する一つが前記入力に応答して動作する、前記少なくとも２つのルックアップサービスと、
前記複数のデバイスおよび前記複数のデバイスオブジェクトによって転送される周期的なリフレッシュ情報を少なくとも管理するソフト状態ストア（３１６）であって、前記リフレッシュ情報は前記ソフト状態ストアによって複数のソフト状態変数として管理され、前記リフレッシュ情報が前記デバイスおよびオブジェクトの現時点での動作状態を表す、前記ソフトウェア状態ストアと、
前記ソフト状態ストアによって管理される前記複数のソフト状態ストア変数の変更に関係するイベントを判定するための通知／加入イベンティング構成要素（３１２）であって、前記イベントが前記デバイスおよび／またはオブジェクトの少なくとも幾つかの動作に影響を与える、前記通知／加入イベンティング構成要素と、
前記複数のデバイス中の障害を検出して該障害からの回復を開始する複数のシステムマネージメントデーモン（３１４）とを備え、
前記少なくとも２つのルックアップサービスは、
前記複数のデバイス属性に従って前記複数のデバイスの第１のデータベースを維持する属性ベースのルックアップサービス（３２２）と、
前記複数のデバイスに対応する前記複数のデバイスオブジェクトの第２のデータベースを維持する名前ベースのルックアップサービス（３２０）とを含み、
前記複数のシステムマネージメントデーモンのうちの少なくとも１つは、複数のインスタンスを含み、前記複数のインスタンスはエージ情報を交換し、前記複数のインスタンスの各々は、前記エージ情報を使用してリーダインスタンスであるかどうかを判定し、
前記ソフト状態変数中に含まれる前記デバイスおよび前記デバイスオブジェクトの前記リフレッシュ情報は、前記複数のデバイスおよび前記複数のデバイスオブジェクトの各エンティティによって送信される周期的ハートビートを含み、
前記複数のデバイスおよび前記複数のデバイスオブジェクトの各エンティティは、前記デバイスおよび／またはオブジェクトが前記デバイスおよび／またはオブジェクトについてのリフレッシュレートを有し、前記リフレッシュレートによって要求される通りに前記周期的ハートビートを送信することに失敗すると、前記少なくとも２つのルックアップサービスから前記デバイスおよび／またはオブジェクトが削除される
ことを特徴とするシステム。
【請求項２】
請求項１に記載のシステムにおいて、
前記名前ベースのルックアップサービスは前記複数のデバイスオブジェクトのインスタンスをインスタンス化することを特徴とするシステム。
【請求項３】
請求項１に記載のシステムにおいて、
前記名前ベースのルックアップサービスによって維持される前記第２のデータベースはさらに、複数の計算オブジェクトを含むことを特徴とするシステム。
【請求項４】
請求項１に記載のシステムにおいて、
前記複数のデバイスオブジェクトの各々は、少なくとも、前記複数のデバイスオブジェクトと同期通信するための同期アドレスと、前記複数のデバイスオブジェクトと非同期通信するための非同期アドレスとを含むことを特徴とするシステム。
【請求項５】
請求項１に記載のシステムにおいて、
前記エンティティによって送信された前記周期的ハートビートは、前記ソフト状態ストアによって、前記エンティティに対する前記リフレッシュレートが所定のしきい値より小さい場合に永続的ストア中に格納され、前記リフレッシュレートが前記所定のしきい値より大きい場合に揮発性ストア中に格納されることを特徴とするシステム。
【請求項６】
請求項１に記載のシステムにおいて、
前記複数のシステムマネージメントデーモンは、電力線デバイスである前記複数のデバイスに伴う問題を検出するための電力線モニタデーモン（７０２）を含むことを特徴とするシステム。
【請求項７】
請求項６に記載のシステムにおいて、
前記電力線モニタデーモンは、許容されない電力線活動状態を検出するためのパターンベースの検出を使用することを特徴とするシステム。
【請求項８】
請求項７に記載のシステムにおいて、
前記電力線モニタデーモンは、パターンデータベース中に格納された許容されない電力線パターンに対し電力線パターンをマッチすることを特徴とするシステム。
【請求項９】
請求項６に記載のシステムにおいて、
前記電力線モニタデーモンは、許容される電力線活動状態を検出するためのモデルベースの検出を使用することを特徴とするシステム。
【請求項１０】
請求項９に記載のシステムにおいて、
許容される前記電力線モニタデーモンは、許容される電力線パターンのパターンモデルに対して電力線パターンをテストすることを特徴とするシステム。
【請求項１１】
請求項１に記載のシステムにおいて、
前記少なくとも２つのルックアップサービス、前記ソフト状態ストア、および前記通知／加入イベンティング構成要素は、アーキテクチャのシステムインフラストラクチャ層（３０４）内に常駐することを特徴とするシステム。
【請求項１２】
請求項１１に記載のシステムにおいて、
前記複数のデバイスオブジェクトが常駐するアプリケーション層（３０６）をさらに含むことを特徴とするシステム。
【請求項１３】
請求項１２に記載のシステムにおいて、
少なくとも１つのオートメーションアプリケーション（３２４）と、前記複数のデバイスに対応して前記アプリケーション層中に常駐する複数のデバイスデーモン（３２８）とをさらに含むことを特徴とするシステム。
【請求項１４】
請求項１１に記載のシステムにおいて、
Ｅメールデーモン（３３６）、音声認識インターフェース（３３２）、ブラウザインターフェース（３３０）、および自然言語構文解析インターフェース（３３４）が常駐するユーザインターフェース層（３０８）をさらに含むことを特徴とするシステム。
【請求項１５】
請求項１４に記載のシステムにおいて、
前記ユーザインターフェース層は、前記オートメーションシステム内のデバイスに対して実行されたコマンドの独立検証を提供することを特徴とするシステム。
【請求項１６】
請求項１に記載のシステムにおいて、
前記デバイス属性の一つは、前記デバイスの各々に関連するデバイスタイプを含むことを特徴とするシステム。
【請求項１７】
請求項１に記載のシステムにおいて、
前記デバイス属性の一つは、前記デバイスの各々に関連する物理位置を含むことを特徴とするシステム。
【請求項１８】
請求項１に記載のシステムにおいて、
前記デバイス属性の一つは、前記デバイスの各々の物理位置を含むことを特徴とするシステム。
【請求項１９】
請求項１に記載のシステムにおいて、
前記名前ベースのルックアップサービスは、前記デバイスオブジェクトの各々を前記デバイスのそれぞれ一つの対応するアドレスにマップすることを特徴とするシステム。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、一般に、電力線に接続するデバイスおよびセンサなどの制御デバイスおよびモニタデバイスに関し、より詳細には、デバイスおよびセンサを制御し、モニタするためのオートメーションシステムに関する。
【０００２】
（背景技術）
ホームネットワーキングおよびホームオートメーションは、より一般的になってきている。音声／ビデオデバイスの数および複雑さが増大すると、ある自宅所有者は、自分のデバイスをより容易に操作することに関心を抱く。別の自宅所有者は、自分の家のセキュリティおよび安全についてより大きな関心を抱く。これらの自宅所有者は、自分の家をリモートにモニタし、電気器具および他の電力線デバイスをリモートに制御し、重要な出来事が発生したときを知りたいと思うことがある。例えば、重要な出来事は、温水ヒータの破裂または漏れ、あるいは他のタイプの出来事であることがある。電力線デバイスは、通常電気のコンセントに接続するプラグを介して、電力線に接続するデバイスである。
【０００３】
現在、２つの一般的なホームネットワーキングインフラストラクチャが存在する。１つは電話線ネットワーキングである。標準Ｅｔｈｅｒｎｅｔ（登録商標）ネットワークで通常必要なホーム再配線を必要とせずに、コンピュータおよびコンピュータ周辺デバイスのインホームネットワーキングを実現するために、家庭内の既存の電話線を利用するためのＨｏｍｅ  Ｐｈｏｎｅ  ｌｉｎｅ  Ｎｅｔｗｏｒｋｉｎｇ  Ａｌｌｉａｎｃｅ（ＨｏｍｅＰＮＡ）が作られた。ＨｏｍｅＰＮＡに関するより詳細な情報は、インターネットのｗｗｗ．ｈｏｍｅｐｎａ．ｃｏｍで得ることができる。電話線ネットワーキングにより、自宅所有者は、コンピュータおよびコンピュータ周辺デバイスを接続する目的で自分の家庭内に小規模のローカルエリアネットワーク（ＬＡＮ）を作成することができるが、それには制限がある。重大なことに、電話線ネットワーキングでは一般に、自宅所有者が自分の家庭内の電気器具、ランプ、および他の電力線デバイスを制御することができない。
【０００４】
２番目のホームネットワーキングインフラストラクチャは、電力線ネットワーキングである。電力線ネットワーキングにより、家庭の大部分にわたって、ユービキタス有線接続性が実現される。１つのタイプの電力線ネットワーキングは、Ｘ１０として知られる。Ｘ１０は、ランプおよび電気器具などの電力線デバイスをリモートに制御するためことを可能にする通信プロトコルである。Ｘ１０に関するより詳細な情報は、インターネット上のｆｔｐ：／／ｆｔｐ．ｓｃｒｕｚ．ｎｅｔ／ｕｓｅｒｓ／ｃｉｃｈｌｉｄ／ｐｕｂｌｉｃ／ｘｌ０ｆａｑで得ることができる。
【０００５】
Ｘ１０ネットワーキングなどの現在の電力線ネットワーキングには、制限がある。例えばＸ１０プロトコルは、電力線デバイスを制御し、モニタするための、基本的で低レベルなフレームワークしか実現しない。このフレームワークは、一般に、高性能で複雑なデバイス制御応用例を可能としない。既存のＸ１０技術を利用するオートメーションシステムは、コンピュータを使用して実装することができるが、より一般には、システムは、限定された数の電力線デバイスを限定された方式でしか制御しない、比較的低インテリジェントな制御センタで実装される。コンピュータを使用するときでも、結果として得られるシステムは、依然として理想からはほど遠い。このシステムは使用するのが難しく、デバイスの障害およびクラッシュに対して信頼性がなく、ロバストでないことがある。
【０００６】
ここで説明した理由並びに他の理由のために、本発明が求められている。
【０００７】
（発明の開示）
本発明は、デバイスおよびセンサを制御し、モニタするためのオートメーションシステムに関する。このデバイスは、ランプ、電気器具、音声／ビデオデバイス、並びに家屋または他の建物の電力線に接続する他のデバイスなどの電力線デバイスを含むことができる。センサは、緊急関係の出来事および他の出来事の発生を検出するためのセンサを含むことができる。例えば、温水ヒータの近くに位置する水センサは、ヒータが破裂したか、または漏れているかどうかを検出することができる。
【０００８】
本発明は、これらのデバイスおよびセンサを、インテリジェントで、信頼性のある、ロバスト（ｒｏｂｕｓｔ）な方式で制御およびモニタするためのアーキテクチャを提供する。インテリジェンスに関しては、例えばこのアーキテクチャは、ユーザフレンドリにすべての利用可能なデバイスのデータベースを維持するルックアップサービスを含む。原始的なアドレスによってランプを覚えるのではなく、自宅所有者は、単に、ランプを「寝室の東側の壁につながれたランプ」として識別することができる。このアーキテクチャの他の態様は、デバイスおよびセンサをインテリジェントに制御およびモニタするために、高性能で複雑なオートメーション応用例を提供する。
【０００９】
信頼性に関しては、システムによって制御されるデバイスは、そのデバイスが適切に機能していることを示す周期的リフレッシュ情報をそのデバイスに対して送信し、または送信している。この周期的リフレッシュ情報は、ハートビートと呼ばれる。このアーキテクチャは、この情報を格納するためのソフト状態ストアと、この情報の変更に関するイベントへの加入を可能にする通知／加入イベンティング構成要素とを含む。デバイスが作動不能となった場合、ソフト状態ストアが記録するためのハートビートの送信を停止する。イベンティング構成要素が管理する加入を介して、オートメーションシステム内の他の構成要素は、そのデバイスが作動不能であることを認識し、適切な回復アクションをとる。このアーキテクチャは、電力線モニタデーモンおよび他のシステムマネージメントデーモンも含む。電力線モニタデーモンは、電力線デバイスが誤作動していること、またはシステム内への悪意を持った侵入が試みられていることを示す可能性のある、電力線に関する疑わしい挙動を検出する。
【００１０】
ロバスト性（ｒｏｂｕｓｔｎｅｓｓ）に関しては、このアーキテクチャは、アーキテクチャが実装されるコンピュータの数、および重要なシステムマネージメントデーモンのあるタイプのインスタンスの数における組込み冗長構成を有することができる。冗長なデーモンインスタンスは、弱いリーダ手法（ｗｅａｋ  ｌｅａｄｅｒ  ａｐｐｒｏａｃｈ）を利用して、それらのうちのどれが、デーモンに行われた照会に対して応答すべき現在のリーダインスタンスであるかを判定する。リーダデーモンインスタンスに障害が発生した場合、冗長なデーモンインスタンスのうちの１つが新しいリーダインスタンスになり、その結果システムはオフラインとならない。
【００１１】
本発明は、様々な範囲のオートメーションシステム、オートメーションシステムアーキテクチャ、および方法を包含する。ここで説明していない本発明の他の態様、実施形態、および利点は、詳細な説明を読み、図面を参照することによって明らかとなろう。
【００１２】
（発明を実施するための形態）
本発明の例示的実施形態の以下の詳細な説明では、本明細書の一部をなし、本発明を実施することのできる特定の例示的実施形態を例示的に示す、添付の図面を参照する。この実施形態では、当業者が本発明を実施することが可能となるように十分詳細に説明する。本発明の精神または範囲から逸脱することなく、他の実施形態を利用することができ、論理的、機械的、電気的変更、および他の変更を行うことができる。したがって、以下の詳細な説明は限定的な意味に理解するべきものではなく、本発明の範囲は、添付の特許請求の範囲によってのみ定義される。
【００１３】
（ハードウェアアーキテクチャ）
図１に、本発明のオートメーションシステムを実装することができる、例示的な家屋１０２の絵画図１００を示す。家屋１０２は、各部屋の中でもとりわけ、ガレージ１０４、キッチン１０６、居間１０８、主寝室１１０、私室１１４を含む。家屋１０２に入り、家屋１０２全体にわたって分布する接続には、電話線１１６、電力線１１８、およびインターネット接続１２０が含まれる。電話線１１６により、家屋１０２の居住者が電話呼出しをかけ、受けることが可能となる。電力線１１８は電力を家屋１０２に供給する。インターネット接続１２０は、家屋１０２をインターネットに接続する。インターネット接続１２０は、ケーブルモデム接続またはデジタル加入者ループ（ＤＳＬ）回線などの、高速で常時オンのブロードバンド接続でよい。インターネット接続１２０は、電話線１１６を使用する低速なダイアルアップ接続でもよい。
【００１４】
ネットワークを家屋１０２内にセットアップしてあることは、図１には具体的には示していない。このネットワークは、各コンピュータおよび各コンピュータ周辺デバイスを互いに接続するタイプのネットワークである。例えばネットワークは、専用配線または既存の電話線１１６を使用するＥｔｈｅｒｎｅｔ（登録商標）ネットワークでよい。このネットワークは、無線Ｅｔｈｅｒｎｅｔ（登録商標）ネットワーク、または他のタイプのネットワークでもよい。話をわかりやすくするために、詳細な説明において、このネットワークをバックボーンネットワークと呼ぶ。バックボーンネットワークは、例えば電力線ネットワークとは異なるものである。
【００１５】
家屋１０２の部屋それぞれは、いくつかのネットワークアダプタおよび電気のコンセント、並びに他のタイプの構成要素を有する。ガレージ１０４は、オートメーションシステムに関係する４つの構成要素を有する。ビデオカメラ１２２により、ガレージのドア１２４が開いているか、それとも閉じているかを遠隔モニタすることが可能となる。カメラ１２２は、家屋１０２内のバックボーンネットワークセットアップに直接接続されることが好ましい。ネットワークアダプタ１２８および家屋１０２全体の他のネットワークアダプタにより、バックボーンネットワークへの接続性が実現される。ガレージドアオープナー１３０は、ガレージドア１２４の開閉を制御し、ネットワークアダプタ１２８を介してバックボーンネットワークに接続される。
【００１６】
オートメーションシステムを使用して制御することができる電力デバイスは、電気のコンセント１２６、または家屋１０２全体の他の電気のコンセントにつなぐことができる。電力デバイスは電力線デバイスとも呼ばれる。電力線デバイスには、電気器具、ランプ、音声／ビデオデバイス、および電気のコンセントにつながれる他のタイプのデバイスが含まれる。これらの電力線デバイスは、一般に互いに無関係である。例えば、ランプである電力線デバイスは、クロックラジオである電力線デバイスとは、ランプとクロックラジオが互いを認識しないという点で無関係である。このランプおよびクロックラジオは、それぞれオートメーションシステムによって独立に制御することができる。
【００１７】
ガレージ１０４の外のアルコーブ１３２には、温水ヒータ１３４および炉１３６がある。オートメーションシステムに関係するのは水センサ１３８であり、水センサ１３８はネットワークアダプタ１４０を介してバックボーンネットワークに接続される。水センサ１３８はアルコーブ１３２の床上に位置し、水の存在を検出し、温水ヒータ１３４が漏れている、または破裂したことを表示することができる。
【００１８】
キッチン１０６は、同様に電気のコンセント１３８およびネットワークアダプタ１４０を有する。図１に示すように、キッチンは無線周波数（ＲＦ）デバイス１４２も含む。ＲＦデバイス１４２は、バックボーンネットワークに配線されるＲＦブリッジ１４４と通信する。ＲＦデバイス１４２の例は、検出した温度を、ＲＦ信号を介してＲＦブリッジ１４４に周期的に送る無線温度計である。私室１１４は、具体的には、ＲＦデバイス１４２が通信するネットワークアダプタ１４６を介してバックボーンネットワークに接続されたＲＦブリッジ１４４を含む。居間１０８は、ＲＦデバイス１４８も含む。ＲＦブリッジ１４４は、ＲＦデバイス１４２および１４８によって送信されたＲＦ信号を受信し、ネットワークアダプタ１４６を介して、家屋１０２中にセットアップされたバックボーンネットワークにそれを渡す。ＲＦブリッジ１４４は、ＲＦデバイス１４２および１４８のためのデータをバックボーンネットワークから受信し、ＲＦ信号に変換することによってそれをデバイス１４２および１４８に渡す。
【００１９】
ユーザアクセスポイント（ＵＡＰ）１０１はキッチン１０６中に位置する。ＵＡＰ１０１、および家屋１０２中の他のＵＡＰ１０２により、オートメーションシステムのユーザがオートメーションシステムと対話することが可能となる。ＵＡＰ１０１は、キッチン１０６の壁に取り付けられたタッチスクリーンのフラットスクリーンデバイスでよい。ユーザは、このデバイスに触れることによってオートメーションシステムに入力を与え、このデバイスの画面を閲覧することによってシステムからの出力を受ける。ＵＡＰ１０１は、コンピュータまたは他のタイプのデバイスでよい。
【００２０】
居間１０８は、ＲＦデバイス１４８に加えて、電気のコンセント１５０および１５２およびネットワークアダプタ１５４を含む。Ａ／Ｖデバイス１５６が音声、ビデオ、および制御信号を家屋１０２中にセットアップされたバックボーンネットワークを介し、それを介して送受信することができるＡ／Ｖブリッジ１５８に、音声／ビデオ（Ａ／Ｖ）デバイス１５６は接続される。Ａ／Ｖブリッジ１５８は、ネットワークアダプタ１５４を介してバックボーンネットワークに接続される。居間１０８は、家屋１０２の冷暖房システムを制御するためのサーモスタット１６０を有する。冷暖房システムには、例えば、ガレージ１０４の外のアルコーブ１３２中の炉１３６を含む。サーモスタット１６０は、家屋１０２中にセットアップされたバックボーンネットワークに直接接続されることが好ましい。ＵＡＰ１０３も居間１０８中に位置する。
【００２１】
主寝室１１０は、ネットワークアダプタ１６２および電気のコンセント１６４を有する。オートメーションシステムに特に関係するのは、デバイスアダプタ１６６が電気のコンセント１６４に直接つながれ、ランプ１６８がデバイスアダプタ１６６につながれることである。デバイスアダプタ１６６により、オートメーションシステムがランプ１６８などの非インテリジェント電力デバイスを制御することが可能となる。詳細な説明の後続の節では、デバイスアダプタ１６６の構造および使用を説明する。ＵＡＰ１０５も主寝室１１０中に位置する。
【００２２】
私室１１４は、オートメーションシステムの中核が位置する、家屋１０２の部屋である。そこには４つのコンピューティングデバイス１７４、１７６、１７８、および１８０がある。このコンピューティングデバイスは、例えばデスクトップコンピュータまたはラップトップコンピュータでよい。コンピューティングデバイス１７４はゲートウェイデバイスとして働き、コンピューティングデバイス１７４を介して、家屋１０２中にセットアップされたバックボーンネットワークは、インターネット接続１２０に接続される。デバイス１７６、１７８、および１８０により、オートメーションシステムのソフトウェアアーキテクチャがその上で分散的に実装されるハードウェアが提供される。このソフトウェアアーキテクチャを詳細な説明の後続の節で詳細に説明する。冗長構成および信頼性の目的で、複数のこのようなデバイスがある。デバイス１７４、１７６、１７８、および１８０は、ネットワークアダプタ１８２を介してバックボーンネットワークに接続し、電気のコンセント１８４を介して電力を受けることができる。
【００２３】
私室１１４などの単一の部屋ではなく、家屋１０２の全体に、４つのコンピューティングデバイス１７４、１７６、１７８、および１８０を設置することができる。これは、これらのコンピューティングデバイスのうちの１つまたは複数もＵＡＰとして働く場合に望ましい。さらに、コンピューティングデバイスのうちの１つが位置する部屋についてのサーキットブレーカが作動した場合、影響を受けるコンピューティングデバイスは１つだけである。オートメーションシステムは、他の影響を受けていないコンピューティングデバイスを介して引き続き動作できることになる。
【００２４】
私室１１４のＲＦブリッジ１４４により、キッチン１０６および居間１０８中のそれぞれＲＦデバイス１４２および１４８が、家屋１０２中にセットアップされたバックボーンネットワーク上の他のデバイスと通信することが可能となる。ＲＦブリッジ１４４は、ネットワークアダプタ１４６を介してバックボーンネットワークに接続され、電気のコンセント１８６を介して電力を受ける。私室１１４には、他の２つのブリッジ、ＩＲブリッジ１８８および電力ブリッジ１９２がある。赤外線（ＩＲ）ブリッジ１８８により、ＩＲデバイス１９０および他のＩＲデバイスがバックボーンネットワーク上のデバイスと通信することが可能となる。ＩＲデバイス１９０はＩＲ信号をＩＲブリッジ１８８に送信し、ＩＲブリッジ１８８からＩＲ信号を受信し、逆も同様である。ＩＲデバイス１９０の例には、ビデオカセットレコーダ（ＶＣＲ）および遠隔制御が含まれるが、デバイス１９０は、どんなタイプのデバイスでもよい。ＩＲ信号は、送信側と受信側との間に直線的な視野を必要とする点でＲＦ信号と異なる。ＩＲブリッジ１８８は、電気のコンセント１９４から電力を受け、ネットワークアダプタ１９６を介してバックボーンネットワークに接続される。
【００２５】
電力ブリッジ１９２により、電気のコンセントを介して家屋１０２の電力線１１８に接続されたデバイスがバックボーンネットワーク上のデバイスと通信することが可能となる。電力ブリッジ１９２は、ネットワークアダプタ１８２を介してバックボーンネットワークに接続され、電気のコンセント１９８を介して、電力を受け、かつ電力線１１８に接続されたデバイスと通信する。例えば、主寝室１１０内のランプ１６８は、オートメーションシステムによって制御し、モニタすることができる。ランプ１６８と電気のコンセント１６４間に位置するデバイスアダプタ１６６は、電力線１１８を介して信号を送受信する。電力ブリッジ１９２は、電力線１１８から、家屋１０２中にセットアップされたバックボーンネットワークに、これらの信号を転送する。
【００２６】
オートメーションシステムを、家屋内に実装したものとして図１に示したが、このシステムは、他のタイプの建物内にも同様に実装することができる。例えば、このオートメーションシステムは、オフィスビル、教会、店、モール、または他のタイプの建物内に実装することができる。このオートメーションシステムは、建物などの物理的構造とも無関係に実装することができる。図１のオートメーションシステムによって制御され、使用される構成要素は、典型的な構成要素であり、本発明を実施するためのすべてが必要であるわけではない。例えば、ＩＲデバイス１９０およびＲＦデバイス１４２および１４８は省略することができる。
【００２７】
図２に、図１のオートメーションシステムの別の観点を与える概略立体形状を示す。図２では、このオートメーションシステムをシステム２００と呼ぶ。バックボーンネットワーク２０２は、専用回線または図１の電話線１１６を介して実装される、Ｅｔｈｅｒｎｅｔ（登録商標）ネットワークであることが好ましい。システムデバイス２０４は、デバイス１７４、１７６、および１７８を含む。デバイス２０４は、ネットワークアダプタ１８２を介してバックボーンネットワーク２０２に接続する。デバイス１７４は、インターネット接続１２０に接続するゲートウェイデバイスである。ユーザアクセスポイント（ＵＡＰ）２０６は、ＵＡＰ１０１、１０３、および１０５を含む。ＵＡＰ２０６は、バックボーンネットワーク２０２に直接接続されることが好ましい。同様に、サーモスタット１６０は、バックボーンネットワーク２０２に直接接続されるが、水センサ１３８は、ネットワークアダプタ１４０を介してバックボーンネットワーク２０２に接続される。音声／ビデオ（Ａ／Ｖ）デバイス１５６は、Ａ／Ｖブリッジ１５８に接続され、Ａ／Ｖブリッジ１５８は、ネットワークアダプタ１５４を介してバックボーンネットワーク２０２に接続される。Ａ／Ｖブリッジ１５８により、Ａ／Ｖデバイス１５６がバックボーンネットワーク２０２上のデバイスと通信することが可能となる。
【００２８】
電力ブリッジ１９２は、ネットワークアダプタ１８２を介してバックボーンネットワーク２０２に接続される。図が見やすいように、同じネットワークアダプタ１８２の２つの例を図２に示す。電力ブリッジ１９２は、電気のコンセント１９８を介して電力線１１８に接続される。スマート電力デバイス２０８は、対応する電気のコンセント２１０を介して電力線１１８に直接接続し、電力ブリッジ１９２と直接通信することができる。比較すると、非インテリジェント電力デバイスは、非インテリジェント電力デバイスと対応する電気のコンセントの間にインタスティシャル（ｉｎｔｅｒｓｔｉｔｉａｌ）デバイスアダプタを必要とする。例えば、オートメーションシステムがランプ１６８を制御し、モニタするためには、ランプ１６８は、ランプ１６８と電気のコンセント１６４の間にデバイスアダプタ１６６を必要とする。図２のバックボーンネットワーク２０２の電力ブリッジ１９２の右に移ると、ガレージドアオープナー１３０は、ネットワークアダプタ１２８を介してバックボーンネットワーク２０２に接続されている。ビデオカメラ１２２は、バックボーンネットワーク２０２に直接接続される。
【００２９】
赤外線（ＩＲ）ブリッジ１８８は、ネットワークアダプタ１９６を介してバックボーンネットワーク２０２に接続され、無線周波数（ＲＦ）ブリッジ１４４は、ネットワークアダプタ１４６を介してバックボーンネットワーク２０２に接続される。ＩＲブリッジ１８８により、ＩＲデバイス１９０などのＩＲデバイス２１２が、バックボーンネットワーク２０２上のデバイスと通信することが可能となる。同様にＲＦブリッジ１４４により、ＲＦデバイス１４２および１４８などのＲＦデバイス２１４が、バックボーンネットワーク２０２上のデバイスと通信することが可能となる。
【００３０】
（ソフトウェアアーキテクチャ）
図３は、詳細な説明の前の節で説明したオートメーションシステム用のソフトウェアアーキテクチャ３０２を示すダイアグラム３００である。ソフトウェアアーキテクチャ３０２は、具体的には、３つの層、システムインフラストラクチャ層３０４、アプリケーション層３０６、およびユーザインターフェース層３０８を有する。ソフトウェアアーキテクチャ３０２は、デバイス１７６、１７８、および１８０などの、図２のシステムデバイス２０４を介して実装されることが好ましい。アーキテクチャ３０２の各層の概要を説明する。次いで、アーキテクチャ３０２はソフトウェアアーキテクチャの中心的で重要な面であるが、それをより詳細に説明する。
【００３１】
システムインフラストラクチャ層３０４は、ルックアップサービス３１０、通知／加入イベンティング構成要素３１２、システムマネージメントデーモン３１４、およびソフト状態ストア３１６を含む。ソフト状態ストア３１６は、ソフト状態変数の存続時間および複写を管理する。通知／加入イベンティング構成要素３１２により、オブジェクト、デーモン、プログラム、および他のソフトウェア構成要素が、ソフト状態ストア３１６の変化に関係するイベントに加入することが可能となる。ルックアップサービス３１０は、オートメーションシステムのデバイスおよびセンサと対話する。このことを矢印３１８で示す。具体的には、ルックアップサービス３１０は、名前ベースのルックアップサービス（ＮＢＬＳ）３２０と、属性ベースのルックアップサービス（ＡＢＬＳ）３２２を含む。ＡＢＬＳ３２２は、利用可能なデバイスのデータベースを維持し、デバイス属性に基づくクエリー（ｑｕｅｒｉｅｓ）をサポートする。デバイス属性には、とりわけ、デバイスタイプおよび物理的位置を含めることができる。ＮＢＬＳ３２０は、オブジェクトの実行中のインスタンスのデータベースを維持し、名前−オブジェクトアドレスマッピングをサポートする。システムインフラストラクチャ層３０４のシステムマネージメントデーモン３１４は、デバイスの故障を検出し、回復動作を開始する。
【００３２】
アプリケーション層３０６は、オートメーションアプリケーション３２４、デバイスオブジェクト３２６、およびデバイスデーモン３２８を含む。２つのタイプのオートメーションアプリケーション３２４、デバイス制御アプリケーションおよびセンシングアプリケーションがある。デバイス制御アプリケーションは、ユーザ要求を入力として受け取り、ルックアップサービス３１０を調べて、起動すべきデバイスおよびデバイスオブジェクト３２６を識別し、それらに対して要求を満たすように動作を実行する。デバイスオブジェクト３２６は、矢印３１８によって識別されるデバイスおよびセンサに対応する。デバイスオブジェクト３２６は、その対応するデバイスのデバイス特有の詳細およびネットワーク特有の詳細をカプセル化し、それに対してメソッド呼出しなどのインターフェースを提示する。デバイスオブジェクト３２６の例には、スナップショットを撮り、ビデオクリップを記録するためのカメラオブジェクトや、ガレージドアを操作するためのガレージドアオープナーオブジェクトが含まれる。
【００３３】
センシングアプリケーションは、環境因子をモニタし、モニタされるイベントが発生したときに動作する。センシングアプリケーションは、イベンティング構成要素３１２を介してイベントに加入する。デバイスデーモン３２８は、矢印３１８によって識別されるデバイスおよびセンサと対話し、それらに対して別々にプロキシとして動作する。例えば、センサに対するデバイスデーモンは、センサ信号をモニタし、ソフト状態ストア３１６中の適切なソフト状態変数をトリガイベントに更新することができる。
【００３４】
ユーザインターフェース層３０８は、システムインフラストラクチャ層３０４およびアプリケーション層３０６へのユーザアクセスを提供する。ユーザインターフェース層３０８は、ウェブブラウザインターフェース３３０、音声認識インターフェース３３２、およびテキストベースの自然言語構文解析インターフェース（ｎａｔｕｒａｌ  ｌａｎｇｕａｇｅ  ｐａｒｓｅｒ  ｉｎｔｅｒｆａｃｅ）３３４の３つの部分を有する。ブラウザインターフェース３３０により、ユーザが利用可能なデバイスを介してブラウズし、属性に基づいてデバイスを選択し、そのデバイスを制御することが可能となる。テキストベースの自然言語構文解析インターフェース３３４は、オートメーションシステムに対して適切な語彙に基づき、音声認識インターフェース３３２は、同じ語彙に基づく音声認識技術を使用する。
【００３５】
ユーザインターフェース層３０８は、遠隔オートメーションをサポートすることが好ましい。例えば、インターネット接続１２０が常時オン接続であるとき、ブラウザインターフェース３３０を使用して、離れた位置からオートメーションシステムにアクセスすることができる。自然言語構文解析インターフェース３３４は、Ｅメールベースの遠隔オートメーションインターフェースを実現する。Ｅメールデーモン３３６は、インターネット接続１２０を介してＥメールを周期的に取り出し、Ｅメール中に含まれるオートメーション関係の要求を解析する。デーモン３３６は、要求をオートメーションアプリケーション３２４に渡し、任意選択で、要求された動作が行われたことを確認する応答Ｅメールを送信する。周知のデジタルシグニチャおよびデータ暗号化技術を使用して、Ｅメールのセキュリティを保証することができる。ユーザがテキストメッセージ交換をサポートする携帯電話３３８を有する場合、Ｅメールデーモン３３６は、所定のイベントが発生したときにテキストメッセージでユーザに警報することができる。音声認識インターフェース３３２は、任意選択で、携帯電話３３８または他のタイプの電話器と共に使用することができる。
【００３６】
図４は、一実施形態において、デバイス、センサ、およびオブジェクトをルックアップサービス３１０にどのように登録するかを示す図４００である。登録されるデバイスおよびセンサには、図３の矢印３１８によって示されるデバイスおよびセンサが含まれる。このデバイスには、スマートデバイス２０８、固定デバイス４０２、および動的デバイス４０４が含まれる。スマートデバイス２０８は、システムと対話するためのデバイスアダプタを必要としないデバイスである。固定デバイス４０２は、その位置に永続的に取り付けられ、移動することができない。固定デバイスの例は、ガレージの壁に永続的に取り付けられる、図１および図２のガレージドアオープナー１３０である。固定デバイス４０２は、電気のコンセントおよび壁スイッチも含む。動的デバイス４０４は移動することができるデバイスである。動的デバイスの例は、ある部屋からプラグを抜いて別の部屋に移動することができる、図１および図２のランプ１６８である。登録されるオブジェクトには、図３のデバイスオブジェクト３２６、および計算オブジェクト４０６が含まれる。計算オブジェクト４０６は、何らかの特定のデバイスに対応しないが、オートメーションシステムのデーモン、アプリケーション、および他の構成要素が使用する。例示的計算オブジェクトには、言語構文解析オブジェクトおよび音声認識オブジェクトが含まれる。
【００３７】
ＡＢＬＳ管理コンソール（ａｄｍｉｎｉｓｔｒａｔｉｏｎ  ｃｏｎｓｏｌｅ）４０８を介して、ユーザは、固有のアドレスを固定デバイス４０２に割り当てる１回限りの手動タスクを実行し、このタスクは、デバイス４０２をＡＢＬＳ３２２に登録する。固有の独自のアドレスはＸ１０アドレスでよい。追加の属性を入力して、デバイス４０２と物理位置属性を関連付けることができる。例えば、固有アドレスを有することに加えて、ガレージ内の壁スイッチを「ガレージ壁スイッチ」として示すことができる。動的デバイス４０４は、そのプラグを差し込み、スイッチをオンにしたときに、デバイス４０４に対してプロキシとして動作するデバイスデーモン３２８を介してＡＢＬＳ３２２に通知される、そのデバイス属性を有する。動的デバイス４０４ついてのデバイスオブジェクト３２６は、アプリケーションがデバイス４０４を制御するよう要求するときにインスタンス化される。オブジェクト３２６はある期間持続することができ、それによって、要求の反復によるインスタンス化の反復は必要ない。デバイスオブジェクト３２６は、ＮＢＬＳ３２０によってインスタンス化される。スマートデバイス２０８は、それ自体のＡＢＬＳ３２２への登録を実行する。計算オブジェクト４０６は、ＮＢＬＳ３２０によってインスタンス化され、ＡＢＬＳ３２２に登録するために、計算オブジェクトインストーラ４２０と呼ばれるソフトウェア構成要素またはサービスを必要とする。
【００３８】
図５は、一実施形態がオブジェクト５０２を２つの異なる方式でどのようにアドレス指定するかを示す図５００である。オブジェクト５０２は、図４のデバイスオブジェクト３２６のうちの１つ、または図４の計算オブジェクト４０６のうちの１つとすることができる。オブジェクト５０２は、１つまたは複数の同期アドレス５０４を有し、１つまたは複数の非同期アドレス５０６を有する。同期アドレス５０４は、マーシャルド分散オブジェクトインターフェースポインタの形態のアドレス、またはオブジェクト５０２とリアルタイム通信を可能にする別のタイプの参照を含むことができる。非同期アドレス３０６は、キュー名、キューへのマーシャルしたハンドル、または他のアドレスの形態でよい。非同期アドレス３０６は、オブジェクト５０２が一時的に利用不能であるか、または非常にビジーであるとき、あるいは同期通信が普通なら望ましくないときに、オブジェクト５０２と非同期に通信するために使用される。
【００３９】
図４に戻り、要約すると、ルックアップサービス３１０のＡＢＬＳ３２２は、利用可能なデバイスおよびセンサのデータベースを維持する。ＡＢＬＳ３２２は、属性の組合せに基づくクエリーをサポートし、そのクエリーにマッチするデバイスおよびセンサの固有の名前を返す。デバイスおよびセンサの固有のアドレスの代わりに、デバイスおよびセンサの属性および物理的位置によってその識別を可能にすることにより、ＡＢＬＳ３２２によってユーザフレンドリなデバイス命名が可能となる。例えばユーザは、デバイスを、その固有のアドレスによって識別する代わりに、「キッチンのガレージ側のランプ」として識別することができる。ルックアップサービス３１０のＮＢＬＳ３２０は、固有の名前を、その名前によって識別されるオブジェクトインスタンスにマッピングする。ＮＢＬＳ３２０は、任意選択で、固有の名前の複数のオブジェクトインスタンスへのマッピングを可能にするように拡張可能である。ＡＢＬＳ３２２もＮＢＬＳ３２０も、図３のソフト状態ストア３１６に基づくので、オブジェクト障害や、安全でない終了に対してロバストである。
【００４０】
図６は、ソフト状態ストア（ＳＳＳ）３１６の一実施形態をより詳細に示す図６００である。ＳＳＳ３１６は、永続的不揮発性ストア６０８および揮発性ストア６０６を使用する。永続的ストア６０８は、揮発性ストア６０６に加えて、システムクラッシュなどの障害にわたってソフト状態変数を保存するために使用される。永続的ストア６０８は、ハードディスクドライブ、フラッシュメモリなどの不揮発性メモリ、または他の不揮発性ストレージでよい。揮発性ストア６０６は、ランダムアクセスメモリなどの揮発性メモリ、または他の揮発性ストレージでよい。
【００４１】
ＳＳＳ３１６は、最終的に、ハートビート６０２を受け取り、それを永続的ストア６０８または揮発性ストア６０６の一方にソフト状態変数に格納する。ハートビート６０２は、デバイス、センサ、オブジェクト、およびデーモンからの周期的リフレッシュであり、したがってオートメーションシステムは、それらがまだ動作していることを感知する。ハートビート６０２は、デバイスハートビート６１０、センサハートビート６１２、オブジェクトハートビート６１４、およびデーモンハートビート６１６を含む。ハートビート６０２のリフレッシュレートは、そのタイプによって変化する。デーモンハートビート６１６は、数秒の間隔にわたって受信することができる。オブジェクトハートビート６１４は、数十秒〜数分の間隔にわたって受信することができる。センサハートビート６１２は、数分〜数時間の間隔にわたって受信することができる。デバイスハートビート６１０は、数時間〜数日の間隔にわたって受信することができる。
【００４２】
デバイスハートビート６１０およびセンサハートビート６１２は、ＡＢＬＳ３２２を介してＳＳＳ３１６によって受信され、オブジェクトハートビート６１４は、ＮＢＬＳ３２０を介してＳＳＳ３１６によって受信される。ＳＳＳ３１６は、デーモンハートビート６１６を直接受信する。エンティティがリフレッシュレートによって必要とされるようなハートビートを送信しないとき、エンティティは、最終的にタイムアウトになり、ＡＢＬＳ３２２およびＮＢＬＳ３２０から削除される。この状況でのエンティティは、デバイス、センサ、オブジェクト、またはデーモンを指す。
【００４３】
ＳＳＳ３１６は、ソフト状態変数チェックポイント機能を実行することが好ましい。所与のリフレッシュレートしきい値に対して、そのしきい値を超えて発生し、したがって高周波数で更新されるハートビートは、揮発性ストア６０６中にとどまり、オーバヘッドを減少させる。ＳＳＳ３１６の障害からの、これらの高周波数ハートビートの回復は、新しいリフレッシュを介する。逆に、しきい値未満で発生し、したがって低周波数で更新されるるハートビートは、永続的ストア６０８中で持続する。ＳＳＳ３１６の障害からのこれらの低周波数ハートビートは、ストア６０８中の永続的ソフト状態変数の回復を介する。これは、次のハートビートに対する待ちが非常に長くかかるからである。ＳＳＳ３１６のダウン時間は、ソフト状態変数に対する欠落リフレッシュとして処理されることが好ましい。
【００４４】
通知／加入イベンティング構成要素３１２により、ＳＳＳ３１６によって維持されるソフト状態変数の変更、追加、または削除から生じるイベントへの加入が可能となる。サブスクライバは、アプリケーション、デーモン、およびオートメーションシステムの他のソフトウェア構成要素を含むことができる。イベンティング構成要素３１２は、ＳＳＳ３１６に対する変更の種類がその対応するイベント加入にマッチするときに、イベントをサブスクライバに送信する。構成要素３１２は、ソフト状態変数の変更をＳＳＳ３１６から受信する。これらの変更より、構成要素３１２は必要に応じてイベントを作成する。
【００４５】
図７は、図３のシステムマネージメントデーモン３１４の一実施形態をより詳細に示す図７００である。具体的には、システムマネージメントデーモンは電力線モニタデーモン７０２を含む。電力線モニタデーモン７０２は、信頼性、セキュリティ、および電力線を使用するオートメーションシステムデバイスに伴う他の問題を検出する。デーモン７０２は、受け入れられない電力線活動状態を検出するためのパターンベースの検出、受け入れられる電力線活動状態を検出するためのモデルベースの検出、またはその両方を使用することができる。パターンベースの検出は、検出した場合にイベントをトリガする、受け入れられない電力線パターンのデータベースを利用する。例えば欠陥のあるデバイスおよび外部干渉は、無意味な反復またはコマンドのインターリービングを発生する可能性がある。比較によって、モデルベースの検出は、受け入れられる電力線パターンのモデルを利用する。モデルと一致しない電力線パターンもイベントをトリガする。
【００４６】
図８は、一実施形態においてどのように電力線モニタデーモン７０２を使用して電力線１１８に関する問題を検出するかを示す図８００である。デーモン７０２は、侵入８０２、異常な動き８０４、および干渉８０６に起因する問題に関して電力線１１８をモニタする。デーモン７０２は、パターンデータベース８０８中に格納された、受け入れられない電力線パターンに対して、電力線１１８からのパターンをマッチする。デーモン７０２も、受け入れられる電力線パターンのパターンモデル８１０に対してパターンをテストする。データベース８０８中に格納された、受け入れられない電力線パターンに対するパターンのマッチングにより正マッチが生じ、または受け入れられる電力線パターンのモデル８１０に対するパターンのテスティングにより負のテストが生じた場合、デーモン７０２はイベントを生成する。このイベントは、受け入れられないパターンが電力線１１８上で検出された状況に対応する。他のデーモン、オブジェクト、およびプログラムは、図８には具体化に示していないが、イベンティング構成要素３１２を介してイベントに加入することができる。
【００４７】
モニタデーモン７０２は、すべての検出した電力線パターンのログファイル８１２を維持する。ログファイル８１２中に格納されたパターンは、受け入れられる電力線パターンと、受け入れられない電力線パターンのどちらも含む。ユーザは分析ツール８１４を使用して、新しい受け入れられない電力線パターンをデータベース８０８に加えるかどうかを、ログファイル８１２中に格納されたパターンに基づいて決定することができる。分析ツール８１４は、受け入れられる電力線パターンのモデル８１０を修正すべきかどうかを、ログファイル８１２中に格納されたパターンに基づいて決定するためにも使用することができる。
【００４８】
システムマネージメントおよび他のデーモンごとに、冗長構成の目的で、デーモンの複数のインスタンスがあってもよい。例えば電力線モニタデーモンのインスタンスは、オートメーションシステムが全体に実装されているシステムデバイスのそれぞれに常駐することができる。システムデバイスのうちの１つに障害が発生した場合、この冗長構成によりオートメーションシステム自体に障害が発生しないことが保証される。同じデーモンのいくつかのインスタンスに対して、リーダデーモンインスタンスを決定しなければならない。リーダデーモンインスタンスはアクティブインスタンスであり、要求に対してデーモンに応答する。他のインスタンスは応答しない。リーダインスタンスに障害が発生した場合、別のインスタンスが新しいリーダインスタンスになる。
【００４９】
図９は、一実施形態においていくつかのデーモンインスタンスのうちのどれがリーダインスタンスであるかを判定する仕方を示す方法９００の流れ図である。方法９００は、具体的には、弱いリーダ選出手法である。リーダインスタンスだけが、それ自体がリーダインスタンスであることを認識しているという点で、この手法は弱い。他のインスタンスは、それ自体がリーダインスタンスでないということしか認識していない。弱いリーダ選出により、デーモンインスタンス間で必要な調整が低減される。デーモンに対して行われた要求は、デーモンのすべてのインスタンスに対するマルチキャストであるが、リーダインスタンスだけが応答する。
【００５０】
９０２では、エージ情報（ａｇｅ  ｉｎｆｏｒｍａｔｉｏｎ）がデーモンのすべてのインスタンス間で交換される。エージ情報は、例えば、各インスタンスがどのくらいオンラインであるかを含むことができる。各インスタンスで９０４が実行される。具体的には、９０６では、各デーモンインスタンスは、９０２での他のデーモンインスタンスから受け取ったエージ情報に基づいて、そのデーモンインスタンス自体が最も古いインスタンスであるかどうかを判定する。最も古いインスタンスであるとそのデーモンインスタンスが判定した場合、９０８では、そのデーモンインスタンス自体がリーダインスタンスであると判定する。そうでない場合、９１０で、そのデーモンインスタンス自体はリーダインスタンスではないと判定する。この方法９００は、矢印９１２によって示すように周期的に反復される。さらに、線９１４によって示すように、リーダインスタンスに影響を与える可能性がある障害が発生したことをいずれかのデーモンインスタンスが検出したとき、９０４は再び直ちに実行される。
【００５１】
詳細な説明の本節で説明したソフトウェアアーキテクチャのまとめとして、図１０はアーキテクチャの高レベル図を示す図１０００である。ソフトウェアアーキテクチャ３０２は、電力線１１８とインターネット接続１２０の間に常駐する。アーキテクチャ３０２は、電力線１１８に接続されたデバイスにアクセスし、それを制御する方式を要約する。インターネット接続１２０は、アーキテクチャ３０２を介して、電力線１１８に接続されたデバイスのリモートアクセス、オフサイトアクセス、および制御を実現する。通知経路１００８は、電力線１１８に接続されたデバイスからの通知がソフトウェアアーキテクチャ３０２に上ることを示す。この通知は、デバイスのリモートアクセス、オフサイトアクセス、および制御の場合にインターネット接続１２０に上ることもできる。制御経路１０１０は、デバイスの制御がインターネット接続１２０から、またはアーキテクチャ３０２のいずれかで生じ、電力線１１８を下ってデバイスに達することを示す。
【００５２】
(オートメーションシステムの例示的オペレーション）
図１１は、詳細な説明の先行する節で説明したオートメーションシステムの例示的オペレーションを示す方法１１００の流れ図である。この例示的オペレーションは、離れたオフサイトユーザがガレージドアを閉じる要求をＥメールで送信し、その要求を実行したという確認応答を応答Ｅメールによって受信することに関係する。１１０２では、オートメーションシステムが、ガレージドアクローズコマンドを実行する要求を、インターネットを介してＥメールで受け取る。例えば図３を参照すると、Ｅメールデーモン３３６は、その要求を含むＥメールを、インターネット接続１２０を介して受信する。Ｅメールデーモン３３６は自然言語構文解析インターフェース３３４を使用して、Ｅメールのテキストからコマンドを取り出し、そのコマンドをオートメーションアプリケーション３２４の適切なアプリケーションに中継する。
【００５３】
図１１に戻ると、１１０４では、ガレージ内のビデオカメラが動画カメラである場合は記録を開始し、静止画カメラである場合はビフォアピクチャ（ｂｅｆｏｒｅ  ｐｉｃｔｕｒｅ）を撮るようにガレージ内のビデオカメラは指示される。この記録の開始、およびビフォアピクチャの撮影は、一般に、ビデオカメラを最初に実施すると呼ばれる。例えば、図１を参照すると、ビデオカメラ１２２は、ガレージ１００４内のガレージドア１２４に向けられる。ビデオカメラ１２２は、ビデオクリップの記録を開始し、またはガレージドア１２４のビフォアピクチャを撮る。適切なオートメーションアプリケーションは、その対応するデバイスオブジェクトを介して、このアクションを実行するようビデオカメラ１２２に指示する。カメラ１２２に対するデバイスオブジェクトは、図３のデバイスオブジェクト３２６のうちの１つである。図１１に戻ると、１１０６では、ガレージドアを閉じるコマンドが実行される。例えば図１を参照すると、ガレージドアオープナー１３０を使用してガレージドア１２４が閉じられる。適切なアプリケーションは、オープナー１３０に対するデバイスオブジェクトに、このコマンドを実行するように指示する。オープナー１３０に対するデバイスオブジェクトは、図３のデバイスオブジェクト３２６のうちの１つである。
【００５４】
図１１に戻ると、１１０８では、ガレージ内のビデオカメラが動画カメラであるか、それとも静止画カメラであるかに応じて、それぞれ記録を停止し、またはアフタピクチャ（ａｆｔｅｒ  ｐｉｃｔｕｒｅ）を撮るようにガレージ内のビデオカメラは指示される。この記録の停止、またはアフタピクチャの撮影は、一般に、ビデオカメラを２回目に実施すると呼ばれる。例えば、図１を参照すると、カメラ１２２は、カメラ１２２に対するオブジェクトを介して適切なアプリケーションによって指示されたときに、ビデオクリップの記録を停止し、またはガレージドア１２４のアフタピクチャを撮る。この結果がビデオクリップである場合、このクリップは、ガレージドアクローズコマンドが実行されたときに、ガレージドアが開いた状態から閉じた状態に動くところを示す。この結果がビフォアピクチャおよびアフタピクチャである場合、ガレージドアクローズコマンドが実行された後に、ビフォアピクチャは、ガレージドアが開いているところを示し、アフタピクチャは、ガレージドアが閉じていることを示す。
【００５５】
図１１に戻ると、１１１０では、離れたオフサイトユーザは、応答Ｅメールによる確認応答（ｃｏｎｆｉｒｍａｔｏｎ  ｒｅｓｐｏｎｃｅ）の送信を受ける。例えば図３を参照すると、オートメーションアプリケーション３２４の適切なアプリケーションは、Ｅメールデーモン３３６を介し、インターネット接続１２０を介して、確認応答Ｅメールをユーザに送信する。応答Ｅメールは、記録したビデオクリップ、あるいは撮影したビフォアピクチャおよびアフタピクチャを含む。代替実施形態では、タイムスタンプが、ビデオクリップのフレーム、あるいはビフォアピクチャおよびアフタピクチャ上にスタンプされる。このタイムスタンプは、ガレージドアクローズコマンドが実行された間の相対時間を示す。別の代替実施形態では、タイムスタンプは、デジタルにクリップまたはピクチャ中に透かし入れされるので、悪意を持った改ざん、または他の変更を検出することができる。
【００５６】
ここで説明した例示的オペレーションは、オートメーションシステムによって達成することができる独立検証の１つのタイプである。独立検証により、ユーザは、所望のデバイスに関する所望のコマンドが無事に実行されたことを見ることができる。ビデオ確認は独立検証の１つのタイプである。独立検証は、音声確認や、他のタイプの確認も含むことができる。独立検証は、図３のユーザインターフェース層３０８内で実行することができる。
【００５７】
（デバイスアダプタ）
詳細な説明の前の節で、図１および図２を参照しながら説明したオートメーションシステムは、ランプ１６８を電気のコンセント１６４に接続するデバイスアダプタ１６６を含む。デバイスアダプタ１６６などのデバイスアダプタは、一般に、ランプ１６８などの非インテリジェントデバイスをオートメーションシステム内で制御し、アクセスすることを可能にするために利用される。具体的には、デバイスアダプタは、非インテリジェントデバイスおよびその位置をオートメーションシステムに通知する。
【００５８】
デバイスアダプタ１６６は、図３の属性ベースのルックアップサービス（ＡＢＬＳ）３２２と共に使用される。ユーザ管理を最小にするために、ユーザが制御したい家屋内のあらゆる電気のコンセントにアドレスを割り当て、そのアドレスを物理的位置属性の固有セットにマッピングすることによって、１回限りの構成タスクが実行される。新しいデバイスがデバイスアダプタを介して電気のコンセントにつながれるとき、そのデバイスタイプおよびコンセントアドレス（ｏｕｔｌｅｔ  ａｄｄｒｅｓｓ）が、電力線を介してオートメーションシステムに通知される。１回限りの構成タスクを実行するために、ユーザは、各電気のコンセントまたは壁のスイッチに固有アドレスを割り当て、物理的位置とＡＢＬＳ３２２中のアドレスの間のマッピングを記録する。例えば、アドレス「Ａ５」が１階のキッチンの裏庭側のコンセントに割り当てられるとき、エントリ「アドレス＝Ａ５；階＝１；部屋＝キッチン；サイド＝裏庭」が記録される。電気のコンセントにアドレスが割り当てられた後、そのコンセントにつながれたデバイスアダプタもそのアドレスに設定される。
【００５９】
図１２は、デバイスアダプタ１６６の一実施形態を示す図１２００をより詳細に示す図である。システムに非インテリジェントデバイスを加えるために、１回限りの構成タスクを実行した後、ユーザは、デバイスアダプタ１６６の電気のコンセント１２０４にデバイスをつなぎ、アダプタ１６６のプラグ１２０２を電気のコンセントにつなぐ。ユーザは、アダプタ１６６の制御１２０６を調整することによって、コンセントのアドレスにマッチするようにアダプタ１６６のアドレスを設定する。ユーザは、制御１２０８および１２１０をそれぞれ用いて、デバイスについてのデバイスコードおよびモジュールコードも設定する。デバイスコードはデバイスタイプコードの定義済みセットから選択される。モジュールコードは、デバイスを制御するためにデバイスオブジェクトをそこからインスタンス化すべきデバイスオブジェクトクラスを指定する。図１２に示すように、制御１２０６は２つのダイアルスイッチを含むが、制御１２０８および１２１０はそれぞれ１つのダイアルスイッチを含む。他のタイプの制御、とりわけスライダスイッチおよびキーパッドなどを使用することもできる。あるいは、制御１２０６、１２０８、および１２１０は、コンピュータを介してリモートで設定される内部制御でもよい。
【００６０】
アダプタ１６６のコンセント１２０４につながれた非インテリジェントデバイスがオンにされたとき、デバイスアダプタ１６６は、デバイスコード、モジュールコード、およびアドレスを、拡張コードの形態で電力線を介して同報通信する。アドレスおよび拡張コードは、周知のＸ１０プロトコルに適合させることができる。通知を受信する図２のシステムデバイス２０４のサブセットは、デバイスを図３のＡＢＬＳ３２２に登録し、図３のそれ自体のデバイスデーモン３２８を、デバイスについてのプロキシとして登録する。次いでこのプロキシを利用して、図３の適切なデバイスオブジェクト３２６をインスタンス化し、デバイスを制御することができる。
【００６１】
デバイスアダプタ１６６は、プロキシがそのデバイスについてのソフト状態変数をリフレッシュすることができるように、図３のソフト状態ストア（ＳＳＳ）３１６に周期的通知を送信することについて責任を負う。アダプタ１６６からデバイスが遮断され、またはデバイスのプラグが抜かれたとき、アダプタ１６６は、デバイスがシステムから離れたことを通知する。アダプタ１６６自体のプラグが抜かれたとき、周期的リフレッシュが停止し、図３のＡＢＬＳ３２２中のデバイスのエントリは、最終的にタイムアウトになる。ユーザがデバイス上の電源スイッチを使用することによってデバイスおよびアダプタ１６６の両方をオンにすることができるように、アダプタ１６６は手動オーバーライド機能を含むことが好ましい。
【００６２】
図１３は、一実施形態がデバイスアダプタ１６６をどのように実装するかを示す図１３００である。アダプタ１６６は線１３０２によって電力線１１８に接続される。非インテリジェントデバイス１３１４は、線１３０４によってアダプタ１６６に接続される。非インテリジェントデバイス１３１４は、例えば図１および図２のランプ１６８でよい。アダプタ１６６は、受信機１３０６、送信機１３０８、センサ１３１０、および論理メカニズム１３１２を有する。受信機１３０６および送信機１３０８は、非インテリジェントデバイス１３１４を制御するために使用される。受信機１３０６は電力線１１８からコマンドを受信し、Ｘ１０コマンドを受信するＸ１０受信機でよい。受信機１３０６は、受信したコマンドに応じて、電力線１１８からデバイス１３１４への電気を制御する。受信機１３０６は、アダプタ１６６が電気のコンセントにつながれて電力を受けているかどうかを示すオンオフステータスを有する。オンオフステータスは、オン状態およびオフ状態の２つの状態を有する。オン状態では、アダプタ１６６は電力を受けており、一方オフ状態では、アダプタ１６６は電力を受けていない。送信機１３０８は、論理メカニズム１３１２によって指令されたときに、電力線１１８を介してデバイス１３１４の結合および離脱を通知する。受信機１３０６および送信機１３０８は、単一のトランシーバに統合することができる。
【００６３】
論理メカニズム１３１２は、デバイス１３１４の離脱および結合を通知するよう送信機１３０８にいつ指令するかを決定する。デバイス１３１４は、オン状態およびオフ状態の２つの状態を有するオンオフステータスも有する。受信機１３０６がオンであるが、センサ１３１０がデバイス１３１４に流れる電気を検出していないことをメカニズム１３１２が検出したとき、メカニズム１３１２は、デバイス１３１４の離脱を通知するように送信機１３０８に指令する。これは、アダプタ１６６が電気のコンセントにつながれ、電力を受けており、かつオンであるが、デバイス３３１４がオフである状況に対応する。受信機１３０６がオンであり、センサ１３１０がデバイス１３１４に流れる電気を検出したことをメカニズム１３１２が検出したとき、このメカニズムは、デバイス１３１４の結合を通知するように送信機１３０８に指令する。これは、アダプタ１６６が電気のコンセントにつながれ、電力を受けており、かつオンであり、デバイス１３１４もオンである状況に対応する。
【００６４】
センサ１３１０は、デバイスがオンであるか、オフであるか、それとも破壊されているかを判定するために使用される。センサ１３１０は、電流がデバイス１３１４に流れているかどうかを検出する電流センサでよい。論理メカニズム１３１２は、ソフトウェア、ハードウェア、あるいはソフトウェアおよびハードウェアの組合せとして実装することができる。論理メカニズム１３１２は、デバイス１３１４の結合および離脱を通知するよう送信機１３０８にいつ指令するかについて決定を行う状態マシンでよい。
【００６５】
（例示的コンピュータ化デバイス）
本発明は、１つまたは複数のコンピュータ化デバイスを有するコンピュータ化環境内で実装することができる。図１４のダイアグラムに、例示的コンピュータ化デバイス１４００を示す。デバイス１４００は、図２のシステムデバイス２０４のうちの１つまたは複数、または図２のユーザアクセスポイント２０６のうちの１つまたは複数を実装することができる。例示的コンピュータ化デバイス１４００は、例えばデスクトップコンピュータ、ラップトップコンピュータ、または携帯情報端末（ＰＤＡ）でよい。本発明は、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能なコンシューマ向け電子機器、ネットワークコンピュータ、ミニコンピュータ、およびメインフレームコンピュータを含む、他のコンピュータシステム構成でも実施することができる。本発明は、通信ネットワークを介してリンクされる遠隔処理デバイスによってタスクが実行される分散コンピューティング環境で実施することができる。
【００６６】
デバイス１４００は、以下の構成要素のうちの１つまたは複数を含む。すなわち、プロセッサ１４０２、メモリ１４０４、ストレージ１４０６、通信構成要素１４０８、入力デバイス１４１０、ディスプレイ１４１２、および出力デバイス１４１４である。デバイス１４００の特定の具体化について、これらの特定の構成要素のうちの１つまたは複数は存在しない可能性がある。例えば、ＰＤＡは出力デバイス１４１４を有さない可能性がある。デバイス１４００の説明は、このようなデバイス内に一般に常駐する構成要素のタイプの概要として使用するべきであって、限定的な説明または網羅的な説明を示すものではない。
【００６７】
プロセッサ１４０２は、単一の中央演算処理デバイス（ＣＰＵ）、または一般に並列処理環境と呼ばれる複数の処理デバイスを含むことができる。メモリ１４０４は、読取り専用メモリ（ＲＯＭ）および／またはランダムアクセスメモリ（ＲＡＭ）を含むことができる。ストレージ１４０６は、固定媒体ストレージおよび取外し可能媒体ストレージなど、どんなタイプのストレージでもよい。前者の例には、ハードディスクドライブ、並びにフラッシュメモリまたは他の不揮発性揮発性メモリが含まれる。後者の例には、テープドライブ、ＣＤ−ＲＯＭドライブなどの光ドライブ、およびフロッピー（登録商標）ディスクドライブが含まれる。ストレージおよびその関連するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶が実現される。データを格納することができ、コンピュータによってアクセス可能などんなタイプのコンピュータ可読媒体も使用することができる。
【００６８】
デバイス１４００は、ネットワーク環境で動作することができる。ネットワークの例には、インターネット、イントラネット、エクストラネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）が含まれる。デバイス１４００は、デバイス１４００中に存在し、または取り付けることができる通信構成要素１４０８を含むことができる。構成要素１４０８は、ネットワークカード、Ｅｔｈｅｒｎｅｔ（登録商標）カード、アナログモデム、ケーブルモデム、デジタルサブスクライバループ（ＤＳＬ）モデム、およびサービス総合デジタル網（ＩＳＤＮ）アダプタのうちの１つまたは複数でよい。入力デバイス１４１０は、それによってユーザがデバイス１４００に入力を与えるメカニズムである。このようなデバイス１４１０は、キーボード、ポインティングデバイス、マイクロフォン、ジョイスティック、ゲームパッド、およびスキャナを含むことができる。ディスプレイ１４１２は、デバイス１４００が一般にユーザに出力を示す手段である。ディスプレイ１４１２は、陰極線管（ＣＲＴ）ディスプレイデバイスおよびフラットパネルディスプレイ（ＦＰＤ）ディスプレイデバイスを含むことができる。デバイス１４００は、他の出力デバイス１４１４を介してユーザに出力を供給することができる。出力デバイス１４１４は、スピーカ、プリンタ、および他のタイプのデバイスを含むことができる。
【００６９】
ここで説明した方法は、デバイス１４００上にコンピュータ実装することができる。コンピュータ実装化方法は、少なくとも一部がコンピュータ上で動作する１つまたは複数のプログラムとして実現されることが望ましい。このプログラムは、コンピュータのプロセッサによって、メモリなどのコンピュータ可読媒体から実行することができる。このプログラムは、別のコンピュータ上での配布、インストール、および実行のために、フロッピー（登録商標）ディスクまたはＣＤ−ＲＯＭなどのマシン可読媒体上に格納可能であることが望ましい。このプログラムは、コンピュータシステム、コンピュータ、またはコンピュータ化デバイスの一部とすることができる。
【００７０】
（まとめ）
本明細書では特定の実施形態を例示し、説明したが、同じ目的を達成するために計算されるどんな配置でも、示した特定の実施形態を置換できることを当業者は理解されたい。この応用例は、本発明のどんな適合形態または変形形態もカバーするものとする。したがって、本発明は特許請求の範囲およびその均等物によってのみ限定されるものとする。
【図面の簡単な説明】
【図１】  本発明のオートメーションシステムを実装することができる例示的な家の絵画図である。
【図２】  図１のオートメーションシステムの立体図である。
【図３】  図１および図２のオートメーションシステムを実装することができるソフトウェアアーキテクチャの図である。
【図４】  本発明の実施形態による、デバイス、センサ、および物体がどのように図３のソフトウェアアーキテクチャのルックアップサービスに登録されるかを示す図である。
【図５】  本発明の実施形態による、図４の物体を２つの異なる方式でどのようにアドレス指定することができるかを示す図である。
【図６】  本発明の実施形態による、図３のソフト状態ストアをより詳細に示す図である。
【図７】  本発明の実施形態による、図３のシステムマネージメントデーモンの一例として電力線モニタデーモンを示す図である。
【図８】  本発明の実施形態による、図７の電力線モニタデーモンが電力線からのパターンをどのように検出するかを示す図である。
【図９】  本発明の実施形態による、いくつかのデーモンインスタンスが、どのインスタンスがリーダインスタンスであるかをそれによって判定する弱いリーダ選出方法の流れ図である。
【図１０】  図３のソフトウェアアーキテクチャの抽象的高レベル図を示す図である。
【図１１】  本発明の実施形態のオートメーションシステムの例示的オペレーションを示す方法の流れ図である。
【図１２】  本発明の実施形態による、図１および図２のデバイスアダプタをより詳細に示す図である。
【図１３】  本発明の実施形態に従って、図１および図２のデバイスアダプタをどのように実装することができるかを示す図である。
【図１４】  本発明を実装するために使用することができる例示的コンピュータ化デバイスの図である。
【図１】
0004607402.tif 000002
【図２】
0004607402.tif 000003
【図３】
0004607402.tif 000004
【図４】
0004607402.tif 000005
【図５】
0004607402.tif 000006
【図６】
0004607402.tif 000007
【図７】
0004607402.tif 000008
【図８】
0004607402.tif 000009
【図９】
0004607402.tif 000010
【図１０】
0004607402.tif 000011
【図１１】
0004607402.tif 000012
【図１２】
0004607402.tif 000013
【図１３】
0004607402.tif 000014
【図１４】
0004607402.tif 000015