JP2016526221A - 学習デバイスをティーチングするためのシグナリングデバイス - Google Patents

学習デバイスをティーチングするためのシグナリングデバイス Download PDF

Info

Publication number
JP2016526221A
JP2016526221A JP2016515137A JP2016515137A JP2016526221A JP 2016526221 A JP2016526221 A JP 2016526221A JP 2016515137 A JP2016515137 A JP 2016515137A JP 2016515137 A JP2016515137 A JP 2016515137A JP 2016526221 A JP2016526221 A JP 2016526221A
Authority
JP
Grant status
Application
Patent type
Prior art keywords
tea
device
teaching
learning
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2016515137A
Other languages
English (en)
Other versions
JP2016526221A5 (ja )
Inventor
キャノイ、マイケル−デイビッド・ナカヨシ
コネルツ、アンネ・カトリン
チョー、キエット
モハン、シッダルス
Original Assignee
クゥアルコム・インコーポレイテッドQualcomm Incorporated
クゥアルコム・インコーポレイテッドQualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06NCOMPUTER SYSTEMS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass
    • G06N99/005Learning machines, i.e. computer in which a programme is changed according to experience gained by the machine itself during a complete run

Abstract

ティーチャシグナリングデバイスによって、学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得するためのオペレーションと、ティーチャシグナリングデバイスによって、取得された目的データに基づきティーチングルーチンを生成するためのオペレーションと、ティーチャシグナリングデバイスによって、生成されたティーチングルーチンに基づき学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されティーチング信号をブロードキャストするためのオペレーションとを備える一実施形態の方法を含む、非集中システム内の学習デバイスに対してプロキシティーチングを実行するための様々な実施形態が提供される。他の実施形態は、リフレックス情報を学習デバイスに要求するか、または学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることによって目的データを取得し得る。他の実施形態は、付近の学習デバイスを識別するため発見信号をブロードキャストすることと、生成されたティーチングルーチンの目的が達成され得ないときにティーチングルーチンを修正することとを含み得る。他の実施形態は、ティーチング信号をブロードキャストするかどうかを決定するために認可要求をユーザデバイスに送信することを含み得る。

Description

関連出願
[0001]本出願は、すべての目的に関して内容全体が参照により本明細書に組み込まれている、2013年5月24日に出願した米国仮出願第61/827,141号、名称「A Method and Apparatus for Continuous Configuration of a Device」の優先権の利益を主張するものである。

[0002]本出願は、学習デバイス(learning device)に関するさらなる詳細について参照により内容全体が組み込まれている本出願と同時出願されている米国特許出願第14/286,244号、名称「Learning Device With Continuous Configuration Capability」にも関係する。

[0003]コンピュータプログラマーは、典型的には、デバイスが新しい挙動を実行することが必要になるたびにプログラム可能なデバイス(すなわち、スマートデバイス)を再プログラムしなければならない。プログラム可能なデバイスは、典型的には、デバイスとインターフェースする専用プログラマーインターフェースをプログラマー(またはユーザ)が使用してデバイスに新しいタスクをティーチングすることを必要とする。しかしながら、プログラマーインターフェースがあっても、プログラム可能なデバイスの再構成および再プログラミングは、デバイスに新しい挙動をティーチングするためにプログラマーインターフェースに関連付けられている骨の折れるコンピュータコードを書く上で専門的知識を必要とし得る。エキスパートがコードを書くのをスケジュールすることは、再プログラミングがすぐに成し遂げられることが滅多にないことを意味し、適切な変更を行うためにそのようなエキスパートをスタッフとして確保しておくか、またはコンサルタントを雇用することが必要になり得るので費用がかかることがある。そのため、プログラム可能なデバイス上で新しい挙動をプログラムすることは、単純な効率の良い活動ではない。エキスパートを必要とすることなく学習デバイスに新しい挙動をティーチングするための単純ですぐに使えるメカニズムが必要である。

[0004]様々な実施形態が、ティーチャシグナリングデバイス(teacher signaling device)が非集中システム内の学習デバイスに対するプロキシティーチング(proxy teaching)を実行するためのシステムと、デバイスと、非一時的プロセッサ可読記憶媒体と、方法とを提供する。ティーチャシグナリングデバイスのプロセッサによって実行され得る一実施形態の方法は、学習デバイスのうちの1つまたは複数のものの活動に関係する目的データを取得することと、取得された目的データに基づきティーチングルーチンを生成することと、生成されたティーチングルーチンに基づき学習デバイスのうちの1つまたは複数のものをティーチングするように構成されたティーチング信号をブロードキャストすることとを含み得る。いくつかの実施形態では、学習デバイスのうちの1つまたは複数のものの活動に関係する目的データを取得することは、学習デバイスからリフレックス(reflex)情報を要求する信号をブロードキャストすることと、学習デバイスからリフレックス情報を含む応答メッセージを受信することと、受信された応答メッセージからのリフレックス情報から目的データを取得することとを含み得る。いくつかの実施形態では、学習デバイスのうちの1つまたは複数のものの活動に関係する目的データを取得することは、学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、インターセプトされたイベントレポートメッセージに基づき目的データを取得することとを含み得る。

[0005]いくつかの実施形態では、この方法は、学習デバイスの各々に対する少なくとも1つのデバイスタイプを指示する学習デバイスからの応答を識別することを要求する発見信号をブロードキャストすることと、ブロードキャストされた発見信号に応答して学習デバイスから識別応答を受信することと、生成されたティーチングルーチンの目的が達成され得るかどうかを受信された識別応答に基づき決定することと、生成されたティーチングルーチンを、生成されたティーチングルーチンの目的が達成され得ることを受信された識別応答に基づき決定したことに応答して修正することとをさらに含み得る。いくつかの実施形態では、この方法は、認可要求をユーザデバイスに送信することと、送信された認可要求に応答して認可がユーザデバイスから受信されたかどうかを決定することとをさらに含むものとしてよく、ここにおいて、生成されたティーチングルーチンに基づき学習デバイスのうちの1つまたは複数のものをティーチングするように構成されたティーチング信号をブロードキャストすることは、認可がユーザデバイスから受信されたと決定したことに応答して生成されたティーチングルーチンに基づき学習デバイスのうちの1つまたは複数のものをティーチングするように構成されたティーチング信号をブロードキャストすることを含み得る。

[0006]いくつかの実施形態では、この方法は、学習デバイスが学習モードに入ることを引き起こす第1の信号をブロードキャストすることと、学習デバイスが学習モードを終了することを引き起こす第2の信号をブロードキャストすることとをさらに含み得る。いくつかの実施形態では、この方法は、学習デバイスのうちの1つまたは複数がリフレックスに対するトリガー重みをリセットすることを引き起こす信号をブロードキャストすることをさらに含み得る。いくつかの実施形態では、この方法は、ブロードキャストされたティーチング信号に応答して学習デバイスのうちの1つまたは複数によって送信されたイベントレポートメッセージをインターセプトすること、インターセプトされたイベントレポートメッセージとブロードキャストされたティーチング信号とに基づき生成されたティーチングルーチンに関連付けられている履歴情報を指示する記憶されているデータを更新することと、更新された記憶されているデータを表示することとをさらに含み得る。

[0007]いくつかの実施形態では、この方法は、学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、学習デバイスを含む環境の少なくとも一部の画像を取得することと、学習デバイスを取得された画像のセグメントに相関させることと、インターセプトされたイベントレポートメッセージに基づき学習デバイスの間の関係を識別することと、取得された画像上の識別された関係を指示するグラフィカルユーザインターフェース要素を表示することと、識別された関係に関係するグラフィカルユーザインターフェース要素上で第1のユーザ入力を受信したことに応答してイベントレポートメッセージをブロードキャストすることとをさらに含み得る。いくつかの実施形態では、この方法は、識別された関係に関係するグラフィカルユーザインターフェース要素を調整する第2のユーザ入力を受信することをさらに含むものとしてよく、ここにおいて、生成されたティーチングルーチンに基づき学習デバイスのうちの1つまたは複数のものをティーチングするように構成されたティーチング信号をブロードキャストすることは、グラフィカルユーザインターフェース要素を調整する受信された第2のユーザ入力に基づき学習デバイスのうちの1つまたは複数のものをティーチングするように構成されたティーチング信号をブロードキャストすることを含む。

[0008]様々な実施形態は、上で説明されている方法のオペレーションを実行するようにプロセッサ実行可能命令とともに構成されたコンピューティングデバイスを含み得る。様々な実施形態は、上で説明されている方法のオペレーションの機能を実行するための手段を有するコンピューティングデバイスを含み得る。様々な実施形態は、コンピューティングデバイスのプロセッサが上で説明されている方法のオペレーションを実行することを引き起こすように構成されたプロセッサ実行可能な命令が記憶されている非一時的なプロセッサ可読記憶媒体を含み得る。様々な実施形態は、上で説明されている方法のオペレーションを実行するように構成された1つまたは複数のデバイスを備え得るシステムを含み得る。

[0009]本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な実施形態を示し、上記の概略的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。

[0010]様々な実施形態を実装する例示的なシステムを示すシステムブロック図。 様々な実施形態を実装する例示的なシステムを示すシステムブロック図。 [0011]様々な実施形態で使用するのに適している学習デバイスのコンポーネントブロック図。 [0012]様々な実施形態で使用するのに適しているティーチャシグナリングデバイスのコンポーネントブロック図。 [0013]様々な実施形態で使用するのに適している学習デバイスのコンポーネントブロック図。 [0014]3つのコンポーネントを備える実施形態のイベントレポートメッセージ構造のコンポーネントブロック図。 [0015]様々なコンポーネントを備える実施形態のイベントデータ構造のコンポーネントブロック図。 [0016]様々な実施形態で使用するのに適しているイベントのパターンを識別し、および/または相関させるためにスマートボックス(または学習デバイス)によって利用され得る例示的な時間ウィンドウの図。 様々な実施形態で使用するのに適しているイベントのパターンを識別し、および/または相関させるためにスマートボックス(または学習デバイス)によって利用され得る例示的な時間ウィンドウの図。 様々な実施形態で使用するのに適しているイベントのパターンを識別し、および/または相関させるためにスマートボックス(または学習デバイス)によって利用され得る例示的な時間ウィンドウの図。 様々な実施形態で使用するのに適しているイベントのパターンを識別し、および/または相関させるためにスマートボックス(または学習デバイス)によって利用され得る例示的な時間ウィンドウの図。 様々な実施形態で使用するのに適しているイベントのパターンを識別し、および/または相関させるためにスマートボックス(または学習デバイス)によって利用され得る例示的な時間ウィンドウの図。 様々な実施形態で使用するのに適しているイベントのパターンを識別し、および/または相関させるためにスマートボックス(または学習デバイス)によって利用され得る例示的な時間ウィンドウの図。 [0017]様々な実施形態で使用するのに適している4つのパターンからなる実施形態のリフレックスのコンポーネントブロック図。 [0018]様々な実施形態で使用するのに適しているイベントを生成したことに応答して状態を変化させるリフレックスシステムの例示的なタイムライン図。 [0019]様々な実施形態で使用するのに適している既存のリフレックスに基づく新しいリフレックスの作成を示す例示的なタイムライン図。 [0020]様々な実施形態で使用するのに適している新規作成されたリフレックスのトレーニング(training)を示す例示的なタイムライン図。 [0021]様々な実施形態で使用するのに適している学習デバイスに対する2つの例示的な学習率の図。 [0022]様々な実施形態で使用するのに適している繰返しを通じて知られているリフレックスのトリガー重みを増加させることによって学習デバイスをトレーニングするための報酬信号を示す例示的なタイムライン図。 [0023]様々な実施形態で使用するのに適している繰返しを通じて知られているリフレックスのトリガー重みを減少させることによって学習デバイスをトレーニングするための補正信号を示す例示的なタイムライン図。 [0024]アクションを実行するか、またはアクションをトリガーに関連付けるイベントを生成し、処理する一実施形態の方法を示すプロセスフロー図。 [0025]学習と学習解除(unlearning)のためのトリガー重みを調整するための一実施形態の方法を示すプロセスフロー図。 [0026]ティーチャシグナリングデバイスが取得された目的データから生成されたティーチングルーチンに基づき信号をブロードキャストするための実施形態の方法を示すプロセスフロー図。 ティーチャシグナリングデバイスが取得された目的データから生成されたティーチングルーチンに基づき信号をブロードキャストするための実施形態の方法を示すプロセスフロー図。 ティーチャシグナリングデバイスが取得された目的データから生成されたティーチングルーチンに基づき信号をブロードキャストするための実施形態の方法を示すプロセスフロー図。 [0027]ティーチャシグナリングデバイスがティーチングルーチンのターゲットとなり得る付近の学習デバイスを発見するための一実施形態の方法を示すプロセスフロー図。 [0028]ティーチャシグナリングデバイスがティーチングルーチンに基づきティーチング信号をブロードキャストする前にユーザに認可を要求するための一実施形態の方法を示すプロセスフロー図。 [0029]ティーチャシグナリングデバイスが付近の学習デバイスが学習モードを構成することを引き起こす信号をブロードキャストするための一実施形態の方法を示すプロセスフロー図。 [0030]ティーチャシグナリングデバイスがティーチングルーチンの使用を指示する情報を更新するためにイベントレポートメッセージをインターセプトするための一実施形態の方法を示すプロセスフロー図。 [0031]様々な実施形態とともに使用するのに適しているシステムにおけるティーチングルーチンに関係する情報の例示的な表示。 [0032]様々な実施形態とともに使用するのに適しているティーチャシグナリングデバイスと学習デバイスとの間の例示的なシグナリングを示す呼出信号図。 様々な実施形態とともに使用するのに適しているティーチャシグナリングデバイスと学習デバイスとの間の例示的なシグナリングを示す呼出信号図。 [0033]学習デバイスがティーチャシグナリングデバイスからの要求に応答して情報を送信するための実施形態の方法を示すプロセスフロー図。 学習デバイスがティーチャシグナリングデバイスからの要求に応答して情報を送信するための実施形態の方法を示すプロセスフロー図。 [0034]学習デバイスがティーチャシグナリングデバイスから信号を受信したことに応答してリフレックスのトリガー重みをリセットするための一実施形態の方法を示すプロセスフロー図。 [0035]ティーチャシグナリングデバイスとして動作するように構成されたモバイルデバイス上の例示的なグラフィカルユーザインターフェースを示す図。 ティーチャシグナリングデバイスとして動作するように構成されたモバイルデバイス上の例示的なグラフィカルユーザインターフェースを示す図。 ティーチャシグナリングデバイスとして動作するように構成されたモバイルデバイス上の例示的なグラフィカルユーザインターフェースを示す図。 ティーチャシグナリングデバイスとして動作するように構成されたモバイルデバイス上の例示的なグラフィカルユーザインターフェースを示す図。 [0036]ティーチャシグナリングデバイスがグラフィカルユーザインターフェース(GUI)に対するユーザのインタラクティブな操作に基づき信号を送信するための実施形態の方法を示すプロセスフロー図。 ティーチャシグナリングデバイスがグラフィカルユーザインターフェース(GUI)に対するユーザのインタラクティブな操作に基づき信号を送信するための実施形態の方法を示すプロセスフロー図。 [0037]様々な実施形態で使用するのに適している例示的なスマートフォン型モバイルデバイスのコンポーネントブロック図。

[0038]様々な実施形態について、添付の図面を参照しながら詳細に説明する。可能な場合はいつでも、同じまたは同様の部分を指すために図面全体にわたって同じ参照番号を使用する。特定の例および実装形態になされる言及は、説明のためであり、本発明の範囲または特許請求の範囲を限定するものではない。

[0039]「例示的な」という単語は、本明細書では、「一例、事例、または例示として使用する」ことを意味するために使用される。本明細書に「例示的」と記載されたいかなる実装態様も、必ずしも他の実装態様よりも好ましいまたは有利であると解釈されるべきではない。

[0040]「学習デバイス(複数可)」、「スマートデバイス(複数可)」、および「スマートボックス(複数可)」という用語は、本明細書では事前定義されたアクションをユーザ入力、状態の検出された変化、受信された信号または送信、およびデバイス側に取得され得る他の情報などの、トリガーに関係する情報と相関させることによって観察された情報から挙動を学習することができるコンピューティングデバイスを指す。学習デバイスは、時間の経過によって生じるトリガーと事前定義されたアクションとの間の新しい関係または相関を記憶するように構成され得る。事前定義されたアクションにすでに相関しているトリガーを検出したことに応答して、学習デバイスは、事前定義されたアクションを実行するか、または代替的に、他の関連付けられているデバイスが相関するアクションを実行することを引き起こすオペレーションを実行することができる。本開示全体を通して、修飾語「スマート」は、アプライアンス(たとえば、ランプ)が学習デバイスであることを指示するために使用され得る。たとえば、「スマートランプ」という用語は、学習デバイスとなるように構成され、学習デバイスに結合され、制御されるか、または他の何らかの形で学習デバイスのコンポーネントを備えるランプを指す。

[0041]「イベント」という用語は、本明細書では、1つまたは複数の学習デバイスによって検出または生成されたアクション、条件、および/または状況を表すデータ(たとえば、オブジェクトもしくは他のデータ構造)を指すために使用される。イベントは、アクションまたは条件の発生を指示する情報(本明細書では「発生データ」と称される)を取得したことに応答してローカルの学習デバイス上で生成され(または他の何らかの形で取得され)、記憶され得る。発生データは、アクションまたは条件を記述し、さらにはデバイス識別子、タイムスタンプ、優先度情報、利得情報、状態識別子などの、アクションまたは条件を実行または検出したデバイスを識別する様々なデータを含み得る。発生データは、学習デバイス(たとえば、学習デバイスのプロセッサもしくはコアに直接結合されたセンサーなど)に接続された、または学習デバイス(たとえば、非プログラム可能ランプなど)によって他の何らかの形で制御されるデバイスからの信号もしくは他の情報から学習デバイスによって受信されるか、または取得され得る。発生データは、他の付近のデバイスから受信されたブロードキャストメッセージ(本明細書では「イベントレポートメッセージ」と称される)からも学習デバイスによって受信されるか、または取得され得る。たとえば、ローカルで遭遇したセンサーデータに基づき第1のイベントを生成した後に、第1の学習デバイスは、第2の学習デバイスがイベントレポートメッセージ内のデータに基づき第1のイベントも生成することを有効化され得るように第1のイベントが発生したことを指示する発生データとともにイベントレポートメッセージをブロードキャストし得る。

[0042]「リフレックス」という用語は、本明細書では、トリガーと学習デバイスが実行するように構成されているアクションとの間の少なくとも1つの相関または関係を指示する学習デバイス内の記憶されている情報を指すために使用される。リフレックスの記憶されている情報は、学習デバイスがリフレックスのアクションを実行すること、および/またはリフレックス(たとえばトリガー重み)に関して記憶されている永続的データを調整することを引き起こすために所定の時間ウィンドウ内に生成されるイベントとマッチングされ得るパターンを含み得る。イベントは、リフレックス内のパターンの構成単位と考えられ得る。たとえば、リフレックス内に記憶されているトリガーパターンは、1つまたは複数のイベントからなるものとしてよい。

[0043]学習デバイスは、機械学習プロセスを通じて継続的な構成を経験するように構成され得る。そのような学習プロセスは、生体系をエミュレートし、それにより学習デバイスが直観的トレーニング方法を通じてユーザによって容易に構成されることを可能にし得る。学習デバイスは、ユーザアクションの結果として生成され得るイベント、他の学習デバイスの状態の変化などに応答して望ましい仕方で反応するように容易に構成され得る。単純な繰返しを通じて、プリコンディショニングまたはプログラマーインターフェースを必要とすることなく様々な挙動が複数の学習デバイスの非集中システムによって学習され、したがってその非集中システム内に実装され得る。繰り返される報酬トレーニング入力(rewarding training input)を使用することで、ユーザは、様々なトリガーに応答して事前定義されたタスクを自動的に実行するように学習デバイスを容易にトレーニングすることができる。同様の仕方で、ユーザは、繰り返される補正入力を使用することによって他のトリガーに応答して特定のタスクを自動的に実行することを停止するように学習デバイスを容易にトレーニングすることができる。そのようなトレーニングは、それが込み入った、または退屈なセットアップもしくはプログラミングを回避するので有益である。

[0044]しかしながら、ユーザは、スマートデバイスを、存在していて、またそのようなデバイスが(たとえば、エキスパート設定またはオプションを介して)トレーニング/プログラミングされ得る仕方も知っているときにのみトレーニングすることができる。時々、ユーザは、仕事中であるか、または休暇を取っているときなどに、ティーチングを目的として学習デバイスをインタラクティブに操作することができない場合がある。たとえば、出張することの多いユーザは、特定の外気温および/または時刻に応答して閉じるようにスマートブラインドをティーチングできるほど定期的に自宅の周りにいないことがある。時間の経過とともに直接的なインタラクティブな操作を行わなければ、ある場所において学習デバイスの望ましい挙動を行わせることは困難な場合がある。

[0045]様々な実施形態が、非集中システム内の学習システムに対するプロキシティーチングを可能にするデバイスと、方法と、プロトコルと、システムと、非一時的プロセッサ可読記憶媒体とを提供する。ティーチャシグナリングデバイスは、ユーザからの直接的なインタラクティブな操作なしで、ある場所の様々な学習デバイスを、様々なトリガーを事前定義された機能に関連付けるようにティーチングすることができる。たとえば、ユーザは、スマートブラインドを、家の中の照明および遮光に対する自分の選好に基づきそれらを開閉することによってティーチングすることができるが、ユーザがティーチャシグナリングデバイスをアクティブ化したときに、ティーチャシグナリングデバイスティーチャが、ユーザの行動の仕方(たとえば、部屋の中で太陽の光が検出されたときにただちにブラインドを閉めるなど)に類似する仕方でどのような挙動を示すべきかをスマートブラインドにティーチングすることを引き継ぐことができる。そのような間接的(またはプロキシ)ティーチング方式は、ユーザが家の外にいる、デバイスの実践的なティーチングに興味がない、および/またはシステムの学習デバイスをチューニングするために必要な特定の専門知識を欠いているときなど、ユーザが学習デバイスをインタラクティブに操作することができない状態にあるときに有益な場合がある。

[0046]システム内の物理的発生(たとえば、ユーザのインタラクティブな操作)および/または条件(たとえば、時間、センサー情報、など)をエミュレートする信号を送信することによって、ティーチャシグナリングデバイスは、学習デバイスが実際の物理的発生および/または条件が将来検出されたときにとるべきリフレックスまたはアクションを学習することを引き起こす入力を供給し得る。特に、ティーチャシグナリングデバイスは、本開示全体を通して説明されているように他の学習デバイスによって送信され得るイベントレポートメッセージと一致する仕方で情報を含むように構造化されている「ティーチング信号」をブロードキャストすることができる。たとえば、ティーチャシグナリングデバイスは、ユーザによって「スイッチが入れられた」後にスマート壁面スイッチによって送信されたイベントレポートメッセージ内の発生データに類似するデータを含むティーチング信号を送信し得る。したがって、ユーザがスマート壁面スイッチを入れるために存在していなくても、ティーチャシグナリングデバイスの通信範囲内にある他の学習デバイスは、ユーザがスイッチを入れたかのようにイベントレポートメッセージを受信する。いくつかの場合において、ティーチャはロボットであってもよく、その場合、ロボットは、人間のユーザが行うようにスイッチをオンまたはオフにすることができる。

[0047]ティーチング信号をフォーマットし、通常のイベントレポートメッセージと一致する情報を含めることによって、ティーチャシグナリングデバイスは、発生(たとえば、スイッチが入れられたこと、照明状態変化、など)が実際に生じたかのように学習デバイスによって受信され、処理され得る信号を送信する。こうして、ティーチャシグナリングデバイスは、学習デバイスが、ユーザが実際にティーチングアクションを実行したことに応答して学習デバイスが観察するものに一致するパターンおよびタイミングでイベントの情報を人工的に受信することを引き起こすことができる。いくつかの実施形態では、ティーチング信号は、学習デバイスに直接影響を及ぼすコマンドを含み得る。たとえば、ティーチング信号は、スマートランプに光源をオンにすることを指令するか、またはスマートブラインドに自動的に開閉することを指令するコマンドを含み得る。いくつかの実施形態では、ティーチング信号は、それがティーチング信号であって、実際のイベントレポートメッセージではないことを指示する情報(たとえば、ヘッダ情報)を含み得る。さらに、ティーチング信号は、新しい関連付けを学習するために、さらにはトリガー重みを調整するために学習デバイスによって使用されるトリガーパターン、アクションパターン、報酬パターン、および/または補正パターンに応答し得る。

[0048]学習デバイスは、受信されたティーチング信号内に含まれるデータを処理し、記録し、他の何らかの形で利用して、イベントおよび/またはパターンを生成することができる。言い換えれば、学習デバイスは、学習デバイスがイベントレポートメッセージの受信に応答する仕方に類似する仕方でティーチング信号の受信に応答し得る。たとえば、受信されたティーチング信号に基づき、スマートランプ学習デバイスは、スマート壁面スイッチに関係する「オン」イベントを生成することができる。さらに、学習デバイスは、学習デバイスが遭遇した他のデータ(たとえば、コマンド信号に応答して生成される内部イベント、センサーデータ、内部クロック、トリガーされたアクションなど)に加えて受信されたティーチング信号からのデータを利用してイベントとパターンとを生成し得る。たとえば、ティーチング信号と所定の時間ウィンドウ内で受信されたイベントレポートメッセージの両方からのデータは、スマートランプに対するトリガーパターンに関係するイベントを生成するために使用され得る。

[0049]ティーチング信号は、ティーチャシグナリングデバイスによって生成されるティーチングルーチンに基づきティーチャシグナリングデバイスによって送信され得る。ティーチングルーチンは、送信されるべきティーチング信号、ティーチング信号内に含まれるべきデータ、さらにはティーチング信号がティーチャシグナリングデバイスによって送信された仕方の種類(複数可)に対するスケジュール、命令、および/または他のガイドであるものとしてよい。たとえば、ティーチングルーチンは、時刻(複数可)と、持続時間と、繰返しの数と、含まれる発生データと、スマートランプをティーチングするように設計された特定のティーチング信号をブロードキャストするためのティーチャシグナリングデバイスに対する他の特定の送信情報を指示し得る。

[0050]ティーチングルーチンは、様々な方法で取得され得る、ユーザがシステムにどのような挙動を示すことを望むかを定義するデータ(本明細書では、「目的データ」と称される)に基づきティーチャシグナリングデバイスによって生成され得る。目的データは、事前定義されたプログラムと、スクリプトと、エキスパートガイド/仕様書と、命令セットと、発生データと、ユーザ選好データと、リフレックスと、ティーチャシグナリングデバイスによって取得された他のデータとを含み得る。たとえば、目的データは、ユーザが部屋を特定の温度のままにしておくか、またはセキュリティのために特定の時刻にブラインドを閉めておくことを望んでいることを指示するスクリプトまたはデータファイルを含み得る。別の例として、目的データは、特定の機会に対する良好な照明設定(たとえば、特定の時刻にくつろがせる色など)を指示するダウンロードされたエキスパート情報を含み得る。目的データおよび/または目的データの分析結果に基づき、ティーチャシグナリングデバイスは、通信相手となるべき学習デバイス(または学習デバイスのクラス)を識別し、さらには識別された学習デバイスにユーザの目的を遂行するようにティーチングするために送信されるべき様々なティーチング信号に対するスケジュールを識別することができる。

[0051]いくつかの実施形態では、ティーチャシグナリングデバイスは、ユーザのインタラクティブな操作に応答して学習デバイスによって送信されたイベントレポートメッセージまたは他の信号をインターセプトまたは観察し、記録することによってティーチングルーチンを生成するために使用される目的データを取得することができる。ティーチャシグナリングデバイスは、学習デバイスからイベントレポートメッセージが届かないか監視し、ユーザによって実行されたアクションさらにはそれらの実行されたアクションへの学習デバイスによる反応など、ある場所における条件を検出し得る。この仕方で、ティーチャシグナリングデバイスは、新しいティーチングルーチンを生成し、ユーザが離れた場所にいるときもティーチャシグナリングデバイスが学習デバイスをトレーニングし続けることができるように生成されたティーチングルーチンを更新するために、ユーザ自身が学習デバイスに対して行うインタラクティブな操作をエミュレートすることを学習することができる。たとえば、ティーチャシグナリングデバイスは、一定期間の間にスマートブラインドからブロードキャストされた信号を受信して、ユーザがいつどのような条件でブラインドを開閉するかを示すパターンを識別することができる。さらに、ティーチャシグナリングデバイスは、特定の環境条件またはユーザ選好を維持することに関係するティーチングルーチンを生成するために他の受信されたデータに加えて使用され得る環境センサーデータ(たとえば、時刻、気圧、光源レベル、温度など)を提供する他のデバイスまたはセンサーからデータ信号を受信することができる。たとえば、ティーチャシグナリングデバイスは、ティーチング信号とともに繰り返され得るパターンを検出するために分析され得る一連のイベント(たとえば、ドア開放、時計の時刻、照明スイッチがオンにされていること、温度読み取り、光センサー読み取りなど)を指示するイベントレポートメッセージをインターセプトすることができる。この方法で、ティーチャシグナリングデバイスは、ユーザが学習デバイスをインタラクティブに操作するのを「見て繰り返し」、ユーザが関わっていないときにその後のティーチングオペレーションに対するデータを取得することができる。いくつかの実施形態では、ティーチャシグナリングデバイスは、ある場所における信号の第1の観察された発生に基づきティーチングルーチンを生成し得るか、または代替的に、発生(または一連の発生)がインターセプトされた信号からのデータにおいて複数回指示されたときのみティーチングルーチンを生成し得る。他の実施形態では、ティーチャシグナリングデバイスは、特定の時間期間内に複数回(たとえば、数秒ごとに、など)受信された信号のデータを取り除くフィルタなどの、インターセプトされた信号から冗長目的データを取り除くためのロジックとともに構成され得る。

[0052]いくつかの実施形態では、目的データは、データストア(たとえば、フラッシュドライブ)またはエキスパート情報を記憶しているサーバなどのリモートデータソースからデータをダウンロードするか、または他の何らかの形で受信することによってティーチャシグナリングによって取得され得る。特に、そのような目的データは、ティーチャシグナリングデバイス上にロードされ、関係するティーチングルーチンを生成するために使用され得るスクリプト、プログラム、または他のアルゴリズム情報であってよい。たとえば、ユーザは、スマートホーム内のスマート照明デバイス(たとえば、クリスマス用照明、ムード照明、天井の照明、ランプなど)に様々な要因(たとえば、時刻、存在している居住者など)に応答してその強度を変化させることをティーチングする仕方を説明するスクリプトをティーチャシグナリングデバイスにダウンロードすることができる。別の例として、ユーザは、ティーチャシグナリングデバイスに、特定の室温を保つか、またはセキュリティを提供することをスマートブラインドにティーチングする信号を送信するためのスケジュールを生成するためにティーチャシグナリングデバイスが使用し得る一組の仕様データをダウンロードすることができる。(たとえばスマートブラインドが時間または利用可能な光の量をその動作に関連付けるようにティーチングされる)。そのようなダウンロードされた目的データは、エネルギー効率モード(たとえば、「エコ」ティーチング)、快適モード(たとえば、ユーザが帰宅する数分前にACユニットをオンにするなど)、ムードモード(たとえば、チェンジライト、音楽、雰囲気またはホロスコープに基づくウォールアートなど)、およびエキスパート照明構成(たとえば、可能な最良の照明を展示するインダストリアルデザインの専門知識)における挙動を示すことを学習デバイスにティーチングするためのアプリケーション(または「アプリ」)を含み得る。いくつかの実施形態では、リモートデータソースからダウンロードされ得る目的データは、学習デバイスの特定のシステムに対する事前生成されたティーチングルーチンを含み得る。

[0053]いくつかの実施形態では、目的データは、ユーザが自分のスマートブラインドを下げさせたい時刻または温度など、選択された目的データでティーチャシグナリングデバイスを直接プログラミングすることができるユーザ入力を介してティーチャシグナリングデバイスによって取得され得る。そのような目的データは、ティーチャシグナリングデバイスに取り付けられた周辺機器を介して、および/またはタッチスクリーンなどのデバイスに結合されたインターフェース上で入力され得る。いくつかの実施形態では、そのようなユーザ定義目的データは、通信リンク(たとえば、WiFi(登録商標)通信、Bluetooth(登録商標)など)を介してティーチャシグナリングデバイスにダウンロードされるか、または他の何らかの形で転送され得る。

[0054]いくつかの実施形態では、目的データは、分散学習システム内で学習された挙動を利用するために付近の学習デバイスにリフレックスデータを要求することによってティーチャシグナリングデバイスによって取得され得る。言い換えれば、ティーチャシグナリングデバイスは、それらの学習デバイスですでに利用されている記憶された情報に基づき学習デバイスのトリガーとアクションとの間の既存の関連付けをダウンロードするか、または他の何らかの形で受信することができる。この実施形態では、ティーチャシグナリングデバイスは、学習デバイスにおいて学習され、記憶されているトリガーパターンと、アクションパターンと、補正パターンと、報酬パターンとを含むか、または符号化するデータ構造を学習デバイスから取得することができる。そのようなすでに学習されているパターンおよびリフレックスデータは、異なる場所で使用され得るティーチングルーチンを生成するためにティーチャシグナリングデバイスによって使用され得る。このような仕方で、ティーチャシグナリングデバイスは、ユーザによって学習された挙動およびリフレックスを取得し記憶するために分散学習システム内に導入され、次いで、新しい分散学習システムに移動され、そこで、他の学習デバイスにユーザの選好をティーチングすることができる。たとえば、ティーチャシグナリングデバイスは、第1の部屋にある学習デバイスの分散システムからトリガーパターンと、アクションパターンと、補正パターンと、報酬パターンとを取得し、第2の部屋にある学習デバイスをティーチングする際に使用するためのティーチングルーチンを、スマートアプライアンスがユーザが第2の部屋でトレーニングプロセスを繰り返すことを必要とすることなく両方の部屋で同じような挙動を示すように生成することができる。別の例として、ユーザの家の中の学習デバイスからリフレックスを取得した後、ティーチャシグナリングデバイスは、ホテルの部屋の中で、ホテルの学習デバイスにユーザが自宅で満足していた挙動に従うようにティーチングするために使用され得る。こうして、そのようなリフレックスコピー機能があれば、ティーチャシグナリングデバイスは、他の場所に移動されて、既存の学習デバイスの挙動に基づくティーチングオペレーションを実行することができる。そのような実施形態を可能にするために、学習デバイスは、ティーチャシグナリングデバイスからイベントアクション関連付けを素早く学習するが、その後、ティーチャシグナリングデバイスからの信号が所定の長さの時間内に受信されなかったときに以前のまたは好ましい一連のイベントアクション関連付けに戻るように構成され得る。このような仕方で、ホテルの部屋の中の学習デバイスは、ティーチャシグナリングデバイスを有するユーザがチェックアウトした後に初期または既定の構成に戻ることができる。

[0055]いくつかの実施形態では、ティーチング信号を送信する前に、またはティーチング信号を送信することと併せて、ティーチャシグナリングデバイスは、学習デバイスが「学習モード」に入ることを引き起こす信号を送信することができる。いくつかの実施形態では、ティーチャシグナリングデバイスは、学習デバイスが何らかの学習された情報を取り除くこと、または破棄することを引き起こす「リセット」信号を学習デバイスに送信することができる。たとえば、ティーチャシグナリングデバイスからリセット信号を受信したことに応答して、スマートランプ学習デバイスは、トリガー重みを修正するか、または記憶されているリフレックスに関連付けられている利得を他の何らかの形で変更し得る。そのようなリセット信号は、特定の期間にわたる(たとえば、最後の日のティーチングなど)学習デバイスにおける学習された情報、または代替的にすべての経験された学習への変更を引き起こし得る。

[0056]いくつかの実施形態では、ティーチャシグナリングデバイスは、ある場所(たとえば、家、オフィス、部屋など)にある、またはイベントシグナリングメッセージの受信範囲内にある学習デバイスを、ワイヤレス信号を受信し、信号中の識別情報から各学習デバイスを識別することなどによって、検出/発見することができる。代替的に、ティーチャシグナリングデバイスは、識別メッセージを送信することによって応答することを信号を受信する学習デバイスに要求するクエリまたはデバイス発見信号を送信し得る。たとえば、発見信号への応答に基づき、または単に、インターセプトされた信号に基づき、ティーチャシグナリングデバイスは、ユーザの家庭内のスマートスイッチと、スマートランプと、スマートブラインドと、スマート洗濯機とを発見することができる。イベントシグナリングメッセージまたは応答信号内に含まれ得る識別データに基づき、ティーチャシグナリングデバイスは、発見された(または検出された)学習デバイスの種類、クラス、ファームウェアバージョン、ブランド、および/または機能を決定することができる。たとえば、クラスまたはデバイスID情報は、イベントシグナリングメッセージまたは応答信号のヘッダ内に含まれ得る。いくつかの実施形態では、ティーチャシグナリングデバイスは、様々な学習デバイスおよび/またはその機能を識別し、ティーチングルーチンを変更し、変換し、または他の何らかの形で調整して、異なる種類の学習デバイスの異なるオペレーション、機能、リフレックス、メッセージフォーマット、シグナリングプロトコル、またはデータ構造に適応するように構成され得る。たとえば、スマートブラインドが、部屋の中で発見されないが、スマートスカイライトカバーが発見されたときに、ティーチャシグナリングデバイスは、スマートスカイライトカバーを閉じて部屋の周辺光を減光するティーチング信号の送信を含むようにティーチングルーチンを更新する構成を取り得る。

[0057]いくつかの実施形態では、ティーチャシグナリングデバイスは、ティーチング信号を送信する前に確認をユーザに要求し得る。たとえば、ティーチャシグナリングデバイスは、「About to begin teaching the home devices. Is that OK?」を指示するクエリをユーザのスマートフォンに送信することができる。確認返信に応答して、ティーチャシグナリングデバイスは、生成されたティーチングルーチンに従ってティーチング信号を送信することを続ける場合も、続けない場合もあり得る。

[0058]ティーチャシグナリングデバイスは、付近の学習デバイスをティーチングする信号を発行するように構成され得るけれども、学習デバイスに対するユーザのインタラクティブな操作は、ティーチャシグナリングデバイスによるそのようなティーチングに取って代わるものとしてよい。たとえば、ティーチャシグナリングデバイスは、特定の条件(たとえば、時刻、別のスマートデバイスに関連して発生したイベント、など)に応答して点灯することをスマートフロアランプにティーチングするティーチング信号を送信することができる。しかしながら、ユーザによるその後のアクションまたは入力(たとえば、補正ボタンを押す、デバイスをオフにする、など)に基づき、スマートフロアランプは、フロアランプが特定の条件に応答してオンにならないように関係するリフレックスのトリガー重みを調整し得る。この方法で、ユーザは、ティーチャシグナリングデバイスによって提供され得るティーチングを上書きするか、または調整することができる。

[0059]さらに、ティーチャシグナリングデバイスは、ティーチング信号の影響を受ける学習デバイスに対するユーザのインタラクティブな操作に基づきその後のティーチングに対するユーザの選好を学習することができる。特に、ティーチャシグナリングデバイスは、ティーチングルーチンに反する学習デバイスの状態(または状態変化)を指示するイベントレポートメッセージをインターセプトしたことに応答してティーチングルーチンを調整することができる。一例として、ユーザは、ティーチャシグナリングデバイスが特定の条件(たとえば、時刻、外気温、など)の下で閉じるように付近のスマートブラインドをトレーニングすることを開始したときに自宅にいる場合がある。ティーチャシグナリングデバイスがティーチング信号を送信する過程で、ユーザは、自分が補正またはカスタマイズすることを望んでいる挙動(すなわち、ブラインドが閉じられること)を観察し、ブラインドを開き、それによりその学習を調整する入力をスマートブラインドに手動で与えることができる。ティーチャシグナリングデバイスは、ユーザのアクションに基づきブラインドが開かれたことを指示するイベントレポートメッセージをブラインドから受信し得る。ティーチャシグナリングデバイスは、受信されたイベントレポートメッセージを評価し、スマートブラインドのデバイス状態がそのティーチング命令と異なっていると決定し得る。そのような相違は、ユーザによってカウンターティーチング(counter-teaching)活動として解釈され、したがって、ティーチャシグナリングデバイスは、そのティーチングルーチンを、ユーザのインタラクティブな操作と協調するように更新することができる。したがって、ティーチャシグナリングデバイスは、同じ背景状況において閉じることをスマートブラインドにティーチングするティーチング信号をその後送信し得ない。

[0060]いくつかの実施形態では、ティーチャシグナリングデバイスは、受信された信号に基づき自動的にティーチングルーチンを調整し得るか、またはし得ないモードで動作するように構成され得る。たとえば、ユーザは、ティーチャシグナリングデバイス上のボタンを押して、ティーチング信号が送信されてからまもなくユーザによって実行される補正またはカウンターティーチングに基づきティーチャシグナリングデバイスがそのティーチングルーチンを調整することを可能にし得る。

[0061]いくつかの実施形態では、ティーチングシグナリングデバイスは、特定の事前定義されたアクションをデバイスからのアラート条件および/またはメッセージに関連付けることを付近の学習デバイスにティーチングするように構成され得る。たとえば、ティーチャシグナリングデバイスは、焦げた食べ物を検出したことに応答してスマートオーブンが送信するように構成されているというアラートメッセージに応答してアクティブ化することをスマートファンにティーチングするティーチング信号を送信することができる。そのようなアラート条件および/またはメッセージに関連してティーチャシグナリングデバイスによってティーチングされ得る挙動は、変わり得る。たとえば、スマートウィンドウは、スマートオーブンからの焦げた食べ物アラートに応答して開くことをティーチングされ得るが、動き検出機からの侵入者アラートメッセージに応答して閉じることをティーチングされ得る。いくつかの実施形態では、ティーチング信号デバイスは、活動(たとえば、時刻に基づきトリガーされたアクションなど)を再スケジュールすること、および/またはアラートメッセージを受信したことに応答してアラート構成モード/動作状態に入ることをスマートデバイスにティーチングすることができる。たとえば、ユーザは、朝、自分が家を出た後にスマート洗濯機または乾燥機が運転するように設定することができる。フレックスアラートが有効になっている場合、ティーチャシグナリングデバイスは、設定を修正し午後6時を過ぎたらアプライアンスが運転するようにすることができる。

[0062]様々な実施形態において、ティーチャシグナリングデバイスは、ロボット、またはコンピューティングデバイス上で実行されているソフトウェアであってもよい。たとえば、ティーチャシグナリングデバイスは、イベントレポートメッセージを受信し、付近の学習デバイスが受信するようにティーチング信号を送信するためのワイヤレス送信機/受信機を有するスマートフォン、ラップトップ、デスクトップ、または他のパーソナルコンピュータであってよい。

[0063]さらなる実施形態において、ティーチャシグナリングデバイスは、製造または試験設備内の学習デバイス(たとえば、スマートアプライアンス)をティーチングして初期構成またはイベントアクション関連付けを学習させるなどのために、工業環境において使用され得る。このような仕方で、スマートアプライアンスは、学習プロセスを使用する初期または既定の機能とともに構成され得る。

[0064]さらなる実施形態において、ティーチャシグナリングデバイスは、ユーザからの音声命令を受け取るための音声認識ソフトウェアとともに構成されたプロセッサを有するマイクロフォンを具備することができる。そのような実施形態では、ユーザは、デバイスをトレーニングするためコードに変換され得る音声命令をティーチャシグナリングデバイスに発することができる。たとえば、ユーザは、ティーチャシグナリングデバイスに「please train my blinds to close whenever the light shines in」と言い、ティーチャシグナリングデバイスは、その言葉による指示をイベントシグナリングメッセージのティーチングルーチンに翻訳することができる。

[0065]いくつかの実施形態では、ティーチャシグナリングデバイスは、環境における学習デバイス間の因果関係を再作成または調整するためにユーザが操作することができるグラフィカルユーザインターフェース(GUI)とともに構成され得る。言い換えれば、ユーザによる(たとえば、ユーザがタッチスクリーンインターフェース上に表示されている要素をタッチすることによる)GUI要素の選択は、ティーチャシグナリングデバイスが第1の学習デバイスによってすでに送信され、第2の学習デバイスのアクションへのトリガーとして識別されているデータに類似のまたは同一のコードもしくは他の情報を含むワイヤレス波形(たとえば、イベントレポートメッセージ)をブロードキャストすることを引き起こし得る。ティーチャシグナリングデバイスによるイベントレポートメッセージのそのようなブロードキャスト(または再ブロードキャスト)は、学習デバイスとティーチャシグナリングデバイスとの間の専用チャネルなしで実行され、さらに、そのイベントレポートメッセージを最初に送信した学習デバイスの認識なしで実行され得る。

[0066]そのような実施形態では、ティーチャシグナリングデバイスは、付近の学習デバイスから受信されたインターセプトされたイベントレポートメッセージを復号し、記憶するように構成され得る。これらの信号は、インターセプトされたイベントレポートメッセージを送信し、受信する学習デバイスを表す画像のセグメントと相関し得る。そのような画像は、ティーチャシグナリングデバイスに結合されたカメラによって取得されるデジタル写真またはビデオ撮像であってよい。第1の学習デバイス(たとえば、スマート壁面スイッチ)の表現を第2の学習デバイス(たとえば、スマートフロアランプ)の表現に接続する線または矢印のグラフィック要素などの、学習デバイス間の関係を指示するインタラクティブグラフィック要素が、ティーチャシグナリングデバイス上にレンダリングされ得る。たとえば、ティーチャシグナリングデバイスは、GUIを介して、第1の学習デバイスを表す画像の第1のブロックから第2の学習デバイスを表す画像の第2のブロックに達する矢印をレンダリングして、第1の学習デバイスからのイベントレポートメッセージ(たとえば、「on」スマート壁面スイッチイベントレポートメッセージ)が第2の学習デバイスによるアクションに対するトリガーとして識別されていることを指示し得る(たとえば、スマートフロアランプが点灯し得る)。ユーザは、ティーチャシグナリングデバイスが学習デバイスの識別された因果関係と関連付けられているインターセプトされたイベントレポートメッセージを複製または再ブロードキャストすることを引き起こすために、GUI要素をアクティブ化するか、押すか、または他の何らかの形でインタラクティブに操作することができる。たとえば、ユーザがGUIディスプレイ上に表示されている第1の学習デバイスと第2の学習デバイスとの間の関係に関連付けられているか、または指示するソフトGUIボタンを押したことに応答して、ティーチャシグナリングデバイスは、第2の学習デバイスがアクションを実行することを引き起こす第1の学習デバイスによって通常送信されるメッセージと一致するイベントレポートメッセージをブロードキャストし得る。

[0067]いくつかの実施形態では、GUIのグラフィック要素は、ティーチャシグナリングデバイスが学習デバイスの学習された挙動を変更するティーチング信号ブロードキャストすることを引き起こすためにユーザによって調整され得る。たとえば、ユーザは、第1および第2の学習デバイスに関連付けられている画像セグメント間の矢印グラフィック要素を切断し、それによって、ティーチャシグナリングデバイスが第2の学習デバイスが第1の学習デバイスからイベントレポートメッセージを受信したことに応答して特定のアクションを実行することがもはやないように第2の学習デバイスの関係するリフレックストリガー重みを「補正」(または学習解除)するティーチング信号を送信することを引き起こすことができる。別の例として、ユーザは、第1の学習デバイスと第3の学習デバイスとの間の矢印グラフィック要素を再接続し、それによって、ティーチャシグナリングデバイスが第3の学習デバイスが第1の学習デバイスからイベントレポートメッセージを受信したことに応答してアクションを実行することを学習するように第3の学習デバイスにおいて関係するリフレックストリガー重みに「報酬を与える」ティーチング信号を送信することを引き起こすことができる。

[0068]いくつかの実施形態では、ティーチャシグナリングデバイスは、ティーチャスマートフォンアプリケーション(または「アプリ」)の実行を介するなどして、ティーチャシグナリングデバイスとして動作するようにプロセッサ実行可能命令とともに構成されたモバイルデバイス(たとえば、スマートフォン、タブレットなど)であってよい。さらに、ティーチャシグナリングデバイスは、インターネットへの接続を必要とする場合も必要としない場合もある。いくつかの実施形態では、イベントレポートメッセージを画像のセグメントに関連付けることに加えて、ティーチャシグナリングデバイスは、ローカルセンサーデータ(たとえば、光センサーデータ、位置データまたはGPS座標、加速度計データ、ジャイロスコープデータ、磁力計データなど)を取得し、記憶し、画像のセグメントに関連付けるように構成され得る。そのようなセンサーデータは、ティーチャシグナリングデバイスが特定のイベントレポートメッセージにリンクされているアクション(たとえば、照明オンまたはオフ)を発見するために、および/またはイベントレポートメッセージの再ブロードキャストが類似の条件でのみ実行されることを確実にするためにイベントレポートメッセージが学習デバイスからインターセプトされた際の過去の条件を現在の条件と比較することを可能にし得る。

[0069]従来の自動化システムおよびデバイスと異なり、実施形態のティーチャシグナリングデバイスは、非集中システムにおける学習デバイスに対するユーザのインタラクティブな操作はエミュレートする信号をブロードキャストする。実施形態のデバイスは、そのような非集中システムにおける条件を最適化するか、変更するか、または他の何らかの形でより良く解釈するためのオペレーションを実行し得ないが、その代わりに、すでに経験されているか、または事前プログラミングされている目的に基づきティーチングルーチンを有するユーザの意図を模倣するプロキシとして働き得る。言い換えれば、実施形態の技術は、学習デバイスに対するインタラクティブな操作のトレーニングを実際に実行するユーザに代わってエミュレートされた信号により学習デバイスがどのような挙動を示すべきかをティーチングされる特定の種類のティーチングに関係する。さらに、実施形態のシステムおよびデバイスは、ユーザがいつ不在であるかを決定し、したがってオペレーションを開始するのに、人感センサーまたはモーション検出器に頼らないものとしてよい。その代わりに、実施形態のティーチャシグナリングデバイスが、ユーザ入力または他の受信された入力(たとえば、GPS信号、ユーザボタンプロンプトなど)によって明示的にアクティブ化され得る。

[0070]次の説明では、学習デバイスは、1つまたは複数スマートボックスとして参照されるものとしてよく、これらは、図1Cおよび図2を参照しつつ以下で説明されているコンポーネントを有する学習デバイスの特定の実施形態である。しかしながら、類似のコンポーネントおよび機能を有する他の学習デバイスまたはスマートデバイスも、本開示において説明されているように様々な実施形態を利用するように構成され得ることは理解されるであろう。

[0071]図1は、様々なデバイス102、104、106、114、115、116が信号を互いに送受信するスマートボックス103a〜103eによって制御され得る一実施形態のシステム100を示している。スマートボックス103a〜103eの間で伝達される信号は、各スマートボックスが信号をシステム100内の特定のアクションまたは条件の発生に関係するものとして認識することを可能にするデータまたは他の情報を含み得る。特に、スマートボックス103a〜103eは、無線周波数(RF)送信112またはワイヤレス通信リンクを介して、図3Aを参照しつつ以下で説明されているような発生データを含むイベントレポートメッセージをブロードキャストすることができる。スマートボックス103a〜103eは、代替的に、またはそれに加えて、有線接続、光、音、またはそのような媒体の組合せを介して互いに通信することができる。

[0072]一例として、様々な実施形態によって使用可能にされるシステム100は、スマートボックス103aに接続された壁面スイッチ102を備え、スマートボックス103aは壁面スイッチ102が他のデバイスによる応答を制御する(たとえば、フロアランプ104をオンにする)ことを可能にする信号を送信する。壁面スイッチ102は、有線接続110によってスマートボックス103aに接続されるか、またはスマートボックス103aおよび壁面スイッチ102は、単一のユニットに組み合わされ得る。壁面スイッチ102がトグルされると、その関連付けられているスマートボックス103aは、状態のこの変化を検出し、RF送信112を介してイベントレポートメッセージを発行し、これは送信するスマートボックス103aの半径内にある他のスマートボックス103bから103eのうちのどれかによって受信され得る。1つのそのような受信するスマートボックス103bは、有線接続110bを介してフロアランプ104に接続され得る。例として、フロアランプのスマートボックス103bは、フロアランプ104がオンになることを引き起こすイベントを生成することによって「オン」位置に移動される壁面スイッチ102に対応するイベントレポートメッセージに応答するようにトレーニングされ得る。フロアランプ104がオンになると、そのスマートボックス103bは、イベントを指示する発生データを含み、他の付近のスマートボックス103c〜103eさらには壁面スイッチ102に接続されているスマートボックス103aによって受信され得るイベントレポートメッセージをブロードキャストし得る。代替的に、またはそれに加えて、スマートボックス103a、103c〜103eは、ランプをオンにすることが発生/条件/アクションを指示する信号として処理され得るようにフロアランプ104からの光を感知し得る光センサーを備えることができる。

[0073]図1Aに示されているように、電気スタンド115、ステレオ106、携帯電話114、およびセンサー116などの、様々なデバイスがスマートボックスに結合され得る。スマートボックス103a〜103eは、個別のデバイス102、104、115、116から分離しているように図示されているけれども、各デバイスは、内部スマートボックスを備えるものとしてよく、1つのデバイス内のスマートボックスは、分離しているデバイスに結合され得る。説明を簡単にするため、フロアランプ104、壁面スイッチ102、電気スタンド115、センサー116、およびステレオ106への参照は、断りのない限りその対応するスマートボックスも参照し得る。

[0074]図1Aには示されていないけれども、システム全体を通して他の学習デバイスまたはスマートボックスによって受信され処理され得る信号(すなわち、イベントレポートメッセージ)を送信するために非学習デバイスがシステム100内に備えられてもよい。たとえば、壁面スイッチ102は、図示されているスマートボックス103aの代わりに送信機を有していてもよい。オンにトグルされたとき、壁面スイッチは符号化された「オン」信号(たとえば、1ビットイベントレポートメッセージ)を送信するものとしてよく、壁面スイッチがオフにトグルされたとき、これは、異なる符号化された「オフ」信号(たとえば、2ビットイベントレポートメッセージ)を送信し得る。システム内の別のスマートボックス(たとえば、フロアランプ104に接続されたスマートボックス103b)は、いずれかの信号を受信し、これをイベントに変換することができ、これは記憶されているリフレックスの関連付けられているアクションに対応し得る。

[0075]スマートボックスは、典型的には、スマートボックスで、またはスマートボックスによって実行されたアクションおよび/またはスマートボックスで検出された条件(たとえば、センサーデータ)などの、スマートボックスにおいてイベントを指示するイベントレポートメッセージをブロードキャストするか、または他の何らかの形で送信するように構成され得る。たとえば、スマートボックスまたはスマートボックスにワイヤレス方式で接続されている送信機(「レポーター」)は、ガレージのドアが開かれていることを指示するデータを含む信号をブロードキャストすることができる。スマートボックスは、典型的にはある場所の他のスマートボックスに直接に関与するようには構成されないが、その代わりに、請求応答なしで、および/または他のデバイスのオペレーションを考慮することなく、発生データを単に報告するだけであってもよいことは理解されるであろう。しかしながら、いくつかの実施形態では、スマートボックスは、そのような送信112を介して互いに直接通信することができる。たとえば、ある場所(たとえば、家庭、オフィスなど)に置かれた新しいスマートボックスは、お気に入りの(または最も頻繁に遭遇する)イベントを指示するデータを求める信号をその場所における他の学習デバイスに送信することができ、他のデバイスから応答信号受信したことに応答して、新しいスマートボックスは、バイアスを設定するように構成され得る。

[0076]システム100は、有線またはワイヤレス信号をシステム100内の様々なスマートボックス103a〜103eと交換することができるティーチャシグナリングデバイス150をさらに備えることができる。特に、ティーチャシグナリングデバイス150は、Bluetooth LE、WiFi Direct(登録商標)、RFなどの、ワイヤレス送信112’を介して、スマートボックス103a〜103eから、イベントレポートメッセージおよびデータパケットなどの通信を受信し得る。たとえば、ティーチャシグナリングデバイス150は、壁面スイッチ102がオンにされたことに応答して第1のスマートボックス103aによって送信されたイベントレポートメッセージをインターセプトするように構成され得る。ティーチャシグナリングデバイス150は、ワイヤレスまたは有線リンク153を介してインターネット152との接続を提供するように構成されたネットワークインターフェースをさらに備えることができる。たとえば、ネットワークインターフェースは、ワイドエリアネットワーク(WAN)と通信することができるトランシーバ(たとえば、WiFi無線、セルラーネットワーク無線など)であってよい。インターネット152との接続に基づき、ティーチャシグナリングデバイス150は、接続155を介してインターネット152に接続されているリモートサーバ154などの、様々なデバイスおよびデータソースとインターネットプロトコルを介して通信することができる。リモートサーバ154は、ウェブサーバ、クラウドコンピューティングサーバ、またはサードパーティに関連付けられている他のサーバデバイスであってよい。たとえば、リモートサーバ154は、ストア、ライブラリ、またはティーチャシグナリングデバイス150上にダウンロードされ、使用され得るプログラム、アプリ(またはアプリケーション)、スクリプト、ルーチン、もしくは他の情報を配布する他のデータソースに関連付けられているサーバであってよい。いくつかの実施形態では、リモートサーバ154は、エネルギー効率の高い方式で動作する仕方を学習デバイスにティーチングするためのティーチングルーチンを生成し、特定の条件(たとえば、ホロスコープ)と調和して機能し、エキスパートによって設計された改善された照明ディスプレイを実現するために使用され得るデータを記憶することができる。

[0077]図1Bは、システム100’内の壁面スイッチ102がスマートボックス103aに、内部的に、または有線接続110aなどの別の接続によって、接続され得ることを示している。壁面スイッチ102は、タッチセンサー119またはトグルを有することができる。タッチセンサー119がタッチされるか、またはトグルされたときに(たとえば、壁面スイッチ102がオンにされたときに)、状態の変化が発生データとしてスマートボックス103aに有線接続110aを介して伝達され得る。スマートボックス103aは、発生データによってイベントとして指示される状態の変化を解釈し、RF送信112a、112bなどによって、イベントに関連付けられているイベントレポートメッセージをワイヤレス方式で送信することができる。イベントレポートメッセージは、壁面スイッチ102の受信範囲123内にあるスマートボックスによって受信され得る。いくつかの実施形態では、フロアランプ104は、RF送信112aを受信するスマートボックス103bを備えるか、またはそれに結合され得る。ときには、RF送信112aを介してイベントレポートメッセージを受信した後に、フロアランプ104上のランプスイッチ126が、ユーザによってオンにされ、これにより、照明124がオンになるものとしてよい。フロアランプ104は、そのスマートボックス103bに、現在「オン」状態になっていることを信号で知らせ、スマートボックス103bは、この信号を発生データとして解釈し得る。この信号は、ランプスイッチ126とスマートボックス103bとの間の有線接続110bによって、またはワイヤレス方式で(たとえば、Bluetoothデータリンクを介して)送信され得る。スマートボックス103bが、ランプを通電するスイッチを備える場合、このシグナリングは、このスイッチの作動であってよい。

[0078]様々な実施形態において、フロアランプ104に関連付けられているスマートボックス103bは、壁面スイッチ102をトグルする直前またはトグルした直後に(たとえば、5〜10秒以内に)ユーザが手動でフロアランプ104をオンにすることによって壁面スイッチのスマートボックス103aからトグル信号(すなわち、トグルアクションを指示する発生データを含むイベントレポートメッセージ)を受信したことに応答してフロアランプ104を通電するか、またはフロアランプ104がオンになることを引き起こすようにトレーニングされ得る。このような学習を遂行するために、スマートボックス103bは、所定の時間ウィンドウ内で壁面スイッチのトグル(イベントレポートメッセージで報告されるような)およびフロアランプ104の作動に関係するイベント(フロアランプ104から取得された発生データを介して報告されるような)がいつ生じたかを認識することができる。これは、少なくとも一部は、所定の時間ウィンドウに対する取得された発生データから生成されたイベントをバッファリングすることと、バッファに記憶されているイベントを処理し、相関させることと、その後、バッファからイベントを削除することとによって遂行され得る。たとえば、フロアランプ104に接続されているスマートボックス103bは、壁面スイッチ102の「オン」イベントをフロアランプ104のランプスイッチ126の「オン」イベントに関連付けることを、これら2つのイベントが生成されるか、または所定の時間ウィンドウ内で生じるときに行うことができ、実際、将来の壁面スイッチ102の「オン」イベントがフロアランプ104の作動をトリガーすべきであることを学習する。いくつかの実施形態では、イベントの順序は、重要であるが、いくつかの実施形態では、イベントの順序は問題にならず、したがって、イベントの順序は、イベントが所定の時間ウィンドウ内で生じる(または生成される)限り逆にされ得る。たとえば、壁面スイッチ102に接続されているスマートボックス103aは、フロアランプ104のランプスイッチ126の「オン」イベントを後続する壁面スイッチ102の「オン」イベント(たとえば、タッチセンサー119へのタッチ)に関連付けることができ、実際、将来の壁面スイッチ102の「オン」イベントがフロアランプ104の作動をトリガーすべきであることをそのまま学習する。以下でより詳しく説明されているように、そのようなトレーニングは、望ましくない挙動をうっかり学習してしまうことを回避するためある程度の繰返しを必要とし得る。

[0079]さらに、イベントレポートメッセージは、Bluetoothブロードキャスト信号など、送信112cを介して付近のティーチャシグナリングデバイス150によって受信され得る。以下で説明されているように、ティーチャシグナリングデバイス150で受信されたイベントレポートメッセージ内の発生データは、新しいティーチングルーチンを生成し、既存のティーチングルーチンを更新し、および/またはスマートボックスのアクションおよび学習挙動に対応する統計量などの有益な情報を生成するためにティーチャシグナリングデバイス150によって使用され得る。

[0080]図1Cに示されているように、一実施形態のスマートボックス103は、信号受信機142から受信されたイベントレポートメッセージを処理するように構成されたプロセッサ132(図1Cにおいて、中央演算処理装置(CPU)と称される)を備えることができる。スマートボックス103は、他の学習デバイスまたはスマートボックスおよび/またはティーチャシグナリングデバイスなどの、付近のデバイスによって受信され得るRF信号を介してイベントレポートメッセージで発生データを送信するように構成された信号送信機136を備えることができる。上で説明されているように、そのようなイベントレポートメッセージ内の発生データは、スマートボックス103において遭遇した条件または実行されたアクションを定義または特徴付けることができる(すなわち、イベントレポートメッセージが、スマートボックス103において生成されたイベントを特徴付けることができる)。さらに、その信号受信機142を介して、スマートボックス103は、他のデバイスから類似の送信されたRF信号を介してイベントレポートメッセージを受信することができ、以下で説明されているようなデータ構造を使用して受信された信号からの受信された発生データをイベントとしてメモリ138内のバッファに保存することができる。いくつかの実施形態では、メモリ138は、本開示全体を通して説明されているような関連付けられているパターンを有するリフレックスを記憶するためのある量(たとえば、32キロバイト(KB)、64KBなど)の記憶装置(たとえば、ランダムアクセスメモリ(RAM)、フラッシュなど)を備え得る。この実施形態のスマートボックス103は、スマートボックス103によって検出された状態の変化を指示する発生データを取得するためのセンサーエンコーダ134を備えることができる。たとえば、スマートボックス103が、フロアランプに接続され、フロアランプがオンにされた場合、接続されているスマートボックス103内のセンサーエンコーダ134は、状態の変化をデジタル方式で識別するか、またはマップするために発生データを生成し得る。この発生データは、スマートボックス103のメモリ138に記憶され、そのブロードキャスト範囲内の他の学習デバイス(たとえば、スマートボックス)に対してイベントレポートメッセージ内でブロードキャストされ得る。他の学習デバイスは、その信号受信機を通じて発生データを含むイベントレポートメッセージを受信し、最終的に本明細書で説明されている様々な学習アルゴリズムによって関係するイベントを処理することができる。いくつかの実施形態では、メモリ138は、揮発性ランダムアクセスメモリ(RAM)ユニット(複数可)と不揮発性フラッシュメモリユニット(複数可)とを含むものとしてよい。そのような実施形態では、RAMユニットは、スマートボックス103の様々な機能を動作させるために使用され、フラッシュユニットは、永続的データ(たとえば、リフレックスなど)とログデータ(たとえば、取得されたイベント、信号など)を記憶するために使用され得る。いくつかの実施形態では、リフレックス(以下で説明されているような)は、フラッシュメモリに記憶され得ないが、その代わりに、揮発性RAMに記憶され、これにより、学習された挙動の再設定を効率的に簡単に行えるようにすることができる(たとえば、電源をオフにすることによって未トレーニング状態にリセットし、RAM内のすべてのリフレックスを消去する)。いくつかの実施形態では、フラッシュメモリは、サイズが様々であり、また他の点で、オプションであってもよい。たとえば、フラッシュメモリは、64MB RAMユニットに等しい64MB記憶ユニットであってもよく、両方とも図1Cに表されているようにメモリ138内に含まれ得る。

[0081]それに加えて、スマートボックス103は、補正されたトリガーに応答して学習されたリフレックスアクションとし接続されているデバイス上で物理的アクションを実行するためのモーター駆動装置140を備え得る。たとえば、スマートボックス103が、フロアランプに接続され、受信されたイベントレポートメッセージに応答して生成されたイベントに基づきフロアランプがオンになるべきであると決定した場合、スマートボックス103のプロセッサ132は、モーター駆動装置140に信号を送りフロアランプの電源スイッチを作動させることができる。モーター駆動装置140の代わりに(またはそれに加えて)、スマートボックス103は、補正されたトリガーに応答して学習されたリフレックスアクションとしてアプライアンスを外部電源(たとえば、120Vの交流電源)に接続するように構成されたリレーを備えることができる。

[0082]いくつかの実施形態では、スマートボックス103は、スマートボックス103のコンポーネントに結合された電池143(たとえば、充電式リチウムイオン電池など)を備え得る。いくつかの実施形態では、スマートボックス103は、それに加えて、電流を受けて充電式電池143を充電するか、またはスマートボックス103の様々なコンポーネントに他の何らかの形で電力を供給するための電線または他のインターフェース144(たとえば、交流(AC)電源コンセントに接続するためのプラグまたはプロング)を備えることができる。

[0083]図1Dに示されているように、一実施形態のティーチャシグナリングデバイス150は、リモートサーバからダウンロードされた情報、受信されたイベントレポートメッセージからの発生データ、およびユーザ入力などの、様々なデータを処理するように構成されたプロセッサ180を備え得る。ティーチャシグナリングデバイス150は、Bluetoothアドバタイズメントパケットなどの、短距離信号を交換するように構成されている信号トランシーバ188を備え得る。たとえば、ティーチャシグナリングデバイス150は、データをブロードキャストするか、または付近のスマートボックスからイベントレポートメッセージを受信するためBluetoothまたはWiFi無線を備え得る。ティーチャシグナリングデバイス150は、様々な通信ネットワークと通信するためにネットワークインターフェース184も備え得る。たとえば、ネットワークインターフェース184は、ワイドエリアネットワークトランシーバ、イーサネット(登録商標)インターフェース、セルラーネットワークチップ、および/またはティーチャシグナリングデバイス150がインターネットプロトコルを介してメッセージングを交換することを可能にする機能を有する他のコンポーネントであってよい。ティーチャシグナリングデバイス150は、ユーザ入力を受信するように構成されたタッチスクリーン、情報を表示することができる画面、および/またはユーザ側でティーチャシグナリングデバイス150のティーチングオペレーションを制御もしくは変更するための周辺機器などの、ユーザインターフェースコンポーネント186を含み得る。さらに、ティーチャシグナリングデバイス150は、メモリ182のバッファ内にデータ(たとえば、付近のスマートボックスから受信されたフレックス、ユーザ入力データ、リモートサーバからダウンロードされたデータ、など)を保存することができる。たとえば、ティーチャシグナリングデバイス150は、イベントデータ構造をメモリ182に記憶することができる。

[0084]いくつかの実施形態では、ティーチャシグナリングデバイス150は、ティーチャシグナリングデバイス150のコンポーネントに結合された電池190(たとえば、充電式リチウムイオン電池など)を備え得る。他の実施形態では、ティーチャシグナリングデバイス150は、それに加えて、電流を受けて充電式電池190を充電するか、またはティーチャシグナリングデバイス150の様々なコンポーネントに他の何らかの形で電力を供給するための電線または他のインターフェース192(たとえば、交流(AC)電源コンセントに接続するためのプラグまたはプロング)を備えることができる。

[0085]図2は、イベントから新しい挙動を学習し、その後のイベントに応答して学習された挙動を実行するために様々な機能コンポーネントがどのように一緒に結合されるか、または通信するかを示す一例を図示するスマートボックス103の一実施形態のアーキテクチャ200を示している。スマートボックス103は、イベント生成器202と、センサーエンコーダ134と、信号受信機142とを備え得る。イベント生成器202は、知られているイベントパターン(たとえば、すでに学習されている、または事前プログラミングされているパターン)を指示するデータを受信したことに応答してイベントまたは1つもしくは複数のイベントのシーケンスを生成することができる。たとえば、イベントのパターンがスマートボックス103に接続されているフロアランプをオンにする事前定義されたアクションに関連付けられている場合、イベント生成器202は、イベントパターン記憶装置204に記憶されているパターンを有する信号内の受信された発生データから生成されるイベントとマッチしたことに応答して「ランプオン」イベントを生成し得る。次いで、生成されたイベントは、イベントバス214を介してモーター駆動装置140に伝達され、スマートボックス103に接続されているフロアランプのライトをオンにする。

[0086]スマートボックス103は、信号受信機142を介して別のスマートボックスから信号内の発生データ(たとえば、イベントレポートメッセージ)を受信することもできる。信号受信機142によって受信された信号からのデータは、イベントバス214を介して、イベントレコーダー206などの、他のデバイスコンポーネントにイベントとしてトランスポートされ得る。

[0087]スマートボックス103は、センサーエンコーダ134からのイベントも認識することができ、このエンコーダは、イベントバス214を介してイベントを他のコンポーネントに伝達し得る。たとえば、ユーザがスマートボックス103に接続されているフロアランプを手動でオンにする場合、状態の変化を示す発生データ(たとえば、ライトを「オフ」から「オン」にする)は、センサーエンコーダ134によってデジタル符号化され、状態の変化をイベントに変換することができる。

[0088]信号送信機136は、その後、イベントレポートメッセージを介して別のスマートボックスによって発生データも受信され得るようにイベントバス214を介して受信されたイベントに基づき発生データを送信することができる。これは、一方のスマートボックス103から他方のスマートボックスへのイベントに関する情報の転送を可能にし、これにより、スマートボックスが互いから学習し、各それぞれのスマートボックスによって学習された挙動に基づき複雑なシステム挙動を作成することを可能にし得る。イベントに関係するデータ(すなわち、イベントレポートメッセージ内の発生データ)の再送またはブロードキャストは、スマートボックスがデージーチェーンで一緒につながれ与えられたスマートボックスの信号範囲を拡張することを可能にし得る。

[0089]イベントレコーダー206は、イベントバス214からイベントを受信し、そのイベントをイベントパターン記憶装置204に保存し得る。いくつかの実施形態では、イベントレコーダー206は、発生データを受信し、受信されたデータに基づきイベントを作成し、イベントパターン記憶装置204に記憶することができる。イベントセレクター210は、イベントレコーダー206から1つまたは複数のイベントを受信することができる。イベントの特定の組合せを受信したことに応答して、セレクター210は、ストアパターンコマンドを生成し、ストアパターンコマンドをイベントレコーダー206に送信し、イベントの組合せをパターンとしてイベントパターン記憶装置204内に記憶することをそれに指令することができる。いくつかの実施形態では、イベントセレクター210は、イベントバス214から直接イベントを受信することができる。

[0090]コンポーネントのオペレーションおよびスマートボックス103に対するインタラクティブな操作は、次の例に示されている。フロアランプに接続されたスマートボックス103は、信号受信機142を通じてスマートボックス103で受信される、壁面スイッチからのイベントレポートメッセージを介して状態の変化を指示する発生データを受信し得る。信号受信機142を介したスマートボックス103は、壁面スイッチの状態の変化に関係するイベントをイベントバス214を介してイベントレコーダー206に伝達することができる。その後まもなく、ユーザは、スマートボックス103に接続されているフロアランプのライト124を手動でオンにすることができ、それに応答して、センサーエンコーダ134が、この状態の変化をイベントに変換して、そのイベントをイベントバス214を介してイベントレコーダー206に伝達し得る。イベントレコーダー206は、それらのイベントを、受信されるとともにセレクター210に送信し得る。セレクター210は、学習アルゴリズムを用いて、壁面スイッチのトグルに基づき生成される、イベントのパターンと、フロアランプの手動のライトオン発生データとを処理することができる。イベントを処理した後、セレクター210は、ストアパターンコマンドを通じてイベントのパターンをイベントパターン記憶装置204に記憶するようにイベントレコーダー206に指令することができる。イベントパターン記憶装置204は、イベント間の学習された関連付けをリフレックスとして特定の重み関連付けとともに記憶し得る。いくつかの実施形態では、イベントパターン記憶装置204は、補正パターンと、報酬パターンと、トリガーパターンと、アクションパターンとを生成するために使用されるパターンもしくはイベントなどの所定のパターンおよび/またはイベントも同様に記憶することができる。

[0091]観察されたイベントとアクションとの間の関連付けに応じて、セレクター210は、以下で説明されているように、利得調整器212と連携して、観察されたアクションパターン(たとえば、ユーザがフロアランプをオンにしたことの観察)および/または重み(すなわち、バイアス、スケール、など)の方程式および/または計算に関係する他の特性に関連付けられているイベントの重みを変更する(たとえば、トリガーイベントのトリガー重みを増加させる)ことができる。

[0092]適宜、センサーエンコーダ252は、指令されたアクションの開始に基づき追加のイベントを提供し得る。これらの追加のイベントは、指令されたイベントが実際に発生した(たとえば、「オン」アクションが実行されたことに応答してライトが実際に点灯した、など)ことの確認であるものとしてよく、スマートボックス103がイベントとアクションとの間の関連付けを学習するのを助ける報酬イベント(またはパターン)として処理することができる。

[0093]図3Aは、発生データを特徴付けるために使用され得るデータ構造300を示している。発生データは、フォーマットコンポーネント301と、識別コンポーネント302と、状態コンポーネント303とを含むようにデータレコード内に反映され得る。スマートボックス(たとえば、図1Cに示されているような)のプロセッサ132(またはCPU)は、復号情報をフォーマットコンポーネント301として記録し得る。これは、プロトコルバージョン、暗号化タイプ、シーケンス番号、トランザクション識別子(たとえば、指示なしで様々な発生データを次のデータから区別するために使用され得る情報、方向、順序、またはシーケンス)、記録時間、送信時間などを含み得る。しかしながら、記録時間および送信時間は、フォーマットコンポーネント301におけるオプションフィールドであり得る。いくつかの実施形態では、トランザクション識別子(またはID)は、値に関して連続していないか、または他の何らかの形で順序番号(たとえば、シーケンス内で増加または減少)を指示し得る。上で説明されているように、スマートボックスは、データ構造300を少なくとも含む信号(すなわち、イベントレポートメッセージ)を送信するように構成されるものとしてよく、また他の学習デバイスは、そのような信号を受信し、このフォーマットコンポーネント301を使用してデータ構造300の発生データの残りを読み取るように構成され得る。識別コンポーネント302は、発生データの発生元のデバイスを指示するものとしてよく、状態コンポーネント303は、発生データが表す状態または状態の変化に対応し得る。いくつかの実施形態では、状態コンポーネント303は、デバイスの動作状態(たとえば、「オン」、「オフ」など)に加えてボルト(たとえば、0.02)などの、アナログ状態データを含み得る。

[0094]たとえば、発生データに対するデータ構造300は、「V2.1」のフォーマットコンポーネント301と、「WALLSWITCH102」の識別コンポーネント302と、「ON」の状態コンポーネント303とを含み得る。これは、壁面スイッチに接続されているスマートボックスで2.1のデータフォーマットバージョンを表し、また壁面スイッチが「オフ」から「オン」にトグル式に切り替えられたことを表し得る。さらにこの例において、発生データおよび関連付けられているイベントは、壁面スイッチ(図1Aに示されている)のところで生成され得る。生成された後、発生データは、イベントレポートメッセージで、そのブロードキャスト範囲内にあるすべてのスマートボックスによって受信されるように壁面スイッチに関連付けられているスマートボックスからブロードキャストされ得る。フロアランプに関連付けられている付近のスマートボックスは、ブロードキャストされた発生データを受信して処理することができる。発生データは、後で説明されるイベントデータ構造350(図3B)と類似のデータコンポーネントを有し得るので、受信するスマートボックスは、発生データを利用してイベントを生成し復号することができる。これは、イベントのフィルタリングおよびパターン生成を円滑にするのに役立ち得る。

[0095]図3Bは、イベントを記録するか、または特徴付けるために使用され得るデータ構造350を示している。データ構造350は、適宜、上で説明されているようなフォーマットコンポーネント301を含み得る。イベントは、時間コンポーネント351と、識別コンポーネント352と、状態コンポーネント353とを含むようにデータレコード内に反映され得る。イベントデータ構造350は、発生データに関して図3Aにおいて上で説明されているようなデータ構造300に類似しており、イベントは、発生データと同時に生成され得る。データ構造300(すなわち、発生データ)は、データ構造350(すなわち、イベント)を生成するためにスマートボックスによって使用され、またその逆もあり得る。スマートボックスが、イベント発生源(たとえば、信号受信機142)を通じてイベントに対する発生データを受信したときに、イベントに関連付けられている時間コンポーネント351を記録することができる、イベントレコーダー206内のイベントを特徴付けるデータを記憶することができる。時間コンポーネント351は、受信するスマートボックスによってイベントが作成されるか、または観察された時間であってよい。代替的に、時間コンポーネント351は、イベントの発生データを送信する前に発生元のスマートボックスによって割り当てられた時間(すなわち、アクションが実行された、または条件が観察されたときなど)を示し得る。識別コンポーネント352は、イベントの発生データの発生元のデバイスを指示するものとしてよく、状態コンポーネント353は、イベントが表す状態または状態の変化に対応し得る。

[0096]たとえば、イベントは、17:12:02の時間コンポーネント351と、「WALLSWITCH102」の識別コンポーネント352と、「ON」の状態コンポーネントとを含み得る。これは、壁面スイッチに接続されているスマートボックス上で17:12:02に作成されたイベントを表し、また壁面スイッチが「オフ」から「オン」にトグル式に切り替えられたことを表し得る。引き続きこの例示において、そのようなイベントを記述する発生データは、イベントレポートメッセージで、壁面スイッチに関連付けられているスマートボックスからそのブロードキャスト範囲内にあるどれかのスマートボックスにブロードキャストされ得る。フロアランプに関連付けられているスマートボックスは、以下で説明されているように、ブロードキャストされたイベントレポートメッセージを受信し、含まれている発生データを処理して学習アルゴリズムによる処理のためのイベントを生成することができる。

[0097]イベントパターンは、取得されるか、生成されるか、または他の何らかの形で時間ウィンドウもしくはシーケンス内で遭遇する1つまたは複数のイベントを含み得る。たとえば、特定のイベントパターンが、学習デバイス(たとえば、スマートフロアランプなど)によって内部で生成された第1のイベントと、別のデバイス(たとえば、スマート壁面スイッチなど)から受信される信号を受信したことに応答して学習デバイスによって取得された第2のイベントとを含み得る。後で説明されているように、イベントパターンは、トリガーパターン、アクションパターン、補正パターン、または報酬パターンであってよい。どのタイプかに関係なく、イベントパターンは、順序依存であるものとしてよく、したがって特定のイベントが受信される順序がパターンを構成する。代替的に、イベントパターンは順序独立であってよく、その場合、パターンは、イベントの処理順序から独立している。たとえば、第1のイベント(イベントAと称される)は、時刻0に取得され(たとえば、受信された発生データに基づき生成される)、第2および第3のイベント(それぞれイベントBおよびイベントCと称される)は、その後の時刻1に同時に取得され得る(A:0、B:1、C:1と表される)。順序依存パターンでは、学習デバイスは、イベントAが最初に取得され、イベントBおよびCがイベントAの後に同時に取得される場合にのみパターンを認識し得る(A:0、B:1、C:1と表される)。しかしながら、イベントCが時刻1ではなく時刻2において取得された場合、パターン(A:0、B:1、C:2)は、イベントCが時刻1ではなく時刻2において取得されたので、パターンA:0、B:1、C:1に等しくなり得ない。したがって、時刻1にイベントCを取得することによって作成される第1のパターン(A:0、B:1、C:1)および時刻2にイベントCを取得することによって作成されるパターン(A:0、B:1、C:2)は、イベントCを取得する時刻が異なるので異なる。順序独立パターンでは、学習デバイスは、取得されたイベントA:0、B:1、C:1を取得されたイベントA:0、B:1、C:2と同じように処理し得るが、それは、Cの時刻は、イベントCがイベントAおよびイベントBと同じ所定の時間ウィンドウ内で取得される限り重要でないからである。言い換えれば、順序独立の場合、同じイベントは、特定の時間ウィンドウ内で取得されるだけでよい。スマートボックスまたは学習デバイスによって観察される時間ウィンドウは、図3C〜図3Hを参照しつつ以下でさらに説明される。

[0098]いくつかの実施形態では、複数のスマートボックスまたは学習デバイスが、パターン(たとえば、トリガーパターンおよびアクションパターン)を生成し、単一のイベントに基づきアクションを実行することができる。たとえば、ユーザは、壁面スイッチを「オフ」から「オン」にトグルし、壁面スイッチが単一の第1のイベントを生成することを引き起こすことができる。第1のイベントを生成した後、壁面スイッチは、関係するイベントレポートメッセージをワイヤレス方式ですべての付近の学習デバイスにブロードキャストし得る。第1の付近の学習デバイスは、たとえば、フロアランプであってよく、これは受信されたイベントレポートメッセージに基づき第1のイベントを生成し、それをトリガーパターンに変換し得る。トリガーパターンに応答して、フロアランプは、アクションパターンを生成し、このアクションパターンに基づきライトをアクティブ化することができる。同時に、付近のステレオが、同じイベントレポートメッセージを受信し、それと同時に、受信されたイベントレポートメッセージに基づき第1のイベントを同様に生成し、それをトリガーパターンに変換し、フロアランプと異なる関連付けられているアクションパターンを生成し、異なるアクションパターンに基づき音楽を再生することができる。したがって、この例において第1のパターンに関係する単一のブロードキャストされたイベントレポートメッセージは、フロアランプがそのライトをアクティブ化し、ステレオが音楽を再生することを引き起こした。

[0099]いくつかの実施形態では、複数のスマートボックスは、アクションパターンを生成し、複数の個別のイベントに関係する複数のイベントレポートメッセージを受信することに基づき対応するアクションを実行することができる。たとえば、ユーザは、図1Aからの壁面スイッチを「オフ」から「オン」にトグルし、壁面スイッチにおいて第1のイベントを生成する。ユーザは、スマートフロアランプのランプスイッチをオフから「オン」にトグルすることもでき、これは、スマートフロアランプがスマートフロアランプにおいて第2のイベントを生成することを引き起こす。第1および第2のイベントに関係するイベントレポートメッセージ(すなわち、それぞれ第1および第2のイベントに対する発生データを含む)は、5〜10秒の時間ウィンドウ内でそれぞれのスマートボックスからブロードキャストされ得る。なおもその時間ウィンドウ内で、付近のスマートステレオおよびスマート電気スタンドは、第1および第2のイベントに関係する両方のイベントレポートメッセージを受信し得る。スマートステレオは、第1および第2のイベントに関係するイベントレポートメッセージを受信することに基づきトリガーパターンと、対応するアクションパターンとを生成し得る。アクションパターン生成は、たとえば、ステレオがオンになり、音楽の再生を開始することを引き起こすことができる。それと同時に、スマート電気スタンドは、同じ2つのイベントに関係するイベントレポートメッセージを受信することに基づきトリガーパターンと、異なるアクションパターンとを生成する。アクションパターンを生成した後、スマート電気スタンドは、たとえば、そのライトをオンにすることができる。

[0100]図3C〜図3Hは、様々な実施形態の学習デバイスがイベントのパターンを識別し、および/または補正するために時間をロールオーバーする時間ウィンドウ362をどのように使用するかを示している。上で説明されているように、そのような時間ウィンドウ362は、与えられた時刻にパターンまたはパターンの一部として識別されることに対して適格であり得るイベントに対して時間的制限を加えることができる、秒数(たとえば、5〜10秒)などの、所定の時間量であってよい。言い換えれば、時間ウィンドウ362内に発生するか、またはスマートボックスによって取得されるイベント(たとえば、時間ウィンドウ362内に収まる図3Bにおいて上で説明されているような時間コンポーネント351を有するイベント)が組み合わされて、以下で説明されているようにアクションをトリガーし、および/またはリフレックスに対するトリガー重みを調整する際に使用するためのパターンを生成し得る。いくつかの実施形態では、スマートボックスは、取得されたイベントを、そのような取得されたイベントが事前定義された時間ウィンドウ362内にもはや収まっていないときにメモリ、バッファ、または他の記憶装置から削除するように構成され得る。

[0101]図3Cは、タイムライン360に対する例示的な時間ウィンドウ362を示している。取得されるか、または観察されたイベント370〜374(図3C〜図3FにおいてイベントA〜Eと称される)は、第1の時刻380aおよび第2の時刻380bに関して時間ウィンドウ362内でスマートボックスによって遭遇されているものとしてよい。時間ウィンドウ362の長さは、第1の時刻380aと第2の時刻380bとの間の時間の長さとすることができる。そのため、第2の時刻380bにおいて、スマートボックスは、取得されたイベント370〜374のうちのどれかを任意の組合せまたは順序で使用して、記憶されているリフレックス内の事前定義されたパターンとマッチされ得るパターンを生成し得る。たとえば、スマートボックスは、「A,B,C,D,E」、「A,B,C,D,」「A,B,C,」「A,B」「A」、「A,B,C,D,E」、「A,C,E」、「E,C,A」、「A,E,C」などの、イベントA〜Eの任意の組合せおよび/または順序を使用してパターンを生成することができる。

[0102]図3Dは、第3の時刻381aと第4の時刻381bとの間の時間ウィンドウ362内で取得されたイベント371〜375(図3DにおいてイベントB〜Fと称される)を示している。たとえば、第4の時刻381bにおいて、イベント「A」370は、もはや、時間ウィンドウ362内にはないが(すなわち、イベント「A」370は、第3の時刻381aよりも早い時刻に対応し得る)、イベントB〜F371〜375の任意の組合せは、スマートボックスに記憶されているリフレックス内の事前定義された情報とマッチし得るパターンを生成するように組み合わされ得る。いくつかの実施形態では、イベント「A」370は、第4の時刻381bにおいてメモリ、バッファ、または他の記憶装置から削除されるか、または他の何らかの形で取り除かれ得る。

[0103]同様に、図3Eは、第5の時刻382aと第6の時刻382bとの間の時間ウィンドウ362内でスマートボックスによって取得され得るイベント372〜376(図3EにおいてイベントC〜Gと称される)を示している。たとえば、第6の時刻382bにおいて、イベント「A」370およびイベント「B」371は、もはや、時間ウィンドウ362内に入っていないが、イベントC〜G372〜376の任意の組合せは、スマートボックスに記憶されているリフレックス内の事前定義された情報とマッチし得るパターンを生成するように組み合わされ得る。いくつかの実施形態では、イベント「B」371は、第6の時刻382において(すなわち、時間ウィンドウ362の外であるとき)メモリ、バッファ、または他の記憶装置から削除されるか、または他の何らかの形で取り除かれ得る。スマートボックスは、同様の方式で時間ウィンドウ362をロールする(または進ませる)ことを続け、時間ウィンドウ362内に収まるイベントを継続的に評価し、イベントが事前定義されたパターンに対応しているかどうかを決定することができる。

[0104]図3F〜図3Hは、識別されたパターンに関する様々な他の例示的な時間ウィンドウを示している。本明細書で説明されているように、スマートボックス(または学習デバイス)は、フロアランプの「オン」イベントまたは壁面スイッチの「オン」イベントなどのイベントを識別されたトリガーまたはそのような事前定義された時間ウィンドウ内で発生する他のパターンに相関させることができる。たとえば、特定のリフレックス(たとえば、取得された壁面スイッチの「オン」イベント)のトリガーパターンの発生を検出したことに応答して、スマートボックスは、リフレックスの関係する報酬パターンまたは補正パターンもトリガーパターンから5〜10秒の時間ウィンドウ内で発生したかどうかを決定し得る。スマートボックスは、関係するパターンにも遭遇したかどうかを決定するために識別されたパターン(たとえば、トリガーパターン)の前および/または後に取得される取得済みイベントを評価し得る。

[0105]図3F〜図3Hは、イベント「D」373および識別されたパターンに関連付けられている時刻389(図3F〜3Hでは「id’dパターンの時間(Time of id’d pattern)」と称されている)からなる識別されたパターンに関する様々な時間ウィンドウ362a〜362cを示している。図3Fは、識別されたパターン(すなわち、イベント「D」373)に関連付けられている時刻389の前に生じる第1の期間392aを含むように構成され、識別されたパターンに関連付けられている時刻389の後に生じる第2の期間392bに等しい第1の時間ウィンドウ362aを示している。スマートボックスは、識別されたパターンに関連付けられている時刻389から第2の期間392bが経過した後に生じる第1の終了時刻390aまでに識別されたパターンに相関され得るイベントを取得し、バッファリングする(または他の何らかの形で記憶する)ように構成され得る。第1の期間392aおよび第2の期間392bが同じ持続時間である場合に、等しい数のイベントが、潜在的に、識別されたパターンに関連付けられている時刻389の前および後に生じる期間392a、392b内に取得され得る。言い換えれば、第1の時間ウィンドウ362aにより、スマートボックスは、イベント「B」371、イベント「C」372、イベント「E」374、およびイベント「F」375のうちのどれかまたはすべてをイベント「D」373の識別されたパターンに相関させることができるものとしてよい。別の例として、スマートボックスは、イベント「D」373の識別されたパターンをイベント「B」371とイベント「F」375とを含む報酬パターンなどと相関させることができる。

[0106]図3Gは、識別されたパターンに関連付けられている時刻389の後に生じる第4の期間393bより短い(または時間的に小さい)識別されたパターン(すなわち、イベント「D」373)に関連付けられている時刻389の前に生じる第3の期間393aを含むように構成されている第2の時間ウィンドウ362bを示している。スマートボックスは、識別されたパターンに関連付けられている時刻389から第4の期間393bが経過した後に生じる第2の終了時刻390bまでに識別されたパターンに相関され得るイベントを取得し、バッファリングする(または他の何らかの形で記憶する)ように構成され得る。したがって、識別されたパターンの後に生じる第4の期間393b内で、より多くの数のイベントが潜在的に取得され得る。言い換えれば、第2の時間ウィンドウ362bにより、スマートボックスは、イベント「C」372、イベント「E」374、イベント「F」375、およびイベント「G」376のうちのどれかまたはすべてをイベント「D」373の識別されたパターンに相関させることができるものとしてよい。たとえば、スマートボックスは、イベント「D」373の識別されたパターンをイベント「C」372と、イベント「E」374と、イベント「G」376を含む補正パターンなどと相関させることができる。

[0107]図3Hは、識別されたパターンに関連付けられている時刻389の後に生じる第6の期間394bより長い(または時間的に大きい)識別されたパターン(すなわち、イベント「D」373)に関連付けられている時刻389の前に生じる第5の期間394aを含むように構成されている第3の時間ウィンドウ362cを示している。スマートボックスは、識別されたパターンに関連付けられている時刻389から第6の期間394bが経過した後に生じる第3の終了時刻390cまでに識別されたパターンに相関され得るイベントを取得し、バッファリングする(または他の何らかの形で記憶する)ように構成され得る。したがって、識別されたパターンの前に生じる第5の期間394a内で、より多くの数のイベントが潜在的に取得され、バッファリングされ得る。言い換えれば、第3の時間ウィンドウ362cにより、スマートボックスは、イベント「A」370、イベント「B」371、イベント「C」372、およびイベント「E」374のうちのどれかまたはすべてをイベント「D」373の識別されたパターンに相関させることができるものとしてよい。たとえば、スマートボックスは、イベント「D」373の識別されたパターンをイベント「C」372と、イベント「E」374とを含む補正パターンなどと相関させることができる。

[0108]上で説明されているように、リフレックスは、スマートボックスが関連付けられているトリガーを検出したことに応答して実行するか、または開始することができる事前定義されたアクションを指示する記憶されている情報であるものとしてよい。図4に示されているように、4つのパターンは、リフレックス400、特にトリガーパターン402と、アクションパターン404と、報酬パターン406と、補正パターン408とを構成し得る。パターンは、1つまたは複数のイベントを含み、イベントは、データに関連付けられ得る。しかしながら、いくつかの実施形態では、パターンは、1ビット信号に関係付けられ得る(たとえば、割り込み信号線がHighレベルになる)。たとえば、1ビット信号は、報酬パターンに変換され、スマートボックスの論理イベントバス上に出され得る報酬信号であるものとしてよい。割り込みセンサーは一種のセンサーエンコーダであってよいので、そのような1ビット信号報酬パターンは、センサーエンコーダ経路を、上で説明されているように取り得る。他のパターンタイプ(たとえば、アクション、トリガーなど)は、単純な信号(たとえば、1ビット信号または割り込み)によっても定義され得る。

[0109]スマートボックスが知られているリフレックスの知られているトリガーパターンとマッチするイベント(または複数のイベント)を取得したときに、スマートボックスは、対応するアクションパターン404を生成し得る。リフレックスは、所定の報酬パターンおよび所定の補正パターンを有することができる。スマートボックスが、学習を許されたときに報酬パターンを受け取った場合、スマートボックスは、トリガーパターン402とアクションパターン404との間の関連付けに対する重み付け(すなわち、トリガー重み)を増加させ得る。関連付け重み付けが、閾値量を超えると、スマートボックスは、トリガーパターンに応答してアクションパターンを実行し得る。同様に、リフレックス400は、所定の補正パターン408を有することができ、スマートボックスが、学習を許されたときに補正パターンを受け取った場合、スマートボックスは、トリガーパターン402とアクションパターン404との間の関連付け重み付けを減少させ得る。補正パターン408の処理で、関連付け重み付けの修正を、関連付け重み付けが閾値量よりも低くなり得、スマートボックスが事実上トリガーパターン402に応答してアクションパターン404を実行しないことを学習する十分な回数だけ行うことができる。この仕方で、スマートボックスは、トリガーパターン402と対応するアクションパターン404との間の関連付けを学習し、望ましくないトリガー/アクション関連付けを学習解除することができる。様々な実施形態において、補正パターン408および/または報酬パターン406は、アクションを実行すること、入力を受信することなどに応答してイベントレポートメッセージを発行する付近のデバイスなどの別のスマートボックスデバイスからスマートボックスによって受信されたデータに基づき取得され得る。

[0110]いくつかの実施形態では、スマートボックスのリフレックス400の事前定義されたアクションパターン404をトリガーパターンに関連付けるために、スマートボックスに対する「学習を許された」状態(または学習モード)を有効化する方法が使用され得る。そのような学習モードは、スマートボックスがリフレックス400のトリガー重みを変更することを可能にされ得る間のスマートボックスの動作状態であるものとしてよい。取得されたパターンが知られているリフレックス400のトリガーパターン402にマッチした後、リフレックスは学習モードに入り得る。他の実施形態では、スマートボックスは、アクションパターン404が生成されるときに学習モードに入り得る。他の実施形態では、スマートボックスは、大域的学習モードまたは状態に入り、これはトリガー(たとえば、学習スイッチをオンにする)から独立しているものとしてよく、またそのときに、スマートボックスは様々なリフレックスに対するトリガー重みを変更するか、または他の何らかの形で、取得されたイベントに基づき新しいリフレックスを生成することができる。様々な実施形態において、リフレックス400は、リフレックス400がアクティブな監視モード、トリガーされたモード、学習モードなどに入っているかどうかを指示するビット、フラグ、または他のインジケータなどの、様々なモードのステータスを指示するデータを含み得る。

[0111]スマートボックスは、スマートボックスの所定の知られている能力に対するアクションパターンを有する1つまたは複数のリフレックスとともに構成され得る。スマートボックスは、複数のリフレックスを異なる対応するアクションとともに利用することができるけれども、いくつかの実施形態では、スマートボックスは、製造業者によって提供されるデータにおいて指示されるアクションパターンなどの、スマートボックスの知られている能力またはアクションの静的セットの外部のアクションを実行するように構成され得ない。そのため、スマートボックスは、知られているアクションに相関する知られていないトリガーを有する新しいリフレックスを生成するように構成され得るが、事前定義されていないアクションを有する新しいリフレックスを生成するように構成され得ない。

[0112]例示として、ステレオ学習デバイス(または学習デバイスまたはスマートボックスに結合されているステレオ)は、音量レベルを音量レベル値の有限の範囲(たとえば、0〜10など)内の値に設定する、ラジオ(またはラジオチューナー)を「オン」にアクティブ化する、ラジオ(またはラジオチューナー)を非アクティブ化する、ラジオ放送局をラジオ放送局の値の有限の範囲(たとえば、88.1〜121.9など)内の値に設定する、周波数変調(FM)構成または振幅変調(AM)構成を設定するなどの所定のアクションとともに構成され得る。ステレオ学習デバイスは、様々なトリガーパターンを有するこれらの所定のアクションの各々に対するリフレックスを記憶することができる。たとえば、ステレオ学習デバイスは、ラジオ放送局を第1の値(たとえば、92.3FM)に設定するアクションパターンとランプ「オン」イベントのトリガーパターンとを有する第1のリフレックス、ラジオ放送局を第2の値(たとえば、101.5FM)に設定するアクションパターンと壁面スイッチ「オン」イベントのトリガーパターンとを有する第2のリフレックス、音量レベルを8に設定するアクションパターンとランプ「オン」イベントのトリガーパターンとを有する第3のリフレックス、などを記憶することができる。

[0113]パターンは、センサー(たとえば、光センサー、スイッチ視覚センサーなど)によって取得された発生データに基づき生成されるイベントおよび/または信号受信機142によって受信された発生データに基づき生成される1つまたは複数のイベントなどの、スマートボックスで取得される1つまたは複数のイベント(たとえば、時間コンポーネント、デバイスコンポーネント、など)から作成され得る。イベントは、メモリ138内に記憶され、パターンを作成または認識するためにイベントレコーダー206によって使用され得る。パターンを作成または認識するためにイベントを評価する前に、フィルタがイベントに適用され、これにより、考慮され得るイベントのセットを縮小することができる。たとえば、フロアランプのスマートボックスは、ステレオからのイベントレポートメッセージに関係するイベントを無視することができる。代替的な一例として、ステレオは、午後11時などの、ある時刻以降に取得されるか、または生成されたイベントを無視することができる。スマートボックスが、イベントのパターンを生成した後、これは、そのパターンが記憶されているリフレックスに対応する知られているトリガーパターンとマッチするかどうかを決定することができる。

[0114]識別されたパターンがリフレックス内の記憶されているトリガーパターンとマッチし、関係するトリガー重みが特定の閾値に等しいか、またはそれ以上である場合に、対にされたアクションパターンが生成され得る。特定のリフレックス(Reflexi)に対する現在のトリガー重み(Wi)は、次の式に基づき計算され得る。

[0115]ただし、iは、リフレックスカウンターまたは識別子であり、nは、リフレックスのトリガーパターンに関連付けられているイベントの数であり、kは、リフレックスのトリガーパターン内の個別のイベントに対するカウンターを識別し、mは、リフレックスのトリガーパターン内の個別のイベントに対するイベントマッチインジケータであり、xは、リフレックスのトリガーパターン内の個別のイベントに関連付けられているマッチ重みであり、sは、リフレックスのトリガーパターン内の個別のイベントに適用されるスケール係数であり、bは、リフレックスのトリガーパターン内の個別のイベントに適用される重みマッチ全体に対するバイアスである。したがって、Reflexiの現在のトリガー重みWiは、イベントマッチ(m)にマッチ重み(x)とスケール係数(s)とを掛けて取った総和にReflexiに関連付けられているトリガーパターンにおけるバイアスbを加えたものに等しい。いくつかの実施形態では、マッチ重み(x)は、それぞれのイベントに関連付けられている利得によって調整されるものとしてよく、本開示で説明されているように、利得は、学習デバイスが臨界期間内にあるか、または定常状態期間内にあるかに基づき設定され得る。いくつかの実施形態では、スマートボックスは、値を0.0から1.0の範囲内に正規化する。さらに、いくつかの実施形態では、イベント(m)に対するイベントマッチインジケータは、イベントが完全にマッチしたかしていないかを指示し得る0.0と1.0との間で流動的な値であり得る。(すなわち、1.0のイベントマッチ値は、完全マッチを表し、0.0のイベントマッチは、完全なミスマッチを指示し得る)。

[0116]例示として、単一のイベントの識別されたパターンが特定のリフレックス(Reflexi)に対する知られているトリガーパターンとマッチする場合に、単一のイベントに対するイベントマッチインジケータ(m)は、1に設定され得る。単一のイベントに対するマッチ重み(x)が関連付けられている利得値に基づき1に設定され、スケール係数(s)も1に設定され、Reflexiに対するバイアス(b)は0に設定されていると仮定すると、Reflexiに対する新しい、または現在のトリガー重みWiは1に等しいものとしてよい。同じパターンが再び受信された場合、マッチ重み(x)は、リフレックスに関連付けられている現在の利得によって調整され、その結果、トリガー重み閾値よりも大きくなり得るその後の新しいトリガー重み(Wi)の増加が生じ得る。したがって、新しいトリガー重み(Wi)は、増減し得る。たとえば、2度目も同じトリガーパターンを受信することは、mk,iが1に設定され、xk,iが1.5に調整され、sk,iが1に設定され、biが0に設定されていると仮定してトリガー重み(Wi)を1.5に増加させ得る。同じ条件の下で、識別されたパターンが、知られているトリガーパターンとマッチしない場合、mは、0に等しくなり、その結果、新しいトリガー重みWiも0に等しくなり得る。

[0117]追加の例示として、ステレオ(たとえば、図1Aにおいて上で説明されているようなステレオ106)は、様々なリフレックスを記憶し、利用することができるスマートボックスを備えるか、またはこれに結合され得る。特に、ステレオは(そのスマートボックスを介して)、付近のシーリングライトからの「オン」信号に関係する第1のイベントと、付近のリクライナー内の人感センサー(たとえば、圧力センサー、モーションセンサーなど)からの信号に関係する第2のイベントとを含むトリガーパターンを有する第1のリフレックス(Ri)を記憶し得る。たとえば、第1のイベントは、アクティブ化されたときにシーリングライト(またはシーティングライトに結合されているスマートボックス)によって送信された信号に対応するものとしてよく、第2のイベントは、リクライナーに人が座っているときにリクライナー(またはリクライナーに結合されているスマートボックス)によって送信された信号に対応するものとしてよい。第1のリフレックスは、ステレオがトリガーパターンの発生を検出したことに応答してステレオがオンになることを引き起こし得るアクションパターンも含み得る(すなわち、シーティングライトとリクライナーイベントの両方)。言い換えれば、第1のリフレックスに基づき、ステレオは、シーリングライトがオンにされ、誰かが事前定義された時間ウィンドウ(たとえば、5〜10秒など)内でリクライナーに座ったことに応答してラジオをアクティブ化し、音楽を再生することができる。

[0118]次の表は、ステレオの第1のリフレックス(つまり、Ri)に関する式の例示的な特性を示している。次の例および表の目的に関して、第1のリフレックスのアクションパターン(すなわち、ステレオをオンにして、音楽を再生する)は、第1のリフレックス(すなわち、Wi)のトリガー重みが1.5のトリガー閾値以上であるときにトリガーされるものとしてよく、この条件はステレオが第1のイベントおよび第2のイベントのうちの少なくとも一方を受信したことに応答して発生し得る。第1のイベントは、イベントk=0であり、第2のイベントは、k=1であるものとしてよい。さらに、様々イベント(mn,i)に対するマッチインジケータを除き、製造業者、開発者、またはユーザによって設定されるような、次の特性における様々な値は、事前定義され得ることは理解されるであろう。たとえば、イベントに対するマッチ重みは、製造業者によって設定され得るか、またはスマートボックスにおいて遭遇した以前のイベントに基づくものとしてよい。

[0119]上の表Aの例示的な特性に示されているように、一シナリオにおいて、第1のイベント(すなわち、k=0)のみがステレオによって受信され得る。したがって、ステレオのスマートボックスは、第1のイベント(m0,i)に対するイベントマッチインジケータを1.0に(すなわち、第1のイベントに対してマッチがある)、第2のイベント(m1,i)に対するイベントマッチインジケータを0.0に(すなわち、第2のイベントに対してマッチがない)設定することができる。第1のリフレックスのトリガー重みは、各イベントに対する部分重み計算結果を総和することによって計算されるものとしてよく、それにより、第1のイベントの部分重みは、1.0と計算される。言い換えれば、(m0,i*x0,i*s0,i)+bi=(1.0*1.0*1.0)+0.0=1.0である。第2のイベントはないので、第2のイベント(m1,i)に対するイベントマッチインジケータは0.0であり、したがって、第2のベントに対する部分重み計算結果は0.0となり得る。言い換えれば、(m1,i*x1,i*s1,i)+bi=(0.0*1.0*1.0)+0.0=0.0である。したがって、第1のリフレックス(Wi)のトリガー重み合計は、1.0(すなわち、1.0+0.0)であり、これは1.5のトリガー閾値よりも小さい。したがって、第1のイベントのみが受信された場合、第1のリフレックスのアクションパターンはトリガーされ得ない(たとえば、ステレオはラジオをアクティブ化し得ない)。

[0120]上の表Bの例示的な特性に示されているように、別のシナリオにおいて、第1のイベント(すなわち、k=0)および第2のイベント(すなわち、k=1)の両方がステレオによって受信され得る。したがって、スマートボックスは、第1のイベント(m0,i)に対するイベントマッチインジケータを1.0に(すなわち、第1のイベントに対してマッチがある)、第2のイベント(m1,i)に対するイベントマッチインジケータを非ゼロの値に設定することができる。しかしながら、いくつかの場合において、第2のイベントは、正確にマッチされ得ず、そのため、第2のイベント(m1,i)に対するマッチインジケータは、0.8に設定され得る(すなわち、第2のイベントに対して少なくとも部分的なマッチがある)。第2のイベント(m1,i)に対するイベントマッチインジケータに対する0.8の値は、第2のイベントマッチが、値を0.0から1.0までの範囲に正規化するシステムに対する不完全なマッチであったことを指示するものとしてよく、1.0は、イベントマッチ値に対する完全なマッチを表す。

[0121]上で説明されているように、トリガー重み(Wi)は、各イベントに対する部分重み計算結果を総和することによって計算されるものとしてよく、それにより、第1のイベントの部分重みは、1.0と計算される。言い換えれば、(m0,i*x0,i*s0,i)+bi=(1.0*1.0*1.0)+0.0=1.0である。さらに、第2のイベントの部分重みは、0.8と計算される。言い換えれば、(m1,i*x1,i*s1,i)+bi=(0.8*1.0*1.0)+0.0=0.8である。したがって、第1のリフレックス(Wi)のトリガー重み合計は、1.8(すなわち、1.0+0.8)であり、これは1.5のトリガー閾値よりも大きい。そのため、第1のイベントと第2のイベントの両方がスマートボックスで取得される場合、第1のリフレックスのアクションパターンが生成され、これはアクションが実行されることを引き起こし得る(たとえば、ステレオがそのラジオをアクティブ化し、音楽を再生し得る、など)。いくつかの実施形態では、第1のリフレックスのアクションパターンが生成され、これはトリガー閾値(たとえば、1.5)以上の第1のリフレックス(Wi)のトリガー重み合計の計算に応答してアクションが実行されることを引き起こし得る。

[0122]いくつかの実施形態では、様々なイベントに対するマッチ重みに基づき、スマートボックスは、単一のイベントを取得したことに応答してアクションを実行するように構成され得る。たとえば、ステレオのスマートボックスは、誰かがリクライナーに座っていることを指示する信号を受信したことのみに応答してそのラジオ機能をアクティブ化するように構成され得る(すなわち、アクションパターンは、リクライナーに関連付けられている人感センサーのイベントによってトリガーされ得る)。上の表Cの例示的な特性に示されているように、第1のイベントは取得されず(すなわち、m0,i=0.0)、第2のイベントは取得され(すなわち、m1,i=0.8)、第2のイベント(x1,i)に対するマッチ重みは2.0の値に設定され得る。第2のイベントに対するマッチ重みが高いので、ステレオのラジオは、第2のイベントのみがステレオにおいて取得されたときにアクティブ化され得る。言い換えれば、第1のリフレックスに対するトリガー重みは、第2のイベントを取得することにのみ基づき1.5よりも大きいものとしてよい(すなわち、((m0,i*x0,i*s0,i)+(m1,i*x1,i*s1,i))+bi=((0.0*1.0*1.0)+(0.8*2.0*1.0))+0.0=1.6)。

[0123]いくつかの実施形態では、ノイズの多いRF環境などにおいて、不完全なイベントマッチングがあり得そうなときに、スケール係数は、マッチングが低い可能性があるとしてもリフレックスがトリガーされるように調整され得る。たとえば、上の表Dに示されているように、マッチングインジケータが理想値より低い(たとえば、1.0未満、0.8未満など)ときであっても、1.5の閾値より高いトリガー重みを可能にするために、第1のイベント(s0,i)に対するスケール係数および第2のイベント(s1,i)に対するスケール係数は2.0の値に増加され得る。言い換えれば、理想値より低いマッチングインジケータ(たとえば、それぞれ0.7および0.6)を有する第1のイベントと第2のイベントの両方を受信し、第1のリフレックスに対する2.6のトリガー重みを計算したことに応答して、ステレオはそのラジオをアクティブ化して、音楽を再生することができる(すなわち、((m0,i*x0,i*s0,i)+(m1,i*x1,i*s1,i))+bi=((0.7*1.0*2.0)+(0.6*1.0*2.0))+0.0=2.6)。

[0124]いくつかの実施形態では、スマートボックスが単一のイベントを取得したことに応答してアクションパターンがトリガーされることを引き起こすためにトリガー重み計算結果に対するバイアス値が調整され得る。たとえば、上の表Eに示されているように、バイアス(bi)は、1.0に設定されるものとしてよく、これは、第1のイベントまたは第2のイベントのいずれかがステレオが第1のリフレックスを介してそのラジオをアクティブ化することを個別に引き起こすことを許す。言い換えれば、アクションパターンは、第2のイベントのみが取得されたときに(すなわち、((m0,i*x0,i*s0,i)+(m1,i*x1,i*s1,i))+bi=((0.0*1.0*1.0)+(0.8*1.0*1.0))+1.0=1.8)または第1のイベントのみが取得されたときに(すなわち、((m0,i*x0,i*s0,i)+(m1,i*x1,i*s1,i))+bi=((0.9*1.0*1.0)+(0.0*1.0*1.0))+1.0=1.9).トリガーされ得る。

[0125]図5〜図7は、イベント(アクションを含む)がフレックスにおいてパターンとしてどのように認識(または識別)され得るかを示すタイムライン図である。これらのタイムラインの説明において、壁面スイッチおよびフロアランプは、それらのデバイスに関連付けられているスマートボックスに対する簡略表記として参照されている。さらに、壁面スイッチおよびフロアランプは、スマートボックスに結合され得るタイプのデバイスの説明に役立つ例として使用される。したがって、壁面スイッチおよびフロアランプへの参照は、いかなる形でも請求項の範囲を制限することを意図されていない。

[0126]図5は、送信機510(たとえば、壁面スイッチ)と受信機(たとえば、ランプ)との間の送信の時間を示すリフレックスに対応するイベント送信のタイムライン図500である。これらのイベント送信(またはイベントレポートメッセージ)は、受信機がイベントを生成するのを助け得る発生データを含み得る。タイムライン図は、受信機がモニターモード506に入っている状態で時刻0(または図5に示されているようにt=「t0」)から始まり、受信機が時刻「tResumeMonitor」(またはt=「tResumeMonitor」)でモニターモード506に戻ったときに終了する。いくつかの実施形態では、図500内の送信機510は、フロアランプによって受信され得る、イベントの発生データをブロードキャストする壁面スイッチであってよい。フロアランプは、モニターモード506またはトリガーモード508のいずれかとしてよい、各記憶されているリフレックスに関連付けられている受信機状態511を有し得る。フロアランプに関連付けられている各リフレックスの既定状態は、モニターモード506であってよい。フロアランプは、イベントを他のスマートボックスコンポーネントに転送し得る、イベントバス214(典型的にはそのスマートボックス内の)も有することができる。

[0127]例示を目的として、時刻t=t0において、フロアランプは、すべてのリフレックスに関してモニターモード506に入っていると考えられ得る。フロアランプは、その信号受信機142などを介してイベントレポートメッセージ502を受信することができる。たとえば、ユーザは、壁面スイッチを「オフ」から「オン」にトグルすることができる。それに応答して、壁面スイッチは、センサーエンコーダ134(図2に示されている)によりそのトグルをイベントとして記録することができる。壁面スイッチは、壁面スイッチの信号送信機136を通じて新しいイベントに関係する発生データを有するイベントレポートメッセージ502を送信し得る。イベントレポートメッセージ502は、フロアランプなどの、他のスマートボックスによって受信され得る。

[0128]t=tTriggerにおいて、イベントレポートメッセージ502がフロアランプによって受信され得る。フロアランプは、イベントレポートメッセージ502に基づき生成されたイベントがリフレックスのトリガーパターンとマッチすると決定し、マッチしたリフレックスに関してトリガーモード508に入り得る。トリガーモード508において、フロアランプは、他のイベントの探索を続け、学習または学習解除をそれぞれ可能にするために報酬および/または補正パターンが存在するかどうかを決定し得る。

[0129]t=tResponseにおいて、フロアランプは、マッチするリフレックスのアクションパターンに関連付けられているイベント514を生成することができ、これはモーター駆動装置140をアクティブ化して、フロアランプ(図1Bおよび図1Cに示されている)のライト124をオンにすることなどのアクションを引き起こし得る。イベント514は、フロアランプのイベントバス214上に出され、最終的にパターンに変換され、メモリ138に記憶され得る。いくつかの実施形態では、生成されたアクションパターンは、追加のアクションパターンに対するトリガーパターンであってもよい。たとえば、フロアランプをオンにすることは、ステレオをオンにするためのトリガーパターンであってもよい。言い換えれば、複数の学習デバイスがデージーチェーンでつながれ、これにより、トリガーパターンおよびアクションパターンが生成されることを可能にし、対応するデータをデバイスからデバイスへと送信することができる。

[0130]t=tResumeMonitorにおいて、フロアランプは、トリガーモード508を抜けて、モニターモード506に再入し、そこで、フロアランプは、新しいイベントレポートメッセージを探索し、受信することができる。

[0131]図5が示しているように、フロアランプは、単一のリフレックスに関して単一のトリガーモードに入ることができる。いくつかの実施形態では、フロアランプは、複数のリフレックスをメモリに記憶しておき、重なり合う時間間隔で複数のイベントを取得(または生成)することができる。フロアランプが、結果として複数のトリガーパターンを引き起こす複数のイベントを取得すると仮定すると、フロアランプは、同時トリガーモードに入り得る。各トリガーモードは、異なるリフレックスに対応し得る。たとえば、フロアランプは、壁面スイッチからEventAに関係するイベントレポートメッセージを、ステレオからEventBに関係するイベントレポートメッセージを同時に受信することができる。EventAは、フロアランプのメモリに記憶されている第1のリフレックスからのトリガーパターンに対応し得る。それに応答して、フロアランプは、第1のリフレックスReflexAに関してトリガーモードに入ることができる。EventBは、異なるリフレックスReflexBの異なるトリガーパターンに対応し得る。したがって、フロアランプは、ReflexBに関して第2のトリガーモードに同時に入り得る。各トリガーモードは、図5に示されているように表され得るが、フロアランプは、各イベントと、リフレックスと、トリガーモードとを独立して処理することができる。

[0132]フロアランプは、異なる時刻に異なるリフレックスに対するトリガーパターンのイベントを生成することができ、これは、フロアランプが一方のトリガーに関して他のリフレックスに対する他方のトリガーモードと異なる時刻にトリガーモードに入ることを引き起こし得る。各リフレックスのトリガーモードが同じ時間期間(たとえば、5秒)に重なると仮定すると、フロアランプは、第1のリフレックスに関してトリガーモードを終了するが、第2のリフレックスに関してはトリガーモードに留まり得る。最終的に、イベントフロアランプは、各リフレックスに関してトリガーモードを終了し、各リフレックスに関してモニターモードに戻り得る。

[0133]図6は、新しいリフレックスを作成する学習タイムラインを示すタイムライン図600である。図600は、知られているリフレックス(「ReflexF1」または「F1」と称される)が新しいリフレックス(「ReflexF2」または「F2」と称される)を作成するためにどのように使用され得るかを示している。図600は、新しい壁面スイッチと、ランプスイッチと、フロアランプとを含む。フロアランプは、知られているReflexF1を有し、これはモニターモード606とトリガーモード608とを含む状態618を有する。ReflexF2は知られておらず、このタイムライン601上で最終的に作成される。タイムライン601は、時刻0(「t=t0」)に開始し、時刻「ResumeMonitor」(t=「tResumeMonitor」)に終了する。

[0134]t=t0において、フロアランプは、ReflexF1に関してモニターモード606で開始し得る。ReflexF1は、トリガーパターン(MD2と称される)と、アクションパターン(MD3と称される)と、報酬パターン(MD4と称される)と、補正パターン(MD5と称される)とを含み得る。フロアランプは、ReflexF1(MD2)のトリガーパターンとマッチするパターンに対する生成されたイベントを監視し得る。

[0135]t=tMd1−onにおいて、新しい壁面スイッチが「オフ」から「オン」に切り替えられ、これにより、イベントを生成し、関係する発生データ(「発生データ1」と称される)がフロアランプによって受信されたイベントレポートメッセージで壁面スイッチによってブロードキャストされることを引き起こし得る。新しい壁面スイッチからのイベントレポートメッセージからの発生データは、1つまたは複数のイベントと組み合わされ得るか、またはパターン(「MD1」)を作成するために個別に使用され得るイベントを生成するためにフロアランプによって使用され得る。

[0136]t=tMd1−doneにおいて、フロアランプは、「発生データ1」を含むイベントメッセージを受信し、関係するイベントを生成し、それを(およびバッファに記憶されている可能な他のイベントを)パターン「MD1」として知られているパターンに変換し得る。このときに、フロアランプは、パターンMD1をイベントバス上に出して、さらに処理するか、またはメモリに一時的に記憶することができる。フロアランプは、パターンMD1がフロアランプの知られているリフレックスの知られているトリガーパターンと一致していないと決定し、そこで、モニターモード606で動作し続けることができる。

[0137]t=tMd2−onにおいて、ランプスイッチは、「オフ」から「オン」にされ、それに応答して、フロアランプが、状態変化に関係する発生データ(「発生データ2」と称される)に基づきイベントを生成し得る。それと同時に、フロアランプは、「発生データ2」から生成されたイベントをパターンMD2としてまとめて処理される他のイベントと組み合わせて、パターンMD2をイベントバス上に出して、メモリに一時的に記憶し得る。

[0138]t=tTriggerにおいて、フロアランプは、パターンMD2とReflexF1のトリガーパターンとのマッチングを行うことができる。次いで、フロアランプは、パターンMD2がReflexF1のトリガーパターンとマッチするので、ReflexF1に対するトリガーモード608に入ることができる。いくつかの実施形態では、フロアランプは、内部送信を完了し、t=tTriggerにおいて「発生データ2」から生成されたイベントをパターンMD2に変換し得る。

[0139]t=tActionにおいて、フロアランプは、イベントバス上に配置されるか、またはフロアランプのメモリに記憶されるReflexF1(MD2)に対する知られているトリガーパターンに関連付けられているReflexF1(MD3)に対するアクションパターンを生成し得る。パターンMD3の生成は、フロアランプに接続されているモーター駆動装置がライトをオンにすることを引き起こし得る。

[0140]t=tNewReflexにおいて、パターンMD1とマッチするトリガーパターンを有する既存のリフレックスがないので、新しいリフレックス(「ReflexF2」または「F2」と称される)が作成される。ただ1つの知られているトリガーパターンは、ReflexF1に関連付けられているMD2である。ReflexF2を作成する際に、フロアランプは、ReflexF1に関連付けられているアクションパターンと、報酬パターンと、補正パターンとを新しいリフレックスにコピーし、タイムライン601上で受信されたパターン(MD1)をそのトリガーパターンとして新しいリフレックスに割り当て得る。コピーされるパターンに関連付けられている重みは、新しいリフレックスにコピーされるときに調整され得る。したがって、新しいリフレックス(ReflexF2)は、パターンMD1に等しく、新しい壁面スイッチから受信された発生データ(「発生データ1」)に関係するトリガーパターンと、フロアランプをオンにすることに関連付けられているパターンMD3に等しいアクションパターンと、パターンMD4に等しい報酬パターンと、パターンMD5に等しい補正パターンとを有することができる。いくつかの実施形態では、フロアランプが、複数のアクションを実行し(たとえば、オンにする、オフにする、など)、それにより、少なくとも2つのリフレックス(すなわち、アクションごとに少なくとも1つのリフレックス)を利用するように構成され得るときに、未知のパターンを検出したことに応答して作成される新しいリフレックスは、そのトリガーモードにおいて既存のリフレックスからコピーされ得る。言い換えれば、新しいリフレックスを作成するときにどの既存のリフレックスからコピーするかを決定するために、フロアランプは、トリガーモードにおいてイベント(またはイベントのパターン)をリフレックスの知られているアクションに相関させるオペレーションを実行し得る(すなわち、新しいリフレックスに対するパターンが、未知のパターン/イベントの時間ウィンドウ内でアクションパターンに遭遇する既存のリフレックスからコピーされ得る)。図11は、スマートボックスが新しいリフレックスを追加するためのオペレーションを含む一実施形態の方法を示している。

[0141]t=tRewardにおいて、別のコンポーネントが、ReflexF1に対する報酬パターンとして知られているパターンMD4などの報酬パターンとマッチするイベントを生成し得る。たとえば、モーター駆動装置は、フロアランプのライトがオンになるときにパターンMD4に等しいイベントを生成することができる(図1B〜図1Cに示されている)。モーター駆動装置は、パターンMD4をイベントレコーダーに送信し得る。パターンMD4は、ReflexF1の報酬パターン(および新規作成されたReflexF2)とマッチするので、ReflexF1に関連付けられているトリガー重みは、ReflexF1がトリガーモード608に入るときに増加され得る。いくつかの実施形態では、報酬パターンは、フロアランプのライトがオンになる限りパターンMD4に等しい報酬パターンが常に生成され、トリガー重みが増加し得るように自己生成パターンであってよい。

[0142]学習有効モードにおいて、報酬パターン(MD4)がマッチした場合、報酬利得が適用され得る(たとえば、トリガー重みを増加させる、など)。いくつかの実施形態では、マッチ重み(上で説明されているようにx)は、典型的には、学習有効モードに入っている間に修正されるけれども、式の中のパラメータまたは値は、学習有効モードに入っている間に調整され得る。言い換えれば、リフレックスのトリガー重みを増減することは、トリガー重みの式の中のパラメータを調整することを含み得る。

[0143]しかし、補正パターン(MD5)がマッチした場合、補正利得が適用され得る(たとえば、トリガー重みを減少させる)。いくつかの実施形態では、報酬パターンまたは補正パターンは、入力、または応答が望ましいものであった(または望ましくなかった)というフィードバックを返すためにユーザがアクティブ化し得るボタンなどの、追加の発生によって生成され得る。たとえば、フロアランプがそのライトをオンにした後、ユーザは、フロアランプ上のボタンを押して、報酬パターンを生成する。報酬パターンに基づき、フロアランプは、関係するリフレックスのトリガー重みを増加させ得る。

[0144]t=tResume Monitorにおいて、フロアランプは、ReflexF1に対するトリガーモード608を終了し、モニターモード606に戻る。いくつかの実施形態では、フロアランプは、その後、パターンMD1を受信するものとしてよく、これは、フロアランプがReflexF2のトリガーされたアクションに基づきライトをアクティブ化することを引き起こし得る。

[0145]いくつかの実施形態では、新しいリフレックスが、様々な発生データがフロアランプによって受信されるか、または取得される順序に関係なく生成され得る。言い換えれば、未知のトリガーパターン(たとえば、MD1)は、トリガーウィンドウの前、間、および後に受信され、使用される可能性があり、したがって、発生データを受信する順序と無関係にリフレックスの作成を引き起こす可能性がある。たとえば、「発生データ1」が受信され、フロアランプがReflexF1に対するトリガーモード608に入った後(すなわち、「発生データ2」が受信され、MD2が取得された後)にパターンMD1を生成するために使用される場合、MD1がトリガーモード608に関する時間ウィンドウ内でまだ発生していることがあり得るので、フロアランプはReflexF2をまだ作成することができる。

[0146]図7は、図6からの新規作成されたリフレックスReflexF2がどのように報酬を受けおよび/または補正されてタイムライン701に沿ったアクションとの関連付けを増加/減少させるかを示している。ReflexF2の状態718に応じて、フロアランプは、ReflexF2に関してモニターモード706またはトリガーモード708に入り得る。モニターモード706において、フロアランプは、リフレックスに関してマッチするトリガーパターンを探索している。フロアランプが、記憶されているリフレックスの知られているトリガーパターンとマッチするイベントのパターンを生成する場合、フロアランプは、マッチするトリガーパターンを含むフレックスのトリガーモードに入り得る。図700では、ReflexF2は、パターンMD1に等しいトリガーパターンと、パターンMD3に等しいアクションパターンと、パターンMD4に等しい報酬パターンと、パターンM5に等しい補正パターンとを有することができる。

[0147]t=t0において、壁面スイッチは、イベントを生成し、そのイベントに関係する発生データとともにイベントレポートメッセージをブロードキャストすることができる。フロアランプは、モニターモード706において、t=tMD1−Rxまでにイベントレポートメッセージを受信し得る。

[0148]t=tMD1−Rxにおいて、フロアランプは、発生データを伴うイベントレポートメッセージ全体を受信し、それに応答してイベントを生成し、それをイベントレコーダーに転送し、このイベントレコーダーがイベントをパターンMD1に変換して、イベントバスに出すものとしてよい(図2に示されているように)。フロアランプは、パターンMD1をイベントバスからメモリの一時記憶装置(たとえば、図2のイベントパターン記憶装置204)に転送し得る。

[0149]t=tTriggerにおいて、フロアランプは、パターンMD1を処理し、それがReflexF2に関連付けられている知られているトリガーパターンとマッチすると決定し得る。したがって、フロアランプは、ReflexF2に関してトリガーモード708に入り、そこで、フロアランプは、ReflexF2に関して学習または学習解除を行うことができる。

[0150]t=tActionにおいて、フロアランプは、イベントバス上に出される、ReflexF2に関連付けられているアクションパターン(MD3)を生成し得る。モーター駆動装置は、アクションパターン(MD3)をイベントバスから取り出し、生成されたアクションパターンに関連付けられているアクション(たとえば、フロアランプのライトをオンにする)を実行し得る。

[0151]t=tRewardにおいて、ReflexF2に関連付けられている報酬パターン(MD4)が、別のコンポーネントから生成され得る。たとえば、生成されたアクションパターン(MD3)は、モーター駆動装置がフロアランプをオンにすることを引き起こし得る。フロアランプがオンになると、モーター駆動装置がフィードバックを受信し得るか、またはセンサーエンコーダがランプの状態の変化を感知し、パターンMD4を生成し得る。パターンMD4は、その後、イベントパターン記憶装置に記憶され得る。パターンMD4は、ReflexF2の報酬パターンとマッチするものとしてよく、その結果、ReflexF2トリガーパターン(MD1)に関連付けられている重みが増加され得る。

[0152]いくつかの実施形態では、リフレックスのトリガー重みが、最大レベルに達した後、トリガー重みは、さらに調整されることはなく、これにより、システムリソースが別のところで使用されることを許し得る。そのような最大レベルは、重み計算の動的範囲を制限するか、または学習デバイス内に備えられるRAMの量を減らすために利用され得る。たとえば、リフレックスにトリガー重みのより小さい動的範囲が使用されるときに(たとえば、最小のトリガー重みと最大のトリガー重みとの間のより小さい範囲)、学習デバイスではより少ないRAMが使用され得る(たとえば、16ビットの代わりに8ビット)。

[0153]いくつかの実施形態では、フロアランプのメモリは、限られた数のパターンおよび/またはリフレックスを記憶できるだけのサイズを有し得る。そのような場合、記憶されているリフレックスのトリガー重みが、最小の重み値(たとえば、「破棄閾値」)に達した場合、トリガー重みは、リフレックスをトリガーすることが決してないことがあり得そうなほど低いものとして考えられ得る。そのような場合、フロアランプは、新しいリフレックスのためにそのリフレックスに割り振られているメモリを再使用(または再利用)することができる。したがって、低いトリガー重みでリフレックスを補正するための下限値を設定することは、そのメモリが他のパターンおよび/またはリフレックス用に記憶域を充てることを可能にし得る。他の実施形態では、新しいリフレックスを記憶するための制限されたリソースがあるときに、フロアランプは、最小のまたは「破棄」閾値を使用することなく、メモリを最も頻繁に使用されていない、または使用される可能性が最も低いものから(重み特性を介して)新しいリフレックスに再割り振りすることができる(すなわち、フロアランプは、単純に、最も無益なリフレックスを置き換えることができる)。

[0154]t=tCorrectionにおいて、異なるコンポーネントが補正パターン(MD5)を生成し得る。たとえば、フロアランプが、トリガーモード708においてオフにされた場合、センサーエンコーダは、この状態の変化をイベントに変換するものとしてよく、これはイベントレコーダーに受け渡され、補正パターンMD5を作成することができる。パターンMD5は、ReflexF2(トリガーモード708に入っている)の補正パターンにマッチされるものとしてよく、その結果、トリガー重みは減らされて、トリガーパターン(MD1)とReflexF2のアクションパターン(MD3)との間の関連付けを弱め得る。

[0155]t=tResume Monitorにおいて、フロアランプは、ReflexF2に関連付けられているトリガーモード708を終了し、モニターモード706に戻り得る。トリガーモード708は、それがタイムアウトになったことで単純に終了し得る。たとえば、トリガーモード708は、10秒間のみ持続し得るので、10秒間トリガーモード708で動作した後、フロアランプは、ReflexF2に関してトリガーモード708を終了し、対応するモニターモード706に入り得る。

[0156]図8は、フロアランプなどの、学習デバイスのリフレックスに対する異なる種類の学習率を示している。各デバイスは、学習の臨界学習期間801と定常状態学習期間802とを有し得る。言い換えれば、臨界学習期間801および定常状態学習期間802は、学習デバイスの異なる学習状態または学習条件に対応し得る。たとえば、臨界学習期間801は、高速学習状態に対応し、定常状態学習期間802は、低速または通常学習状態に対応し得る。これらの期間のうちの各々の期間内にあるときに利得の異なるセットがトリガー重みに適用され得る。図8は、2つの学習期間801、802を示しているが、リフレックスは、2つよりも多い学習期間を利用することができることは理解されるであろう。

[0157]臨界学習期間801は、典型的には、学習デバイスの初期状態に関連付けられ得る。これは、学習デバイスの初期挙動をトレーニングすることが、ユーザにとってより有益である時間であり得る。初期動的リフレックスは、この状態で作成される可能性が高い、つまり、臨界学習期間801に関連付けられている様々な利得値(図8では「利得セット1」と称されている)が高く(すなわち、高利得セット)、スマートボックスは、学習および学習解除を行う可能性がより高い。たとえば、製造業者が、フロアランプを最初に高い利得を有する臨界学習期間801に設定し、フロアランプが壁面スイッチまたは他のデバイスに素早く関連付けることを可能にし得る。第1のトリガーアクション関連付けが発生した後、フロアランプは、定常状態学習期間802に変化し得る。

[0158]定常状態学習期間802は、特定のデバイスが初期トレーニングされたときに生じるものとしてよく、追加のトレーニングは許されるが、より困難であることが意図される。定常状態学習期間802に関連付けられている利得(図8では「利得セット2」と称されている)は、低い利得(すなわち、低利得セット)を有し、学習をより困難なものにし得る。たとえば、フロアランプが壁面スイッチに関係する「オン」イベントとの「オン」イベント関連付けを有する場合、フロアランプは、定常状態学習期間802に入っているものとしてよい。定常状態学習期間802に入っている間、フロアランプは、ステレオから受信された発生データに応答してアクティブ化するなどの、追加の関連付けを学習し得る。しかしながら、ステレオとフロアランプとの間の関連付けを瞬時に学習する代わりに、フロアランプは、トリガーパターン(たとえば、ステレオから受信された発生データに基づくステレオ「オン」イベント)と、アクションパターン(たとえば、ランプがオンにされたことを指示する発生データに基づくフロアランプ「オン」イベント)と、報酬パターン(たとえば、ランプ上のユーザ入力ボタンから「報酬」信号または発生データを受信することに基づく)とに、ステレオがオンになったときにフロアランプがオンになることを学習する前に複数回遭遇しなければならない場合がある。

[0159]臨界学習期間801に関連付けられている利得(「利得セット1」)と、定常状態学習期間802に関連付けられている利得(「利得セット2」)との関係は、次の式で示され得る。

[0160]言い換えれば、上記の式を使用する学習デバイスは、利得セット1で学習するのが利得セット2よりも高速であり得る。

[0161]いくつかの実施形態では、各利得セットは、オペレーションの異なる段階でリフレックスのトリガー、報酬、および補正パターンに関連付けられている個別の利得または重みを有し得る。臨界期間と定常状態期間とにより近くなるように利得を調整するために2つまたはそれ以上の利得レベルが使用され得る。たとえば、第3の利得セットがあり得、これは、臨界期間と定常状態期間とのハイブリッドであってよい(たとえば、学習するのに繰返しが少なくて済む)。利得が調整されるときに、特定のパターンに関連付けられている重みが、システム内のマッチを決定するように調整され得る。

[0162]特定のリフレックスが動的であるか、または静的であるかは、学習デバイスに関連付けられている利得と学習とに影響を及ぼし得る。特定の学習デバイスが、調整され得ない、組み込みの静的リフレックスを有し得る。たとえば、フロアランプは、関係する報酬パターンまたは補正パターンに遭遇することに関係なく再重み付けされ得ない組み込みのリフレックスを有し得る。言い換えれば、学習デバイスは、重み調整(たとえば、補正)の使用を通じて静的リフレックスを無効にする(または「忘れる」)ことができない。しかしながら、対照的に、動的リフレックスは、自然発生的に作成され、時間の経過とともに調整され得る。たとえば、フロアランプは、壁面スイッチに関連付けられているトリガーパターンに対応してフロアランプのアクションが実行され得ないように時間の経過とともに動的リフレックス(たとえば、上で示されているようなReflexF2)の重みを調整し得る。言い換えれば、学習デバイスは、トリガーパターン(たとえば、壁面スイッチでの発生)とアクションパターン(たとえば、フロアランプをオンにする)との間の関連付けに関係するリフレックスのトリガー重みを、そのトリガー重みが閾値より低くなり、したがってアクションが実行されないように下げることができる。しかしながら、いくつかの実施形態では、動的リフレックスは、関連付けが忘れ去られないように静的リフレックスに変換され得る。いくつかの実施形態では、動的リフレックスは、アクションとトリガーとの間の関連付けを有するリフレックスのトリガー重みを変更することが困難になり、したがってそのような動的リフレックスをより永続的にするようなリジッド状態を与えられ得る。

[0163]図9および図10は、図8に示されているように定常状態学習期間802における動的リフレックスの学習および学習解除の例を示している。図9および図10に示されている同じ原理は、臨界学習期間801における動的リフレックスにも当てはまる。

[0164]図9は、トリガーアクション関連付けに報酬を与えることで、トリガーパターンがトリガー重み閾値925以上の重みを有するようになるまでトリガーパターンの重みをどのように変更することができるかを示しているタイムライン図900である。図900は、2つの知られているリフレックスReflexF1とReflexF2とを含む。ReflexF1は、トリガーパターン(「MD2」と称される)と、そのトリガー閾値(図示せず)よりも高い第1のトリガー重みとを有する。ReflexF1は、また、アクションパターン(「MD3」と称される)と、報酬パターン(「MD4」と称される)と、補正パターン(「MD5」と称される)とを有する。ReflexF2は、ReflexF2が異なるトリガーパターン(「MD1」と称される)を有することを除きReflexF1と同じであり、最初にトリガー重み閾値925より低い第2のトリガー重みを有し得る。図900は、ReflexF2のトリガー重みを変えることができる、イベントおよび反応のタイムライン901を示している。

[0165]時刻t=t0において、フロアランプは、ReflexF2に関してモニターモード906に入っているものとしてよい。モニターモード906では、フロアランプは、トリガーパターンReflexF2とマッチするイベントに関係する信号が入ってくるのを監視し得る。モニターモード906において、フロアランプは、トリガーパターンMD1に対応するイベントに遭遇するか、または取得し得る。たとえば、第1の壁面スイッチと同一であってもよい、新しい壁面スイッチは、新しい壁面が「オフ」から「オン」にトグルしたときにイベントレポートメッセージを発生データとともにフロアランプに送信することができ、次いで、フロアランプは、受信されたイベントレポートメッセージおよび発生データに基づきトリガーパターンMD1を生成することができる。

[0166]時刻t=tNoAction1において、フロアランプは、ReflexF1とReflexF2とに対するトリガーパターンMD1を処理することができる。すでに説明されているように、MD1は、ReflexF2にのみ関連付けられ、したがって、フロアランプは、ReflexF2に関してトリガーモード908に入り得る。ReflexF2は、t=tNoAction1でトリガー重み閾値925より低い第1のトリガー重みレベル921で現在のトリガー重みを有するので、フロアランプは、ReflexF2に対するアクションパターン(たとえば、MD3)を生成し得ない。しかしながら、その後すぐに、フロアランプは、新しい壁面スイッチに対応する発生データとともに別のイベントレポートメッセージを受信してからトリガーパターンMD2を生成し得る。たとえば、新しい壁面スイッチは、「オフ」から「オン」にトグルし、関係するイベントレポートメッセージをフロアランプに送信して、フロアランプがイベントレポートメッセージに基づきトリガーパターンMD2を生成することを引き起こし得る。トリガーパターンMD2はReflexF1に対応し、トリガー重みはそのトリガー閾値よりも高いと、フロアランプはアクションパターンMD3を生成し得る。フロアランプは、その後、結果としてランプがそのライトをオンにすることを引き起こす対応するアクションイベントを生成し得る。ライトがオンになった後、状態の変化が、センサーエンコーダによって記録されるものとしてよく、これは関連付けられているイベントを作成し、報酬パターンMD4を生成する。

[0167]時刻t=tWeightAdjust1において、報酬パターンMD4は、ReflexF1とReflexF2とに対するトリガー重みを調整するように処理され得る。ReflexF2に関してトリガーモード908に入っている間、フロアランプは、パターンMD4がReflexF2の報酬パターンとマッチしていると決定するものとしてよく、MD1およびReflexF2のトリガー重みを増加させ得る。新しいトリガー重みは第2のトリガー重みレベル922にあり、これは、依然としてトリガー重み閾値925より低くなっている。トリガーモード908がタイムアウトになった後、フロアランプは、モニターモード906に再び入ることができる。

[0168]t=tWeightAdjust2において、イベントに遭遇し、対応するパターンMD1と、MD2と、MD3(またはMD3’)と、MD4とを生成するプロセスが繰り返され、その結果、トリガー重み閾値925を超えて第3のトリガー重みレベル923にまで増加するようにReflexF2のトリガー重みを調整し得る。

[0169]ReflexF2のトリガー重みをトリガー重み閾値925よりも高く調整した後いつでも、フロアランプは、パターンMD1に対応するイベントに遭遇することがあり、その結果、ReflexF1をトリガーするのにパターンMD2に遭遇する必要なくアクションパターンMD3’が生成され得る。たとえば、新しい壁面スイッチの「オン」イベントに対応するパターンMD2を生成したときのみフロアランプがオンになった可能性がある前である。次に、壁面スイッチは、結果としてパターンMD1に対応するイベントを生成し、したがってフロアランプがReflexF2を介してそのライトをオンにするようにトリガーされることを引き起こし得る発生データを含むイベントレポートメッセージをフロアランプに送信することができる。

[0170]図10は、トリガー重み閾値1025より低くなるまでトリガー重みを調整することによってトリガーアクション関連付けを補正することを示すタイムライン図1000である。図1000は、補正イベントにフロアランプが遭遇することと、フロアランプがその後補正パターンを生成することを除き図900に類似している。この補正パターンは、リフレックスのトリガー重みを減少させる。図900と異なり、図1000の補正プロセスは、ただ1つのリフレックスを伴い得る。ここで、ReflexF2のみが関わり、図900のように、同じトリガーパターンMD1と、アクションパターンMD3と、報酬パターンMD4と、補正パターンMD5とを含む。また図900とは異なり、図1000におけるReflexF2は、トリガー重み閾値1025よりも高い1023の初期トリガー重みから始まり得る。したがって、トリガーパターンMD1を生成した後に、フロアランプは、対応するアクションパターンと関連付けられているアクションとを生成し得る。

[0171]時刻t=t0において、フロアランプは、モニターモード1006においてイベントを監視し得る。モニターモード1006において、フロアランプは、トリガーパターンMD1に対応するトリガーイベントに遭遇し得る。たとえば、新しい壁面スイッチは、新しい壁面スイッチが「オフ」から「オン」にトグルされたので、「オン」イベントに関係する、パターンMD1に対応する、発生データとともにイベントレポートメッセージをブロードキャストすることができる。イベントが受信されると、フロアランプは、対応するトリガーパターンを生成し得る。

[0172]時刻t=tTriggered1において、フロアランプは、オンイベントに関係するイベントレポートメッセージを受信し、パターンMD1を生成し得る。フロアランプは、パターンMD1がReflexF2に対応する知られているトリガーパターンであると決定し、したがって、ReflexF2に関してトリガーモード1008に入ることができる。その後すぐに、フロアランプは、ReflexF2に対する第1のトリガー重みレベル1023がトリガー重み閾値1025より高いと決定し、アクションパターンMD3を生成することができ、その結果、フロアランプがライトをオンにするアクションイベントおよび物理的アクションが生じる。フロアランプは、トリガーモード1008に入っている間に補正パターンMD5に対応するイベントにも遭遇し得る。たとえば、フロアランプは、ユーザがフロアランプ上の別の補正ボタン(たとえば、「Correction」というラベルが付いたボタン)を押したときにイベントに遭遇した後補正パターンMD5を生成し得る。ユーザは、このボタンを押して、補正イベントをフロアランプに送信し、それに応答して、フロアランプは、補正パターンMD5を生成し得る。代替的一例において、フロアランプは、ユーザが前のトリガーパターンの短い時間ウィンドウ内でフロアランプを手動でオフにしたときに補正パターンを生成し得る。前のトリガーパターンの反対の入力は、補正パターンに対応し、フロアランプは、トリガーパターンとアクションパターンとの関連付けを解除するように学習し得る。

[0173]時刻t=tCorrection1において、フロアランプは、補正パターンMD5がReflexF2の補正パターンとマッチしていると決定することができる。したがって、フロアランプは、ReflexF2に関連付けられているトリガー重みを第2のトリガー重みレベル1022にまで下げることができる。第2のトリガー重みレベル1022はまだトリガー重み閾値1025より高く、そのため、フロアランプはライトをそのままアクティブ化することができる。最終的に、トリガーモード1008は、時間の制約によって終了し、フロアランプは、モニターモード1006に再び入り得る。

[0174]モニターモード1006に入っている間に、フロアランプは、第2のトリガーイベントに遭遇し、第2のトリガーパターンMD1を生成し得る。たとえば、新規壁面スイッチは、再び、「オフ」から「オン」にトグルされ得る。時刻t=tTriggered2において、フロアランプは、第2のパターンMD1がReflexF2の知られているトリガーパターンとマッチすると決定し、ReflexF2に関してトリガーモード1008に入ることができる。ReflexF2が現在トリガー重み閾値1025よりも高い第2のトリガー重みレベル1022を有しているので、フロアランプは、アクションパターンMD3と関連付けられている機械的アクション(たとえば、ライトをオンにする)を生成し得る。フロアランプが、ReflexF2でトリガーモード1008に入っている間、フロアランプは、再び、補正ボタンからの補正イベントに遭遇し、補正パターンMD5を生成することができる。パターンMD5は、ReflexF2に対応しているので、時刻t=tCorrection2において、トリガー重みは、第3のトリガー重みレベル1021に下げられるが、これはトリガー重み閾値1025よりも低い。したがって、時刻t=tTriggered3においてフロアランプが別のトリガーイベントに遭遇し、別のトリガーパターンMD1を生成する場合、フロアランプは、トリガーモード1008において対応するアクションパターンMD3を生成し得ない。言い換えれば、フロアランプはReflexF2のトリガーアクション関連付けを事実上忘れてしまっている可能性があり、将来トリガーパターンMD1を生成した後(または少なくともトリガーパターンへのその仕方に応答するように再トレーニングされるまで)そのライトをアクティブ化し得ない。

[0175]いくつかの実施形態では、その関連付けトリガー重み閾値よりも低いトリガー重みは、報酬パターンに遭遇することなくフロアランプがトリガーモードに入ったことに応答して継続的に下げられ得る。たとえば、図10では、時刻tTriggered3において、フロアランプは、その後の報酬パターンなしでトリガーパターンMD1を検出することができ、結果として、時刻t=tSubthreshold1において示されているようにフロアランプはReflexF2に対するトリガー重みを第4のトリガー重みレベル1019に減少させ続け得る。いくつかの実施形態では、リフレックスのトリガー重みは、トリガー重みがその関連付けられているトリガー重み閾値より低くなり、報酬パターンに遭遇しないと、時間の経過とともに周期的に減少(または減衰)させられ得る。

[0176]いくつかの実施形態では、フロアランプは、そのトリガー重みがトリガー重み閾値1025よりも低くなり、メモリ不足が生じた後ただちに、またはしばらくしてからReflexF2を取り除くことができる。したがって、フロアランプが、ReflexF2が削除された後にReflexF2のトリガーパターン(MD1)を検出した場合、フロアランプは、他の条件が満たされていると仮定して(たとえば、トリガーモードにおいて存在している報酬を有する)そのトリガーパターンとしてパターンMD1を有する新しいリフレックスを作成し得る。いくつかの実施形態では、フロアランプは、メモリ不足(たとえば、記憶されているリフレックスに対してメモリ限界に達したこと)により関連付けられている閾値よりも高いトリガー重みを有するリフレックスを取り除くことができる。たとえば、フロアランプが、トリガーモードにおいて新しいトリガーパターンに遭遇したが、ローカルメモリに利用可能な記憶領域を有していないときに、フロアランプは、トリガー閾値よりも高いトリガー重みを有するが、あまり使用されない、使用される可能性が最も低い、および/またはトリガー重みがそれぞれのトリガー重み閾値を超えるすべてのリフレックスの最低のトリガー重みを有する、記憶されているリフレックスを取り除くことができる。

[0177]図11は、イベントに関連付けられているアクションを学習するためスマートボックス内に実装され得る一実施形態の方法1100を示している。この実施形態の方法1100は、どのようなスマートボックスとも使用され得るけれども、説明を簡単にするため、方法1100は、壁面スイッチに接続されているスマートボックスからイベントレポートメッセージを受信するフロアランプに接続されているスマートボックスの例を参照しつつ説明されている。それに加えて、フロアランプ、壁面スイッチ、またはステレオへの参照は、対応するスマートボックスもそれぞれ包含する。たとえば、フロアランプによって実行されるものとして説明されているオペレーションは、フロアランプに関連付けられているスマートボックスのプロセッサによって実行され得る。これらのスマートボックスは、実際には、イベントレポートメッセージ内の発生データを交換するオペレーションと、イベントおよび/またはパターンを処理するオペレーションとを実行する。

[0178]ブロック1102において、フロアランプはイベントを取得し得る。たとえば、フロアランプは、壁面スイッチからRF送信上で発生データを含むイベントレポートメッセージを受信することができ、イベントレポートメッセージ内のデータに基づき、フロアランプは、図3Bを参照しつつ上で説明されているようなデータ構造としてイベントを生成し得る。そのような一例において、イベントレポートメッセージは、ユーザが壁面スイッチを「オフ」から「オン」にトグルしたときに壁面スイッチによって送信され得る。上で説明されているように、フロアランプは、代替的に、フロアランプに結合されたセンサー(たとえば、光センサーなど)に基づき、および/またはアクションを実行したことに応答して、イベントを取得し得る。時間の経過とともに、方法1100および1200のオペレーションのその後の繰返しにおいて、フロアランプは、取得されたイベントに関係する場合もない場合もある追加の要素を取得し得る。たとえば、取得されてイベントに基づきトリガーモードをアクティブ化した後、フロアランプは、受信されたイベントレポートメッセージおよび/またはフロアランプによって実行されたアクションに応答して生成されたイベントなどの、取得され、メモリ内にバッファリングされた以前のイベントを取り出すことによって追加のイベントを取得し得る。

[0179]決定ブロック1104において、フロアランプは、イベントフィルタが適用されるかどうかを決定することができる。イベントフィルタは、時間フィルタ、タイプフィルタ、デバイスイベントフィルタなどを含み得る。イベントフィルタが適用されることを決定したことに応答して(決定ブロック1104=「はい」)、フロアランプは、ブロック1106においてさらなる処理からイベントを破棄し、ブロック1102において新しく入ってくる信号を監視し続けることができる。いくつかの実施形態では、イベントフィルタが時間ベースのフィルタである場合、日中にイベントを破棄するプリセットのスケジュールがあってよい。たとえば、ステレオは、真夜中の時間から午前10時までに取得されたイベントを無視する時間フィルタを有することができる。別の例では、フロアランプのところのイベントフィルタは、単に、ステレオからの取得されたすべてのイベントを無視し得る。さらなる例では、ステレオは、特定のユーザに関連付けられている取得されたイベントを無視し得る。いくつかの実施形態では、壁面スイッチは、入力されたユーザID(たとえば、指紋データ、パスコード、Bluetoothまたは近距離通信(NFC)からの付近のモバイルデバイスのデータなど)を受信し、そのユーザIDをイベントレポートメッセージ内の発生データに含めることができる。ステレオを所有する父親は、自分のステレオを自分以外の誰かに壁面スイッチでオンにしてもらいたくない場合がある。したがって、ステレオは、取得されたすべてのイベントを、それらが父親のユーザIDを含まない場合に破棄し、それによって、他人が壁面スイッチでステレオをオンにするのを防ぐことができる。しかしながら、イベントフィルタが適用されない場合(すなわち、決定ブロック1104=「いいえ」)、フロアランプは、メモリ138(図1Cに示されている)に配置されているバッファ内にイベントを記憶し得る。

[0180]イベントフィルタが適用されないと仮定すると、フロアランプは、ブロック1108においてメモリ138に配置されているバッファ内にイベントを記憶し得る。イベントはバッファに記憶されることで、フロアランプがモニターモードに入っている間にイベントレコーダー206のところでパターンを生成することを円滑にし得る。言い換えれば、フロアランプは、モニターモードに入っている間にイベントのバッファリングを実行し得る。図示されていないけれども、フロアランプは、特定の時間期間(たとえば、5〜10秒)にメモリ内にイベントをバッファリングし、次いで、イベントを破棄して新しいイベントのための領域をあけることができる。

[0181]ブロック1110において、フロアランプは、イベントがバッファ内に常駐していることに基づきパターンを生成し得る。いくつかの実施形態では、フロアランプは、メモリ内にバッファリングされている様々なイベントを取り出して組み合わせることなどによって、バッファ内に常駐する複数のイベントに基づきパターンを生成し得る。たとえば、フロアランプは、2つの異なる壁面スイッチが「オン」位置に切り替えられたときに受信されるイベントレポートメッセージに基づき生成された2つのイベントに基づきパターンを生成しているものとしてよい。パターンは、次の4つの方法のうちの1つによって生成され得る、すなわち、(1)イベントの時間順序のシーケンスに基づくこと、(2)複数のイベントをシングレットに圧縮すること、(3)発見的手法、および(4)パターン生成においてイベントから時間を取り除くことによって生成され得る。

[0182]イベントの時間順序のシーケンスに基づきパターンを生成するときに、イベントが生成されるか、または他の何らかの形で取得される時間が問題になり得る。したがって、イベントが特定の時間ウィンドウ内で生成されない場合、フロアランプは、イベントに基づきパターンを生成し得ない。たとえば、フロアランプは、壁面スイッチに関係する「オン」イベントおよびステレオに関係する「オン」イベントと同等のトリガーパターンを有することができる。フロアランプが、時間ウィンドウ内で壁面スイッチに関係する「オン」イベントを取得するが、時間ウィンドウの外でステレオに関係する「オン」イベントが取得された場合、フロアランプは、トリガーイベントを認識し得ない。いくつかの実施形態では、パターンは、イベントAがイベントBの前に取得される場合にのみ生成され得る。たとえば、フロアランプが、壁面スイッチの「オン」イベントの前にステレオの「オン」イベントを取得した場合、壁面スイッチのイベントが最初に取得されたときにのみフロアランプがトリガーパターンを受け付けるので、フロアランプはこれらのイベントをトリガーパターンとして認識し得ない。

[0183]いくつかの実施形態では、複数のイベントが、単一のイベントまたはシングレットに圧縮され得る。たとえば、フロアランプは、ランプイベントバッファに記憶されている、異なる時刻における2つの「A」イベント、次いで「B」イベントを取得し得る。フロアランプは、第2の「A」イベントを破棄して、1つの「A」イベントと1つの「B」イベントとに基づきパターンを生成し得る。したがって、2つの「A」イベントと1つの「B」イベントとを有するトリガーパターンは、1つの「A」イベントと1つの「B」イベントとを有するトリガーパターンに圧縮され得る。「A」イベントは、異なる時刻に繰り返されるので、フロアランプは、繰り返されるイベントを無視することができる。

[0184]いくつかの実施形態では、フロアランプは、一連の発見的計算を実行して、イベントを無視するかどうかを決定することができる。これらの発見的計算のうちのいくつかは、単に、カウントするメカニズムを含み得る。たとえば、フロアランプは、「A」イベントを3回受信したか(たとえば、壁面スイッチに関係する「オン」イベント)を決定することができ、その時点で、フロアランプは、3つの「A」イベントを受信することはトリガーパターンを生成することと同じであるという発見的ルールに基づきトリガーパターンなどの対応するパターンを生成し得る。

[0185]いくつかの実施形態では、フロアランプは、イベントからパターンを作成する時刻を無視することができる。時刻を無視することは、発見的計算と同時に起こってよい。たとえば、フロアランプがメモリ138において3つの「A」イベントと1つの「B」イベントとを受信した場合、フロアランプは、一連の発見的計算を実行して時間ウィンドウなしでイベントに基づきパターンを生成するかどうかを決定することができる。時刻を無視することは、順序独立であることも含み得る。たとえば、フロアランプは、まず「A」イベント、続いて「B」イベントを取得するか、または「B」イベント、続いて「A」イベントを取得するかどうかに関係なく同じパターンを作成し得る。

[0186]決定ブロック1112において、フロアランプは、パターンフィルタを適用するどうかを決定することができる。これは、決定ブロック1104を参照しつつ説明されているイベントフィルタに類似するものであってよく、これは記憶されている無視パターン、時間ベースのフィルタ、デバイスタイプフィルタなどを含み得る。フロアランプは、パターンが時間閾値などの閾値よりも低くなったときにパターンフィルタを使用してパターンをメモリ(たとえば、32Kメモリ、64Kメモリなど)から取り除くことができる。フロアランプがパターンフィルタが適用されることを決定したことに応答して(すなわち、決定ブロック1112=「はい」)、フロアランプは、パターンを破棄し、ブロック1113においてそのパターンのさらなる処理を止めることができる。いくつかの実施形態では、フロアランプは、最近実行されたアクションに対して生成されたパターンをフィルタリングし得る。たとえば、フロアランプがオンになったときに、フロアランプは、イベントからアクションパターンを生成することができる。アクションパターンが、一定の時間期間において無視されなかった場合、フロアランプは、アクションパターンを別のアクション(たとえば、ステレオをオンにする)へのトリガーパターンとして処理しようと試み得る。新しいトリガーアクション関連付けの作成を回避するために、フロアランプは、フロアランプが短い時間期間において生成されたアクションパターンを無視する一時的無視パターンフィルタを作成し得る。フロアランプがパターンを破棄した後、フロアランプはブロック1102において新しいイベントを取得することに戻る。いくつかの実施形態では、フロアランプは、ブロック1102において、イベントを絶えず取得し得る。

[0187]いくつかの実施形態では、フロアランプは、パターンのトリガー重みまたは対応するリフレックスが低閾値よりも低い場合にパターンフィルタを適用することができる。パターンフィルタを適用することによって、フロアランプは、特定のリフレックスの閾値が特定の設定値よりも低いときにそのメモリからパターンを削除することができるものとしてよい。フロアランプは、本出願全体を通して説明されている補正プロセスを通じてリフレックスのトリガー重みを低減することができる。パターンを取り除くことで、フロアランプが新しいリフレックスの作成のためリソース(たとえば、メモリ)を節約することを可能にし得る。いくつかの実施形態では、フロアランプは、利用可能なローカルの記憶装置に関係なく、ユーザが与えられた時刻にフロアランプの学習能力に関して混乱する可能性が低くなるように所定の限られた数のリフレックス(たとえば、ランプ1つにつきリフレックス2つ)を利用するように構成され得る。記憶されるリフレックスに対するそのような限界は、記憶されるリフレックスおよびパターンがより少ないことで比較される必要があり得るパターンの数を減らすことによってパターンマッチング速度を改善するなどによって性能改善するという追加の利点も有し得る。

[0188]決定ブロック1112に戻って参照すると、パターンフィルタが適用されないことを決定したことに応答して(すなわち、決定ブロック1112=「いいえ」)、フロアランプは、決定ブロック1114において生成されたパターンが知られているパターンとマッチしているかどうかを決定し得る。たとえば、フロアランプは、受信されたイベントが時間ベースのフィルタの時間ウィンドウ内にあると決定し得る。そこで、フロアランプは、イベントをパターンとして処理し続ける。フロアランプは、生成されたパターンが、知られているトリガーパターン、知られている補正パターン、知られている報酬パターンなどの、任意の種類の知られているパターンであるかどうかを決定し得る。

[0189]一例として、決定ブロック1114において、フロアランプは、生成されたパターンが、図6を参照しつつ上で説明されているリフレックス「ReflexF1」に対するトリガーパターン「MD2」などの、リフレックスの知られているトリガーパターンに対応するかどうかを決定し得る。生成されたパターンが知られているパターンとマッチすると決定したことに応答して(すなわち、決定ブロック1114=「はい」)、フロアランプは、図12を参照しつつ以下で説明されている決定ブロック1202のオペレーションを実行し得る。たとえば、フロアランプは、少なくとも1つのイベントがリフレックスに関連付けられているトリガーパターンに対応するときにリフレックスに関係するトリガーモードに入り、リフレックスに関連付けられているアクションを実行することができる。

[0190]しかしながら、生成されたパターンが知られているパターンにマッチしていないと決定したことに応答して(すなわち、決定ブロック1114=「いいえ」)、フロアランプは、決定ブロック1116において新しいリフレックスを作成するかどうかを決定し得る。たとえば、図7のシナリオにおいて上で説明されているように、生成されたパターンは、知られているパターンに対応していないパターン「MD1」であり得(すなわち、ReflexF2はまだ作成されていない)、したがってフロアランプは、パターンMD1を有する新しいリフレックスをその新しいトリガーパターンとして作成すべきかどうかを決定し得る。フロアランプは、未知のパターンが検出されたかどうかと、リフレックスがトリガーモードに入っているかどうかの両方に基づき新しいリフレックスが作成されるべきかどうかを決定することができる。

[0191]フロアランプが新しいリフレックスを作成しないことを決定したことに応答して(すなわち、決定ブロック1116=「いいえ」)、フロアランプは、ブロック1113において生成されたパターンを破棄し、ブロック1102において新しいベントを監視することを開始し得る。いくつかの実施形態では、フロアランプは、フロアランプが新しい関連付けを学習することができない非学習モードに切り替えられ、それによって、新しいリフレックスを作成する能力を無効化することができる。たとえば、フロアランプは、壁面スイッチがオン/オフイベントに関連付けられているイベントレポートメッセージを送信したときにライトをオン/オフにすることをすでに学習している場合がある。ユーザは、この単純なオン/オフ関連付けに満足し、フロアランプによる追加の学習を無効化することができる。そのため、フロアランプは、ステレオまたは他の学習デバイスのところでの発生(たとえば、電源オンなど)との追加の関連付けを学習し得ない。他の実施形態では、フロアランプは、新しいリフレックスを学習することを避けるための他の考慮事項(たとえば、十分なメモリがない、トリガーモードがタイムアウトした、など)を有し得る。

[0192]フロアランプが新しいリフレックスを作成することを決定したことに応答して(すなわち、決定ブロック1116=「はい」)、フロアランプは、ブロック1118において新しいパターンを新しいリフレックスに対するトリガーパターンとして記憶することができる。新しいリフレックスは、所定のアクションパターンと、報酬パターンと、補正パターンとともに作成され得る。したがって、ブロック1119において、フロアランプは、現在トリガーモードに入っているリフレックスから、新しいリフレックスに、アクションパターンと、報酬パターンと、補正パターンとをコピーし得る。たとえば、上記の図6に示されているように、フロアランプは、新しいパターンMD1を含むReflexF2をトリガーパターンとして作成し、他の知られているReflexF1のみからアクションパターンと、報酬パターンと、補正パターンとをコピーすることができる。代替的な一例において、フロアランプは、トリガーモードで他の記憶されているリフレックスからパターンを取り出すことによって新しいリフレックスを作成し得る。

[0193]すでに指摘されているように、フロアランプは、トリガーモードに入っている間に追加のイベントを取得することができ、そのような追加のイベントは、異なるトリガーに関連付けられるか、または相関され得る。フロアランプは、これらの追加のイベントに基づきパターンを識別するか、またはパターンとメモリに記憶されているリフレックスのパターンとのマッチングを行うことを試み得る。しかしながら、これらの追加のイベントに基づくパターンは、記憶されているリフレックスの知られているパターンに対応し得ず、フロアランプは、新しいリフレックスを作成することを決定し得る。言い換えれば、フロアランプは、追加のイベントに基づくパターンがリフレックスに関連付けられているトリガーパターン、アクションパターン、補正パターン、および報酬パターンのうちの少なくとも1つに対応しないときに、トリガーパターンと、アクションパターンと、補正パターンと、報酬パターンとともに第2のリフレックスを作成し得る。

[0194]図12は、図11からのマッチしたパターンの継続処理の一実施形態の方法1200を示している。上で説明されているように、生成されたパターンが知られているパターンにマッチしていると決定したことに応答して(すなわち、図11の決定ブロック1114=「はい」)、フロアランプは、決定ブロック1202において生成されたパターンがリフレックスの知られているトリガーパターンとマッチするかどうかを決定し得る。たとえば、フロアランプは、壁面スイッチの「オン」イベントに基づき生成されたパターンが、記憶されているリフレックスの知られているトリガーパターンとマッチしている(たとえば、パターンMD1が図6に示されているReflexF2に対するトリガーパターンとマッチしている)かどうかを決定することができる。フロアランプが生成されたパターンが知られているトリガーパターンとマッチすると決定したことに応答して(すなわち、決定ブロック1202=「はい」)、フロアランプは、ブロック1203において生成されたパターンとマッチする知られているトリガーパターンに関連付けられているリフレックスに対するトリガーモードをアクティブ化する(または、「オン」にする)ことができる。トリガーモードをアクティブ化することで、リフレックスに関連付けられているモニターモードを非アクティブ化することができる。フロアランプは、他のリフレックスに関連付けられている他のイベントなどの、リフレックスに関係するトリガーモードに入っている間に追加のイベントを受信し、識別することができ、これにより、同時にアクティブ化されたトリガーモードを引き起こすことに注意されたい。

[0195]フロアランプは、決定ブロック1204においてマッチしているパターンのリフレックスのトリガー重みがトリガー閾値以上かどうかを決定し得る。引き続き図11の例によれば、フロアランプは、生成されたパターンMD1が最近作成されたReflexF2の知られているトリガーパターンとマッチしていると決定し、ReflexF2に対する現在の記憶されているトリガー重みをそれぞれのトリガー閾値と比較し得る。決定ブロック1204において、フロアランプは、トリガー重みが閾値以上であるかどうかを決定することができる。トリガー重みが閾値以上であると決定したことに応答して(すなわち、決定ブロック1204=「はい」)、フロアランプは、マッチしているトリガーパターンのリフレックスを使用してフロアランプが所定のアクションを行うか、または実行することを引き起こすパターンもしくはその結果生じるイベントを生成することなどによって、ブロック1216においてアクションを生成し得る。たとえば、フロアランプは、ReflexF2のトリガー重みが、図9に示されているようにトリガー重み閾値925より高い場合にライト124をオンにすることができる。様々な実施形態において、アクションを生成することは、さらに外部的に、または内部的に伝搬され得る、またアクチュエータを駆動するためにモーター駆動装置によって使用されるイベントのパターンを生成することを含み得る。

[0196]いくつかの実施形態では、フロアランプは、トリガーされたときに限られた数のアクションを生成するように構成され得る。たとえば、フロアランプは、1つのトリガーモードにおいて1つのアクションのみの生成を、そのトリガーモードで受信されたトリガーパターンの数に関係なく行うことができる。

[0197]オプションのブロック1217において、フロアランプは、生成されたアクション(またはその結果のイベント)を指示する発生データを含むブロードキャストメッセージなどの、生成されたアクションに基づくイベントレポートメッセージをブロードキャストし得る。フロアランプが、マッチしたトリガー重みがリフレックスに対するトリガー閾値以上でないと決定したことに応答して(すなわち、決定ブロック1204=「いいえ」)、またはブロック1216におけるオペレーションによりアクションが生成され、オプションのブロック1217におけるオペレーションによりブロードキャストが行われる場合、フロアランプは、以下で説明されている決定ブロック1220におけるオペレーションを実行することができる。

[0198]フロアランプが生成されたパターンが知られているトリガーパターンにマッチしていないと決定したことに応答して(すなわち、決定ブロック1202=「いいえ」)、フロアランプは、決定ブロック1206においてフロアランプが学習することを許されているかどうかを決定し得る。たとえば、フロアランプは、トリガーパターン(たとえば、MD1)をすでに処理している場合があり、現在は、トリガーモードに入っている間に生成された報酬パターンおよび補正パターンを監視している。したがって、フロアランプは、トリガーパターンを受信し、関連付けられているリフレックスに対するアクティブ化されたトリガーモードに入った後まもなく、報酬イベントを取得し、対応する報酬パターン(たとえば、MD4)を生成し得る。

[0199]フロアランプが学習することを許されていないと決定したことに応答して(すなわち、決定ブロック1206=「いいえ」)、フロアランプは、以下で説明されている決定ブロック1220におけるオペレーションを実行し得る。たとえば、フロアランプは、トリガーパターン(たとえば、MD1)に関連付けられている新しいアクションを学習/学習解除するためにトリガーパターンを生成した後5秒の指定された時間ウィンドウを有し得る。報酬パターンまたは補正パターンが5秒のウィンドウ内で生成される限り、フロアランプは、トリガーパターン(たとえば、MD1)でアクションを学習/学習解除し得るが、フロアランプは、受信された報酬/補正パターンが5秒の時間ウィンドウの外にある場合に新しい関連付けを学習すること、または古い関連付けを学習解除することを実行し得ない。別の例では、フロアランプは、単純に関連付けられているリフレックスが学習解除状態にあるか、または関連付けられているリフレックスが学習または学習解除し得ない静的リフレックスであるという理由により学習することができない場合がある。

[0200]しかし、フロアランプが、リフレックスのアクショントリガー関連付けに関して学習することを許されていると決定した場合(すなわち、決定ブロック1206=「はい」)、決定ブロック1208において、フロアランプは、生成されたパターンが報酬パターンとマッチしているかどうかを決定し得る。いくつかの実施形態では、フロアランプは、学習時間ウィンドウ内で報酬パターンを受信するかまたは生成し得る。たとえば、ユーザは、壁面スイッチをスイッチオンし、フロアランプをオンにしてから5秒以内にフロアランプ上の報酬ボタンを押すことができる。フロアランプ上の報酬ボタンを押すことによって、報酬パターン(たとえば、図7に示されているようなパターンMD4)を生成し得る。代替的な一例において、ユーザは、壁面スイッチをオンにしてから5秒以内にフロアランプに取り付けられているランプスイッチ126をオンにし、フロアランプがランプがアクティブ化したときに報酬パターン(たとえば、MD4)を生成し、フロアランプがオンになったことを確認することを引き起こし得る。

[0201]いくつかの実施形態では、フロアランプは、モニターモードに入っているか、またはトリガーモードに入っているかに基づき学習することを許され得る。たとえば、特定のリフレックスに対するモニターモードに入ったときに、フロアランプは、そのリフレックスに関して学習することを許されないが、学習することは、リフレックスのトリガーモードに入っているときに許され得る。いくつかの実施形態では、1つまたは複数のリフレックスは、フロアランプの全体的状態または構成などの、他の要因により学習することを許され得る。たとえば、フロアランプは、様々なリフレックスがテストされ得るアクティブデバッグモードなどの、システム設定により学習することを許さないように構成され得る。

[0202]フロアランプが、生成されたパターンが報酬パターンとマッチすると決定した場合(すなわち、決定ブロック1208=「はい」)、ブロック1212aにおいて、フロアランプは、関連付けられているリフレックスのトリガー重みを調整することができる。いくつかの実施形態では、フロアランプは、トリガー重みを増加させることによって適切なリフレックスに関連付けられているトリガー重みを調整し得る。たとえば、フロアランプが、トリガーパターン(たとえば、MD1)に遭遇してからの5秒の学習時間ウィンドウ内でパターン(たとえば、MD4)を受信するかまたは生成する場合、フロアランプは、トリガーパターンのリフレックスのトリガー重みを増加させることができる。トリガー重みが調整された後、ブロック1214において、フロアランプは、調整されたトリガー重みをメモリ138に記憶することができ、フロアランプは、以下で説明されているように決定ブロック1220におけるオペレーションを実行することができる。

[0203]いくつかの実施形態では、フロアランプは、ブロック1212aにおけるオペレーションを実行した後に決定ブロック1210におけるオペレーションも適宜実行し得る。言い換えれば、フロアランプは、決定ブロック1208の決定に関係なく、学習することを許されていると決定したことに応答して(すなわち、決定ブロック1206=「はい」)、決定ブロック1208において報酬パターンがマッチしたかどうかと、決定ブロック1210において補正パターンがマッチしたかどうかの両方を評価するように構成され得る。言い換えれば、報酬および補正のマッチは、フロアランプによって並行してチェックされ得る。

[0204]フロアランプが生成されたパターンが知られている報酬パターンにマッチしていないと決定した場合(すなわち、決定ブロック1208=「いいえ」)、フロアランプは、決定ブロック1210において補正パターンのマッチをチェックし得る。いくつかの実施形態では、フロアランプは、学習時間ウィンドウ内で補正パターンを受信するかまたは生成し得る。たとえば、ユーザは、壁面スイッチをスイッチオンし、フロアランプをオンにしてから5秒以内にフロアランプ上の補正ボタンを押すことができる。補正ボタンを押すことによって、フロアランプは、補正パターン(たとえば、図7に示されているようなパターンMD5)を生成し得る。代替的な一例において、ユーザは、壁面スイッチをオンにしてから5秒以内にフロアランプに取り付けられているランプスイッチ126をオフにし、フロアランプがライト124をオフにしたときにフロアランプが補正パターン(たとえば、MD4)を生成することを引き起こし得る。

[0205]フロアランプが、生成されたパターンが知られている補正パターンとマッチすると決定した場合(すなわち、決定ブロック1210=「はい」)、フロアランプは、ブロック1212bにおいてトリガー重みを調整することができる。いくつかの実施形態では、フロアランプは、学習時間ウィンドウ内で補正パターンを受信した後にトリガー重みを減少させ得る。たとえば、フロアランプは、ユーザが壁面スイッチの「オン」イベントに関連付けられているトリガーパターン(たとえば、MD1)を生成して5秒以内にフロアランプのランプスイッチ126を「オフ」にするときに補正パターン(たとえば、パターンMD5)を生成することができる。フロアランプは、ReflexF2の補正パターンとして生成されたパターン(MD5)とマッチし、ReflexF2に関連付けられているトリガー重みを小さくすることができる。ブロック1214において、フロアランプは、調整された重みをメモリ138に記憶することができ、フロアランプは、以下で説明されているように決定ブロック1220におけるオペレーションを実行することができる。言い換えれば、フロアランプは、少なくとも1つの追加のイベントがリフレックスに関連付けられている補正パターンおよび報酬パターンのうちの少なくとも一方に対応するときにリフレックスの1つまたは複数のトリガー重みを調整し得る。

[0206]フロアランプが生成されたパターンが補正パターンとマッチしないと決定したことに応答して(すなわち、決定ブロック1210=「いいえ」)、またはフロアランプがマッチしたトリガー重みがトリガー閾値以上ではないと決定したことに応答して(すなわち、決定ブロック1204=「いいえ」)、またはフロアランプが学習することを許されていないと決定したことに応答して(すなわち、決定ブロック1206=「いいえ」)、またはフロアランプがブロック1217または1214のオペレーションを実行したことに応答して、フロアランプは、ブロック1203におけるオペレーションでアクティブ化されたトリガーモードに入るので失効した持続時間に基づくなどして決定ブロック1220においてモニターモードに戻るかどうかを決定し得る。トリガーモードを非アクティブ化することで、リフレックスに関連付けられているモニターモードをアクティブ化することができる。フロアランプがモニターモードに戻るべきと決定したことに応答して(すなわち、決定ブロック1220=「はい」)、フロアランプは、ブロック1222においてリフレックスに対するトリガーモードを非アクティブ化することができる。フロアランプがモニターモードに戻るべきでないと決定したことに応答して(すなわち、決定ブロック1220=「いいえ」)、またはブロック1222のオペレーションが実行されたときに、フロアランプは、図11を参照しつつ上で説明されているように方法1100のブロック1102においてイベントを取得することを続け得る。

[0207]図6にシナリオに基づく例として、壁面スイッチは、フロアランプによって受信される新しい発生データとともに新しいイベントレポートメッセージを送信し得る(たとえば、壁面スイッチの「オン」イベント)。フロアランプは、受信された新しいイベントレポートメッセージに基づきイベントに関連付けられている第1のパターン(たとえば、パターンMD1)を生成するまでブロック1102、1104、1108、および1110のオペレーションを実行し得る。同じ時間ウィンドウ内で、フロアランプは、他の発生データに基づき第2のパターン(たとえば、パターンMD2)を生成し、図11を参照しつつ上で説明されているようなブロック1102〜114および図12を参照しつつ上で説明されているようなブロック1202、1203、1204、1216におけるオペレーションにより第2のパターンを処理し得る。フロアランプは、これらのオペレーションに基づき第2のパターンに関連付けられている第2のリフレックス(たとえば、ReflexF1)をトリガーモードにすることができる。

[0208]次いで、フロアランプは、受信された新しいイベントレポートメッセージに基づきイベントに関連付けられている第1のパターン(たとえば、パターンMD1)を生成するまで図11を参照しつつ上で説明されているようなブロック1102、1104、1108、および1110におけるオペレーションを実行し得る。フロアランプは、図11を参照しつつ上で説明されているようなブロック1112、1114、1116、1118、1119のオペレーションを実行することと、第1のパターンをトリガーパターン(たとえば、パターンMD1)として第1のリフレックス(たとえば、ReflexF2)を作成することと、第2のリフレックスがトリガーモードに入っているので第2のリフレックス(たとえば、ReflexF1)からそのアクションパターンと、報酬パターンと、補正パターンとをコピーすることとによって新しいパターンを処理することを続け得る。

[0209]フロアランプが、その後、同じイベントを取得し、壁面スイッチから受信された他のデータに基づき第1のパターン(たとえば、パターンMD1)を生成する場合、フロアランプは、図11を参照しつつ上で説明されているようなブロック1102、1104、1108、1110、1112、および1114のオペレーションで第1のリフレックスを参照して第1のパターンを処理することができる。決定ブロック1114において、フロアランプは、壁面スイッチに関連付けられているパターンがメモリに記憶されている第1のリフレックス(たとえば、ReflexF2)のトリガーパターンとして現在知られているので、壁面スイッチに関連付けられている生成されたパターン(たとえば、パターンMD1)は知られているパターンとマッチすると判定し得る。そこで、フロアランプは、壁面スイッチの「オン」イベントに対する生成されたパターンの処理を継続するために図12を参照しつつ上で説明されているオペレーションを実行し続け得る。

[0210]この例を続けると、フロアランプは、新しい壁面スイッチイベントからマッチした第1のパターン(MD1)を処理し、マッチしたパターンがトリガーパターンマッチであると決定し(すなわち、決定ブロック1202=「はい」)、第1のリフレックス(たとえば、ReflexF2)に対するトリガーモードをアクティブ化することができる。しかしながら、第1のリフレックス(たとえば、ReflexF2)に対するトリガー重みは、そのトリガー閾値よりも低い場合があり、その場合、フロアランプは、ブロック1216においてアクションを生成しないが、他のイベント/パターンを監視することを続け得る。その一方で、フロアランプは、ランプスイッチ126からの「オン」イベントなどの、異なるトリガーベントに遭遇し得る。フロアランプは、図11を参照しつつ上で説明されているような方法1100のブロック1102、1104、1108、および1110を通じてランプスイッチ126からのオンイベントを処理し、ランプスイッチ126のオンイベントに関連付けられている第2のパターン(たとえば、パターンMD2)を生成し得る。フロアランプは、図11と図12とを参照しつつ上で説明されているようなブロック1112、1114、および1202のオペレーションを通じてオンイベントパターンを処理することを続け得る。方法1200の決定ブロック1202において、フロアランプは、第2のパターン(MD2)が第2のリフレックス(ReflexF1)に対するトリガーパターンマッチであると決定し、決定ブロック1204において、第2のリフレックスに対するトリガー重みは、閾値より高いと決定し得る。その場合、第2のリフレックスのトリガー重みに基づき、フロアランプは、図12を参照しつつ上で説明されているようなブロック1216においてアクションパターンと関連付けられているアクション(たとえば、ライトをオンにする)とを生成し得る。ライトをオンにすることによって、フロアランプは、図11を参照しつつ上で説明されているようなブロック1110において報酬イベントとその後の報酬パターン(たとえば、パターンMD4)とを生成し得る。フロアランプは、決定ブロック1208においてフロアランプが生成された報酬パターン(MD4)が第1のリフレックス(ReflexF2)の報酬パターンとマッチすると決定するまで上で説明されているような方法1100と1200とを通じて報酬パターンを処理することができる。フロアランプは、トリガー重みを増加させることと、調整をメモリ138に記憶することとによってReflexF2に関連付けられている重みを調整し、それによって、壁面スイッチでのオンイベントとフロアランプでのオンイベントとの間の関連付けを学習し得る。このプロセスは、第1のリフレックス(たとえば、ReflexF2)のトリガー重みが、図9に示されているようなトリガー閾値より高くなるまでフロアランプによって繰り返され得る。

[0211]図11と図12とを参照しつつ上で説明されている実施形態の方法は、イベントがある時間ウィンドウに対して取得されてバッファリングされ、その時間ウィンドウにおいて任意の数のイベントが取得されるものとしてよく、バッファリングされたイベントを処理してマッチしているパターンを識別し、新しい相関またはリフレックスを学習することは複数のイベントとイベントおよびリフレックスの組合せとを包含し得るので、ある種の再帰アルゴリズムとして機能し得る。ユーザが実施形態のスマートボックスと学習デバイスとをトレーニングすることを可能にするためにこれらの実施形態がどのように機能し得るかをさらに開示するために、そのようなデバイスを実装するユーザアクションの次の例が提示されている。この例では、ユーザは、まだ互いに関連付けられていない、2つの学習デバイス、すなわち、壁面スイッチとフロアランプとをトレーニングする。説明を簡単にするため、フロアランプまたは壁面スイッチへの次の参照は、それらの関連付けられているスマートボックスを包含することを意図されている。

[0212]この例では、フロアランプおよび壁面スイッチの各々は、それらの関連付けられているスマートボックスのメモリに記憶されている事前定義されたリフレックスを有するものとしてよい。たとえば、壁面スイッチは、トリガーパターン「WT」と、アクションパターン「WA」と、補正パターン「WC」と、報酬パターン「WR」とを含み得るメモリに記憶されている事前定義されたリフレックスReflexWを有するものとしてよい。トリガーパターンWTは、ユーザが壁面スイッチを「オフ」から「オン」にトグルするトリガーイベントに対応し得る。ユーザが、壁面スイッチを「オフ」から「オン」にトグルしたときに、壁面スイッチは、イベントを生成し、さらには「オン」イベントに関係する発生データを含むイベントレポートメッセージをブロードキャストし得る。壁面スイッチの「オン」イベントに関係する生成されたイベントから、壁面スイッチ内に備えられているか、または結合されているスマートボックスが、トリガーパターンWTを生成し得る。最初に、アクションパターンWAは、スイッチをトグルするなどの日常の生活におけるアクションに対応していない可能性がある。その代わりに、WAは、単純に、将来のリフレックスにいつでも割り当てられるようになっているコンピュータコードであってよい。

[0213]補正パターンWCは、「Correction」というラベルが付けられている壁面スイッチ上のボタンに対応し得る。ユーザが補正ボタンを押すと、壁面スイッチは、補正イベントを生成し、さらには補正イベントを指示する発生データとともに別のイベントレポートメッセージをブロードキャストし得る。生成された補正イベントから、壁面スイッチに関連付けられているスマートボックスは、補正パターンWCを生成し得る。報酬パターンWRは、ユーザが「Reward」というラベルが付けられている壁面スイッチ上の報酬ボタンを押すイベントに対応し得る。ユーザが報酬ボタンを押すと、壁面スイッチは、報酬イベントを生成し、さらには報酬イベントを指示する発生データとともに別のイベントレポートメッセージをブロードキャストし得る。生成された報酬イベントから、壁面スイッチに関連付けられているスマートボックスは、報酬パターンWRを生成し得る。

[0214]同様に、フロアランプは、トリガーパターンMD1と、アクションパターンMD3と、補正パターンMD5と、報酬パターンMD4とを含み得るメモリに記憶されている 事前定義されたリフレックスReflexF2を有することができる。トリガーパターンMD1は、ユーザがフロアランプのランプスイッチを「オフ」から「オン」にトグルするトリガーイベントに対応し得る。ユーザが、ランプスイッチを「オフ」から「オン」にトグルしたときに、壁面スイッチは、トリガーイベントを生成し、さらにはランプの「オン」イベントを指示する発生データを含むイベントレポートメッセージをブロードキャストし得る。生成されたトリガーイベントから、フロアランプ内に備えられているか、または結合されているスマートボックスが、トリガーパターンMD1を生成し得る。アクションパターンMD3は、フロアランプがライトを「オフ」から「オン」にするイベントに対応し得る。補正パターンMD5は、フロアランプがトリガーモードに入っているときに「Correction」というラベルが付けられているフロアランプ上の追加のボタンに対応し得る。ユーザが補正ボタンを押すと、ランプは、補正イベントを生成し、さらにはランプの補正イベントを指示する発生データとともにイベントレポートメッセージをブロードキャストし得る。生成された補正イベントから、フロアランプに関連付けられているスマートボックスは、補正パターンMD5を生成し得る。報酬パターンMD4は、ユーザがトリガーモードに入っている場合にフロアランプをオンにしたときに、報酬イベントを生成し、さらにはランプの報酬イベントを指示する発生データとともにイベントレポートメッセージをブロードキャストすることに対応する。報酬イベントから、フロアランプに関連付けられているスマートボックスは、報酬パターンMD4を生成し得る。

[0215]壁面スイッチおよびフロアランプが最初にこの仕方で構成されている状態で、ユーザは、次のように壁面スイッチに応答してオンになるようにフロアランプをトレーニングすることができる。壁面スイッチが「オフ」位置にあり、フロアランプがオフにされている状態で、ユーザは壁面スイッチをオンにし、手動によるオペレーション(たとえば、デバイス上のスイッチを入れる)を介して即座にフロアランプをオンにすることがある。これら2つのアクションが短い時間期間(たとえば、5から10秒)内に遂行された場合、フロアランプに関連付けられているスマートボックスは、ランプオンリフレックスに関連付けられている重みを増加させることによってターンオンアクションを学習することを始めることができる。同様に、ユーザは、壁面スイッチをオフにし、即座にフロアランプをオフにすることによって壁面スイッチがオフにされたことに応答するようフロアランプをティーチングすることができる。ここでもまた、これら2つのアクションが短い時間期間(たとえば、5から10秒)内に遂行された場合、フロアランプに関連付けられているスマートボックスは、ランプオフリフレックスに関連付けられている重みを増加させることによってターンオフアクションを学習することを始めることができる。

[0216]そのようなトレーニングサイクルが1つでは十分でない場合があり(すでにトレーニング解除されているスマートボックスが単一のステップで第1のリフレックスイベント相関を学習するいくつかの実施形態の場合を除き)、したがって、ユーザは、壁面スイッチをオンにし、即座にフロアランプをオンにし、続いて少し間を置いて、壁面スイッチをオフにし、即座にフロアランプをオフにするプロセスを繰り返すものとしてよい。この一連のステップは、フロアランプに関連付けられているスマートボックスの学習ヒステリシス構成に応じて、3回またはそれ以上の回数、繰り返される必要があり得る。

[0217]2、3、またはそれ以上の繰返しの後、フロアランプに関連付けられているスマートボックスは、壁面スイッチのその後のトグルがフロアランプがしかるべくオンまたはオフになることを引き起こすようにランプオンおよびランプオフのリフレックスに関連付けられている重みを増加させている可能性がある。したがって、壁面スイッチのオン/オフイベントとフロアランプのオン/オフアクションとのこの望ましい相関をトレーニングするために、ユーザは、フロアランプがユーザが壁面スイッチをトグルしたことに応答してオンにすることを開始するまでこのプロセスを単純に繰り返すことができる。

[0218]ユーザによるこの一連のアクションは、壁面スイッチおよびフロアランプと関連付けられているスマートボックス内で次のアクションが生じることを引き起こす。壁面スイッチに関連付けられているスマートボックスが、「オフ」から「オン」へのトグルを感知したときに、壁面スイッチは、受信するブロードキャスト範囲(たとえば、100フィート)内のすべての学習デバイスに対してイベントレポートメッセージでブロードキャストされ得るトリガーイベントと関連付けられている発生データとを生成し得る。フロアランプに関連付けられているスマートボックスは、壁面スイッチのブロードキャスト範囲内にあり、イベントレポートメッセージを受信することができる。受信した後、フロアランプは、関係するイベントを生成し、メモリに記憶されているイベントフィルタが生成されたイベントのさらなる処理を妨げるかどうかを決定し得る。既定の状態では、フロアランプは、フィルタを生成されたイベントに適用し得ず、したがって、フロアランプは生成されたイベントをバッファに記憶し得る。生成されたイベントに基づき、フロアランプは、パターンMD2を生成し得る。

[0219]最初に、フロアランプは、ReflexF2に関連付けられているパターンをメモリに記憶しておくだけである(たとえば、MD1、MD3、MD5、およびMD4)。この例の目的のために、フロアランプは、パターンMD2を生成するのと同じ時間ウィンドウ内で、ReflexF2に対するトリガーパターン、パターンMD1を生成したことなどに応答して、ReflexF2に対するトリガーモード内にすでに入っていることが仮定される。生成されたパターンMD2がReflexF2のどのパターンともマッチしないので、生成されたパターンMD2は、新しいリフレックスに対するトリガーパターンとして使用され得る未知のパターンと考えられ得る。フロアランプは、未知の、またはマッチしていないパターンMD2で新しいリフレックスを作成するかどうかを決定し得る。フロアランプには、新しいリフレックスを作成しない異なる多くの理由があり得る。たとえば、フロアランプは、学習阻止モード(たとえば、保持モード)に入っているか、またはフロアランプは、特定のデバイスに関連付けられている特定のパターンからリフレックスを作成することを禁じられている場合がある(たとえば、フロアランプは、壁面スイッチに関連付けられているパターンからリフレックスを作成しない)。

[0220]この例では、フロアランプは、新しいリフレックスを作成することを阻止されていないので、フロアランプは、未知のパターンMD2をトリガーパターンとして、新しいリフレックスReflexF1を作成することができる。新しいリフレックスReflexF1は、完全なリフレックスとなるように、アクションパターンと、補正パターンと、報酬パターンとを含み得る。そこで、フロアランプは、メモリに記憶してあるアクションパターンと、補正パターンと、報酬パターンとを(たとえば、MD3と、MD5と、MD4とを)コピーすることによってトリガーモードにおける知られているリフレックスReflexF2のみからのパターンを使用し、それらのパターンを新しいトリガーパターンMD2とともに新しいリフレックスReflexF1に割り当てることができる。フロアランプの設定に応じて、フロアランプは、オンにトグルする壁面スイッチに関係するトリガーイベントとフロアランプのライトのアクティブ化との間の新しい関連付けを学習したばかりである場合がある。たとえば、フロアランプは、フロアランプが新しいリフレックスをすぐに学習する臨界学習期間801(図8に示されているような)に入っているものとしてよい(たとえば、フロアランプ上で実行される単一のオン/オフシーケンス)。そこで、フロアランプは、壁面スイッチが「オフ」から「オン」にトグルした後、ライトをアクティブ化し得る。しかしながら、この例の目的に関して、フロアランプが、臨界期間内になく、「オフ」から「オン」への壁面スイッチのトグルとフロアランプのライトをアクティブ化することとの間の関連付けをまだ完全には学習していないことが仮定される。

[0221]ユーザが、壁面スイッチをトグルした後まもなくフロアランプをオンにしたときに、フロアランプに関連付けられているスマートボックスは、最近学習されたパターンMD2をトリガーパターンとして、そのランプオンイベントを新しいリフレックスReflexF1と相関させることができる。壁面スイッチがオフにされ、その後すぐにフロアランプがオフにされるアクションでは、壁面スイッチとフロアランプとにおいて類似の応答を生成し得る。

[0222]壁面スイッチが、2回目に「オフ」から「オン」にトグルされると、オンイベントの関連付けられている発生データは、再び、イベントレポートメッセージでブロードキャストされ、フロアランプによって受信され得る。ここでもまた、フロアランプは、発生データとともに関係するイベントレポートメッセージを処理し、イベントを、そして最終的にパターンMD2を生成し得る。しかしながら、今回、フロアランプは生成されたパターンMD2とReflexF1の知られているパターンとのマッチングを行う。このマッチングに応答して、フロアランプは、また、パターンMD2とReflexF1の記憶されているトリガーパターンとの間にマッチがあると決定し、ReflexF1に関してトリガーモードに入ることができる。さらに、フロアランプは、ReflexF1のトリガー重みがトリガー重み閾値以上であるかどうかを決定することができる。この例では、1回のみのトレーニングサイクルの後に、ReflexF1が新しいリフレックスであるので、フロアランプは、ReflexF1のトリガー重みがトリガー重み閾値以上でないと決定し得る。そこで、フロアランプは、ReflexF1に対してトリガーモードに入っている間により多くのイベントを監視することを続け得る。

[0223]ユーザが5〜10秒の時間ウィンドウ内でフロアランプをオンにしたときに、フロアランプは、最終的にフロアランプが報酬パターンMD4を生成することを引き起こす報酬イベントを生成し得る。フロアランプは、MD4を処理し、報酬パターンとReflexF1とのマッチがあると決定する。それに応答して、フロアランプは、ReflexF1に関してまだトリガーモードに入っており、ReflexF1のトリガー重みを増加させ得る。重みを調整した後、または5〜10秒の時間ウィンドウの後に、フロアランプは、ReflexF1に関してトリガーモードを終了し、フロアランプがより多くのイベントを監視する監視モードに入り得る。

[0224]その後しばらくして、ユーザが3回目にまた壁面スイッチをオンにトグルし、壁面スイッチがフロアランプによって受信された発生データとともにイベントレポートメッセージをブロードキャストすることを引き起こし得る。ここでもまた、受信されたメッセージ内のデータに基づき、フロアランプは、関係するイベントを生成し、次いでパターンMD2を生成し得る。フロアランプは、生成されたパターンMD2とReflexF1のトリガーパターンとの間にトリガーのマッチがあると決定し、3回目にReflexF1に関してトリガーモードに入ることができる。もう一度、フロアランプは、ReflexF1のトリガー重みがトリガー重み閾値以上であるかどうかを決定することができる。3回目では、ReflexF1が新しいリフレックスであるので、フロアランプは、ReflexF1のトリガー重みがトリガー重み閾値以上でないと決定し得る。そこで、フロアランプは、トリガーモードに入っている間により多くのイベントを監視することを続ける。

[0225]ReflexF1の最近のトリガーモードの5〜10秒の時間ウィンドウ内にまだある間に、ユーザが、3回目にフロアランプをオンにすることができる。それに応答して、フロアランプは、最終的にフロアランプが報酬パターンMD4を生成することを引き起こす報酬イベントを生成する。フロアランプは、MD4を処理し、報酬パターンとReflexF1とのマッチがあると決定し得る。フロアランプは、ReflexF1に関してまだトリガーモードに入っており、ReflexF1のトリガー重みをトリガー閾値より高く増加させ得る。

[0226]その後しばらくして、ユーザが4回目に壁面スイッチを「オフ」から「オン」にトグルしたときに、同じシーケンスのイベントが発生し、今回のみ、フロアランプは、ReflexF1のトリガー重みが閾値以上であり、したがってアクションパターンMD3を生成すると決定し得る。アクションパターンMD3に応答して、フロアランプは、フロアランプのライトをオンにするモーターコントローラを通電する関連付けられているアクションイベントを生成し得る。その後、フロアランプは、ユーザが壁面スイッチを「オフ」から「オン」にトグルしたことに応答してオンにされる。

[0227]図13A〜図13C、図14〜図16、および図17Aは、ティーチャシグナリングデバイスが付近の学習デバイス(またはスマートボックス)をティーチングする信号をブロードキャストするための実施形態の方法を示している。上で説明されているように、ティーチャシグナリングデバイスは、学習デバイスを物理的にインタラクティブに操作することを実際に行わなくてもユーザが学習デバイスをティーチングすることを可能にするプロキシデバイスであり得る。たとえば、ユーザが継続的にスマート壁面スイッチを、次いでスマートランプをオンにして、壁面スイッチを照明機能に関連付けることをランプにティーチングする代わりに、ユーザは、単純に、ティーチャシグナリングデバイスが物理的なアクションを実際に行うことなくスマート壁面スイッチおよびスマートランプがオンになったことを指示する信号を送信することによってこれらのインタラクティブな操作をエミュレートすることを許すことができる。

[0228]そのようなプロキシティーチングオペレーションを実行するために、ティーチャシグナリングデバイスは、ユーザがある場所で学習デバイスによって遂行されることを望んでいる目的、条件、目標、または他のシナリオでプログラムされる必要があり得る。たとえば、ユーザは、スマートハウス内のスマートデバイスをエネルギー効率の高い仕方で動作させて節電したい、自分が部屋に入ったときにスマートランプをオンにさせたい、様々な季節に異なる温度に基づきスマートブラインドを閉じさせたい、ユーザが望む他の挙動をさせたい場合がある。図13A〜図13Cは、ティーチャシグナリングデバイスがそのようなデータ(すなわち、目的データ)を取得し、学習デバイスに目的を遂行することをティーチングするためのルーチン(すなわち、ティーチングルーチン)を生成するための様々な実施形態を示している。

[0229]図13Aを参照すると、ブロック1302において、ティーチャシグナリングデバイスのプロセッサは、非集中システム内の1つまたは複数の学習デバイスの活動に関係するデータを取得し得る。たとえば、ティーチャシグナリングデバイスは、リモートソース(たとえば、ウェブサーバ)からエキスパート照明仕様をダウンロードすることができる。別の例として、ティーチャシグナリングデバイスは、スマートブラインドの特定の挙動が室内でなされることをユーザが望んでいることを指示するユーザインターフェース上のユーザボタンの押下を介して目的データを受信することができる。目的データは、図13B〜図13Cを参照しつつ以下でさらに説明されているような他の様々な仕方で取得され得る。

[0230]目的データは、スクリプト、コマンド、仕様、デバイス関係、指令、命令、ユーザ選好もしくは設定、動作パラメータ、一般的な目標ステートメント、およびユーザが学習デバイスのシステムにとって欲しい挙動がどのようであるかを説明する他の情報を含み得る。たとえば、目的データは、時刻と、季節と、ユーザモードと、ユーザホロスコープと、年齢とに関する提案された光強度のリストを含み得る。別の例として、目的は、ユーザがすぐに仕事ができる状態にあるときにロック音楽を朝聴くが、仕事から家に戻ったときにはクラシック音楽を聴くことを好むことを指示するユーザ選好を含み得る。いくつかの実施形態では、目的データは、デバイスに対する明示的アクションを含み、またデバイスアクションに対する明示的トリガーも含み得る。たとえば、スクリプトは、スマートステレオをチャネル「A」にするための命令を含み得る。別の例として、ユーザ定義スクリプトは、スマートステレオは、午後5時以降になったら必ずチャネル「A」にされ、ユーザが正面玄関を開けることを指示し得る。そのような明示的目的データは、デバイス識別子(たとえば、「John’s Stereo」、デバイスシリアル番号など)を含む場合も含まない場合もあり、さらに、デバイスクラス識別子(たとえば、一般スマートステレオデバイス、一般スマートランプなど)を含む場合も含まない場合もある。いくつかの実施形態では、目的データは、学習デバイスに対するリフレックスを記述するデータおよび/または個別のパターン/イベント(たとえば、トリガーパターン、アクションパターン、補正パターン、および報酬パターン)を含み得る。

[0231]ブロック1304において、ティーチャシグナリングデバイスのプロセッサは、取得された目的データに基づきティーチングルーチンを生成することができる。ティーチャシグナリングデバイスは、様々な目的データを分析し、処理し、他の何らかの形で評価して、ユーザによって望まれている挙動またはゴール、さらには、システム内の学習デバイスがそれらの目標を達成することを引き起こすティーチング信号をどのように送信するかを決定することができる。たとえば、ユーザのセキュリティ目標に基づき、ティーチャシグナリングデバイスは、ユーザが自宅にいるときに特定の時間が経過した後閉じることを学習することをスマートブラインドにティーチングするためのティーチングルーチンを生成し得る。別の例として、エキスパート照明情報に基づき、ティーチャシグナリングデバイスは、特定のいくつかの時刻に光出力を弱めるか、または強くすることをリビングルーム内にあるスマートランプにティーチングするためのティーチングルーチンを生成し得る。いくつかの実施形態では、ティーチャシグナリングデバイスは、ティーチングルーチンを生成するときに取得された目的データに対して、自然言語処理および/または音声認識処理などの、様々な処理オペレーションを実行するように構成され得る。他の実施形態では、ユーザの目標は、目的データ内のコードまたは他のインジケータによって明示的に指示され得る。たとえば、ダウンロードされたスクリプトは、特定の時刻の後にライトがオフにされるべきであることを指示するように知られているコードを含み得る。

[0232]いくつかの実施形態では、ティーチャシグナリングデバイスは、様々な種類の目的または目標を達成するのに適した学習デバイスの種類またはクラス、さらには様々な学習デバイスによって実行できる事前定義されたアクションまたは機能を指示するデータとともに構成され得る。たとえば、ティーチャシグナリングデバイスは、学習デバイスのデバイスクラスの種類、デバイス仕様、製造業者、および/またはブランドを様々なトピックまたは目標(たとえば、照明、暖房、娯楽など)に関連付けるデータテーブルを記憶することができる。そのようなデータにより、ティーチャシグナリングデバイスは、学習デバイスおよびその機能が取得された目的データにおいて指示されている目標を達成するために何をティーチングされるべきかを決定し得る。たとえば、セキュリティ目的を達成するために、ティーチャシグナリングデバイスは、開閉を学習することができることが知られているスマートブラインドは反復する時刻指定ブロードキャスト信号を介してティーチングされるべきであると決定することができる。

[0233]ティーチングルーチンは、取得された目的データによって指示される目標を達成するようにティーチングシグナリングデバイスによって実行され得る命令セットであるものとしてよい。特に、ティーチングルーチンは、ティーチャシグナリングデバイスが学習デバイスによって受信されるべきティーチング信号をいつどのように送信し得るかに関する詳細な命令を含み得る。ティーチングルーチンは、時刻、信号強度、ブロードキャスト周波数、含まれるデータ(たとえば、コード、パケット、識別子など)、フォーマッティング、および取得された目的データに関係するティーチング信号に関する他の特定の情報を指示し得る。たとえば、生成されたティーチングルーチンは、ティーチャシグナリングデバイスが、スマートランプがオンになっていることを指示するデータ(すなわち、発生データ)を含む第1のティーチング信号とスマート壁面スイッチが入れられたことを示す第2のティーチング信号とをブロードキャストすべきであることを指示し得る。

[0234]様々な実施形態において、生成されたティーチングルーチンは、ティーチャシグナリングデバイスが上で説明されているようなイベントレポートメッセージに類似するティーチング信号を送信するためのスケジュールおよび命令を含み得る。言い換えれば、ティーチングルーチンは、実際の発生なしでイベントレポートメッセージをいつどのように送信するかについてティーチャシグナリングデバイスに命令し得る。たとえば、スマート壁面スイッチは、生成されたティーチングルーチンに基づき、ユーザによって物理的に入れられないけれども、ティーチャシグナリングデバイスは、スマート壁面スイッチが入れられていることを報告するイベントレポートメッセージとしてフォーマットされているティーチング信号を送信するよう命令され得る。

[0235]生成されたティーチングルーチンは、ティーチャシグナリングデバイスが定期的に実行するための命令を含み得る。言い換えれば、ティーチングルーチンは、「ティーチングセッション」を含み得る。したがって、生成されたティーチングルーチンは、ティーチャシグナリングデバイスがティーチング信号を送信するための反復の回数と反復の間の時間間隔とを指示し得る。たとえば、生成されたティーチングルーチンは、毎日1時間、1分に1回ティーチング信号ブロードキャストすることをティーチャシグナリングデバイスに命令することができる。別の例として、生成されたティーチングルーチンは、ステレオクラスのスマートデバイスがオンにされていることを指示するティーチング信号が1時間おきに正時でブロードキャストされるべきであることを命令することができる。ブロック1306において、ティーチャシグナリングデバイスのプロセッサは、不揮発性記憶装置またはメモリ内のデータベースなどに、生成されたティーチングルーチンを記憶することができる。

[0236]いくつかの実施形態では、取得された目的データは、学習デバイスの知られているシステムに対して送信されるべき特定のティーチング信号のスケジュールなどの、既存のティーチングルーチンを含み得る。たとえば、ユーザは、システム内で利用可能な学習デバイスの種類を指示するユーザ選好データと情報とを受信するアプリケーションを利用してティーチャシグナリングデバイス内にダウンロードされるティーチングルーチンを生成し得る。そのような場合、ティーチャシグナリングデバイスは、ティーチング信号をいつどのように送信するかを決定するために取得された目的データを処理することまたは他の何らかの形で分析することを必要とする場合も必要としない場合もある。

[0237]決定ブロック1308において、ティーチャシグナリングデバイスのプロセッサは、ティーチャシグナリングデバイスによってティーチングオペレーションをトリガーする入力が受信されるかどうかを決定し得る。言い換えれば、ティーチャシグナリングデバイスは、生成されたティーチングルーチンによって指示されるように、ティーチング信号送信することなど、命令を実行することを開始し得るかどうかを決定することができる。入力は、ティーチャシグナリングデバイス側に受信される事前定義された信号であってよい。たとえば、ティーチャシグナリングデバイスは、事前定義されたワイヤレス信号(たとえば、Bluetooth接続などを介して受信された「起動」信号)を監視し得る。いくつかの実施形態では、入力は、付近の学習デバイスからのイベントレポートメッセージであってよい。代替的に、入力は、ティーチャシグナリングデバイスに結合されているユーザインターフェースのボタンまたは他の要素上のボタンを押すことなどの、ユーザ入力であってよい。(たとえば、ティーチャシグナリングデバイスに接続されたタッチスクリーン上のグラフィカルユーザインターフェースボタンを押すこと、ティーチャシグナリングデバイスのハウジング上の触覚ボタンを押すこと、など)。他の実施形態では、ティーチャシグナリングデバイスは、ティーチングオペレーションをトリガーするメッセージをインターネットプロトコルを介して受信し得る。たとえば、ティーチングオペレーションは、インターネット上で通信サーバ(たとえば、ウェブサイトまたはポータルに関係するサーバ)から受信された受信メッセージに基づき開始され得る。

[0238]ティーチャシグナリングデバイスが、ティーチングオペレーションをトリガーする入力を受信していないと決定したことに応答して(すなわち、決定ブロック1308=「いいえ」)、ティーチャシグナリングデバイスは、ティーチングルーチンを生成するために使用され得る追加の目的データを取得するためブロック1302におけるオペレーションを続行することができる。しかしながら、ティーチャシグナリングデバイスが、ティーチングオペレーションをトリガーする入力を受信していると決定したことに応答して(すなわち、決定ブロック1308=「はい」)、ブロック1310において、ティーチャシグナリングデバイスのプロセッサは、生成されたティーチングルーチンに基づき学習デバイスのうちの1つまたは複数をティーチングするように構成されたティーチング信号をブロードキャストすることができる。たとえば、ティーチングルーチンによって記述されている時間間隔を使用することで、ティーチャシグナリングデバイスは、スマート壁面スイッチが入れられたこと、および/またはスマートランプがオンにされたことを指示するティーチング信号を送信することができる。

[0239]オプションの決定ブロック1312において、ティーチャシグナリングデバイスのプロセッサは、ティーチャシグナリングデバイスによってティーチングオペレーションを終了する別の入力が受信されるかどうかを指示し得る。他の入力は、別の入力がティーチャシグナリングデバイスがティーチングオペレーションを終了し得ることを除き、決定ブロック1308におけるオペレーションを参照しつつ上で説明されている入力に類似しているものとしてよい。たとえば、ユーザは、ティーチャシグナリングデバイス上の「Stop」ボタンを押すか、またはティーチャシグナリングデバイスが、ティーチング信号がもはやブロードキャストされ得ないことを意味するようにあらかじめ決定されているワイヤレス信号を受信し得る。オプションの決定ブロック1312におけるオペレーションは、生成されたティーチングルーチンがティーチャシグナリングデバイスがそのティーチングを終了し得る正確な時間または条件を指示し得るのでオプションであってよい。たとえば、ティーチングルーチンが1回だけブロードキャストされる設定された数のティーチング信号の送信を命令するときにティーチャシグナリングデバイスを停止するため入力を必要としなくてよい。ティーチャシグナリングデバイスが、ティーチングオペレーションを終了する入力を受信していないと決定したことに応答して(すなわち、オプションの決定ブロック1312=「いいえ」)、ティーチャシグナリングデバイスは、生成されたティーチングルーチンに基づきティーチング信号をブロードキャストするためブロック1310におけるオペレーションを続行することができる。言い換えれば、ティーチャシグナリングデバイスが、ティーチング信号をブロードキャストすることが停止されるべきであると命令されること、または他の何らかの形で識別されることがなかったときに、ティーチャシグナリングデバイスは、ブロック1310におけるオペレーションを実行することを連続するティーチングセッションとして続け得る。たとえば、ティーチャシグナリングデバイスは、しばらくしてからのある時刻において、または代替的に連続的な仕方で、ティーチング信号をブロードキャストし得る。ティーチャシグナリングデバイスが、ティーチングオペレーションを終了する入力を受信していると決定したことに応答して(たとえば、オプションの決定ブロック1312=「はい」)、方法1300が終了し得る。他の実施形態では、ティーチャシグナリングデバイスは、ティーチングオペレーションを終了する入力を受信したかどうかに関係なくブロック1302におけるオペレーションを続行することができる(すなわち、オプションの決定ブロック=「いいえ」または「はい」)。

[0240]図13Bは、ティーチャシグナリングデバイスがインターセプトされた信号から取得されたデータとともに生成されたティーチングルーチンに基づき信号をブロードキャストするための実施形態の方法1350を示している。方法1350は、方法1350がイベントレポートメッセージをリアルタイムで観察する(またはインターセプトする)ことによってティーチングルーチンを生成するためのデータを取得するオペレーションをさらに含み得ることを除き、図13Aの方法1300を参照しつつ上で説明されているものと似たオペレーションを含み得る。言い換えれば、ティーチャシグナリングデバイスは、ある場所にある学習デバイスが、ユーザのインタラクティブな操作などのトリガーに実際にどのように応答するかを観察し、これらの観察結果に基づきティーチングルーチンを生成するように構成され得る。たとえば、目的データは、ユーザがスマート壁面スイッチを「オン」に入れ、スマートランプをオンにしたときにブロードキャストされる2つのイベントレポートメッセージから取得され得る。この方式は、学習デバイスが実際にアクションを学習する前に複数の繰返しを必要とするが、ユーザは自分が行うインタラクティブな操作を繰返し実行することができないときにユーザが学習デバイスに対してインタラクティブに行う操作を複製するために役立ち得る。

[0241]ブロック1352において、ティーチャシグナリングデバイスのプロセッサは、学習デバイスによって送信されたイベントレポートメッセージをインターセプトし得る。たとえば、ティーチャシグナリングデバイスは、学習デバイスにおける最近の発生(たとえば、状態変化、受信された入力、実行されたアクションなど)に関する情報を含むことを指示するコードまたは他の情報を利用するワイヤレス信号(たとえば、Bluetooth、WiFi、RFなど)を継続的に監視するように構成され得る。ブロック1354において、ティーチャシグナリングデバイスのプロセッサは、受信されたイベントレポートメッセージに基づき学習デバイスの活動に関係する目的データを取得し得る。ティーチャシグナリングデバイスは、ユーザのインタラクティブな操作によってティーチングされることを意図されているトリガーアクション関係に関係するイベントレポートメッセージをグループ化するか、または他の何らかの形で関連付けるために時間ウィンドウを利用することができる。そのような時間ウィンドウは、上で説明されているような学習デバイス(またはスマートボックス)によって使用されるものと類似していてもよい。たとえば、ティーチャシグナリングデバイスは、5〜10秒のウィンドウ内で受信されるイベントレポートメッセージをグループ化し得る。このようにして、ティーチャシグナリングデバイスは、イベントレポートメッセージで報告されるような実際に発生するものに基づきユーザの目的を決定することができる(たとえば、壁面スイッチが入れられたときにオンになることをスマートランプにティーチングする、外で特定の温度を超えたときに閉じることをスマートブラインドにティーチングする、など)。他の実施形態では、ティーチャシグナリングデバイスは、イベントレポートメッセージを処理するか、またはグループ化するように構成され得ないが、その代わりに、受信されたメッセージの正確な時刻と種類とを単純に記録して受信されたイベントレポートメッセージを複製するためのスクリプトを生成することができる。たとえば、受信されたイベントレポートメッセージに基づくティーチングルーチンは、本質的に、ある時間期間にわたって受信された様々なイベントレポートメッセージのログであり得る。

[0242]ティーチャシグナリングデバイスは、図13Aを参照しつつ上で説明されているようにブロック1304〜1312におけるオペレーションを続行し、適宜、ティーチングオペレーションを終了する入力が受信されたときにブロック1352におけるオペレーションを続行し得る(すなわち、オプションの決定ブロック1312=「はい」)。しかしながら、図13Aを参照しつつ上で説明されているのとは異なり、ティーチャシグナリングデバイスは、ティーチャシグナリングデバイスがティーチングをトリガーする入力が受信されていないと決定したときに(すなわち、決定ブロック1308=「いいえ」)、ブロック1352におけるオペレーションを続行し得る。

[0243]図13Cは、ティーチャシグナリングデバイスが学習デバイスから受信されたデータとともに生成されたティーチングルーチンに基づき信号をブロードキャストするための実施形態の方法1370を示している。方法1370は、方法1370がシステム内の付近の学習デバイス(たとえば、スマートボックス)からリフレックス情報を取得するためのオペレーションをさらに含み得ることを除き、図13Aの方法1300を参照しつつ上で説明されているものと類似しているオペレーションを含み得る。言い換えれば、ティーチャシグナリングデバイスは、付近の学習デバイスの各々からトリガーアクション関連付け(さらにはトリガー重み)をダウンロードするか、または他の何らかの形で受信するように構成され得る。すでに存在している学習された関連付けを取得することによって、ティーチャシグナリングデバイスは、他の場所にある他の学習デバイスにそれらの同じ関連付けをティーチングするためのティーチングルーチンを生成し得る。たとえば、ティーチャシグナリングデバイスは、一方の部屋にあるスマートブラインドの第1のセットの学習された挙動を、別の部屋にあるスマートブラインドの第2のセットに同じ挙動をティーチングするために複製することができる。

[0244]ブロック1372において、ティーチャシグナリングデバイスのプロセッサは、付近の学習デバイスにリフレックス情報を要求する信号をブロードキャストし得る。そのような信号は、それぞれの記憶されているリフレックスを指示するデータをパッケージ化し、送信する要求として付近の学習デバイスによって処理され識別され得るコードまたは他の情報(たとえば、ヘッダ情報など)を含み得る。ブロック1374において、ティーチャシグナリングデバイスのプロセッサは、付近の学習デバイスからのリフレックス情報を含む応答メッセージを受信し得る。リフレックス情報は、付近の学習デバイスによって使用される様々なトリガーパターンと、アクションパターンと、報酬パターンと、補正パターンとを指示するデータを含み得る。リフレックス情報は、様々なパターンに関連付けられているトリガー重みおよび/または利得値も含み得る。ブロック1376において、ティーチャシグナリングデバイスのプロセッサは、受信された応答メッセージからのリフレックス情報に基づき学習デバイスのリフレックスに関係する目的データを取得し得る。特に、目的データは、付近の学習デバイスから受信されたリフレックス情報内に定義されているトリガーパターンとアクションパターンとの間の関連付けであってよい。たとえば、スマートランプが壁面スイッチの「オン」トリガーパターンを検出したことに応答してオンになるように構成されていることを指示する受信されたリフレックス情報に基づき、ティーチャシグナリングデバイスは、壁面スイッチの「オン」トリガーパターンに関してランプのアクションを記憶することができる。ティーチャシグナリングデバイスは、他の場所における受信されたリフレックス情報を複製するか、または代替的に、応答する学習デバイスによる進行中の学習を進めるために使用され得るティーチングルーチンを生成し得る。たとえば、ティーチャシグナリングデバイスは、応答する学習デバイスがそれらのそれぞれのリフレックスのトリガー重みを加減するのを助けるティーチング信号をブロードキャストされることを引き起こす受信されたリフレックス情報に基づくティーチングルーチンを生成し得る。

[0245]ティーチャシグナリングデバイスは、図13Aを参照しつつ上で説明されているようにブロック1304〜1312におけるオペレーションを続行し、適宜、ティーチャシグナリングデバイスが、ティーチングオペレーションを終了する入力が受信されたと決定したときにブロック1372におけるオペレーションを続行し得る(すなわち、オプションの決定ブロック1312=「はい」)。しかしながら、図13Aを参照しつつ上で説明されているのとは異なり、ティーチャシグナリングデバイスは、それがティーチングをトリガーする入力が受信されていないと決定したときに(すなわち、決定ブロック1308=「いいえ」)、ブロック1372におけるオペレーションを続行し得る。

[0246]図14は、ティーチャシグナリングデバイスがティーチングルーチンのターゲットとなり得る付近の学習デバイスを発見するための一実施形態の方法1400を示している。取得された目的データは、多くの場合、ユーザが帰宅したときに再生したい音楽、またはエキスパートがストレスの軽減に推奨する照明方式などの、ユーザがある場所(たとえば、スマートホーム)で達成させることを望んでいる目標またはターゲット条件を記述し得る。しかしながら、その場所にある学習デバイスは取り除かれるか、追加されるか、または他の何らかの形で機能を変更される可能性があるので(たとえば、学習モードが無効にされる、など)、ティーチャシグナリングデバイスは、ティーチングルーチンの目的を最もよく達成するためにティーチング信号をブロードキャストする前にその場所の中の学習デバイスを調査する必要があり得る。したがって、方法1400のオペレーションは、方法1400が、ティーチャシグナリングデバイスが付近の学習デバイスを評価し、学習ルーチンが目的を達成するように修正され得るかどうかを決定するためのオペレーションを含み得ることを除き、上で説明されている方法1300のものに類似している。

[0247]ブロック1302〜1308におけるオペレーションは、図13Aを参照しつつ上で説明されているとおりのものであってよい。ブロック1402において、ティーチャシグナリングデバイスのプロセッサは、現在のシステム内の学習デバイスに応答を識別することを要求する発見信号をブロードキャストし得る。たとえば、ティーチャシグナリングデバイスは、受信する学習デバイスがそのデバイス識別子および/またはそのデバイスタイプもしくはクラスタイプのインジケータを含む応答メッセージを送信することを引き起こすように構成されたスクリプト、コード、または他のインジケータを含む信号をブロードキャストし得る。いくつかの実施形態では、発見信号は、受信する学習デバイスが、現在学習モードに入っているかどうか、学習モードに入ることができるかどうか、さらには学習デバイスが新しい関連付けを生成する能力に関係する他のデータを指示する情報を送信することを引き起こすようにも構成され得る。たとえば、発見信号は、付近のスマートランプによって処理されたときに、スマートランプがクラス識別子(たとえば、スマートランプ)を含む戻りメッセージを送信することを引き起こし得るコードと、ティーチングルーチンを通じて調整され得ない静的リフレックスのみを指示するコードとを含み得る。

[0248]ブロック1404において、ティーチャシグナリングデバイスのプロセッサは、ブロードキャストされた発見信号に応答して学習デバイスからの識別応答を受信し得る。デバイス識別子と、デバイスタイプ(またはクラスタイプ)インジケータと、付近のスマートデバイスの機能性と可用性とを指示する他の情報とを含む1つまたは複数の応答が受信され得る。たとえば、スマートランプが存在していること、さらにはスマートランプが「オン」アクションと、「オフ」アクションと、「輝度増大」アクションと、「輝度減少」アクションとを実行することができることを指示する識別応答が受信され得る。いくつかの実施形態では、受信された応答は、ティーチャシグナリングデバイスが発見信号をブロードキャストするのに利用しているのと同じフォーマットおよび/またはシグナリング媒体(たとえば、Bluetoothなど)を使用して学習デバイスによって送信され得る。

[0249]決定ブロック1405において、ティーチャシグナリングデバイスのプロセッサは、生成されたティーチングルーチンの目的が発見信号への受信された応答により識別された学習デバイスにより達成され得るかどうかを決定することができる。言い換えれば、ティーチャシグナリングデバイスは、付近の学習デバイスのタイプ、番号、および可用性(またはティーチングできること)を生成されたティーチングルーチンと比較して、現在の場所に特定の学習挙動をティーチングするための十分な能力があるかどうかを決定し得る。たとえば、ティーチャシグナリングデバイスは、生成されたティーチングルーチン内のデバイスタイプ、ブランド、ファームウェアバージョン、および他の特定の情報を付近の学習デバイスの特定の情報と比較して、エキスパート照明、快適モード、またはエコフレンドリー環境が達成され得るかどうかを決定することができる。一例として、生成されたティーチングルーチンが、部屋の中の高い温度読み取り値に応答して閉じることをスマートブラインドにティーチングするためにティーチング信号を送信されるべきであることと、受信された識別応答に基づき、部屋にはスマートブラインドがないこととを指示するときに、ティーチャシグナリングデバイスは、他の方法で部屋を冷房すること(たとえば、スマートスカイライトカバーが閉じること、スマートシーリングファンがオンになることなど)をティーチングされ得る他のスマートデバイスが部屋の中にあるかどうかを決定することができる。別の例として、生成されたティーチングルーチンが、ティーチング信号が部屋の中の高い温度読み取り値に応答して閉じることをスマートブラインドにティーチングするために送信されるべきであることを指示するときに、ティーチャシグナリングデバイスは、部屋の中にスマートデバイスがないときにティーチングルーチンが達成され得ないと決定し得る。

[0250]ティーチャシグナリングデバイスが、付近の学習デバイスを識別する受信された応答に基づき生成されたティーチングルーチンの目的が達成され得ないと決定したことに応答して(すなわち、決定ブロック1405=「いいえ」)、ティーチャシグナリングデバイスは、追加の目的データを取得するためブロック1302におけるオペレーションを続行することができる。他の実施形態では、ティーチャシグナリングデバイスは、方法1400を終了し、および/またはティーチングルーチンが学習デバイスが不十分であるため実行され得ないことを指示するメッセージをユーザデバイスに送信し得る。

[0251]ティーチャシグナリングデバイスが、付近の学習デバイスを識別する受信された応答に基づき生成されたティーチングルーチンの目的が達成され得ると決定したことに応答して(すなわち、決定ブロック1405=「はい」)、オプションのブロック1406において、ティーチャシグナリングデバイスのプロセッサは、現在のシステム内で識別された学習デバイスに基づきティーチングルーチンを修正し得る。特に、ティーチャシグナリングデバイスは、付近の学習デバイスのタイプ、番号、および可用性(またはティーチングできること)を生成されたティーチングルーチンと比較して、ティーチングルーチンの目的を達成するために調整が必要かどうかを決定し得る。そのような調整は、生成されたティーチングルーチンにおいて最初に示されたのと異なるタイプの学習デバイスに影響を及ぼすようにティーチング信号内のコードを変更するか、または変換することを含み得る。たとえば、ティーチャシグナリングデバイスは、ティーチング信号内でブロードキャストされるコードを翻訳しデバイスの特定の製造業者またはクラス(たとえば、Bluetoothデバイスクラスなど)のデバイスによって認識されるコードを含むようにできる。非限定的な例として、ティーチングルーチンは、最初に、部屋の温度をより低くするために、温度センサーが事前定義された閾値より高い値をブロードキャストしたときに閉じることをスマートブラインドにティーチングするためにティーチング信号がブロードキャストされる必要があり得ることを指示することができる。しかし、スマートブラインドが現在の部屋に存在していないときに、ティーチャシグナリングデバイスは、温度が事前定義された値を超えたときにライトを減光することをスマートランプにティーチングするためのティーチング信号を含むようにティーチングルーチンを変更し得る。言い換えれば、ティーチャシグナリングデバイスは、既存のティーチングルーチンの同じまたは類似の目的を達成することをティーチングする代替的な学習デバイスを識別し得る。ティーチャシグナリングデバイスは、図13Aを参照しつつ上で説明されているようなブロック1310〜1312におけるオペレーションを続行することができる。

[0252]図15は、ティーチャシグナリングデバイスがティーチング信号をブロードキャストする前にユーザに認可を要求するための一実施形態の方法1500を示している。多くの場合において、ティーチャシグナリングデバイスは、ティーチングオペレーションを自動的に実行するように構成され得る。たとえば、太陽の光が家の中に差し込み、光センサーによって検出され、家の外の温度が熱センサーによって閾値より高いと報告されたときに、能動的なティーチャシグナリングデバイスは、閉じることをスマートブラインドにティーチングし得る。しかしながら、ユーザは、ティーチャシグナリングデバイスがある場所にある学習デバイスをいつ能動的にティーチングするかを制御したい場合がある。たとえば、家の中の温度が、事前定義された閾値より高いが、家の中に人がいないときに、ユーザは、ティーチャシグナリングデバイスが開くことをスマートフォンウィンドウにティーチングするかどうかを選択したい場合がある。したがって、方法1500のオペレーションは、方法1500が、ティーチャシグナリングデバイスがティーチングがシステム内で実行され得ることをユーザに確認するためのオペレーションを含み得ることを除き、上で説明されている方法1300のものに類似している。たとえば、ユーザによって個人的に実行されるアクションをオーバーライドし得る不要な、または望まれていないティーチングを回避するために、ティーチャシグナリングデバイスは、学習デバイスのティーチングを続ける前に確認応答を要求する通信(たとえば、電子メール、テキスト、自動音声通話など)をユーザのデバイス(たとえば、スマートフォン、ラップトップなど)に送信するように構成され得る。

[0253]ブロック1302〜1308におけるオペレーションは、図13Aを参照しつつ上で説明されているとおりのものであってよい。ティーチャシグナリングデバイスがティーチングをトリガーする入力が受信されたと決定したことに応答して(すなわち、決定ブロック1308=「はい」)、ブロック1502において、ティーチャシグナリングデバイスのプロセッサは、認可要求をユーザデバイスに送信し得る。たとえば、ティーチャシグナリングデバイスは、家の照明および/または暖房/冷房に関係する生成されたティーチングルーチンを介してティーチングを実行する許可を求めるメッセージを送信することができる。上で指摘されているように、認可要求は、ユーザデバイスによる受信のためにティーチャシグナリングデバイスによって送信され得る何らかの形態の通信またはメッセージングであってよい。たとえば、認可要求は、電子メール、SMS/MMSテキストメッセージ、アプリケーション通知、自動通話、および/または通信ネットワーク(たとえば、セルラーネットワーク、WiFiローカルエリアネットワークなど)上で配信される他の通信であってよい。ティーチャシグナリングデバイスは、ローカルのメモリに記憶されている事前定義された宛先アドレス(たとえば、電話番号、電子メールアドレスなど)に認可要求を送信することができる。いくつかの実施形態では、ティーチャシグナリングデバイスは、ティーチャシグナリングデバイスに結合されているスピーカーおよび/または画面を介して発せられる音または画像などの、認可要求をレンダリングするように構成され得る。たとえば、ティーチャシグナリングデバイスとして(たとえば、ティーチングアプリを介して)動作するように構成されているスマートフォンは、インターフェースにポップアップウィンドウをレンダリングして、ユーザに、「Yes」または「No」のいずれかのグラフィカルユーザインターフェースボタンを押すことによってティーチング手順を確認することを要求することができる。

[0254]いくつかの実施形態では、複数の認可要求が、与えられた時刻に1人または複数のユーザに送信され得る。たとえば、ティーチャシグナリングデバイスは、テレビ室内のスマートブラインドをティーチングすることに関して第1の認可要求の電子メールを第1のユーザ(たとえば、自宅所有者である妻)に送信し、台所のスマートブラインドをティーチングすることに関して第2の認可要求のテキストメッセージを第2のユーザ(たとえば、自宅所有者である夫)に送信することができる。さらに、ティーチャシグナリングデバイスは、ローカルのデバイスに記憶され、その後受信されたメッセージを評価するために使用され得る、固有コードまたはキーなどの、そのような認可要求内の情報を識別することを含むように構成され得る。たとえば、ティーチャシグナリングデバイスは、記憶されているコードを受信された着信メッセージのヘッダ情報内のコードと比較し、着信メッセージが有効な認可応答メッセージであるかどうかを決定し得る。別の例として、ティーチャシグナリングデバイスは、第1のティーチングルーチンが実行され得ることを決定するために第1の記憶されているコードと第1の受信された認可応答メッセージ内の情報とのマッチングを行うことができ(たとえば、暑い天気などのときをスマートブラインドにティーチングすることを認可される)、ティーチャシグナリングデバイスは、第2のティーチングルーチンが実行され得ないことを決定するために第2の記憶されているコードと第2の受信された認可応答メッセージ内の情報とのマッチングを行うことができる(たとえば、テレビがオンになっているときなどに、減光することをスマートライトにティーチングすることを認可されない)。

[0255]様々な実施形態において、ティーチャシグナリングデバイスは、新規生成されたティーチングルーチンのティーチング信号を送信する前に認可要求を送信し得る。たとえば、インターネットからダウンロードされたエキスパート照明ガイドに基づき新しいティーチングルーチンを生成した後に、ティーチャシグナリングデバイスは、新しいルーチンが実行され得ることの認可をユーザに要求し得る(たとえば、認可要求は、「I’m about to teach the lights to dim when it gets hot based on a new teaching routine, may I go ahead?」というメッセージであってよい)。代替的に、ティーチャシグナリングデバイスは、ティーチングルーチンに関係する個別のティーチングセッションの前に認可要求を送信し得る。たとえば、毎日、ティーチャシグナリングデバイスは、同じティーチングルーチンに関係するティーチング信号をブロードキャストする前に認可要求を送信し得る(たとえば、認可要求は、「This is the second day of teaching the blinds to close when it gets hot, may I go ahead with this teaching session?」というメッセージであってよい)。

[0256]決定ブロック1504において、ティーチャシグナリングデバイスのプロセッサは、認可要求をユーザデバイスに送信したことに応答して認可が受信されるかどうかを決定し得る。ティーチャシグナリングデバイスは、ユーザからの認可情報を含むメッセージ(すなわち、認可応答メッセージ)を検出するために着信メッセージバッファを監視し得る。たとえば、ティーチャシグナリングデバイスは、ティーチングルーチンの受理または拒絶を指示するフラグまたはビットを含む認可応答メッセージを受信し得る。ティーチャシグナリングデバイスは、ローカルに記憶されている情報を着信メッセージまたは信号内のデータ(たとえば、ヘッダ情報)と比較し、着信メッセージが両方とも送信された認可要求に関係し、受理または拒絶を含むかどうかを決定することができる。たとえば、ティーチャシグナリングデバイスは、送信された認可要求に関連付けられている記憶されているコードと受信された着信メッセージ内のコード(たとえば、要求番号、デバイス識別子、ティーチングルーチンインデックス、など)とのマッチングを行い得る。いくつかの実施形態では、ティーチャシグナリングデバイスは、受信メッセージ内の他の情報を評価して、認可応答メッセージを検証するために必要になり得るキー、秘密の言葉、パスワード、または他の認証情報を検出することもできる。たとえば、受信された認可応答メッセージが処理され、それがティーチャシグナリングデバイスとユーザにのみ知られているパスワードを含むかどうかを決定し得る。

[0257]ティーチャシグナリングデバイスが、認可メッセージが受信されていないと決定したことに応答して(すなわち、決定ブロック1504=「いいえ」)、ティーチャシグナリングデバイスは、上で説明されているようにブロック1302においてデータを取得するためのオペレーションを続行することができる。オプションの一実施形態において、ティーチャシグナリングデバイスは、認可要求をユーザデバイスおよび/または学習デバイスの非集中システムのユーザに関連付けられていることが知られている他のデバイスに継続的に送信するように構成され得る。たとえば、ティーチャシグナリングデバイスは、ティーチャシグナリングデバイスによってティーチングされる学習デバイスを含む家の所有者との連絡のための代替的セル番号または電子メールアドレスを記憶し得る。しかしながら、ティーチャシグナリングデバイスが、認可メッセージが受信されたと決定したことに応答して(すなわち、決定ブロック1504=「はい」)、ティーチャシグナリングデバイスは、図13Aを参照しつつ上で説明されているようにブロック1310〜1312におけるオペレーション(たとえば、ティーチングルーチンに基づきティーチング信号をブロードキャストする、など)を続行することができる。

[0258]図16は、ティーチャシグナリングデバイスが付近の学習デバイスが学習モードを構成することを引き起こす信号をブロードキャストするための一実施形態の方法1600を示している。多くの場合において、学習デバイスは、トリガーとそれぞれの事前定義されているアクションとの間の関連付けを定義する静的または動的リフレックスを利用するように構成され得る。そのような学習デバイスは、上で説明されているような臨界および定常状態学習期間などの、学習の状態の様々なモードに入るようにも構成され得る。他の場合に、そのような学習デバイスによるティーチングを遂行するために、ティーチャシグナリングデバイスは、学習デバイスおよびそれらのリフレックスの学習モードまたは学習能力を修正する信号を送信するように構成され得る。したがって、方法1600のオペレーションは、方法1600が、ティーチャシグナリングデバイスがティーチング信号に基づきリフレックスを生成し、および/またはトリガー重みを修正する能力を有効にする付近の学習デバイス内の設定またはモードを直接制御するためのオペレーションを含み得ることを除き、上で説明されている方法1300のものに類似している。いくつかの実施形態では、ティーチャシグナリングデバイスは、学習デバイスが学習モードをアクティブ化(または非アクティブ化)し、および/またはすでに学習されている情報(たとえば、トリガー重み)をリセットすることを引き起こす信号を送信するための補助チャネル(またはAUXチャネル)を利用し得る。

[0259]ブロック1302〜1308におけるオペレーションは、図13Aを参照しつつ上で説明されているとおりのものであってよい。ティーチャシグナリングデバイスがティーチングをトリガーする入力が受信されたと決定したことに応答して(すなわち、決定ブロック1308=「はい」)、ブロック1602において、ティーチャシグナリングデバイスのプロセッサは、付近の学習デバイスが学習モードに入ることを引き起こす信号をブロードキャストし得る。たとえば、この信号は、受信側の学習デバイスが学習モードをアクティブ化するか、または他の何らかの形で学習モードに入るようにコマンドとして識別し得るコードを指示するか、またはそのように識別し得るフォーマットを取り得る。

[0260]オプションのブロック1604において、ティーチャシグナリングデバイスのプロセッサは、付近の学習デバイスがその関連付けをリセットする(たとえば、リフレックスに対するトリガー重みをゼロにする)ことを引き起こす信号(すなわち、リセット信号)をブロードキャストし得る。たとえば、この信号は、受信側の学習デバイスが、学習デバイスがオペレーションの前の状態に戻るように最近の学習されたトリガー重みを巻き戻すか、削除するか、または無効にするコマンドとして識別し得るコードを指示するか、またはそのように識別し得るフォーマットを取り得る。いくつかの実施形態では、学習デバイスは、ティーチャシグナリングデバイスからのティーチング信号に基づきティーチングされている学習された挙動(すなわち、リフレックスに対する増加または減少させられたトリガー重み)をリセットするだけであってよい。言い換えれば、ティーチャシグナリングデバイスからのリセット信号は、前のティーチング信号の効果を無効にするためにのみ使用され、システムの学習デバイスをユーザが直接インタラクティブに操作することに基づく学習を無効にするためには使用され得ない。いくつかの実施形態では、リセット信号は、学習された情報をリセットするように指令され得る特定のデバイスタイプまたはデバイス識別子を含み得る。たとえば、リセット信号は、スマートブラインドのみがそのトリガー重みへの最近の増加/減少を無効にすべきであり、スマートランプはそうすべきでないことを指示し得る。様々な実施形態において、そのようなリセット信号は、学習デバイスが最後の時、日、週などにおいて影響を受けるリフレックスへのすべてのトリガー重み調整を取り除かなければならないことを指示するデータを含めることによって、学習デバイス内で無効にされるべき学習の特定の時間期間を指示し得る。いくつかの実施形態では、リセット信号は、学習デバイスがトリガー重みを工場出荷時設定に戻すことを引き起こし得る。

[0261]ティーチャシグナリングデバイスは、上で説明されているようにブロック1310で生成されたティーチングルーチンに基づきティーチング信号をブロードキャストし、オプションの決定ブロック1312において、ティーチングを終了する入力が受信されているかどうかを決定し得る。オプションの決定ブロック1312におけるオペレーションは、ティーチャシグナリングデバイスが事前定義された時間期間の間、または事前定義された繰返し回数でティーチングに関連付けられているオペレーションを実行するように構成され得るのでオプションであってよく、したがって、ティーチングを終了させるための時間または条件を指示する入力を必要としなくてよい。ティーチャシグナリングデバイスが、ティーチングを終了する入力が受信されていないと決定したことに応答して(すなわち、オプションの決定ブロック1312=「いいえ」)、ティーチャシグナリングデバイスは、ブロック1310におけるオペレーションを続行するか、または代替的にブロック1606におけるオペレーションを続行し得る。

[0262]ティーチャシグナリングデバイスがティーチングを終了する入力が受信されたと決定したことに応答して(すなわち、オプションの決定ブロック1312=「はい」)、ブロック1606において、ティーチャシグナリングデバイスのプロセッサは、付近の学習デバイスが学習モードを終了することを引き起こす信号をブロードキャストし得る。たとえば、この信号は、受信側の学習デバイスが学習モードを非アクティブ化するか、または他の何らかの形で学習モードを終了するようにコマンドとして識別し得るコードを指示するか、またはそのように識別し得るフォーマットを取り得る。次いで、ティーチャシグナリングデバイスは、方法1600を終了するか、または代替的に、ブロック1302におけるオペレーションを続行し得る。

[0263]図17Aは、ティーチャシグナリングデバイスがティーチングルーチンの使用に関係する情報を更新するためにイベントレポートメッセージをインターセプトするための一実施形態の方法1700を示している。システム内に学習デバイスをティーチングするためにティーチャシグナリングデバイスを配備するときに、学習デバイスは、時間の経過とともにその挙動を変化させ得る。たとえば、特定の数の受信されたティーチング信号の後に、スマートランプが、ドアの開放または場所における他の発生に応答してオンになることを学習し得る。ユーザは、ティーチングの結果、さらにはティーチャシグナリングデバイスによって実行されたアクションを指示するデータを活用することができる。たとえば、ユーザは、時間の経過とともに更新する省エネ統計量を示し、ティーチング信号がティーチャシグナリングデバイスによって送信される前と後の学習デバイスによるエネルギー使用量の比較を可能にする履歴情報を検討することができる。したがって、方法1700のオペレーションは、方法1700が、ティーチャシグナリングデバイスがある場所におけるティーチングルーチンの影響を反映する記憶されている情報を受信し、管理するためのオペレーションを含み得ることを除き、上で説明されている方法1300のものに類似している。

[0264]ブロック1302〜1310におけるオペレーションは、図13Aを参照しつつ上で説明されているとおりのものであってよい。ブロック1702において、ティーチャシグナリングデバイスのプロセッサは、生成されたティーチングルーチンに基づきティーチング信号をブロードキャストしたことに応答して付近の学習デバイスによって送信されたメッセージをインターセプトし得る。そのようなインターセプトされたメッセージは、アクションを実行するか、または事前定義された条件、アクション、または状況の発生を他の何らかの形で検出した後に学習デバイスがブロードキャストするイベントレポートメッセージを含み得る。インターセプトされたメッセージは、生成されたティーチングルーチンおよびティーチング信号のターゲットとなる学習デバイス、さらには他のデバイスから受信された信号を含み得るメッセージを含むものとしてよい。たとえば、インターセプトされた信号は、学習する能力があり得ないセンサーデバイスからの時間または温度の定期的ブロードキャストを含み得る。いくつかの実施形態では、メッセージは、学習デバイスの様々な動作条件を指示するデータを含み得る。たとえば、インターセプトされたメッセージは、現在の電池残量と、時間期間内の電力使用量と、状態情報(たとえば、アクティブ化された学習モードなど)と、付近のスマートランプのリフレックスに対するトリガー重みとを指示し得る。

[0265]いくつかの実施形態では、ユーザがその場にいて、ティーチャシグナリングデバイスのティーチングをリアルタイムで補正することができる。たとえば、スマートブラインドが受信されたティーチング信号に基づき閉じたことに応答して、ブラインドが閉じられることを望んでいないユーザがすぐに行ってスマートブラインドを開けると、これにより、スマートブラインドが開いていることを指示するイベントレポートメッセージをスマートブラインドが送信することを引き起こし得る。ユーザのそのようなティーチングに対抗するアクションは、ティーチャシグナリングデバイスによって識別され、ユーザの望みに反してティーチングを伝搬することを回避するようにティーチングルーチンを調整するために使用され得る。したがって、オプションのブロック1703において、ティーチャシグナリングデバイスのプロセッサは、インターセプトされたメッセージに基づきティーチングルーチンを更新することができる。インターセプトされたメッセージが、学習デバイスがその状態をティーチングルーチンに反する仕方で変更したことを指示するイベントレポートメッセージであるときに、ティーチャシグナリングデバイスは、状態をティーチングルーチンの意図された状態と比較して相違を検出し得る。反する状態が、学習デバイスによって定められており、報告されたと決定したことに応答して、ティーチャシグナリングデバイスは、ユーザによるアクションの結果としてそのような活動を解釈し、ユーザが望んでいると決定された命令を含め、および/またはユーザが望んでいないと決定された命令を取り除くようにブロック1304において生成されたティーチングルーチンを調整し得る。たとえば、ティーチャシグナリングデバイスは、ユーザがスマートブラインドを即座に開いたときにスマートブラインドが閉じることを引き起こすティーチング信号を送信することに対応する命令をティーチングルーチンから取り除くことができる。

[0266]ブロック1704において、ティーチャシグナリングデバイスのプロセッサは、インターセプトされたメッセージとブロードキャストされたティーチング信号とに基づきティーチングルーチンに関係する履歴情報を指示する記憶されているデータを更新し得る。特に、ティーチャシグナリングデバイスは、ティーチングセッション内で様々なティーチング信号に対するブロードキャストの時刻と、タイプと、方式とを記録し得る。たとえば、更新された記憶されているデータは、挙動をティーチングし目的を達成するために午前のティーチングセッションにおいてBluetoothブロードキャスト信号がいくつブロードキャストされたかを指示し得る(たとえば、エコフレンドリーな家、好ましい照明方式など)。さらに、ティーチャシグナリングデバイスは、ティーチングルーチンに関して様々な学習デバイスの進捗状況を示す情報を生成するためにインターセプトされたメッセージからのデータを処理し得る。たとえば、更新された記憶されているデータは、時間の経過とともに変わるスマートランプの特定のリフレックスに対するトリガー重みを示し得る。更新された記憶されているデータは、ティーチングルーチンの成功率などの統計量、さらにはティーチングセッション時にサーミスタデバイスによってブロードキャストされた温度センサーデータなどの、ティーチングに関して遭遇した他の環境条件を含み得る。ブロック1704におけるオペレーションは、様々な集約と、コンパイルと、将来のある時点においてユーザによって調べられ得る有用なデータを生成するためにティーチャシグナリングデバイスによって実行される命令、ルーチン、および/またはアクションを分析することとを含み得る。

[0267]クロック1706において、ティーチャシグナリングデバイスのプロセッサは、スマートフォンのタッチスクリーンまたはティーチャシグナリングデバイスに結合されている別の画面上にデータをレンダリングすることなどによって、更新された記憶されているデータを表示し得る。以下で説明されている図17Bは、そのような記憶されているデータの例示的な表示を示している。ティーチャシグナリングデバイスは、図13Aを参照しつつ上で説明されているようなオプションの決定ブロック1312におけるオペレーションを続行することができる。

[0268]図17Bは、システム内のティーチングルーチンに関係する情報の例示的な表示1750を示している。表示1750は、ティーチャシグナリングデバイスに結合されているLED画面などの、ティーチャシグナリングデバイスの表示ユニット(たとえば、専用ティーチャユニットまたはティーチャアプリケーションなどとともに構成されているスマートフォン)上のレンダリングであってよい。表示1750は、システム内の様々なスマートデバイスに対するタイムライン1755(たとえば、24時間の期間)にわたるティーチング活動を示し得る。たとえば、表示1750は、第1のスマートランプに対するティーチング時間のグラフィック情報1752と、第2のスマートランプに対するティーチング時間のグラフィック情報1753と、スマートブラインドに対するティーチング時間のグラフィック情報1754とを含み得る。たとえば、例示的な表示1750は、特定の日に、ティーチャシグナリングデバイスが、第1のスマートランプ(「ランプ1」)を6AMから8AMおよび8PMから10PMに、第2のスマートランプ(「ランプ2」)を6AMから7AMおよび8PMから10PMに、スマートブラインド(「ブラインド」)を12AMから3AM、6AMから8AM、10AMから3PM、および8PMから10PMにティーチングしていたことを示し得る。

[0269]いくつかの実施形態では、ティーチャシグナリングデバイスは、ティーチャシグナリングデバイスの期待される将来のアクションを表示するように構成され得る。たとえば、例示的な表示1750は、ティーチャシグナリングデバイスが6AMから10AMの間にオンになることを期待し、10AMから11AMの間にオフになり、その後、12PMから3PMまで再びオンになることを期待することを指示するグラフィック情報1755を含み得る。ティーチャシグナリングデバイスのそのような期待される将来のアクションは、前のティーチングの活動または傾向および/またはユーザ入力を介して入力される将来の時刻に実行されるか、またはリモートソースからダウンロードされるティーチングルーチンなどの、将来実行されるべき取得されたティーチングルーチンに基づき得る。期待される将来のアクションは、推定と事実(または実際に記録されている活動)とを区別するために過去の活動の他のグラフィック情報1752〜1754と異なる仕方で表示され得る。

[0270]図18〜図19は、ある場所における一実施形態のティーチャシグナリングデバイス150と様々な学習デバイスとの間の例示的なシグナリングを示している。以下で説明されているシグナリングは、情報がデバイス間でやり取りされることを可能にする通信の手段であるものとしてよい。たとえば、信号は、物理媒体(たとえば、電線、光線、RFなど)上のアナログ信号、またはコンピュータ通信ネットワーク内のバイナリメッセージであってよい。

[0271]図18において、ティーチャシグナリングデバイス150は、時間期間全体を通してユーザがデバイスをインタラクティブに操作することをエミュレートする信号をブロードキャストするためのスケジュールを生成することなどによって、上で説明されているような学習デバイスに対するティーチングルーチンを生成するオペレーション1801を実行し得る。ティーチャシグナリングデバイス150は、ランプ(たとえば、スマートランプ)に結合されているが、またはその中にあるスマートボックスなどの、第1のスマートボックス103aによって受信され得る発見信号1802を適宜送信することができる。第1のスマートボックス103aは、第1のスマートボックス103aに関する識別情報と他の説明情報(たとえば、デバイスID、デバイスクラスまたは目的、ステータス情報など)を指示するオプションの識別応答信号1804を送信し得る。識別応答信号1804を受信したことに応答して、ティーチャシグナリングデバイス150は、識別情報に基づきティーチングルーチンを修正するためのオプションのオペレーション1806を実行し得る。たとえば、ティーチャシグナリングデバイスは、ティーチング信号および/または発見信号1802に応答するデバイスのタイプに基づきそれらの信号がブロードキャストされ得る時刻を変換し、翻訳し、削除し、または追加することができ、したがって現在の場所内にあると決定され得る。

[0272]ティーチングルーチンに基づき、ティーチャシグナリングデバイス150は、ブロードキャスト範囲内にある学習デバイスによって受信され得る1つまたは複数のティーチング信号1808を送信し得る。たとえば、ティーチング信号1808は、イベントレポートメッセージと同一である、ある時間期間のティーチングルーチンおよび/またはその場所内にあると決定されたスマートデバイスのクラスに基づく発生データを含む、構造を有するメッセージであってよい。可能なティーチング信号1808の各々は、ティーチャシグナリングデバイス150によって生成されるティーチングルーチンに応じて、同じであり得るか、または代替的に、わずかに異なり得る。さらに、ティーチング信号1808は、異なる学習デバイスをトレーニングするように構成されているイベントレポートメッセージであってもよい。たとえば、ティーチング信号1808の1つまたは複数は、イベントとトリガーパターンとを生成するために第1のスマートボックス103a(たとえば、スマートランプ)によって使用されるものとしてよく、ティーチング信号1808の1つまたは複数は、イベントと補正パターンもしくは報酬パターンとを生成するために第2のスマートボックス(たとえば、スマート壁面スイッチ)によって使用され得る。

[0273]ティーチング信号1808を受信したことに応答して、第1のスマートボックス103aは、イベントとパターンとを生成することなどによって、信号1808内のデータを処理するオペレーションを実行し得る。たとえば、第1のスマートボックス103aは、受信されたティーチング信号1808に基づき生成されたイベント内の補正、報酬、またはトリガーパターンを検出し、その結果のイベントおよびパターンを生成し得る。次いで、第1のスマートボックス103aは、第1のスマートボックス103aがアクションを実行した(たとえば、ライトをオンにした、スイッチを入れた、など)を指示するイベントレポートメッセージなどの、オペレーション1810に基づく1つまたは複数のイベントレポートメッセージ1812をブロードキャストし得る。ティーチャシグナリングデバイス150は、集計履歴データ、統計量、および将来のティーチングオペレーションを調整するために使用され、および/またはユーザに対して表示され得る他の参考情報などの、第1のスマートボックス103aからのイベントレポートメッセージ1812内の情報を処理するオペレーション1814を適宜実行し得る。

[0274]図19は、複数のスマートボックスがティーチャシグナリングデバイス150とともにある場所において信号をブロードキャストし受信することが図示されていることを除き、図18おいて上で示されているような類似のシグナリングを示している。特に、第1のスマートボックス103a(たとえば、スマートランプ)および第2のスマートボックス103b(たとえば、スマート壁面スイッチ)は、アクションを実行する(たとえば、ライトをオンにする、スイッチを入れる、など)ことに応答するなどして、イベントレポートメッセージ1902と1904とをそれぞれブロードキャストし得る。ティーチャシグナリングデバイス150は、これらのイベントレポートメッセージ1902、1904を受信し、オペレーション1801で時間の経過に従ってティーチングルーチンを生成し得る。たとえば、ティーチャシグナリングデバイス150は、その場所にいるユーザの活動を記録し、複製するために時間の経過とともにイベントレポートメッセージ1902、1904をインターセプトするように構成され得る。ティーチング信号1808’は、それらがその場所およびブロードキャスト受信範囲内にあるいずれかのスマートボックス103a、130bによって受信され得ることを除き、上で説明されているものと類似しているものとしてよい。ティーチャシグナリングデバイスからブロードキャストされるティーチング信号1808’を受信したことに応答して、第1のスマートボックス103aは、イベントとパターンとを生成することなどによって、信号1808内のデータを処理するオペレーションを実行し得る。次いで、第1のスマートボックス103aは、第1のスマートボックス103aがアクションを実行したことを指示するイベントレポートメッセージなどの、オペレーション1810に基づく1つまたは複数のイベントレポートメッセージ1812をブロードキャストし得る。第2のスマートボックス103bによって受信されたイベントレポートメッセージ1812’は、ティーチャシグナリングデバイス150によって受信されたイベントレポートメッセージ1812と同じであり得る。第2のスマートボックス103bは、イベントレポートメッセージ1812’を受信したことに応答して、第2のスマートボックス103bにおいてアクションをトリガーするか、またはトリガーを強化し得るイベントまたはパターン(たとえば、補正、報酬)を生成するなどの、オペレーション1910を適宜実行し得る。

[0275]図20は、学習デバイスがティーチャシグナリングデバイスからの要求に応答してリフレックス情報を送信するための一実施形態の方法2000を示している。方法2000は、上で説明されている方法1370を実行するティーチャシグナリングデバイスと組み合わせて学習デバイスによって実行され得る。いくつかの実施形態では、方法2000は、上で説明されている方法1100、1200の一部として、または代替的に、独立した同時実行プロセスとして学習デバイスによって実行され得る。

[0276]ブロック2002において、学習デバイスのプロセッサは、ティーチャシグナリングデバイスにリフレックス情報を要求するブロードキャスト信号を受信し得る。ブロック2004において、学習デバイスのプロセッサは、記憶されているリフレックスに基づき応答メッセージ内にリフレックス情報をパッケージ化することができる。たとえば、学習デバイスは、トリガーパターンと、アクションパターンと、報酬パターンと、補正パターンと、トリガー重みとを定義するローカルメモリ内に記憶されているデータを変換するか、符号化するか、または他の何らかの形でフォーマットすることができる。応答メッセージは、デバイス識別子と、デバイスクラス/タイプと、学習デバイスに関する他の識別情報とを含むヘッダ情報も含み得る。ブロック2006において、学習デバイスのプロセッサは、ティーチャシグナリングデバイスに応答メッセージを送信し得る。いくつかの実施形態では、そのような送信は、Bluetoothブロードキャストなどのワイヤレスブロードキャスト、ペアリングされた通信(たとえば、学習デバイスおよびティーチャシグナリングデバイスがBluetoothを介してペアリングされるときなど)、および/または有線通信であってよい。

[0277]図21は、学習デバイスがティーチャシグナリングデバイスからの要求に応答して識別情報を送信するための一実施形態の方法2100を示している。方法2100は、上で説明されている方法1400を実行するティーチャシグナリングデバイスと組み合わせて学習デバイスによって実行され得る。いくつかの実施形態では、方法2100は、上で説明されている方法1100、1200の一部として、または代替的に、独立した同時実行プロセスとして学習デバイスによって実行され得る。

[0278]ブロック2102において、学習デバイスのプロセッサは、ティーチャシグナリングデバイスに識別情報を要求する発見信号を受信し得る。ブロック2104において、学習デバイスのプロセッサは、ローカルの学習デバイスに記憶されているデータに基づき識別応答メッセージ内に識別情報をパッケージ化することができる。たとえば、学習デバイスは、学習デバイスの固有のデバイス識別子と、クラス/タイプコードと、学習デバイスにおけるリフレックスに対応する学習モードの現在状態とを定義するローカルメモリに記憶されているデータを変換し、符号化し、または他の何らかの形でフォーマットし得る。いくつかの実施形態では、識別応答メッセージは、図20を参照しつつ上で説明されている応答メッセージに類似しているものとしてよい。ブロック2106において、学習デバイスのプロセッサは、ティーチャシグナリングデバイスに識別応答メッセージを送信し得る。いくつかの実施形態では、そのような送信は、Bluetoothブロードキャストなどのワイヤレスブロードキャスト、ペアリングされた通信(たとえば、学習デバイスおよびティーチャシグナリングデバイスがBluetoothを介してペアリングされるときなど)、および/または有線通信であってよい。

[0279]図22は、学習デバイスがティーチャシグナリングデバイスからのリセット信号に応答してトリガー重みをリセットするための一実施形態の方法2200を示している。方法2200は、上で説明されている方法1600を実行するティーチャシグナリングデバイスと組み合わせて学習デバイスによって実行され得る。いくつかの実施形態では、方法2200は、上で説明されている方法1100、1200の一部として、または代替的に、独立した同時実行プロセスとして学習デバイスによって実行され得る。

[0280]ブロック2202において、学習デバイスのプロセッサは、ティーチャシグナリングデバイスから、リフレックス情報をリセットすることを学習デバイスに命令する信号(すなわち、リセット信号)を受信し得る。様々な実施形態において、リセット信号は、変更が特定のリフレックスに適用され、および/または特定の時間期間に対応するべきであることを指示し得る。さらに、リセット信号は、トリガー重みに対してなされるべき変化の量(たとえば、無効にする、リセットする、ゼロにするなどのためのトリガー重みの割合)を指示し得る。たとえば、リセット信号は、特定のトリガーパターン(たとえば、壁面スイッチの「オン」)またはアクションパターン(たとえば、ライトの「オン」)を有するリフレックスのみがリセットされるべきであることを指示し得る。ブロック2204において、学習デバイスのプロセッサは、受信された信号に基づき修正されたトリガー重みでリフレックスのセットを識別することができる。言い換えれば、学習デバイスは、受信されたイベントレポートメッセージおよび/またはティーチング信号に基づきその既定値から変更されているトリガー重みでローカルに記憶されているすべてのリフレックスを識別し得る。さらに、識別されたセットは、特定のアクションパターンを含むものなどの、リセット信号内の他のパラメータに基づき得る。

[0281]オプションのブロック2206において、学習デバイスのプロセッサは、ティーチャシグナリングデバイスからのティーチング信号によって修正されたトリガー重みを有するリフレックスのみを含むように識別されたセットを変更することができる。言い換えれば、いくつかの実施形態において、そのようなリセット信号は、ティーチャシグナリングデバイスからのティーチング信号によりすでに変更されていたトリガー重みに関してのみ適用され、したがってユーザによる直接的なインタラクティブな操作によってすでに変更されているトリガー重みは、リセットされ得ない。

[0282]ブロック2208において、学習デバイスのプロセッサは、受信されたリセット信号に基づきリフレックスのセットに対するトリガー重みをリセットすることができる。たとえば、学習デバイスは、リセット信号で指示されるパラメータに基づき最後の分、時、日に加えられたトリガー重みの変更を無効化するか、またはリセットし得る。

[0283]図23A〜図24Bは、ティーチャシグナリングデバイスにおいて実装されるグラフィカルユーザインターフェース(GUI)技術を示している。次の説明では、「トリガー学習デバイス」という用語は、第2の学習デバイスがリフレックスに基づき動作することを引き起こすイベントレポートメッセージを送信する学習デバイスを指すために使用され得る。

[0284]学習デバイスのそのような非集中システムのユーザは、スマート環境(たとえば、スマートハウス)内の学習デバイス間の因果関係を識別する使いやすい直観的な方法を利用することができる。ユーザは、離れた場所(たとえば、スマートハウスの外、など)から学習された挙動をトリガーすることなどによって、識別された関係に基づきそのような学習デバイスを制御する扱いやすい方法を利用することもできる。したがって、いくつかの実施形態では、ティーチャシグナリングデバイス(またはスマート環境内でユーザによって使用される他のモバイルデバイス)は、ユーザがスマート環境内の学習デバイスのトリガーアクション関係(または「因果関係」)を表示し、操作することを可能にするように構成され得る。一般に、ワイヤレストランシーバ(たとえば、Bluetooth、WiFiなど)を使用することで、ティーチャシグナリングデバイス(たとえば、ティーチャシグナリングデバイスとして動作するためのソフトウェアを実行するように構成されたスマートフォンまたはタブレットデバイス)は、スマート環境内の学習デバイスによって送信されたイベントレポートメッセージをインターセプトし、記録するように構成され得る。ティーチャシグナリングデバイスは、インターセプトされたイベントレポートメッセージをスマート環境の画像のセグメントに関連付けることができる。たとえば、ティーチャシグナリングデバイスは、画像処理ルーチンに基づき、信号内のデータ(たとえば、デバイスタイプコードなど)に基づき、および/またはユーザによる手動の入力に基づき特定の学習デバイス(またはデバイスタイプ)に関係するデジタル写真の画像セグメントを自動的に識別することができる。さらに、因果関係は、画像の変化(たとえば、ランプがオンまたはオフになる)を認識することと、観察された変化の事前定義された時間ウィンドウ内のインターセプトされた信号の発生を評価することとによってティーチャシグナリングデバイスによって自動的に識別され得るか、または代替的に、ユーザによって手動で識別され得る。

[0285]ティーチャシグナリングデバイスは、環境内の学習デバイスの様々な因果関係を視覚的に示すため画像上に情報をレンダリングすることもできる。たとえば、一方のデバイスからのイベントレポートメッセージが別のデバイスにおいて特定のアクションを引き起こすことを示す情報がレンダリングされ得る。これは、スマート環境内に多数の学習デバイスおよび関連付けがあるときに有益な視覚的補助手段となり得る。

[0286]ユーザは、ティーチャシグナリングデバイスのグラフィカルユーザインターフェース(GUI)を使用してスマート環境内の学習デバイスの因果関係に関連付けられているアクションを制御する(たとえば、トリガー/再生、変更するなど)ことができる。たとえば、ユーザは、GUIボタンを押して、すでにインターセプトされている信号を複製するか、または再ブロードキャストし、学習デバイスによる相関するアクションをトリガーし得る。別の例として、ユーザは、このGUIを使用して、第2の学習デバイスからのイベントレポートメッセージ(たとえば、壁面スイッチ「オン」イベントレポートメッセージ)に応答してアクションを実行すること(たとえば、「オン」にすること)を止めることを第1の学習デバイスにティーチングすることができる。このようにして、ユーザは、スマート環境内に存在する学習された挙動を見るだけでなく、すでにインターセプトされており、画像内に見える学習デバイスによるアクションに関連付けられているイベントレポートメッセージを送信することによって学習デバイスの挙動を操作することもできる。様々な実施形態において、ユーザは、アクションがGUIを介して生じることを離れた場所から引き起こすことができるものとしてよい(たとえば、ソフトGUIボタンをクリックして、異なる部屋に配置されている学習デバイスのアクションをトリガーする)。いくつかの実施形態では、ティーチャシグナリングデバイスは、近接範囲内にあるときにのみ学習デバイスを制御するためにインターセプトされたイベントレポートメッセージを送信することができるものとしてよい。

[0287]いくつかの実施形態では、ティーチャシグナリングデバイスは、学習デバイスのイベントアクション関連付けを「オンザフライ」で発見するためにデバイスのプロセッサによって分析され得るビデオデータまたはオーディオデータを記録するために使用され得る。たとえば、スマートフォンは、スマート壁面スイッチとスマートランプとによって送信されたレポートメッセージを含むイベントレポートメッセージをインターセプトしながら、ユーザがスマート壁面スイッチを入れ、スマートランプがオンまたはオフになるシーンのビデオを録画することができる。そのようなビデオ内の画像をスマート壁面スイッチとスマートランプとからの同時インターセプトされたイベントレポートメッセージと組み合わせて処理することによって、ティーチャデバイスは、デバイス間のトリガーアクション関連付けを発見し、さらには画像内でイベントレポートメッセージを発行する学習デバイスを識別することができる。たとえば、スマート壁面スイッチが入れられ画像とスマート壁面スイッチからのイベントレポートメッセージの受信との相関を求めることによって、ティーチングシグナリングデバイスは、スイッチの画像とそのイベントレポートメッセージとの相関を求めることができる。同様に、スマートランプがいつオンになるか、またはオフになるかを一連の画像から識別することによって、ティーチングシグナリングデバイスは、スマートランプからの「オンにする」または「オフにする」イベントレポートメッセージとランプの画像とを相関させることができる。上で説明されていように、スマート壁面スイッチからのイベントレポートメッセージをスマートランプからの「オンにする」または「オフにする」イベントレポートメッセージと相関させることによって、ティーチングシグナリングデバイスは、イベントアクション相関を発見することができる。次いで、相関のGUI表示(たとえば、矢印)が、スマートライトスイッチとスマートランプの両方を含むGUI画像に提示され得る。

[0288]様々な実施形態において、ティーチングシグナリングデバイスは、様々な画像認識アルゴリズムおよび/またはルーチンを利用して、リアルタイムの拡張現実表示がストリーミングビデオ上にレンダリングされるようにスマート環境内の知られている学習デバイスを識別するように構成され得る。たとえば、静止画像上のユーザによる特定のスマートランプの属性の以前に記憶されている識別に基づき、ティーチングシグナリングデバイスアプリケーションとともに構成されているスマートフォンは、スマートランプが認識されたときにリアルタイムのビデオでスマートランプに対するトリガーアクション関連付けを自動的に表示することができるものとしてよい。

[0289]いくつかの実施形態では、ティーチングシグナリングデバイスは、ユーザに対して、環境内の学習デバイスのリストビューおよび/またはアイコンビューをレンダリングするか、または他の何らかの形で提示するように構成され得る。たとえば、ティーチングシグナリングデバイスは、構造の編成が異なるデバイス間の関係を指示するように環境(たとえば、スマートハウスなど)内の認識された学習デバイスのすべてのツリー構造または他のリスト構造を表示することができる。このようにして、ユーザは、デバイス間の関連付けを理解しやすいように提示され得る。さらに、このようなリスティング機能は、ティーチャシグナリングデバイスが現在特定の関連付けられている環境内にあるかどうかに関係なく、時間の経過とともに発見された様々なデバイスを示すために使用され得る。たとえば、ティーチャシグナリングデバイスは、ティーチャシグナリングデバイスが第2のスマートハウス内に配置されているにもかかわらず、第1のスマートハウス内のすべてのデバイスのリスト構造をレンダリングし、ティーチャシグナリングデバイスのユーザが一目で、またティーチャシグナリングデバイスを別の環境に物理的に移動することなく、関連付けを見ることを可能にするように構成され得る。

[0290]いくつかの実施形態では、ティーチャシグナリングデバイスは、環境内でインターセプトされたメッセージの識別子に基づき記憶されている画像をロードしてレンダリングするように構成され得る。たとえば、ティーチャシグナリングデバイスは、スマートリビングルームおよび/またはスマートリビングルームに関連付けられている学習デバイスの識別子を指示するコードまたは他のデータを含む短距離ワイヤレス信号(たとえば、イベントレポートメッセージ)を受信したことに応答してスマートリビングルームの画像をロードし得る。いくつかの実施形態では、ティーチャシグナリングデバイスは、GPS座標に基づき記憶されている画像にインデックスを付け、ティーチャシグナリングデバイスが事前定義されている場所に入ったと決定したときに画像をロードしレンダリングすることができる。

[0291]いくつかの実施形態では、ティーチャシグナリングデバイスは、分、時、日などの観察期間などの、ある時間間隔にわたってインターセプトされたイベントレポートメッセージに基づき学習デバイスの特定のトリガーパターンとアクションパターンとの間の相関を発見することができる。たとえば、ティーチャシグナリングデバイスは、接続されているマイクロフォンまたはカメラが可聴アクション(たとえば、スマートステレオがオンになる、など)をピックアップし、その接続されているカメラがアクションにリンクされている変化(たとえば、ランプが周辺光の変化などに基づきオンになる)を認識し得るように特定の場所(たとえば、リビングルーム)に残され得る。代替的に、ティーチャシグナリングデバイスは、オンまたはオフになったときにスマートランプによって送信された信号をインターセプトし、識別する、および/またはオンまたはオフになったときにスマートステレオによって送信された信号を識別することなどによって学習デバイスのアクションがトリガーされていることを指示するものとして特定の受信されたイベントレポートメッセージを認識するように事前プログラミングされ得る。

[0292]次は、ティーチャシグナリングデバイスを使用するそのようなGUI技術の非限定的な例である。ティーチャシグナリングデバイスソフトウェア(たとえば、ティーチャアプリなど)を実行しているユーザのスマートフォンは、リビングルーム内のスマート壁面スイッチおよびスマートランプの表現を含む画像(たとえば、ピクチャ、ビデオなど)を取り込み得る。このスマートランプは、スマート壁面スイッチが入れられたことに関係するイベント信号を受信したことに応答してスマートランプがオンになることを引き起こすリフレックスをすでに学習してある場合がある。GUIを介して、ユーザは、スタイラスを使用してスマートランプとスマート壁面スイッチを円で囲む(またはその周りにボックスを置く)ことなどによって、学習デバイスに関連付けられている取り込まれた画像のセグメントを定義し得る。スマートフォンは、スマートランプとスマート壁面スイッチから(たとえば、Bluetooth無線を使用することによって)の信号(たとえば、イベントレポートメッセージ)を監視することができ、スマート壁面スイッチの「オン」イベントを指示する信号と、スマートランプの「オン」イベントを指示する別の信号とをインターセプトすることができる。スマートフォンは、インターセプトされた信号の情報(たとえば、送信機デバイスID、メッセージ内容など)を表示し、ユーザが信号を取り込まれた画像のセグメントに関連付けることを可能にし得る。たとえば、ユーザは、GUIを使用して、スマート壁面スイッチの「オン」イベント信号とスマート壁面スイッチの画像セグメントとの、またインターセプトされたスマートランプの「オン」イベント信号とスマートランプの画像セグメントとのマッチングを行うことができる。ユーザは、GUIを使用して、スマート壁面スイッチの画像セグメントからスマートランプの画像セグメントまで矢印グラフィック要素をドラッグしてスマート壁面スイッチの「オン」イベント信号がスマートランプの「オン」イベント信号を生成するスマートランプのアクションをトリガーすることを指示することなどによって、スマートランプおよびスマート壁面スイッチの画像セグメントと関連付けられているインターセプトされた信号との間の関係を設定することができる。この関連付けの後に、ユーザは、物理的スマート壁面スイッチに頼らずにGUIを介してスマートランプを制御することができ、スマート壁面スイッチの画像セグメントに関連付けられているGUI要素(またはボタン)をタップして、スマートフォンがスマート壁面スイッチの「オン」イベント信号を送信することを引き起こし、したがってスマートランプがオンになることを引き起こすことができる。

[0293]図23A〜図23Bは、ティーチャシグナリングデバイスとして動作するように構成されたモバイルデバイス2500上の例示的なグラフィカルユーザインターフェース(GUI)を示している。GUIは、環境(たとえば、リビングルームなど)内の様々な学習デバイス104、102、106に関係するグラフィック要素を含み得る。特に、図23Aにおいて、モバイルデバイス2500は、その画面2512(たとえば、スマートフォンのLEDタッチスクリーンなど)上に、モバイルデバイス2500に結合されているカメラユニット(図示せず)を介してモバイルデバイス2500で撮ったビデオ、写真などの画像2330を表示し得る。モバイルデバイス2500は、環境内の学習デバイス104、102、106に対応するセグメントグラフィック要素2302、2304、2306をレンダリングすることができる。たとえば、第1のセグメントグラフィック要素2302は、スマートフロアランプ104に対応し、第2のセグメントグラフィック要素2304は、スマート壁面スイッチ102に対応し、第3のセグメントグラフィック要素2306は、スマートステレオ106に対応し得る。セグメントグラフィック要素2302、2304、2306は、画像2330の画像認識アルゴリズムおよび/または他のソフトウェア処理に基づき、および/または画面2512上のスタイラスもしくは指による入力などを用いる、ユーザによる手動入力に基づきモバイルデバイス2500によって識別され得る。いくつかの実施形態では、モバイルデバイス2500は、インターセプトされた信号を送信するデバイスを識別し、それらの識別されたデバイスをデバイス102、104、106からのインターセプトされた信号に基づき画像2330のセグメントグラフィック要素2302、2304、2306と相関させるように構成され得る。いくつかの実施形態では、モバイルデバイス2500は、異なる仕方(たとえば、色、サイズ、形状など)でデバイスに関連付けられているグラフィック要素を、デバイスの異なる機能を指示するようにレンダリングし得る。たとえば、モバイルデバイス2500は、スマートデバイス102、104、106のセグメントグラフィックス要素2304、2302、2306と異なる、目立つ色彩に富んだ仕方でイベントレポートメッセージのみを送信する(すなわち、受信または学習しない)レポーターデバイス(図示せず)のセグメントグラフィック要素をレンダリングし得る。

[0294]モバイルデバイス2500は、インターセプトされた信号と環境内の様々な学習デバイス102、104、106との間の因果関係を識別することができる。たとえば、ユーザ入力または信号からのデータ(たとえば、受信されたイベントレポートメッセージのタイムスタンプ)に基づき、モバイルデバイス2500は、スマート壁面スイッチ102からの第1の信号(たとえば、第1の「オン」イベントレポートメッセージ)がスマートフロアランプ104がオンになり、第2の信号(たとえば、第2の「オン」イベントレポートメッセージ)をブロードキャストするためのトリガーであると識別し得る。図23Bに示されているように、モバイルデバイス2500は、環境内の様々なデバイスの機能間の関係を指示する関係グラフィック要素2352(たとえば、矢印)をレンダリングし得る。たとえば、関係グラフィック要素2352は、スマート壁面スイッチ102がオンになるとスマートフロアランプ104がそのライトをオンにすることを引き起こすことを指示するようにレンダリングされ得る。

[0295]モバイルデバイス2500は、モバイルデバイス2500が関係グラフィック要素2352に関係する信号をブロードキャストすることを引き起こすように構成されたソフトボタン、アイコン、ピクチャ、または他のインタラクティブなグラフィック要素2354(たとえば、「トグル」ボタン)をレンダリングすることができる。たとえば、インタラクティブなグラフィック要素2354は、ユーザがインタラクティブなグラフィック要素2354に対応する画面2512の領域をタッチしたことに応答してモバイルデバイス2500がBluetooth無線を介して壁面スイッチの「オン」イベントレポートメッセージを送信することを引き起こすように構成され得る。そのようなトリガーされたイベントレポートメッセージは、関係グラフィック要素2352によって示されている関係に従ってスマートフロアランプ104がオンになることを引き起こし得る。

[0296]図23Cは、ティーチングシグナリングデバイスとして構成されているモバイルデバイス2500による新しいティーチングを引き起こす関係グラフィック要素2352の調整を示している。いくつかの実施形態では、モバイルデバイス2500によってレンダリングされた関係グラフィック要素は、ユーザがインタラクティブなグラフィック要素2354をインタラクティブに操作することに応答して信号がモバイルデバイス2500によって送信される仕方をユーザ側で変更できるように調整され得る。言い換えれば、ティーチングシグナリングデバイスとして構成されたモバイルデバイス2500は、学習デバイスがイベントレポートメッセージへの新しい応答を学習することを引き起こすためにユーザが関係グラフィック要素2352を再接続することを可能にし得る。たとえば、ユーザは、端点2353がもはや第1のセグメントグラフィック要素2302に接触しないように関係グラフィック要素2352の端点2353を移動し得る。そのような切断調整では、補正メッセージまたは一連のメッセージをスマートランプ104に送信し、それがスマート壁面スイッチ102とオンまたはオフにするアクションと間のイベントアクション関連付けの学習を解除することを引き起こし得る。したがって、ユーザが関係グラフィック要素2352上でこの入力を実行した後、スマートフロアランプ104は、もはや、スマート壁面スイッチ102からイベントレポートメッセージを受信したことに応答してオンまたはオフになり得ない。

[0297]別の例として、ユーザは、調整された関係グラフィック要素2352’の新しい端点2353’がスマートステレオ106に対応する第3のセグメントグラフィック要素2304に接触しているように関係グラフィック要素2352の端点2353を移動し得る。そのようなユーザ入力は、ティーチングシグナリングデバイスが、スマート壁面スイッチ102からのイベントレポートメッセージに応答してステレオ106がアクション(たとえば、オンにすること)を学習することを引き起こすティーチングメッセージをブロードキャストすることを引き起こし得る。言い換えれば、関係グラフィック要素2352を調整するユーザは、ティーチングシグナリングデバイスとして構成されたモバイルデバイス2500が新しいティーチングルーチンを学習することを引き起こし、スマートステレオ106がスマート壁面スイッチ102に関連付けられているイベントレポートメッセージを受信したことに応答して動作することを学習してしまうまで信号(たとえば、ティーチング信号)が送信されることを引き起こし得る。たとえば、ティーチングシグナリングデバイスとして構成されているモバイルデバイス2500は、スマートステレオ106が新しい学習された挙動をアクティブ化する(たとえば、壁面スイッチのイベント信号に応答してオンにする)か、または別の挙動を無効にする(たとえば、ランプの「オン」イベント信号に応答してオンにする)ことを引き起こす報酬信号を送信し得る。

[0298]別の実施形態では、ティーチングシグナリングデバイスとして構成されているモバイルデバイス2500は、ユーザが関係グラフィック要素2352を切断したことに応答してスマートフロアランプ104によって学習されたイベントアクション関連付けを取り除くティーチング信号(たとえば、補正信号)を送信し得る。たとえば、スマートステレオ106が、スマート壁面スイッチ102がオンにされていることを指示するその後のイベントレポートメッセージに応答してオンになることを引き起こすティーチング信号を送信することとともに、モバイルデバイス2500も、スマートフロアランプ104が、スマート壁面スイッチ102がオンにされたときにスマートフロアランプ104がもはやオンにならないようにスマートフロアランプ104がイベントレポートメッセージに応答してオンになることを引き起こすリフレックスに対するトリガー重みを下げることを引き起こすティーチング信号を送信し得る。

[0299]図23Dは、ティーチャシグナリングデバイスとして動作するように構成されているモバイルデバイス2500上のグラフィカルユーザインターフェースを介して画面2512上に表示されている学習デバイス間の関係の例示的な表示を示している。上で説明されているのと同様に、モバイルデバイス2500は、イベントレポートメッセージを送信するように構成されている複数のデバイスを備える、リビングルームなどの、環境の画像2330を取り込むように構成され得る。たとえば、画像2330は、光センサー2382、スマートブラインド2385、スマートフロアランプ104、スマート常夜灯2391、および時計デバイス2395(または時計/カレンダーデバイス)の表現を含み得る。光センサー2382は、環境内の周辺光が光閾値を超えたかどうか(たとえば、部屋の中が明るいか、暗いか)を指示するイベントレポートメッセージを送信するように構成され得る。時計デバイス2395は、現在の時刻、曜日、月、季節などを指示するイベントレポートメッセージを定期的に送信するように構成され得る。スマートブラインド2385は、スマートブラインド2385が部屋の中が明るいことを指示するイベントレポートメッセージを光センサー2382から受信したことに応答して開くことを引き起こす第1のリフレックスと、スマートブラインド2385が部屋の中が暗いことを指示するイベントレポートメッセージを光センサー2382から受信したことに応答して閉じることを引き起こす第2のリフレックスとともに構成され得る。スマートブラインド2385の第1および第2のリフレックスは、また、時計デバイス2395からのイベントレポートメッセージを利用して、スマートブラインド2385の開閉をトリガーすることもできる(たとえば、暗いときおよび夜間には閉じ、明るいときおよび夏期には閉じ、平日には開く、など)。スマートブラインド2385は、開いているか閉じられているかを指示するイベントレポートメッセージを送信するようにも構成され得る。

[0300]スマートフロアランプ104は、スマートフロアランプ104が閉じられていることを指示するイベントレポートメッセージをスマートブラインド2385から受信したことに応答してオンになることを引き起こす第1のリフレックスと、スマートフロアランプ104が開いていることを指示するイベントレポートメッセージをスマートブラインド2385から受信したことに応答してオフになることを引き起こす第2のリフレックスとともに構成され得る。様々な実施形態において、スマートフロアランプ104のリフレックスは、時計デバイス2395のイベントレポートメッセージからのデータなどの他のデータを利用することもできる。たとえば、スマートフロアランプ104は、時計デバイス2395からのイベントレポートメッセージに基づき平日にオフになるように構成され得る。

[0301]スマート常夜灯2391は、スマート常夜灯2391が部屋の中が暗いことを指示するイベントレポートメッセージを光センサー2382から受信したことに応答してオンになることを引き起こす第1のリフレックスと、スマート常夜灯2391が部屋の中が明るいことを指示するイベントレポートメッセージを光センサー2382から受信したことに応答してオフになることを引き起こす第2のリフレックスとともに構成され得る。スマート常夜灯2391の第1および第2のリフレックスは、時計デバイス2395からのイベントレポートメッセージを利用して、そのアクションをトリガーすることもできる。

[0302]上で説明されているように、モバイルデバイス2500は、画像2330上のデバイスの表現を識別するように構成され、したがって、環境内の学習デバイス104、2382、2385、2391、2395に対応するセグメントグラフィック要素2302、2380、2384、2390、2394をレンダリングすることができる。いくつかの実施形態では、特定のデバイスまたはデバイスタイプは、その能力の違いを示すために異なる仕方でモバイルデバイス2500によってレンダリングされ得る。たとえば、光センサー2382および時計デバイス2395が、イベントレポートメッセージを介してイベントを報告するように構成されているが、学習するようには構成されていない(すなわち、リフレックスなどを介して新しい挙動を学習することができるスマートデバイスではない)ことを示すために、モバイルデバイス2500は、光センサーのセグメントグラフィック要素2380と、時計デバイスのセグメントグラフィック要素2394を環境内の学習デバイス104、2385、2391のセグメントグラフィック要素2384、2302、2390に似ていない特定の仕方で丸みを付けられるか、色付けされるか、またはラベルを付けられたものとしてレンダリングし得る。

[0303]さらに、モバイルデバイス2500は、いくつかのデバイスの動作条件のステータスに対応するグラフィック要素をレンダリングすることができる。たとえば、モバイルデバイス2500は、スマートブラインド2385が与えられた時刻に開いているかまたは閉じられているかを指示するためのスマートブラインド2385の表現に関連する開/閉グラフィック要素2386と、スマートフロアランプ104が与えられた時刻にオンであるかオフであるかを指示するためのスマートフロアランプ104の表現に関連するオン/オフグラフィック要素2388と、スマート常夜灯2391が与えられた時刻にオンであるかオフであるかを指示するためのスマート常夜灯2391の表現に関連するオン/オフグラフィック要素2392とをレンダリングし得る。いくつかの実施形態では、グラフィック要素2386、2388、2392は、関連付けられているデバイス2385、104、2391が、スマートランプ104がオンまたはオフになることを引き起こすことなどによって、グラフィック要素2386、2388、2392に従ってアクションをトリガーすることを引き起こすように構成され得る。いくつかの実施形態では、グラフィック要素2386、2388、2392は、図23Bを参照しつつ上で説明されているインタラクティブなグラフィック要素2354に類似しているものとしてよく、そのため、それらの関連付けられているデバイス2384、104、2391がイベントレポートメッセージを送信することを引き起こすように構成され得る。

[0304]さらに、インターセプトされたイベントレポートメッセージを評価することに基づき、モバイルデバイス2500は、環境内の様々なデバイス間の因果関係を示す関係グラフィック要素2396、2396’、2397、2398をレンダリングし得る。たとえば、モバイルデバイス2500は、光センサー2385からのイベントレポートメッセージ内の光センサー情報がスマートブラインド2385が閉じるか、または開くことを引き起こし得ることを示す、光センサーのセグメントグラフィック要素2380からスマートブラインドのセグメントグラフィック要素2384への第1の関係グラフィック要素2396と、光センサー2385からのイベントレポートメッセージ内の光センサー情報がスマート常夜灯2391がオンまたはオフになることを引き起こし得ることを示す、光センサーのセグメントグラフィック要素2380からスマート常夜灯のセグメントグラフィック要素2390への第2の関係グラフィック要素2396’と、スマートブラインド2385からのイベントレポートメッセージ内の開または閉ステータス情報がスマートフロアランプ104がオンまたはオフになることを引き起こし得ることを示す、スマートブラインドのセグメントグラフィック要素2384からスマートフロアランプのセグメントグラフィック要素2302への第3の関係グラフィック要素2397と、時計デバイス2395からのイベントレポートメッセージ内の時刻/日/週情報がスマートブラインド2385が閉じるかまたは開くことを引き起こし得ることを示す、時計デバイスのセグメントグラフィック要素2394からスマートブラインドのセグメントグラフィック要素2384への第4の関係グラフィック要素2398とをレンダリングし得る。図23A〜図23Cを参照しつつ上で説明されているのと同様に、関係グラフィック要素2396、2396’2397、2398は、別のデバイスでの応答アクションを引き起こすようにイベントレポートメッセージが送信されることを引き起こすためにユーザが各要素に入力を供給する(たとえば、押す、タップするなど)ことができるようにインタラクティブであってもなくてもよい。

[0305]いくつかの実施形態では、モバイルデバイス2500は、ユーザがGUI要素(たとえば、ソフトボタン、矢印など)を使用して別の環境の関係を離れた場所からトリガーできるように、別の環境およびその学習デバイスのすでに取り込まれている画像などの、別の表示がレンダリングされることを引き起こすように構成されたリンクグラフィック要素2399(たとえば、「view more」または「show more」リンクなど)もレンダリングすることができる。さらに、モバイルデバイス2500上にレンダリングされ得る他の表示がモバイルデバイス2500の現在地に関連するように近接度が評価され得る。たとえば、モバイルデバイス2500の現在地(たとえば、GPS座標)とスマートハウスの事前定義された位置または座標との間の距離に基づき、モバイルデバイス2500は、ユーザがリンクグラフィック要素2399をクリックして、スマートハウス内の部屋だけではなく、スマートハウス全体(または近所などの、スマートハウスの周りのより広い領域すらも)の中のデバイスを表示することを可能にし得る。

[0306]図24Aは、ティーチャシグナリングデバイスがグラフィカルユーザインターフェース(GUI)に対するユーザのインタラクティブな操作に基づき信号を送信するための一実施形態の方法2400を示している。方法2400は、方法2400が環境の画像を取得し使用して環境内の様々な学習デバイスにおける挙動に対するトリガーとして識別されるイベントレポートメッセージの送信をユーザが容易にトリガーすることを可能にするためのオペレーションを含み得ることを除き、上で説明されている方法1300または1350に類似しているものとしてよい。たとえば、図23A〜図23Cを参照しつつ上で説明されているようにGUIを使用することで、ティーチャシグナリングデバイスは、スマートフロアランプがスマート壁面スイッチに関連付けられているティーチャシグナリングデバイスの表示上にレンダリングされるソフトボタンをユーザが押したことに応答してオンになることを引き起こすイベントレポートメッセージを送信するように構成され得る。

[0307]ブロック1352〜1306におけるオペレーションは、図13Bを参照しつつ上で説明されている同様の番号が振られているブロックに対するオペレーションに類似しているものとしてよい。オプションのブロック1354〜1306におけるオペレーションは、ティーチャシグナリングデバイスが新しいティーチングルーチンを生成するように選択的に構成され、その代わりに、GUIの機能を使用可能にするためのオペレーションを実行するように単純に構成され得るので、オプションであってよい。ブロック2402において、ティーチャシグナリングデバイスのプロセッサは、インターセプトされたイベントレポートメッセージに基づき学習デバイスを識別することができる。たとえば、ティーチャシグナリングデバイスは、受信されたメッセージを解析して、受信されたメッセージを送信した学習デバイスを指示するデバイス識別子を識別し得る。ブロック2404において、ティーチャシグナリングデバイスのプロセッサは、識別された学習デバイスを含む環境の少なくとも一部の画像を取得し得る。たとえば、ティーチャシグナリングデバイスは、結合されるか、または接続されているビデオもしくは静止画カメラを利用して、リビングルーム、オフィススペース、ホテルの部屋、または多数のスマートデバイスを備える他の場所の画像を取り込むことができる。ブロック2406において、ティーチャシグナリングデバイスのプロセッサは、画像の表現とインターセプトされた信号から識別されたデバイス識別子とのマッチングを行うことなどによって、識別された学習デバイスと取得された画像のセグメントとの相関を求めることができる。いくつかの実施形態では、ティーチャシグナリングデバイスは、ユーザが特定の識別された学習デバイスを表現するものとして識別するセグメントの周りにボックスまたは選択を描画するユーザ入力などの、様々な学習デバイスを画像のセグメントに関連付けるユーザ入力を受信し得る。いくつかの実施形態では、ティーチャシグナリングデバイスは、画像処理およびパターンマッチングルーチンなどの、様々な処理ルーチンを実行して、識別された学習デバイスと画像のセグメントとの間の最もありそうなマッチを決定することができる。たとえば、第1の識別された学習デバイスがフロアランプのデバイスタイプであることに基づき、ティーチャシグナリングデバイスは、フロアランプにおそらく対応するものとしてあらかじめ決定されている特定の高さ、形状、および/または特性(たとえば、球状要素から光を発するなど)を有する画像を含む画像のセグメントを識別し得る。別の例として、ティーチャシグナリングデバイスは、ライトがオンまたはオフになる、壁面スイッチが位置を変えるなど、一方の画像から次の画像への状態の変化を認識することによって画像内の学習デバイスを識別することができる。

[0308]ブロック2408において、ティーチャシグナリングデバイスのプロセッサは、インターセプトされたイベントレポートメッセージに基づき識別された学習デバイスの間の関係を識別することができる。ティーチャシグナリングデバイスは、インターセプトされたメッセージを評価して、学習デバイスがそれぞれのリフレックスにおいて定義されているトリガーアクションパターンに基づきアクションを実行することを引き起こすイベントレポートメッセージなどの、可能な因果関係を検出し得る。上で説明されているように、ティーチャシグナリングデバイスは、特定の時間ウィンドウ内で受信されたイベントレポートメッセージを評価して、第1の受信されたイベントレポートメッセージが第2の受信されたイベントレポートメッセージに関係するアクションを引き起こすトリガーであり得るかどうかを決定し得る。たとえば、スマート壁面スイッチの「オン」イベントに対する第1のイベントレポートメッセージが、スマートフロアランプがオンになることに対する第2のイベントレポートメッセージから事前定義されているミリ秒数または秒数の範囲内で発生するときに、ティーチャシグナリングデバイスは、2つのインターセプトされたメッセージの間の因果関係を識別し得る。いくつかの実施形態では、これらの関係は、第1の学習デバイスのイベントレポートメッセージが第2の学習デバイスのアクションをトリガーすることを指示するためにユーザが第1の学習デバイスに対する第1の画像セグメントと第2の学習デバイスの第2の画像セグメントとの間に矢印を引くことなどによって、ユーザ入力に基づき識別され得る。

[0309]ブロック2410において、ティーチャシグナリングデバイスのプロセッサは、取得された画像の相関するセグメントを使用して識別された関係を指示する画像とGUI要素とを表示することができる。言い換えれば、ティーチャシグナリングデバイスは、認識された学習デバイスの存在を視覚的に指示するように様々なグラフィック要素(たとえば、選択、配色、ボックスなど)をレンダリングし、さらには識別された学習デバイスの相互接続性(すなわち、イベントアクション関連付け)を示すように他のグラフィック要素をレンダリングすることができる(たとえば、グラフィックの矢印または導管)。そこで、ティーチャシグナリングデバイスは、グラフィック要素を使用してインターセプトされたイベントレポートメッセージに基づき発見する因果関係を表し得る。GUI要素は、対応する学習デバイスに対する識別子などのデータ、さらには、コード、またはGUIに関係するインターセプトされたイベントレポートメッセージを表す他の情報に関連付けられ得る。特に、ティーチャシグナリングデバイスは、関係グラフィック要素(たとえば、画像のセグメントとセグメントとの間にある矢印)をティーチャシグナリングデバイスが因果関係(すなわち、イベントアクション関連付け)に関係する特定のインターセプトされたイベントレポートメッセージをブロードキャストするための命令に関連付けることができる。いくつかの実施形態では、GUI要素は、ティーチャシグナリングデバイスによるイベントレポートメッセージの送信をトリガーするために使用され得る因果関係に関連付けられているソフトボタン(たとえば、「トグル」ボタンなど)を含み得る。他の実施形態では、因果関係に関連付けられている関係グラフィック要素は、イベントレポートメッセージの送信を引き起こすように構成され得る(たとえば、識別された学習デバイスの画像セグメントと画像セグメントとの間にある矢印は、インタラクティブなボタンであり得る)。

[0310]決定ブロック2412において、ティーチャシグナリングデバイスのプロセッサは、関係をトリガーするグラフィカルユーザインターフェース(GUI)要素(たとえば、ソフトボタン)上の入力が、GUIを介して受信されたかどうかを決定し得る。たとえば、ティーチャシグナリングデバイスは、学習デバイスがアクションを実行することを引き起こすインターセプトされたイベントレポートメッセージをティーチャシグナリングデバイスが再ブロードキャストすることを引き起こすように構成されたグラフィック要素に対応するタッチスクリーン上のタッチ入力が受信されたかどうかを決定することができる。入力は受信されていないと決定したことに応答して(すなわち、決定ブロック2412=「いいえ」)、ティーチャシグナリングデバイスは、ブロック1352において追加のイベントレポートメッセージをインターセプトすることと、決定ブロック2412においてユーザ入力を監視することとを続行し得る。

[0311]入力が受信されたと決定したことに応答して(すなわち、決定ブロック2412=「はい」)、ティーチャシグナリングデバイスのプロセッサは、ブロック2414においてGUI要素に関連付けられている関係に対応するイベントレポートメッセージをブロードキャストし得る。言い換えれば、ティーチャシグナリングデバイスは、学習デバイスがリフレックスにおいて定義されているアクションを実行することを引き起こすトリガーとしてティーチャシグナリングデバイスが識別しているインターセプトされたイベントレポートメッセージを複製するか、または再ブロードキャストし得る。ティーチャシグナリングデバイスは、ブロック1352において追加のイベントレポートメッセージをインターセプトすることと、決定ブロック2412においてユーザ入力を監視することとを続行し得る。

[0312]図24Bは、ティーチャシグナリングデバイスがグラフィカルユーザインターフェース(GUI)に対するユーザのインタラクティブな操作に基づき信号を送信するための一実施形態の方法2450を示している。方法2450は、方法2450が環境の学習デバイス間の関係を調整するためにGUI上のユーザの入力に基づき学習デバイスのトリガー重みを変更するティーチング信号を送信するためのオペレーションを含み得ることを除き、上で説明されている方法2400に類似しているものとしてよい。たとえば、ユーザが図23Cに示されているようなスマートフロアランプに関連付けられている画像の第1のセグメントからグラフィック要素(たとえば、矢印)を切断したことに応答して、ティーチャシグナリングデバイスは、スマートフロアランプがもはや特定のイベントレポートメッセージ(たとえば、スマート壁面スイッチの「オン」イベントレポートメッセージ)に反応しなくなるように関係するリフレックスのトリガー重みをスマートフロアランプが下げることを引き起こすティーチング信号(たとえば、「補正信号」)を送信し得る。別の例として、ユーザがグラフィック要素をスマートステレオに関連付けられている画像の第2のセグメントに再接続したことに応答して、ティーチャシグナリングデバイスは、スマートステレオがイベントレポートメッセージに反応し始めるように関係するリフレックスのトリガー重みをスマートステレオが上げることを引き起こすティーチング信号(たとえば、「報酬信号」)を送信し得る。

[0313]ブロック1352〜1306におけるオペレーションは、図13Bを参照しつつ上で説明されている類似の番号のブロックのオペレーションに類似しているものとしてよい。ブロック2402〜2410におけるオペレーションは、図24Aを参照しつつ上で説明されている類似の番号のブロックのオペレーションであってよい。決定ブロック2452において、ティーチャシグナリングデバイスのプロセッサは、環境内の学習デバイス間の関係を調整するように構成されているGUI内のグラフィカルユーザインターフェース要素上の入力を受信したされたかどうかを決定し得る。たとえば、ティーチャシグナリングデバイスは、関係グラフィック要素の端点がティーチャシグナリングデバイスのタッチスクリーン上に表示されている画像の第1のセグメントへの接続から画像の第2のセグメントにユーザ入力(たとえば、タッチスクリーン上のスライディングタッチ入力など)を介して移動されたかどうかを決定することができる。いくつかの実施形態では、ユーザは、タッチスクリーンでのジェスチャを使用して関係グラフィック要素を仮想ごみ箱にスライドさせることなどによって、グラフィカルユーザインターフェース要素を取り除く(または削除する)ことができる。

[0314]GUI内のグラフィカルユーザインターフェース要素上で入力が受信されたと決定したことに応答して(すなわち、決定ブロック2452=「はい」)、ティーチャシグナリングデバイスのプロセッサは、学習デバイスがブロック2454において調整された関係のイベントアクション関連付けを学習することを引き起こすティーチング信号をブロードキャストし得る。上で説明されているように、ティーチャシグナリングデバイスは、上で説明されているように学習デバイスのリフレックスに対するトリガー重みが修正されることを引き起こすティーチング信号を送信するためのティーチングルーチンを実装し得る。特に、ティーチャシグナリングデバイスは、トリガーデバイスとの関係から切断された表示されている画像のセグメントと相関する学習デバイスを識別し、リフレックスのアクションパターンが関係のトリガーイベントレポートメッセージに応答してもはや生成されないように事前定義されたトリガー閾値よりも低くなるように関係するリフレックストリガー重みをこれらの学習デバイスが下げる(たとえば、補正)ことを引き起こすティーチング信号を送信し得る。

[0315]さらに、ティーチャシグナリングデバイスは、関係に接続された表示されている画像のセグメントと相関する学習デバイスを識別し、リフレックスのアクションパターンが関係のその後のトリガーイベントレポートメッセージに応答して生成されるように事前定義されたトリガー閾値よりも高くなるように関係するリフレックストリガー重みをこれらの学習デバイスが上げる(たとえば、報酬)ことを引き起こすティーチング信号を送信し得る。たとえば、ユーザがGUIを使用して第1の学習デバイス(たとえば、スマートフロアランプ)に関連付けられている第1のセグメントから離れる方向に矢印グラフィック要素を向け直し、矢印がその代わりにトリガー学習デバイス(たとえば、スマート壁面スイッチ)を第2の学習デバイス(たとえば、スマートステレオ)と接続するようにしたことに応答して、ティーチャシグナリングデバイスは、トリガー学習デバイスがイベントレポートメッセージ(たとえば、スイッチオンイベントレポートメッセージ)を送信したことに応答して第2の学習デバイスがオンになることを学習することを引き起こすティーチング信号、および/またはトリガー学習デバイスがイベントレポートメッセージを送信したことに応答して第1の学習デバイスがもはやオンにならないことを学習することを引き起こすティーチング信号をブロードキャストし得る。いくつかの実施形態では、関係グラフィック要素をユーザが削除したか、または取り除いたと決定したことに応答して、ティーチャシグナリングデバイスは、学習デバイスのリフレックスへの補正を引き起こすティーチング信号のみをブロードキャストし得る(たとえば、トリガー重みは、トリガー学習デバイスからのイベントレポートメッセージに応答してアクションが実行されないように下げられる)。

[0316]GUI内のグラフィカルユーザインターフェース要素上で入力が受信されていないと決定したことに応答して(すなわち、決定ブロック2452=「いいえ」)、またはティーチャシグナリングデバイスがクロック2454におけるオペレーションを実行したことに応答して、ティーチャシグナリングデバイスは、図24Aを参照しつつ上で説明されているように決定ブロック2412におけるオペレーションを続行し得る。

[0317]図25は、様々な実施形態で使用するのに適している例示的なモバイルデバイス2500(たとえば、スマートフォンモバイルデバイスなど)を示している。モバイルデバイス2500は、タッチスクリーンコントローラ2504と内部メモリ2502とに結合されたプロセッサ2501を備え得る。プロセッサ2501は、一般的な、または特定の処理タスクに指定された1つまたは複数のマルチコア集積回路であってよい。内部メモリ2502は、揮発性メモリ、または不揮発性メモリとすることができ、また、セキュアおよび/または暗号化メモリであるか、または非セキュアおよび/または非暗号化メモリであるか、またはこれらの任意の組合せであってよい。タッチスクリーンコントローラ2504およびプロセッサ2501は、抵抗膜方式タッチスクリーン、静電容量方式タッチスクリーン、赤外線方式タッチスクリーンなどのタッチスクリーンパネル2512にも結合され得る。モバイルデバイス2500は、互いに結合され、および/またはプロセッサ2501に結合されている、送受信用の、1つまたは複数の無線信号トランシーバ2508(たとえば、Peanut(登録商標)、Bluetooth、Zigbee(登録商標)、Wi−Fi(登録商標)、RF無線)とアンテナ2510とを有することができる。トランシーバ2508およびアンテナ2510は、様々なワイヤレス送信プロトコルスタックとインターフェースとを実装するために上述の回路とともに使用され得る。モバイルデバイス2500は、セルラーネットワークを介して通信を可能にし、プロセッサに結合されているセルラーネットワークワイヤレスモデムチップ2516を備え得る。モバイルデバイス2500は、プロセッサ2501に結合された周辺デバイス接続インターフェース2518を備え得る。周辺デバイス接続インターフェース2518は、1つのタイプの接続を受け付けるように単独で構成されるか、またはUSB、FireWire(登録商標)、Thunderbolt、またはPCIeなどの、共通または専用の、様々なタイプの物理的および通信接続を受け付けるように多重構成され得る。周辺デバイス接続インターフェース2518は、同様に構成された周辺デバイス接続ポート(図示せず)にも結合され得る。モバイルデバイス2500は、オーディオ出力を行うためにスピーカー2514も備え得る。モバイルデバイス2500は、本明細書で説明されているコンポーネントのうちの全部また一部を収容するために、プラスチック、金属、または材料の組合せから作製されたハウジング2520も備え得る。モバイルデバイス2500は、使い捨て型または充電式電池などの、プロセッサ2501に結合された電源2522を備え得る。充電式電池は、また、モバイルデバイス2500の外部にある電源から充電電流を受けるため周辺デバイス接続ポートに結合され得る。それに加えて、モバイルデバイス2500は、カメラ2555およびマイクロフォン2556などの、プロセッサ2501に結合された様々なセンサーを備え得る。

[0318]プロセッサ2501は、上述した様々な実施形態の機能を含む、様々な機能を実施するようにソフトウェア命令(アプリケーション)によって構成できる任意のプログラマブルマイクロプロセッサ、マイクロコンピュータあるいは1つまたは複数の多重プロセッサチップとすることができる。様々なデバイスでは、1つのプロセッサがワイヤレス通信機能専用にされ、1つのプロセッサが他のアプリケーションの実行専用にされるなど、マルチプルプロセッサが設けられ得る。典型的には、ソフトウェアアプリケーションがアクセスされ、プロセッサ2501にロードされる前に、ソフトウェアアプリケーションは内部メモリ2502に記憶されるものとしてよい。プロセッサ2501は、アプリケーションソフトウェア命令を記憶するのに十分な容量の内部メモリを備えることができ得る。多くのデバイスでは、内部メモリは、揮発性メモリ、またはフラッシュメモリなどの不揮発性メモリ、あるいは両方の混合であり得る。この説明の目的に関して、メモリへの一般的な参照は、内部メモリまたは様々なデバイスに差し込まれている取り外し可能なメモリ、およびプロセッサ2501内のメモリを含む、プロセッサ2501によってアクセス可能なメモリを指す。

[0319]上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な態様のステップを提示された順序で実行しなければならないことを要求または暗示するものではない。当業者によって諒解されるように、上記の態様におけるステップの順序は、いかなる順序でも実行され得る。「その後」、「次いで」、「次に」などの用語は、それらのステップの順序を限定することが意図されず、これらの用語は、単に、読者をこれらの方法の説明に導くためである。さらに、たとえば、冠詞「a」、「an」または「the」を使用する単数形の請求項の要素への言及は、その要素を単数形に限定するものと解釈されるべきではない。

[0320]本明細書で開示される態様に関して説明される、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上述されている。このような機能性がハードウェアとして実施されるか、またはソフトウェアとして実施されるかは、特定の応用およびシステム全体に課される設計の制約によって決まる。当業者は、各具体的なアプリケーションについて様々な方法で説明された機能性を実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。

[0321]スマートボックス103などのハードウェアは、本明細書で開示されている態様に関して説明されている様々例示的な論理回路、論理ブロック、モジュール、および回路を実装するために使用され、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラム可能論理デバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、または本明細書で説明されている機能を実行するように設計されているこれらの任意の組合せにより実装または実行され得る。汎用プロセッサはマルチプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマルチプロセッサとの組合せ、複数のマルチプロセッサ、DSPコアと連携する1つもしくは複数のマルチプロセッサ、または任意の他のそのような構成としても実装され得る。代替的に、いくつかのステップまたは方法は、所与の機能に固有の回路によって実施できる。

[0322]1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装された場合、これらの機能は、非一時的コンピュータ可読記憶媒体、非一時的コンピュータ可読媒体、または非一時的プロセッサ可読記憶媒体上に1つまたは複数の命令もしくはコードとして記憶され得る。本明細書で開示されている方法またはアルゴリズムのステップは、非一時的コンピュータ可読媒体またはプロセッサ可読記憶媒体上に存在し得る、プロセッサ実行可能ソフトウェアモジュールで具現化され得る。非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセス可能な何らかの記憶媒体であってよい。限定ではなく、例として、そのような非一時的コンピュータ可読媒体または非一時的プロセッサ可読媒体は、所望されるプログラムコードを命令またはデータ構造の形で記憶するために使用可能であり、かつコンピュータによってアクセス可能なRAM、ROM、EEPROM(登録商標)、FLASHメモリ、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または何らかの他の媒体を含むことが可能である。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体および非一時的プロセッサ可読媒体の範囲に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品内に組み込むことが可能な1つのコードおよび/もしくは命令、あるいはコードおよび/もしくは命令の任意の組合せまたはセットとして、非一時的プロセッサ可読媒体上および/または非一時的コンピュータ可読媒体上に存在し得る。

[0323]開示した実施形態の上記の説明は、当業者が本発明を製作または使用できるように提供したものである。これらの実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義された一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本発明は、本明細書で示された実施形態に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。

[0323]開示した実施形態の上記の説明は、当業者が本発明を製作または使用できるように提供したものである。これらの実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義された一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本発明は、本明細書で示された実施形態に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ティーチャシグナリングデバイスが非集中システム内の学習デバイスに対するプロキシティーチングを実行するための方法であって、
前記ティーチャシグナリングデバイスによって、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することと、
前記ティーチャシグナリングデバイスによって、前記取得された目的データに基づきティーチングルーチンを生成することと、
前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されたティーチング信号をブロードキャストすることとを備える方法。
[C2]
前記ティーチャシグナリングデバイスによって、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが、
前記ティーチャシグナリングデバイスによって、前記学習デバイスにリフレックス情報を要求する信号をブロードキャストすることと、
前記ティーチャシグナリングデバイスによって、前記学習デバイスから前記リフレックス情報を含む応答メッセージを受信することと、
前記ティーチャシグナリングデバイスによって、前記受信された応答メッセージからの前記リフレックス情報から前記目的データを取得することとを備えるC1に記載の方法。
[C3]
前記ティーチャシグナリングデバイスによって、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが、
前記ティーチャシグナリングデバイスによって、前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
前記ティーチャシグナリングデバイスによって、前記インターセプトされたイベントレポートメッセージに基づき前記目的データを取得することとを備えるC1に記載の方法。
[C4]
前記ティーチャシグナリングデバイスによって、前記学習デバイスの各々に対する少なくとも1つのデバイスタイプを指示する識別応答を前記学習デバイスに要求する発見信号をブロードキャストすることと、
前記ティーチャシグナリングデバイスによって、前記ブロードキャストされた発見信号に応答して前記学習デバイスから前記識別応答を受信することと、
前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンの目的が達成され得るかどうかを前記受信された識別応答に基づき決定することと、
前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンを、前記生成されたティーチングルーチンの前記目的が達成され得ることを前記受信された識別応答に基づき決定したことに応答して修正することとをさらに備えるC1に記載の方法。
[C5]
前記ティーチャシグナリングデバイスによって、認可要求をユーザデバイスに送信することと、
前記ティーチャシグナリングデバイスによって、前記送信された認可要求に応答して認可が前記ユーザデバイスから受信されたかどうかを決定することとをさらに備え、
前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることが、前記ティーチャシグナリングデバイスによって、前記認可が前記ユーザデバイスから受信されたと決定したことに応答して前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることを備えるC1に記載の方法。
[C6]
前記ティーチャシグナリングデバイスによって、前記学習デバイスが学習モードに入ることを引き起こす第1の信号をブロードキャストすることと、
前記ティーチャシグナリングデバイスによって、前記学習デバイスが前記学習モードを終了することを引き起こす第2の信号をブロードキャストすることとをさらに備えるC1に記載の方法。
[C7]
前記ティーチャシグナリングデバイスによって、前記学習デバイスのうちの前記1つまたは複数のデバイスがリフレックスに対するトリガー重みをリセットすることを引き起こす信号をブロードキャストすることをさらに備えるC1に記載の方法。
[C8]
前記ティーチャシグナリングデバイスによって、前記ブロードキャストされたティーチング信号に応答して前記学習デバイスのうちの前記1つまたは複数のデバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
前記ティーチャシグナリングデバイスによって、前記インターセプトされたイベントレポートメッセージと前記ブロードキャストされたティーチング信号とに基づき前記生成されたティーチングルーチンに関連付けられている履歴情報を指示する記憶されているデータを更新することと、
前記ティーチャシグナリングデバイスによって、前記更新された記憶されているデータを表示することとをさらに備えるC1に記載の方法。
[C9]
前記ティーチャシグナリングデバイスによって、前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
前記ティーチャシグナリングデバイスによって、前記学習デバイスを含む環境の少なくとも一部の画像を取得することと、
前記ティーチャシグナリングデバイスによって、前記学習デバイスを前記取得された画像のセグメントに相関させることと、
前記ティーチャシグナリングデバイスによって、前記インターセプトされたイベントレポートメッセージに基づき前記学習デバイスの間の関係を識別することと、
前記ティーチャシグナリングデバイスによって、前記取得された画像上の前記識別された関係を指示するグラフィカルユーザインターフェース要素を表示することと、
前記ティーチャシグナリングデバイスによって、前記識別された関係に関係するグラフィカルユーザインターフェース要素上で第1のユーザ入力を受信したことに応答してイベントレポートメッセージをブロードキャストすることとをさらに備えるC1に記載の方法。
[C10]
前記識別された関係に関係する前記グラフィカルユーザインターフェース要素を調整する第2のユーザ入力を受信することをさらに備え、
前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることが、前記ティーチャシグナリングデバイスによって、前記グラフィカルユーザインターフェース要素を調整する前記受信された第2のユーザ入力に基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることを備えるC9に記載の方法。
[C11]
ワイヤレス受信機と送信機と、
前記ワイヤレス受信機と送信機とに結合され、
非集中システム内の学習デバイスの活動に関係する目的データを取得することと、
前記取得された目的データに基づきティーチングルーチンを生成することと、
前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されたティーチング信号をブロードキャストすることとを備える
オペレーションを実行するためのプロセッサ実行可能命令とともに構成されているプロセッサとを備えるコンピューティングデバイス。
[C12]
前記プロセッサは、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが
前記学習デバイスにリフレックス情報を要求する信号をブロードキャストすることと、
前記学習デバイスから前記リフレックス情報を含む応答メッセージを受信することと、
前記受信された応答メッセージからの前記リフレックス情報から前記目的データを取得することとを備えるようなオペレーションを実行するようにプロセッサ実行可能命令とともに構成されるC11に記載のコンピューティングデバイス。
[C13]
前記プロセッサは、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが
前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
前記インターセプトされたイベントレポートメッセージに基づき前記目的データを取得することとを備えるようなオペレーションを実行するようにプロセッサ実行可能命令とともに構成されるC11に記載のコンピューティングデバイス。
[C14]
前記プロセッサは、プロセッサ実行可能命令とともに
前記学習デバイスの各々に対する少なくとも1つのデバイスタイプを指示する識別応答を前記学習デバイスに要求する発見信号をブロードキャストすることと、
前記ブロードキャストされた発見信号に応答して前記学習デバイスから前記識別応答を受信することと、
前記生成されたティーチングルーチンの目的が達成され得るかどうかを前記受信された識別応答に基づき決定することと、
前記生成されたティーチングルーチンを、前記生成されたティーチングルーチンの前記目的が達成され得ることを前記受信された識別応答に基づき決定したことに応答して修正することとをさらに備えるオペレーションを実行するように構成されるC11に記載のコンピューティングデバイス。
[C15]
前記プロセッサは、プロセッサ実行可能命令とともに
認可要求をユーザデバイスに送信することと、
前記送信された認可要求に応答して認可が前記ユーザデバイスから受信されたかどうかを決定することとをさらに備えるオペレーションを実行するように構成され、
前記プロセッサは、プロセッサ実行可能命令とともに、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることが、前記認可が前記ユーザデバイスから受信されたと決定したことに応答して前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることを備えるようなオペレーションを実行するように構成されるC11に記載のコンピューティングデバイス。
[C16]
前記プロセッサは、プロセッサ実行可能命令とともに
前記学習デバイスが学習モードに入ることを引き起こす第1の信号をブロードキャストすることと、
前記学習デバイスが前記学習モードを終了することを引き起こす第2の信号をブロードキャストすることとをさらに備えるオペレーションを実行するように構成されるC11に記載のコンピューティングデバイス。
[C17]
前記プロセッサは、プロセッサ実行可能命令とともに、前記学習デバイスのうちの前記1つまたは複数のデバイスがリフレックスに対するトリガー重みをリセットすることを引き起こす信号をブロードキャストすることをさらに備えるオペレーションを実行するように構成されるC11に記載のコンピューティングデバイス。
[C18]
前記プロセッサは、プロセッサ実行可能命令とともに
前記ブロードキャストされたティーチング信号に応答して前記学習デバイスのうちの前記1つまたは複数のデバイスによって送信されたイベントレポートメッセージをインターセプトすること、
前記インターセプトされたイベントレポートメッセージと前記ブロードキャストされたティーチング信号とに基づき前記生成されたティーチングルーチンに関連付けられている履歴情報を指示する記憶されているデータを更新することと、
前記更新された記憶されているデータを表示することとをさらに備えるオペレーションを実行するように構成されるC11に記載のコンピューティングデバイス。
[C19]
ディスプレイと、
カメラとをさらに備え、
前記プロセッサは前記ディスプレイと前記カメラとに結合され、プロセッサ実行可能命令とともに、
前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
前記学習デバイスを含む環境の少なくとも一部の画像を取得することと、
前記学習デバイスを前記取得された画像のセグメントに相関させることと、
前記インターセプトされたイベントレポートメッセージに基づき前記学習デバイスの間の関係を識別することと、
前記ディスプレイ上に、前記取得された画像上の前記識別された関係を指示するグラフィカルユーザインターフェース要素を提示することと、
前記識別された関係に関係するグラフィカルユーザインターフェース要素上で第1のユーザ入力を受信したことに応答してイベントレポートメッセージをブロードキャストすることとをさらに備えるオペレーションを実行するように構成されるC11に記載のコンピューティングデバイス。
[C20]
前記プロセッサは、プロセッサ実行可能命令とともに
前記識別された関係に関係する前記グラフィカルユーザインターフェース要素を調整する第2のユーザ入力を受信することをさらに備えるオペレーションを実行するように構成され、
前記プロセッサは、プロセッサ実行可能命令とともに、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号を、前記ティーチャシグナリングデバイスによって、ブロードキャストすることが、前記グラフィカルユーザインターフェース要素を調整する前記受信された第2のユーザ入力に基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号を、前記ティーチャシグナリングデバイスによって、ブロードキャストすることを備えるようなオペレーションを実行するように構成されるC19に記載のコンピューティングデバイス。
[C21]
非集中システム内の学習デバイスの活動に関係する目的データを取得するための手段と、
前記取得された目的データに基づきティーチングルーチンを生成するための手段と、
前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されたティーチング信号をブロードキャストするための手段とを備えるコンピューティングデバイス。
[C22]
前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得するための手段が、
前記学習デバイスにリフレックス情報を要求する信号をブロードキャストするための手段と、
前記学習デバイスから前記リフレックス情報を含む応答メッセージを受信するための手段と、
前記受信された応答メッセージからの前記リフレックス情報から前記目的データを取得するための手段とを備えるC21に記載のコンピューティングデバイス。
[C23]
前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得するための手段が、
前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトするための手段と、
前記インターセプトされたイベントレポートメッセージに基づき前記目的データを取得するための手段とを備えるC21に記載のコンピューティングデバイス。
[C24]
前記学習デバイスの各々に対する少なくとも1つのデバイスタイプを指示する識別応答を前記学習デバイスに要求する発見信号をブロードキャストするための手段と、
前記ブロードキャストされた発見信号に応答して前記学習デバイスから前記識別応答を受信するための手段と、
前記生成されたティーチングルーチンの目的が達成され得るかどうかを前記受信された識別応答に基づき決定するための手段と、
前記生成されたティーチングルーチンを、前記生成されたティーチングルーチンの前記目的が達成され得ることを前記受信された識別応答に基づき決定したことに応答して修正するための手段とをさらに備えるC21に記載のコンピューティングデバイス。
[C25]
認可要求をユーザデバイスに送信するための手段と、
前記送信された認可要求に応答して認可が前記ユーザデバイスから受信されたかどうかを決定するための手段とをさらに備え、
前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストするための手段が、前記認可が前記ユーザデバイスから受信されたと決定したことに応答して前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストするための手段を備えるC23に記載のコンピューティングデバイス。
[C26]
前記学習デバイスが学習モードに入ることを引き起こす第1の信号をブロードキャストするための手段と、
前記学習デバイスが前記学習モードを終了することを引き起こす第2の信号をブロードキャストするための手段とをさらに備えるC23に記載のコンピューティングデバイス。
[C27]
前記学習デバイスのうちの前記1つまたは複数のデバイスがリフレックスに対するトリガー重みをリセットすることを引き起こす信号をブロードキャストするための手段をさらに備えるC23に記載のコンピューティングデバイス。
[C28]
前記ブロードキャストされたティーチング信号に応答して前記学習デバイスのうちの前記1つまたは複数のデバイスによって送信されたイベントレポートメッセージをインターセプトするための手段と、
前記インターセプトされたイベントレポートメッセージと前記ブロードキャストされたティーチング信号とに基づき前記生成されたティーチングルーチンに関連付けられている履歴情報を指示する記憶されているデータを更新するための手段と、
前記更新された記憶されているデータを表示するための手段とをさらに備えるC23に記載のコンピューティングデバイス。
[C29]
プロセッサ実行可能命令が記憶され、前記プロセッサ実行可能命令はコンピューティングデバイスのプロセッサが
非集中システム内の学習デバイスの活動に関係する目的データを取得し、
前記取得された目的データに基づきティーチングルーチンを生成し、
前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されたティーチング信号をブロードキャストすることを備えるようなオペレーションを実行することを引き起こすように構成される非一時的プロセッサ可読記憶媒体。
[C30]
前記記憶されているプロセッサ実行可能命令は、前記コンピューティングデバイスの前記プロセッサが、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが
前記学習デバイスにリフレックス情報を要求する信号をブロードキャストすることと、
前記学習デバイスから前記リフレックス情報を含む応答メッセージを受信することと、
前記受信された応答メッセージからの前記リフレックス情報から前記目的データを取得することとを備えるようなオペレーションを実行することを引き起こすように構成されるC29に記載の非一時的プロセッサ可読記憶媒体。

Claims (30)

  1. ティーチャシグナリングデバイスが非集中システム内の学習デバイスに対するプロキシティーチングを実行するための方法であって、
    前記ティーチャシグナリングデバイスによって、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することと、
    前記ティーチャシグナリングデバイスによって、前記取得された目的データに基づきティーチングルーチンを生成することと、
    前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されたティーチング信号をブロードキャストすることとを備える方法。
  2. 前記ティーチャシグナリングデバイスによって、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが、
    前記ティーチャシグナリングデバイスによって、前記学習デバイスにリフレックス情報を要求する信号をブロードキャストすることと、
    前記ティーチャシグナリングデバイスによって、前記学習デバイスから前記リフレックス情報を含む応答メッセージを受信することと、
    前記ティーチャシグナリングデバイスによって、前記受信された応答メッセージからの前記リフレックス情報から前記目的データを取得することとを備える請求項1に記載の方法。
  3. 前記ティーチャシグナリングデバイスによって、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが、
    前記ティーチャシグナリングデバイスによって、前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
    前記ティーチャシグナリングデバイスによって、前記インターセプトされたイベントレポートメッセージに基づき前記目的データを取得することとを備える請求項1に記載の方法。
  4. 前記ティーチャシグナリングデバイスによって、前記学習デバイスの各々に対する少なくとも1つのデバイスタイプを指示する識別応答を前記学習デバイスに要求する発見信号をブロードキャストすることと、
    前記ティーチャシグナリングデバイスによって、前記ブロードキャストされた発見信号に応答して前記学習デバイスから前記識別応答を受信することと、
    前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンの目的が達成され得るかどうかを前記受信された識別応答に基づき決定することと、
    前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンを、前記生成されたティーチングルーチンの前記目的が達成され得ることを前記受信された識別応答に基づき決定したことに応答して修正することとをさらに備える請求項1に記載の方法。
  5. 前記ティーチャシグナリングデバイスによって、認可要求をユーザデバイスに送信することと、
    前記ティーチャシグナリングデバイスによって、前記送信された認可要求に応答して認可が前記ユーザデバイスから受信されたかどうかを決定することとをさらに備え、
    前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることが、前記ティーチャシグナリングデバイスによって、前記認可が前記ユーザデバイスから受信されたと決定したことに応答して前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることを備える請求項1に記載の方法。
  6. 前記ティーチャシグナリングデバイスによって、前記学習デバイスが学習モードに入ることを引き起こす第1の信号をブロードキャストすることと、
    前記ティーチャシグナリングデバイスによって、前記学習デバイスが前記学習モードを終了することを引き起こす第2の信号をブロードキャストすることとをさらに備える請求項1に記載の方法。
  7. 前記ティーチャシグナリングデバイスによって、前記学習デバイスのうちの前記1つまたは複数のデバイスがリフレックスに対するトリガー重みをリセットすることを引き起こす信号をブロードキャストすることをさらに備える請求項1に記載の方法。
  8. 前記ティーチャシグナリングデバイスによって、前記ブロードキャストされたティーチング信号に応答して前記学習デバイスのうちの前記1つまたは複数のデバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
    前記ティーチャシグナリングデバイスによって、前記インターセプトされたイベントレポートメッセージと前記ブロードキャストされたティーチング信号とに基づき前記生成されたティーチングルーチンに関連付けられている履歴情報を指示する記憶されているデータを更新することと、
    前記ティーチャシグナリングデバイスによって、前記更新された記憶されているデータを表示することとをさらに備える請求項1に記載の方法。
  9. 前記ティーチャシグナリングデバイスによって、前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
    前記ティーチャシグナリングデバイスによって、前記学習デバイスを含む環境の少なくとも一部の画像を取得することと、
    前記ティーチャシグナリングデバイスによって、前記学習デバイスを前記取得された画像のセグメントに相関させることと、
    前記ティーチャシグナリングデバイスによって、前記インターセプトされたイベントレポートメッセージに基づき前記学習デバイスの間の関係を識別することと、
    前記ティーチャシグナリングデバイスによって、前記取得された画像上の前記識別された関係を指示するグラフィカルユーザインターフェース要素を表示することと、
    前記ティーチャシグナリングデバイスによって、前記識別された関係に関係するグラフィカルユーザインターフェース要素上で第1のユーザ入力を受信したことに応答してイベントレポートメッセージをブロードキャストすることとをさらに備える請求項1に記載の方法。
  10. 前記識別された関係に関係する前記グラフィカルユーザインターフェース要素を調整する第2のユーザ入力を受信することをさらに備え、
    前記ティーチャシグナリングデバイスによって、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることが、前記ティーチャシグナリングデバイスによって、前記グラフィカルユーザインターフェース要素を調整する前記受信された第2のユーザ入力に基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることを備える請求項9に記載の方法。
  11. ワイヤレス受信機と送信機と、
    前記ワイヤレス受信機と送信機とに結合され、
    非集中システム内の学習デバイスの活動に関係する目的データを取得することと、
    前記取得された目的データに基づきティーチングルーチンを生成することと、
    前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されたティーチング信号をブロードキャストすることとを備える
    オペレーションを実行するためのプロセッサ実行可能命令とともに構成されているプロセッサとを備えるコンピューティングデバイス。
  12. 前記プロセッサは、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが
    前記学習デバイスにリフレックス情報を要求する信号をブロードキャストすることと、
    前記学習デバイスから前記リフレックス情報を含む応答メッセージを受信することと、
    前記受信された応答メッセージからの前記リフレックス情報から前記目的データを取得することとを備えるようなオペレーションを実行するようにプロセッサ実行可能命令とともに構成される請求項11に記載のコンピューティングデバイス。
  13. 前記プロセッサは、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが
    前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
    前記インターセプトされたイベントレポートメッセージに基づき前記目的データを取得することとを備えるようなオペレーションを実行するようにプロセッサ実行可能命令とともに構成される請求項11に記載のコンピューティングデバイス。
  14. 前記プロセッサは、プロセッサ実行可能命令とともに
    前記学習デバイスの各々に対する少なくとも1つのデバイスタイプを指示する識別応答を前記学習デバイスに要求する発見信号をブロードキャストすることと、
    前記ブロードキャストされた発見信号に応答して前記学習デバイスから前記識別応答を受信することと、
    前記生成されたティーチングルーチンの目的が達成され得るかどうかを前記受信された識別応答に基づき決定することと、
    前記生成されたティーチングルーチンを、前記生成されたティーチングルーチンの前記目的が達成され得ることを前記受信された識別応答に基づき決定したことに応答して修正することとをさらに備えるオペレーションを実行するように構成される請求項11に記載のコンピューティングデバイス。
  15. 前記プロセッサは、プロセッサ実行可能命令とともに
    認可要求をユーザデバイスに送信することと、
    前記送信された認可要求に応答して認可が前記ユーザデバイスから受信されたかどうかを決定することとをさらに備えるオペレーションを実行するように構成され、
    前記プロセッサは、プロセッサ実行可能命令とともに、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることが、前記認可が前記ユーザデバイスから受信されたと決定したことに応答して前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストすることを備えるようなオペレーションを実行するように構成される請求項11に記載のコンピューティングデバイス。
  16. 前記プロセッサは、プロセッサ実行可能命令とともに
    前記学習デバイスが学習モードに入ることを引き起こす第1の信号をブロードキャストすることと、
    前記学習デバイスが前記学習モードを終了することを引き起こす第2の信号をブロードキャストすることとをさらに備えるオペレーションを実行するように構成される請求項11に記載のコンピューティングデバイス。
  17. 前記プロセッサは、プロセッサ実行可能命令とともに、前記学習デバイスのうちの前記1つまたは複数のデバイスがリフレックスに対するトリガー重みをリセットすることを引き起こす信号をブロードキャストすることをさらに備えるオペレーションを実行するように構成される請求項11に記載のコンピューティングデバイス。
  18. 前記プロセッサは、プロセッサ実行可能命令とともに
    前記ブロードキャストされたティーチング信号に応答して前記学習デバイスのうちの前記1つまたは複数のデバイスによって送信されたイベントレポートメッセージをインターセプトすること、
    前記インターセプトされたイベントレポートメッセージと前記ブロードキャストされたティーチング信号とに基づき前記生成されたティーチングルーチンに関連付けられている履歴情報を指示する記憶されているデータを更新することと、
    前記更新された記憶されているデータを表示することとをさらに備えるオペレーションを実行するように構成される請求項11に記載のコンピューティングデバイス。
  19. ディスプレイと、
    カメラとをさらに備え、
    前記プロセッサは前記ディスプレイと前記カメラとに結合され、プロセッサ実行可能命令とともに、
    前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトすることと、
    前記学習デバイスを含む環境の少なくとも一部の画像を取得することと、
    前記学習デバイスを前記取得された画像のセグメントに相関させることと、
    前記インターセプトされたイベントレポートメッセージに基づき前記学習デバイスの間の関係を識別することと、
    前記ディスプレイ上に、前記取得された画像上の前記識別された関係を指示するグラフィカルユーザインターフェース要素を提示することと、
    前記識別された関係に関係するグラフィカルユーザインターフェース要素上で第1のユーザ入力を受信したことに応答してイベントレポートメッセージをブロードキャストすることとをさらに備えるオペレーションを実行するように構成される請求項11に記載のコンピューティングデバイス。
  20. 前記プロセッサは、プロセッサ実行可能命令とともに
    前記識別された関係に関係する前記グラフィカルユーザインターフェース要素を調整する第2のユーザ入力を受信することをさらに備えるオペレーションを実行するように構成され、
    前記プロセッサは、プロセッサ実行可能命令とともに、前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号を、前記ティーチャシグナリングデバイスによって、ブロードキャストすることが、前記グラフィカルユーザインターフェース要素を調整する前記受信された第2のユーザ入力に基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号を、前記ティーチャシグナリングデバイスによって、ブロードキャストすることを備えるようなオペレーションを実行するように構成される請求項19に記載のコンピューティングデバイス。
  21. 非集中システム内の学習デバイスの活動に関係する目的データを取得するための手段と、
    前記取得された目的データに基づきティーチングルーチンを生成するための手段と、
    前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されたティーチング信号をブロードキャストするための手段とを備えるコンピューティングデバイス。
  22. 前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得するための手段が、
    前記学習デバイスにリフレックス情報を要求する信号をブロードキャストするための手段と、
    前記学習デバイスから前記リフレックス情報を含む応答メッセージを受信するための手段と、
    前記受信された応答メッセージからの前記リフレックス情報から前記目的データを取得するための手段とを備える請求項21に記載のコンピューティングデバイス。
  23. 前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得するための手段が、
    前記学習デバイスによって送信されたイベントレポートメッセージをインターセプトするための手段と、
    前記インターセプトされたイベントレポートメッセージに基づき前記目的データを取得するための手段とを備える請求項21に記載のコンピューティングデバイス。
  24. 前記学習デバイスの各々に対する少なくとも1つのデバイスタイプを指示する識別応答を前記学習デバイスに要求する発見信号をブロードキャストするための手段と、
    前記ブロードキャストされた発見信号に応答して前記学習デバイスから前記識別応答を受信するための手段と、
    前記生成されたティーチングルーチンの目的が達成され得るかどうかを前記受信された識別応答に基づき決定するための手段と、
    前記生成されたティーチングルーチンを、前記生成されたティーチングルーチンの前記目的が達成され得ることを前記受信された識別応答に基づき決定したことに応答して修正するための手段とをさらに備える請求項21に記載のコンピューティングデバイス。
  25. 認可要求をユーザデバイスに送信するための手段と、
    前記送信された認可要求に応答して認可が前記ユーザデバイスから受信されたかどうかを決定するための手段とをさらに備え、
    前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストするための手段が、前記認可が前記ユーザデバイスから受信されたと決定したことに応答して前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの前記1つまたは複数のデバイスをティーチングするように構成された前記ティーチング信号をブロードキャストするための手段を備える請求項23に記載のコンピューティングデバイス。
  26. 前記学習デバイスが学習モードに入ることを引き起こす第1の信号をブロードキャストするための手段と、
    前記学習デバイスが前記学習モードを終了することを引き起こす第2の信号をブロードキャストするための手段とをさらに備える請求項23に記載のコンピューティングデバイス。
  27. 前記学習デバイスのうちの前記1つまたは複数のデバイスがリフレックスに対するトリガー重みをリセットすることを引き起こす信号をブロードキャストするための手段をさらに備える請求項23に記載のコンピューティングデバイス。
  28. 前記ブロードキャストされたティーチング信号に応答して前記学習デバイスのうちの前記1つまたは複数のデバイスによって送信されたイベントレポートメッセージをインターセプトするための手段と、
    前記インターセプトされたイベントレポートメッセージと前記ブロードキャストされたティーチング信号とに基づき前記生成されたティーチングルーチンに関連付けられている履歴情報を指示する記憶されているデータを更新するための手段と、
    前記更新された記憶されているデータを表示するための手段とをさらに備える請求項23に記載のコンピューティングデバイス。
  29. プロセッサ実行可能命令が記憶され、前記プロセッサ実行可能命令はコンピューティングデバイスのプロセッサが
    非集中システム内の学習デバイスの活動に関係する目的データを取得し、
    前記取得された目的データに基づきティーチングルーチンを生成し、
    前記生成されたティーチングルーチンに基づき前記学習デバイスのうちの1つまたは複数のデバイスをティーチングするように構成されたティーチング信号をブロードキャストすることを備えるようなオペレーションを実行することを引き起こすように構成される非一時的プロセッサ可読記憶媒体。
  30. 前記記憶されているプロセッサ実行可能命令は、前記コンピューティングデバイスの前記プロセッサが、前記学習デバイスのうちの1つまたは複数のデバイスの活動に関係する目的データを取得することが
    前記学習デバイスにリフレックス情報を要求する信号をブロードキャストすることと、
    前記学習デバイスから前記リフレックス情報を含む応答メッセージを受信することと、
    前記受信された応答メッセージからの前記リフレックス情報から前記目的データを取得することとを備えるようなオペレーションを実行することを引き起こすように構成される請求項29に記載の非一時的プロセッサ可読記憶媒体。
JP2016515137A 2013-05-24 2014-05-24 Withdrawn JP2016526221A5 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US201361827141 true 2013-05-24 2013-05-24
US61/827,141 2013-05-24
US14286602 US9679491B2 (en) 2013-05-24 2014-05-23 Signaling device for teaching learning devices
US14/286,602 2014-05-23
PCT/US2014/039467 WO2014190338A3 (en) 2013-05-24 2014-05-24 Signaling device for teaching learning devices

Publications (2)

Publication Number Publication Date
JP2016526221A true true JP2016526221A (ja) 2016-09-01
JP2016526221A5 true JP2016526221A5 (ja) 2017-06-15

Family

ID=

Also Published As

Publication number Publication date Type
EP3005250A2 (en) 2016-04-13 application
CN105408920B (zh) 2018-01-09 grant
WO2014190338A2 (en) 2014-11-27 application
US9679491B2 (en) 2017-06-13 grant
US20140349269A1 (en) 2014-11-27 application
WO2014190338A3 (en) 2015-04-09 application
CN105408920A (zh) 2016-03-16 application
KR20160013107A (ko) 2016-02-03 application

Similar Documents

Publication Publication Date Title
Hagras et al. Creating an ambient-intelligence environment using embedded agents
Cook et al. How smart are our environments? An updated look at the state of the art
US6792319B1 (en) Home automation system and method
Rashidi et al. Keeping the resident in the loop: Adapting the smart home to the user
US20150019714A1 (en) Physical environment profiling through internet of things integration platform
US20130263034A1 (en) User Interfaces for HVAC Schedule Display and Modification on Smartphone or Other Space-Limited Touchscreen Device
US7436296B2 (en) System and method for controlling a remote environmental control unit
US20150116811A1 (en) Applications for controlling optically switchable devices
US20140108019A1 (en) Smart Home Automation Systems and Methods
US20070019682A1 (en) Device control system, method, and apparatus for server-based or peer-to-peer network environments
Dey et al. iCAP: Interactive prototyping of context-aware applications
US20150019553A1 (en) Data consolidation mechanisms for internet of things integration platform
CN103926890A (zh) 智能终端控制方法及装置
US20050257006A1 (en) Device linkage control apparatus
US20150148093A1 (en) Battery pack with supplemental memory
US20160134932A1 (en) Camera System API For Third-Party Integrations
US9170707B1 (en) Method and system for generating a smart time-lapse video clip
US20150314454A1 (en) Apparatus and methods for providing a persistent companion device
Cheverst et al. Exploring issues of user model transparency and proactive behaviour in an office environment control system
CN104216379A (zh) 一种信息处理方法及电子设备
Fogarty et al. Toolkit support for developing and deploying sensor-based statistical models of human situations
US20120158865A1 (en) Managing tasks and information
Makonin et al. A smarter smart home: Case studies of ambient intelligence
Callaghan et al. Programming iSpaces—A tale of two paradigms
JP2002533802A (ja) システム及びその環境装置間でタスクを実行するためのタスク関連オブジェクトのクラスタ化

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170425

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20170714