ここで、実施例が添付図面に示されている、本発明の例示的実施形態を詳細に参照する。
以下の発明を実施するための形態では、特定の詳細を開示している代表的実施形態が、限定ではなく説明目的で、本教示の完全な理解をもたらすために記載されている。しかしながら、本開示の利益を享受した当業者には、本明細書で開示されている特定の詳細から逸脱する、本教示による他の実施形態が、添付の請求項の範囲内に留まる点が明らかとなるであろう。更には、周知のシステム、装置、及び方法の説明は、代表的実施形態の説明を不明瞭にすることがないように、省略される場合がある。そのようなシステム、方法、及び装置は、明らかに本教示の範囲内にある。
システムアーキテクチャ全体の特徴を示す実施形態
図1は、物理的環境のクラウドベースの監視及び制御のための、システム100Aを示す。このシステムは、建物サーバ100、ゲートウェイ110A及びゲートウェイ110B、システムデバイス101〜106、コンピューティングクラウド115、システムエネルギーアプリケーションモジュール120、システムインテークアプリケーションモジュール130、システムプロジェクトアプリケーションモジュール140、ユーザ管理アプリケーションモジュール150、システムマップアプリケーションモジュール160、プロジェクトデータベース170A、データデータベース170B、データプラットフォームモジュール180、及びクラウド接続性モジュール190を含む。システム100Aの他の実施形態は、追加的な、又はより少ない、建物サーバ、ゲートウェイ、システムデバイス、クラウド、データベースモジュール、クラウド接続性モジュール、及びデータプラットフォームを含み得る。システム100Aの様々な構成要素は、図1に示されるリンク線を使用して、通信可能にリンクされている。しかしながら、図中の2つのブロック又はモジュール間のリンク線の欠如は、必ずしも、それらブロック又はモジュール間の通信能力の欠如を示すものではない。用語「物理的構造」又は用語「物理的環境」は、本明細書で使用されるとき、自立しているか、恒久的であるか、包囲されているか、又は覆われているか否かにかかわらず、任意の建物構造体を指す。この用語は、例えば、オフィス用、住宅用、娯楽用、教育用、行政用、及び商業用の建物及び複合施設、並びに駐車場及び車庫を含む。用語「リンク」は、本明細書で使用されるとき、少なくとも2つのデバイス又はシステム構成要素間での情報の通信を可能にする、物理的又は仮想的な、任意の接続又は構成要素を指す。例えば、リンクは、有線又は無線の通信接続、無線周波数通信接続、及び光通信接続を含む。リンクはまた、共有通信プロトコル、ソフトウェア若しくはハードウェアインタフェース、又はリモートメソッド呼び出し若しくはリモートプロシージャコールも示し得る。
クラウド115は、クラウドコンピューティングに関して使用される典型的なクラウドである。クラウドは、そのクラウドへのアクセスを有する様々なデバイスに、共有データ及び処理リソースを提供する。クラウドは、ネットワーク、サーバ、ストレージ、アプリケーション、及びサービスなどのコンピューティングリソースの共有プールへの、オンデマンドのアクセスを可能にする。クラウド115は、システムエネルギーアプリケーションモジュール120、システムインテークアプリケーションモジュール130、システムプロジェクトアプリケーションモジュール140、ユーザ管理アプリケーションモジュール150、システムマップアプリケーションモジュール160を含めた、システム100Aに関する様々なクラウドベースのアプリケーションをサポートする。これらのアプリケーション及びクラウドインフラストラクチャは、システム100Aの2つの重要な態様を提供する。第1に、特定の建物又は建物群内に、システム100Aのようなシステムをインストールすることを担当する、インストーラーは、専門的な訓練を必要としない。第2に、監視及び制御されている物理的環境内での、システムデバイス及びリソースの所望の挙動が、クラウド自体の中に記憶されることにより、容易にコンフィギュレーション可能であり、ダウンロード可能である。
システムエネルギーアプリケーションモジュール120は、エネルギー管理に関連する報告を検討するために、又はエネルギー管理に関連する様々なタスクを実行するために、システム100Aの一般エンドユーザによって、又はシステム100Aの特殊専門ユーザ(例えば、施設管理者)によって使用されてもよい、クラウドベースのソフトウェアアプリケーションである。例えば、施設管理者は、特定の月曜日が、平均的な月曜日と比較された場合に、有意に高いエネルギー消費量を有していたか否かを判定するために、特定の週の1日平均消費量をチェックすること、又は、エネルギー使用量の季節変化を判定するために、過去1年の月間エネルギー消費量についてのデータを検討することを望み得る。それゆえ、システムエネルギーアプリケーションモジュール120は、いずれのタイプの情報が提示されることをユーザが見たいかについての情報を収集する目的で、並びに、グラフィック(例えば、棒グラフ、ヒートマップ)形態又は生の形態で必要情報を提示する目的で、本質的に対話型であってもよいユーザインタフェースを、そのユーザに提示することが可能である。このアプリケーションモジュールは、データデータベース170B内に記憶されているエネルギー消費量データを使用して、単独で、又は、クラウド115の内部若しくは外部の分析モジュールを使用することによって、分析を実行してもよい。システムエネルギーアプリケーションモジュール120は、図6に関連付けられている説明で、より詳細に論じられる。
システムインテークアプリケーションモジュール130は、システム100Aによって管理される1つ以上の物理的構造に関する、照明及び/又は他のエネルギーの必要性を決定及び/又は確立するために、インテーク技術者(以降では、「インテーカー」)によって、又はシステム100Aの他の専門ユーザによって使用されてもよい、クラウドベースのソフトウェアアプリケーションである。システムインテークアプリケーションモジュール130によって提供されるユーザインタフェースを少なくとも使用して、インテーカーは、アプリケーションモジュール130によって提示されるマップビューから、1つ以上の建物を選択することができる。このインテークは更に、アプリケーションモジュール130を使用して、選択された建物の特定のフロアの既存のフロアプランをロードして、続いて、特別な領域(例えば、オープンプラン式のオフィス空間、会議室)及び、これらの空間内で使用するためのシステムデバイス(例えば、光源、光源グリッド、ゲートウェイ、スイッチ)を確立すると共に、それらの空間及びデバイスに関連付けられる様々な注釈(例えば、メモ、写真、音声記録)を提供することができる。システムインテークアプリケーションモジュール130はまた、例えば、照明器具/光源が、指定領域に適切に割り当てられると共に、対応のゲートウェイに適切に割り当てられることを確認するために、インテーカーがインテークプロセスをチェックすることも可能にする。システムインテークアプリケーションモジュール130からのこの情報は、その後、プロジェクトデータベース170Aに入力するために使用されてもよい。システムインテークアプリケーションモジュール130は、図6に関連付けられている説明で、より詳細に論じられる。
システムプロジェクトアプリケーションモジュール140は、プロジェクトデータベース170A内に記憶されているプロジェクト階層を作成し、見るために、システム100Aに関連付けられるインテーカー、専門家、インストーラー、管理者、及びエンドユーザによって使用されてもよい、クラウドベースのソフトウェアアプリケーションである。アプリケーションモジュール140はまた、作成及び更新されたプロジェクトを、システムマップアプリケーションモジュール160、システムエネルギーアプリケーションモジュール120、又はシステムインテークアプリケーションモジュール130などの、他のアプリケーションモジュールにも発送する。プロジェクト階層は、例えば、管理者などの適切な権限を有するユーザに、プロジェクトに関連付けられるエンティティ(例えば、企業などの組織)を指定させることによって作成されてもよい。その後、管理者は、そのエンティティに関連付けられている物理的サイト(例えば、アムステルダムの物理的サイト)を追加してもよい。各物理的サイト又は物理的位置に関して、管理者は、その後、1つ以上の建物と、それらの関連住所及び他の識別詳細とを追加してもよい。各建物に関して、管理者はまた、総設備電力、待機総電力、エネルギーベースラインが動的であるか否かなどの、エネルギー設定情報を指定してもよい。各建物又は物理的サイトに関連付けられている、就業時間及び就業日数などの詳細もまた、指定されてもよい。システムプロジェクトアプリケーションモジュール140は、図6に関連付けられている説明で、より詳細に論じられる。
ユーザ管理アプリケーションモジュール150は、システム100Aに関連するユーザを管理するための、クラウドベースのソフトウェアアプリケーションである。ユーザは、自身の指定名称(例えば、インストーラー、管理者、プロジェクトマネージャ、専門家、インテーカー、又はエンドユーザ)に応じて、システム100Aに対する異なるレベルのアクセス権が認められてもよい。他の指定名称もまた、指定することが可能である。ユーザは、特定の建物に、又はプロジェクト全体に関連付けられてもよい。ユーザ管理アプリケーションモジュール150は、資格認定された個人又はエンティティが、プロジェクトデータベース170Aにアクセスして、プロジェクト階層に関連付けられるユーザ、あるいは、特定のプロジェクト階層内の特定の建物/サイトに関連付けられるユーザを作成、更新、及び削除することを可能にする、様々なユーザインタフェースを提供してもよい。例えば、企業Aのプロジェクト階層に関連付けられているユーザを管理する権限を有する管理者は、特定の名前、住所、年齢、及び他の詳細を有する、インストーラーの役割を有するユーザを追加して、このユーザが、企業Aのプロジェクト階層に関連付けられている様々なサイトの建物への、照明器具、スイッチ、及びゲートウェイなどのデバイスのインストールを実行するために、システムインテークアプリケーションモジュール130及びシステムプロジェクトアプリケーションモジュール140を利用することを可能にする、適切なアクセス権を割り当ててもよい。ユーザ管理アプリケーションモジュール150は、図6に関連付けられている説明で、より詳細に論じられる。
システムマップアプリケーションモジュール160は、プロジェクト階層に関連付けられている様々なシステムデバイス(例えば、照明器具、センサ、スイッチ、ゲートウェイ)を登録、ローカライズすると共に、それらのシステムデバイスにコンフィギュレーション情報展開するために、インストーラーであるユーザによって使用されてもよい、クラウドベースのソフトウェアアプリケーションである。このアプリケーションモジュールは、これらのデバイスに関連付けられるローカライズ情報、建物の様々なフロアのマップビュー、及び各フロアのフロアプラン上の関連システムデバイスの位置を提示してもよい。このアプリケーションモジュールは、インストーラーが、対話型のマップ/フロアプラン上に、システムデバイスをグラフィカルに追加、除去、又は再配置して、そのマップ/フロアプラン上に、これらのデバイスに関連付けられる他のコンフィギュレーション情報を描写することを可能にし得る。インストールを容易にするために、アプリケーションモジュール160は、インストーラーがインストールサイトにいる間に使用することが可能な、スマートフォン又はタブレットコンピュータなどのモバイルデバイス上に、そのフロントエンドをレンダリングしてもよい。システムマップアプリケーションモジュール160は、図6に関連付けられている説明で、より詳細に論じられる。
建物サーバ100は、物理的建物とクラウド115などのクラウドとの間のデータゲートウェイとして機能する、システムデバイスである。その多くのタスクの中でも特に、この建物サーバは、クラウドから建物内のシステムデバイスにコンフィギュレーション情報をルーティングし、それらのデバイスからクラウドにエネルギー消費データをルーティングし、クラウドとの一時的な接続損失に事前に対処するべくエネルギー消費データをバッファリングし、建物からクラウドに環境メトリックデータ及び診断データをルーティングするものであり、それらの環境メトリックデータとしては、例えば建物占有データが挙げられ、診断データとしては、例えば、感知診断データが挙げられる。建物サーバ100はまた、様々なシステム管理タスクも実行し得る。例えば、ゲートウェイに時刻同期を提供し、ソフトウェア/ファームウェアのアップグレードプロセスを管理し(例えば、クラウド115から入来するソフトウェア/ファームウェア更新トリガの処理、並びに、ゲートウェイ及び感知器用のソフトウェア/ファームウェアイメージの記憶)、建物全体にわたる機能(例えば、スケジューラ、ADR)を実装してもよい。建物サーバ100は、以下の外部インタフェースを使用してもよい:クラウド115からシステムデバイスのコンフィギュレーションデータを取得し、クラウド115に発見メッセージをプッシュし、様々なゲートウェイにソフトウェア/ファームウェアの更新について通知するための、MQTT。建物サーバ100はまた、クラウド115にデバイスを登録し、エネルギー使用及び他の環境メトリックデータをクラウド115に提供し、ゲートウェイ及び他のシステムデバイスにソフトウェア/ファームウェアの更新を送達するために、HTTPSを使用してもよい。建物サーバ100はまた、MQTTとネットワークプロバイダとの間でデータを交換するための、ZeroC(ICE)プロセス間通信フレームワーク(例えば、下位レベルDynaliteプロトコル)を採用して、アプリケーション間でセキュリティデータを交換してもよい。
ゲートウェイ110A又はゲートウェイ110Bは、ハードウェア、ハードウェアとコンピュータコード(例えば、ソフトウェア又はマイクロコード)との任意の組み合わせとして、又は完全にコンピュータコードとして実装されてもよい。このモジュールは、1つ又は複数のプロセッサ上で実行されてもよい。一部の実施形態では、ゲートウェイ110A又はゲートウェイ110Bのハードウェア実装は、STM32チップを含み得る。ゲートウェイ110A又はゲートウェイ110Bは、物理的構造の特定のフロアに関連付けられてもよく、そのフロアに配置されている照明器具などの複数のシステムデバイスからのデータを、送信及び/又は受信してもよい。一部の実施形態では、ゲートウェイ110A又はゲートウェイ110Bは、照明器具、センサ、及びHVACデバイスなどの多数の(例えば、1000個の)システムデバイスからのデータを、送信及び/又は受信してもよい。
ゲートウェイ110A又はゲートウェイ110Bは、様々な機能を提供するようにコンフィギュレーションされてもよい。例えば、照明器具をコミッショニングする際に使用するためのインタフェース(例えば、EnvisionIP)と別のインタフェース(例えば、RS−485規格)との間のゲートウェイを提供すると共に、様々なアプリケーション及びネットワークプロトコル間の変換に関するサービスを提供してもよい。多くの実施形態では、また、システム100A内の複数のゲートウェイ間でのデータのルーティングを容易にすることもでき、ゲートウェイ110A又はゲートウェイ110Bが、その制御下のデバイスが依然としてオンラインであるか否かを判定することが可能な、システム診断及び/又はハードウェアロールコールに関与してもよい。ゲートウェイ110A又はゲートウェイ110Bはまた、ローカルのスケジューリングタスク、並びに監視及び診断データの管理のために、オフラインデバイスのキャッシング及び/又は報告を担当してもよい。例えば、ゲートウェイ110A又はゲートウェイ110Bは、エネルギー消費及び占有に関して、物理的構造内の1つ以上の領域を監視し、その領域レベルについてのシステム健全性情報を診断及び報告してもよい。また、領域監視情報を記憶してもよい。
一部の実施形態では、ゲートウェイ110A又はゲートウェイ110Bは、システムの一部における、全てのDyNet及びEnvisionIPトラフィックを監視する。この情報を記憶及び/又はキャッシュして、この情報を他のシステムモジュールに転送してもよく、それにより、システム100Aは、任意の時点で、コミッショニングされた全てのシステムデバイスの状態の正確な全体像を有する。多くの実施形態では、ゲートウェイ110A及びゲートウェイ110Bなどの、複数のゲートウェイモジュールは、単一の建物サーバ100と通信可能にリンクされてもよく、各ゲートウェイは、建物の特定のフロアに関するフロアコントローラとして機能する。機能的には、ゲートウェイ110A又はゲートウェイ110Bは、以下の機能的構成要素に分割されてもよい:FW更新構成要素、NTPクライアント構成要素、WG診断構成要素、発見及び登録構成要素、並びにZigBeeクロック同期サーバ構成要素。FW更新モジュールは、同様に名付けられた建物サーバのモジュールのように、それ自体に関する、及び感知デバイスに関する、ファームウェア及びソフトウェアの更新の調整を主に担当している。このプロセスは、図9との関連において、更に詳細に説明される。NTPクライアント構成要素は、感知デバイスに時刻データを(例えば、環境メトリックデータにタイムスタンプするために)プッシュすることに関与するという点で、同様に名付けられた建物サーバ内のモジュールと同様である。ZigBeeクロック同期サーバモジュールもまた、時刻同期に関与し、その関連するタイムスタンプ及び時刻同期プロセスは、図7A〜図7Cに付随する説明で、より詳細に説明される。WG診断構成要素は、ゲートウェイのルーチン動作中に遭遇される、エラー又は他の異常な条件若しくは状態を報告することを、主に担当している。これらのエラー条件又は状態は、その後、更なる分析のために、建物サーバを介してクラウド(例えば、クラウド115)に報告される。最後に、発見及び登録構成要素は、建物サーバ及び/又はクラウドに、ゲートウェイが自身を登録することを可能にすることを、主に担当している。
デバイス101〜106は、サードパーティZigBeeデバイス、ZigBeeグリーン電力スイッチ、及びバッテリ駆動センサなどの、システムデバイスである。それらはまた、ゲートウェイ110A又はゲートウェイ110Bのような双方のゲートウェイ、並びに、照明器具ドライバ及び照明器具自体と通信することが可能な、発光デバイス及び感知デバイスも含む。感知器及び発光器は、ソフトウェア、ハードウェア、又はファームウェアとして実装されてもよく、照明器具/デバイスドライバの占有又は昼光制御のためのモジュール、照明器具/デバイスドライバを制御するためのアクチュエータ、アンビエント照明又は他の環境条件を感知するためのセンサ、クロック同期モジュール、存在する場合には、どのテンプレートが、それらの対応の照明器具/デバイスドライバに展開されているかを追跡記録するためのメカニズム、並びに、それらの対応の照明器具/デバイスドライバの挙動についての報告を作成するためのメカニズムを含み得る。
感知照明器具は、感知/発光デバイスの一例である。典型的には、センサ、光源、及び制御モジュールに関連付けられる。一部の実施形態では、センサ及び光源は、同じデバイス又はハウジング内部に配置されている。一部の実施形態では、制御モジュールは、センサ及び/又は光源と同じデバイス又はハウジング内部に収容されている、1つ以上のプロセッサ上で実行される、コンピュータコード(例えば、ソフトウェア又はマイクロコード)を含む。光源は、オン/オフ、調光、及び調節可能な白色光又は有色光の生成などの、1つ以上の光作動機能を実行することが可能であってもよい。センサは、例えば、昼光、占有、IR、二酸化炭素、湿度、及び温度のうちの1つ以上を感知することが可能なセンサである。制御モジュールは、1つ以上の光源、センサ、ゲートウェイ、及び他のIP照明器具などの、他のモジュール及びデバイスの挙動を制御するための、1つ以上の制御機能を提供する。更には、IP照明器具は、システム100Aの他のモジュールと通信するための、1つ以上の外部インタフェースを提供することができる。
プロジェクト170Aは、システム100Aに関連付けられた作成済みのプロジェクト階層に関連するデータを記憶して、アクセス可能にさせるデータベースである。このデータベースには、クラウド115を介して、建物サーバ100などの外部エンティティ、並びに、システムインテークアプリケーションモジュール130、システムプロジェクトアプリケーションモジュール140、及びシステムマップアプリケーションモジュール160などの、クラウドベースのアプリケーションモジュールがアクセス可能である。データ170Bは、様々な感知デバイスによって収集されたエネルギー使用に関連するデータ、並びに、空間及びリソースの使用に関連する集約/分析データを記憶して、アクセス可能にさせるデータベースである。分析データはまた、データ170Bがアクセス可能な他のデータリポジトリ内に記憶されてもよく、又は、データ170Bから抽出されたデータを使用して、オンザフライで作成されてもよい。データプラットフォームモジュール180は、工業グレードのビッグデータ照明又はエネルギーインフラストラクチャに、多様なソースからの様々なフォーマットのデータを効率的に管理して効率的に取得するための、ソフトウェア構造及びハードウェア構造を提供する、データ取得、管理、及び記憶メカニズムである。その様々な特徴は、図2及び図3で、より詳細に論じられる。
クラウド接続性サービスモジュール190は、クラウド内のアプリケーション及びクラウドがアクセス可能なデータリソース(例えば、システムエネルギーアプリケーションモジュール120、プロジェクトデータベース170A、及びデータプラットフォームモジュール180)と、建物サーバ100との間の接続性を可能にする。様々な実施形態では、このモジュールは、MQTTプロトコルを使用して、クラウド115と建物サーバ100との間で、デバイスのコンフィギュレーション及び制御をやり取りする。デバイス登録、並びに、建物サーバ100、ゲートウェイ110A及びゲートウェイ110B、及び感知デバイスに関するファームウェア又はソフトウェア更新情報、並びに、建物/エネルギー使用メトリックが、HTTPsプロトコルを使用して、クラウド115と建物サーバ100との間で転送される。
以下は、システム100Aの例示的な使用の簡単な説明である。上位レベルでは、インストーラー(例えば、インストーラーの役割を割り当てられたユーザ)は、物理的建物内にいる間に、例えば、そのインストーラーのモバイルデバイス上にフロントエンドがレンダリングされている、システムインテークアプリケーションモジュール130を使用して、最初に建物サーバ100をインストールする。その後、建物サーバ100は、クラウド115内の登録サービスにアクセスして、自身を登録する。登録プロセスは、図8A及び図8Bに関連付けられている説明で、より詳細に説明される。本質的には、登録プロセスは、データ報告の目的のための、建物サーバ100とクラウド115との間の接続性を確保する、単純なブートストラップのプロセスを伴う。インストーラーが、建物サーバ100のインストールに成功した後、インストーラーは、ゲートウェイ(例えば、110A及び110B)をインストールして、それらを建物のIPバックボーンに接続する。ゲートウェイの電源がオンにされると、それらは、建物サーバ100を自動的に「発見」することが可能である。これらのゲートウェイは、その後、建物サーバ100を使用して、それら自身をクラウド115に登録することになる。このことがどのように行われるかについての詳細は、本出願における他の図に関連して論じられる。インストールの成功後には、クラウド内の(例えば、プロジェクト170Aデータベース内に記憶されている)関連するプロジェクト階層は、システム100Aの動作に関して必要な全てのデータを有することになる。ZigBee(登録商標)プロトコルは、環境メトリックデータ、並びにファームウェア/ソフトウェア更新データを、システム/感知デバイスとゲートウェイとの間で通信するための、最も一般的なプロトコルである。ゲートウェイ及び建物サーバはまた、それらゲートウェイ及び感知デバイスに関するファームウェア/ソフトウェア更新データを通信するために、並びに、デバイス/エネルギー使用メトリックなどの環境メトリックデータを通信するために、他の通信プロトコル(例えば、TLS及びHTTPs)も使用する。
次に、インストーラーは、タブレットコンピュータなどのポータブルデバイス上で動作する、システムマップアプリケーションモジュール160などのクラウドベースのアプリケーションを使用して、その建物内に進入する。インストーラーは、建物サーバ100のQRコードをスキャンする。このQRコードは、建物サーバ100に関連付けられている一意識別子を含む。アプリケーションモジュール160は、プロジェクト170Aデータベースから、建物サーバ100に関連付けられているプロジェクト階層データを取得して、アプリケーションモジュール160上に示されているフロアプラン上での、建物サーバの位置のインストーラーの選択に基づいて、建物サーバ100をローカライズし、必要に応じて建物サーバ100についての追加情報(例えば、ローカライズ情報)を使用して、プロジェクト170Aデータベースを更新することが可能である。
次に、インストーラーは、ZigBee照明器具などの感知デバイスをローカライズする。システムマップアプリケーションモジュール160などのアプリケーションは、プロジェクト170Aデータベースから、関連のプロジェクト階層データを取得し、インストーラーは、各照明器具へと物理的に進んで、フロアプラン上で、その照明器具を表すアイコンを選択する。IRリモートコントローラなどのデバイスを使用して、次いで、インストーラーは、ZigBeeネットワークなどのパーソナルエリアネットワークに、そのデバイスを追加することができる。次いで、その物理的照明器具は、ZigBeeネットワークを使用して、割り当てられたゲートウェイ(例えば、ゲートウェイ110A)と通信することができる。どのゲートウェイがどのシステムデバイスを担当するべきかなどの、コンフィギュレーション情報は、プロジェクト170Aデータベース内に記憶されている。したがって、照明器具が選択される場合、クラウド115は、そのデバイスをゲートウェイに正式に追加するために、どのゲートウェイ接続が開かれる必要があるかを、既に「知っている」。ゲートウェイ−システムデバイスのローカライズは、二重プロセスである。クラウド115は、建物サーバ100を介して、特定のゲートウェイに、それ自体に照明器具などのデバイスを追加するためのコマンドを送信する。デバイス又は照明器具自体も、特定のゲートウェイのZigBeeネットワークに参加することを試み、そのネットワークに参加することが成功すると、その特定のゲートウェイに自身を告知する。
上記で簡単に説明されたように、ローカライズが完了されると、クラウド115は、建物サーバ及びゲートウェイを介して、様々なシステム/感知デバイスに対してコンフィギュレーションデータを展開することになる。コンフィギュレーションデータは、例えば、照明器具などのデバイスの挙動を制御するデータを含む。そのようなデータは、ある領域が現在占有されているとセンサが示していることに対して、どのようにデバイスが反応するべきかについての情報を含む。コンフィギュレーションの展開が完了されると、この事実は、システムマップアプリケーションモジュール160上に視覚化されることになる。例えば、自身のコンフィギュレーションデータの受信が成功した照明器具は、変更されたアイコンによって表されることになる。ローカライズ及びコンフィギュレーションデータの展開が完了されると、インストーラーは、それらのローカライズ及び展開の諸態様が成功したか否かを検証するオプションを有する。例えば、アプリケーションモジュール160は、展開された照明器具の挙動を試験するための、誘導試験プロシージャを提供する。何らかのそのような試験が成功して完了されると、その建物は、コミッショニングされていると見なされる。
データ取得構成要素及びインフラストラクチャ
図2は、システム100Aのデータプラットフォームモジュール180で使用されるような、データ取得目的のための情報フローのシステム(200A)を示す。このシステムは、内部アクセス可能な照明インフラストラクチャ又は他の外部ソースのいずれかから、データを確実に取り込み/取得するための、有限数のメカニズムに関する標準化をもたらす。データの外部ソースの例は、Twitter(登録商標)及びFacebook(登録商標)などのソーシャルネットワークからのデータ、気象データ、セキュリティデータ、並びに、会議室スケジュールなどのスケジューリングデータである。システム200Aは、本質的に、データフローが、バッチ処理及びリアルタイム又はほぼリアルタイムの双方で、下流の消費に接続されることを可能にする、内部プラミングである。リアルタイム又はほぼリアルタイムのデータは、低レイテンシのリアルタイムアプリケーション体験を可能にすることになる。本明細書で説明されるような、物理的環境のクラウドベースの監視及び制御のためのシステム、方法、及び装置との関連におけるデータ取得は、多様なソースからの拡張可能かつ確実なデータの取り込みを容易にする、メカニズム又はデータ取得サービス220A〜220Eを提供することに焦点を合わせる。これらのメカニズムは、HTTP(S)マイクロバッチ取り込み(220A)、ストリーミングデータ取り込み(220B)、バルクデータ取り込み(220C)、ソーシャルコネクタ(220D)、及びウェブコンテンツハーベスタ(220E)である。
HTTP(S)(220A)インタフェース及びストリーミング(220B)インタフェースの双方との簡略化された対話を可能にするために、クライアントによって、ライブラリ(例えば、SDK)が使用されてもよい。HTTP(S)マイクロバッチ取り込み(220A)の一例は、例えば、データファブリック230内に取り込むための、標準的なインターネットに対応するHTTPSベースのデータを提供することが可能な、アプリケーションプログラミングインタフェース(API)である。これは、標準的なHTTPセマンティクスを使用してもよく、典型的には、小さいペイロード用に設計され、高い水平方向拡張性要件を有する。例えば、HTTP(S)マイクロバッチ取り込みAPI220Aは、1秒当たり数万の要求に適応するように設計されてもよい。このAPIは、典型的には、デバイスtoサーバAPIと見なされてもよい。ストリーミングデータ取り込み(220B)の一例は、永続的又は長寿命のデータネットワーク接続を介したデータ取得用に設計されている、サービス又はAPIである。このタイプのデータ取り込みは、典型的には、サーバtoサーバである。バルクデータ取り込み(220C)の一例は、典型的には、ラージバイナリオブジェクトの取り込みのための、SFTP標準準拠のインタフェースである。ラージバイナリオブジェクトの例としては、大容量zipファイル、及び長尺のビデオクリップが挙げられる。ソーシャルコネクタ(220D)の一例は、ソーシャルネットワークデータサービス210Cなどのサービスが、データファブリック230にアクセスすることを可能にするように設計された、APIである。これは、主に、Twitter(登録商標)及びFacebook(登録商標)などのソーシャルネットワークからの、リアルタイムのデータの取り込みを可能にする。所定の基準に基づいて、ソーシャルネットワークからの特定のタイプの対象データが、220DのAPIを使用して取り込まれることが許可される。この情報は、例えば、人口統計学的情報若しくはユーザプロファイル情報、又は位置情報であってもよい。また、ウェブコンテンツハーベスタ(220E)の一例は、分析目的での、インターネットウェブサイトからコンテンツを抽出するためのサービス又はAPIである。例えば、特定の領域内の建物における典型的なエネルギー使用が、システム100Aなどのシステムによって監視されている近傍の建物におけるエネルギー使用を評価する基準として使用されてもよい。
デバイス及びクライアント200は、ソフトウェア、ファームウェア、及びハードウェアのエージェントを表す。例えば、データは、直接配信されてもよく、あるいは、ゲートウェイ又はプロキシとして機能する、ビジネスアプリ/サービスを介して取得されてもよい。一部のソースからのデータは、システム200Aへの取り込みのために、クラウドベースのアプリ/サービス210A(例えば、サーバ/アプリのログ)などのクラウド/サーバを介してルーティングされてもよい。しかしながら、このクラウドベースのアプリ/サービス210Aのプロキシ手法は、そのサービスが自身でデータを消費して、何らかの統合アクションを実行すること(例えば、HTTPトランザクションの結果としてデータベースを更新すること)を排除するものではない。しかしながら、殆どのそのような場合には、クライアントに由来する根底的メッセージ特性もまた、下流の分析及び/又は消費を可能にするように、データ取得システム200Aに到達する。デバイス&クライアント(200)からのデータがルーティングされてもよい、他のクラウド/サーバの例としては、FTPサーバ(210B)、ソーシャルネットワークデータサービス(210C)、及びインターネットウェブサービス(210D)を挙げることができる。FTPサーバ210Bの例としては、クライアントとサーバとの間でファイルを転送するために、FTPネットワークプロトコル、又は、その任意の派生物若しくは拡張物(例えば、FTPS、SSH、TFTP、又はSFTP)を使用する、任意のサーバが挙げられる。ソーシャルネットワークデータサービス210Cの例としては、Twitter(登録商標)又はFacebook(登録商標)のようなソーシャルネットワークによって提供されるデータサービスが挙げられる。インターネットウェブサービス210Dの例としては、電子デバイスによって、ワールドワイドウェブ(WWW)を介して通信している別の電子デバイスに提供される、任意のサービスが挙げられる。インターネットウェブサービス210Dは、XMLなどの機械読み取り可能なファイルフォーマットを転送するために、HTTPプロトコルを使用してもよい。インターネットウェブサービス210Dは、エンドユーザにコンテンツ及び/又はユーザインタフェースを提供するために、1つ以上のデータベースサーバにウェブベースのインタフェースを提供する、ウェブサービスである。
データファブリック230は、データ生産者とデータ消費者との間に存在するデータパイプである。これは、データ生産者がデータ消費者から切り離されることを可能にする、データブローカと、アクセスを制御すると共に、適切なデータセットが適切なデータ消費者に配信されることを保証することが可能な、ルーティング構成要素とを含む。ルーティング構成要素は、複数の同時の生産者及び消費者をサポートする、水平方向に拡張可能な、高可用性、高耐久性の永続的待ち行列を含む。これは、インバウンドメッセージの受領のためのAPI/インタフェース、並びに、内部消費のためのAPI/インタフェースを提供する。データファブリック230は、新たなデータセットをコンフィギュレーションして、必要に応じてデータシンクを新たなデータセットに関連付けることができるという点で、データ駆動型である。したがって、典型的には、データファブリック自体の内部でのデータフローのコンフィギュレーションを管理するために、データファブリックサブシステムを再展開する必要はないはずである。ルーティング構成要素はまた、各メッセージを送信するべきか否か、及び、どこに(例えば、どのデータシンクに)送信するべきかを解明することも担当する。実際には、ルーティングするだけではなく、多重送信もする(例えば、同じメッセージを、必要に応じて複数の宛先に送信することが可能である)。データシンクは、標準的な既製のデータシンクであってもよい。例えば、データシンクは、S3ストレージへのメッセージ(セット)の書き込み(照合)のために使用されるものであってもよい。データシンクはまた、下流のアプリケーション処理による、ほぼリアルタイムのメッセージの消費を可能にするものであってもよい。一般原則として、全てのデータは(ソースにかかわりなく)、データファブリックを介してルーティングされる。小さいデータ(KB)に関しては、データは、データファブリックメッセージ内で「インライン」で配信される。より大きいデータセットに関しては、データは、外部ストレージにシリアル化され、データファブリックメッセージを介して「ポインタ」が提供される。この手法は、より大きいデータセット(例えば、オーディオ、画像、及びビデオなどのバイナリコンテンツ)の、ほぼリアルタイムの処理を可能にするために使用されてもよい。
単に例示目的で、ここで、図2に示されるシステム200Aによる、データフローの一実施例を提供する。オフィスが非占有状態になっていることを、占有センサが判定し、その結果、照明器具は、光レベルを所定のレベルまで低下させる。オフィスが使用中であった間の連続的期間にわたって収集されたエネルギー使用メトリックが、タイムスタンプされて、適切な無線ゲートウェイ(例えば、図1のゲートウェイ110A)に、例えばZigBee(登録商標)通信プロトコルを介して送信される。その後、無線ゲートウェイは、その建物の同じフロア上の他のオフィスから、同様のメトリックデータを取得した後、HTTPSプロトコルを介して、この情報を建物サーバ(例えば、図1の建物サーバ100)に通信する。建物サーバは、HTTPSプロトコルを使用して、それらのメトリックデータをクラウドベースのアプリケーション210Aに通信する。クラウドベースのアプリケーションサービス210Aは、そのアプリケーションサービスにデータを送信する建物サーバを認証することが必要とされてもよく、その後、自身に提示されるデータのタイプに応じて、HTTPSマイクロバッチ取り込み(220A)API又はストリーミングデータ取り込みAPI(220B)のいずれかに、適切な関数コールを呼び出してもよい。その後、データは、データファブリック230によって、更に処理されてカタログ化され、図1に示されるデータデータベース170Bなどの、クラウドアクセス可能なデータベース内に記憶される。
図3は、図1のデータプラットフォームモジュール180によって利用される、マスタデータストレージの一実施形態を示す。一般に、データプラットフォームモジュール180内に取り込まれた全てのデータは、そのデータプラットフォームの一次ストレージ、実際には、Amazon Web Service(AWS)のSimple Strage Service(S3)の最上部の組織化層に永続化されてもよい。データプラットフォームモジュール180の多くの実施形態は、可用性及び持続性のために、そのようなクラウドストレージサービスに依存してもよい。更には、プラットフォームは、そのプラットフォーム内に取り込まれるデータのタイプに従って、異なるクラウドストレージの場所へとデータを分別して組織化するための、データ組織構成体を導入する。
図3は、様々なソース(例えば、データファブリック310A、データアクセスサービス310B、及びデータサポートサービス310C)からのデータが、データプラットフォームモジュール160の一体部分であるマスタデータストレージ及び関連サービスによって、どのように処理されるかを示す。データファブリック310Aは、図2との関連において説明された、任意のタイプのデータファブリック230である。データサポートサービス310Bは、ストレージ340内に記憶されているデータへのアクセスを制御する、インフラストラクチャである。その主目的は、ストレージAPI330へのコールを呼び出しているパーティが、必要な権限/クリアランスを有しているか否かを判定するために、アクセス制御又は認証サービスを提供することである。ストレージAPI330は、データファブリック310Aが、その機能インタフェースを呼び出す際に、そのデータファブリック310Aから多様なデータを受信することが可能である。次いで、それらのデータ自体に対して、必要に応じて特定のデータを集計するか、又は必要に応じて匿名化するなどの、様々なアクションを実行してもよく、その後、それらのデータは、索引付けされて、持続性の拡張可能なオンラインストレージ340内に記憶される。監査&ロギングモジュール320は、主に、ストレージAPI330へのコールの記録又はロギングを担当する。このAPIへのコールを開始するパーティについての詳細、並びに、そのパーティをデータアクセスサービス310Bが認証した結果もまた、モジュール320によって記録される。持続性ストレージモジュール340に対する読み取り及び書き込みもまた、ロギングモジュール320によって記録されてもよい。
データアーカイブサービス350は、データがアーカイブされる(例えば、ロングターム高レイテンシストレージ360に送信される)か又は削除されることが可能な場合に適用される、ポリシー又は規則と、(例えば、ストレージ360などのロングタームストレージからの)データをアーカイブ又は復元するためのメカニズムとを含む、及び/又は実施する、ソフトウェア又はファームウェアモジュールを表す。換言すれば、データアーカイブサービス350は、データファブリックによって取り込まれ、次いで持続性ストレージ340に記憶されるデータに対して、所定のライフサイクルポリシーを実施する。持続性ストレージ340は、典型的には、様々なソースからの多種多様なデータ(例えば、家庭からのHue(登録商標)データ)を、それらのデータを混在させることなく、組織化して記憶するために使用される。本質的に、持続性ストレージ340は、それらのデータ自体、並びに、それらのデータに関連付けられているメタデータを、別個に維持するための方法論を実装する。記憶及び分析の目的でデータを区別するための、多くの方法が存在している。例えば、データ階層の最上レベルは、大規模なオフィスパークプロジェクトデータを、個人の家庭に関して得られるデータから区別することができる。データ階層の第2のレベルは、顧客のアイデンティティ又は地理的所在地に基づいてデータを区別することによって、実施されてもよい。図3のデータセット1及びデータセット2は、持続性ストレージ340による容易なアクセス可能性のために、混在されずに別個に維持されている、異なるデータセットを表す。
デバイスのコミッショニング
図4は、図1のシステム100Aなどの、物理的環境のクラウドベースの監視及び制御のためのシステム内で使用するためのデバイスを、コミッショニングする方法の一実施形態を示す。ステップ410で、システム100Aに関連して説明されたインストーラーなどの、インストーラーは、図1のシステム100Aに関連して説明されたシステムインテークアプリケーションモジュール130などの、クラウドベースのコミッショニングアプリケーション上で、フロアプラン上のシステムデバイス(例えば、照明器具)を選択する。インストーラーは、この時点で、例えばシステム100Aによって監視されることになる建物の、内部に存在している。アプリケーションモジュール130のユーザインタフェースは、例えば、インストーラーによって使用されるスマートフォン又はタブレットなどのモバイルデバイス上に表示されてもよい。ステップ420で、インストーラーのモバイルデバイス上で動作中のコミッショニングアプリケーションは、フロアプラン上の選択されたシステムデバイスの位置を、クラウドベースのコミッショニングアプリケーション(例えば、クラウドベースのシステムインテークアプリケーションモジュール130のバックエンド)に送信する。ステップ430で、クラウドベースのコミッショニングアプリケーションは、フロアプラン位置を(例えば、インストーラーが現時点で中にいる建物にリンクされているプロジェクト階層に関連付けられた、プロジェクト170Aデータベース内に)保存して、そのプロジェクト階層内の建物に関連付けられている建物サーバ(例えば、システム100Aの建物サーバ100)に、その建物サーバに関連付けられている正しいゲートウェイへのネットワーク接続を開くように指示する。そのような状況では、建物サーバは、その建物のフロアプラン上の選択されたシステムデバイスの物理的位置に基づいて、正しいゲートウェイ(例えば、システム100Aのゲートウェイ110A又はゲートウェイ110B)を識別することが可能である。ステップ440で、建物サーバは、適切なゲートウェイに、ネットワークを開く要求を送信する。ステップ450で、ゲートウェイは、そのネットワーク(例えば、ZigBee(登録商標)ネットワーク)を開くことによって応答する。ゲートウェイのネットワークを開くことが成功したことに続けて、ステップ460で、インストーラーは、IR遠隔制御デバイスを使用して、そのゲートウェイのネットワークに、システムデバイスを「追加」する。インストーラーは、IRリモコンを対象のデバイスに向けて、次いで、そのIR遠隔制御デバイス上の「追加」ボタンを押すことによって、このことを行ってもよい。この時点で、システムデバイス内の論理回路は、そのシステムデバイス(例えば、照明器具)がゲートウェイのオープンネットワークに追加されることを望んでいることをブロードキャストし、ゲートウェイは、そのゲートウェイの関連システムデバイスの群に、このシステムデバイスからの識別情報をローカルで追加すると共に、システムデバイスの識別情報を、建物サーバにも送信する(ステップ470)。ステップ480で、建物サーバは、例えば、クラウド接続性サービスモジュール190及び/又はデータプラットフォームモジュール180を介して、クラウド(例えば、クラウド115)に、システムデバイスの識別情報を(例えば、MQTT又はHTTPsプロトコルを介して)送信する。ステップ490で、システムインテークアプリケーションモジュール130などの、クラウドベースのアプリケーションは、システムデバイスの識別情報を、ステップ410でインストーラーによって当初より示されていたフロアプラン上の位置と結び付けて、そのインストーラーのモバイルデバイス上で実行中の関連アプリケーションに、確認メッセージを送信する。この確認メッセージは、例えば、システムデバイスのコミッショニングが成功したことを示し得る。
デバイスのローカライズのユースケース
上述のように、インストーラーは、システムマップアプリケーションモジュール160などのアプリケーションの助けを借りて、建物サーバ100並びにゲートウェイ110A及びゲートウェイ110Bをローカライズすることができる。このローカライズは、QRコードを使用して達成されてもよい。その一方で、照明器具及び壁スイッチなどの他のシステムデバイスは、以下のユースケースで説明されるように、IR技術又はボタンの押下を使用してローカライズされてもよい。
典型的ユースケース
図5Aは、システムデバイス(例えば、天井取り付け照明器具などの感知デバイス)に関する、ローカライズのユースケースを示す。図5Aに示されるステップでは、ユーザ(例えば、インストーラー)は、システムマップアプリケーションモジュール160などのクラウドベースのアプリケーションモジュールのユーザインタフェース上の、システムデバイスを表しているアイコンをタップする(ステップ510A)。これに応答して、クラウドベースのアプリケーションモジュールは、そのシステムデバイスに関連付けられている無線ゲートウェイ(例えば、ゲートウェイ110A)の無線ネットワーク(例えば、ZigBeeネットワーク)を開く(ステップ520A)。次いで、ユーザは、例えば遠隔制御デバイスを使用して、そのシステムデバイスに赤外線(IR)トリガを送信する(ステップ530A)。次いで、システムデバイスは、そのIRトリガが受信されたことを、ユーザに視覚的に(例えば、所定の回数で点滅することによって)示す(ステップ540A)。システムデバイスは、無線ネットワークに参加して、クラウドベースのアプリケーションモジュールにSignOnメッセージを送信する(ステップ550A)。クラウドベースのアプリケーションモジュールは、そのSignOnメッセージを受信して、ローカライズの成功を示すために、ユーザに視認可能なユーザインタフェース上のアイコンの表示を変更する(ステップ560A)。クラウドベースのアプリケーションモジュールはまた、システムデバイスに、ローカライズの成功を視覚的に、又は他の方式で示すように要求を送信する(ステップ570A)。例えば、システムデバイスが照明器具である場合には、その照明器具が光出力を10%まで減光することを要求してもよい。その要求を受信すると、システムデバイスは、ローカライズの成功を示すことに応じる(ステップ580A)。システムデバイスは、この時点で、ローカライズされていると見なされる。多くの実施形態では、システムデバイスのローカライズの成功後に、展開が自動的に開始される。システムデバイスの展開が完了されると、クラウドベースのアプリケーションモジュール上の、その対応するアイコンは、ユーザにフィードバックを提供するために、その「展開済み」状態を示すべく再び変化することになる。一部の実施形態では、いったんシステムデバイスの展開が成功すれば、ユーザに対して、展開の視覚的な確認が更に行われることはない。
一部の状況では、ローカライズが完了される前、及び対象のシステムデバイスがIRトリガの受信を示した後のいずれかの時点で、第2のトリガが、システムデバイスによって受信される。そのような状況において、多くの実施形態では、システムデバイスは、自身の関連する無線ゲートウェイに、第2のSignOnメッセージを送信することになる。しかしながら、クラウドベースのアプリケーションモジュールは、多くの実施形態では、第2のSignOnメッセージを受信して、そのSignOnメッセージが、既にローカライズ済みか又はローカライズ待ちのシステムデバイスからであることを認識し、その第2のSignOnメッセージを単純に無視することを選択する(例えば、それがエラーであると推定される)。
異なる位置上の感知器からの第2のSignOn
図5Bに示されるユースケースでは、システムデバイスは、位置Aに既にローカライズされている(例えば、システムマップアプリケーションモジュール160上に特定のアイコンで示されている)が、それにもかかわらず、ユーザは、そのシステムデバイスを、別の位置Bにローカライズすることを望む(ステップ510B)。ユーザは、このことを、アプリケーションモジュール160によって提示されているUI内の、位置Bを表す別のアイコンをタップすることによって示してもよい。これに応答して、クラウドベースのアプリケーションモジュールは、関連する無線ゲートウェイ(例えば、ゲートウェイ110A)の無線ネットワーク(例えば、ZigBeeネットワーク)を開く(ステップ520B)。次いで、ユーザは、そのシステムデバイスに、遠隔制御デバイスで赤外線トリガを送信し(ステップ530B)、システムデバイスは、そのIRトリガが受信されたことを、ユーザに視覚的に示すことによって(例えば、所定の回数で点滅することによって)応答する(ステップ540B)。システムデバイスは、以前に位置Aにローカライズされた際、その関連する無線ゲートウェイの無線ネットワークに既に参加している可能性があるが、そのシステムデバイスは、依然として、自身に対応する新たな位置(位置B)を示すSignOnメッセージを、クラウドベースのアプリケーションモジュールに送信する(ステップ550B)。クラウドベースのアプリケーションモジュールは、システムデバイスが、位置Aに対応する位置に既にマッピングされている場合であっても、位置Bに対応するシステムデバイスの位置情報を有する、そのSignOnメッセージを受信する。SignOnメッセージを受信すると、クラウドベースのアプリケーションモジュールは、様々な実施形態では、そのシステムデバイスが以前にローカライズされていることをユーザにプロンプト表示して、ユーザがシステムデバイスを新たな位置(例えば、位置B)に再度ローカライズする(例えば、移動させる)ことを望むか否かを問い合わせる(ステップ560B)。ユーザが、システムデバイスを移動させることを実際に望むことを示す場合には、そのシステムデバイスは、位置Bにローカライズされることになり、そのシステムデバイスの新たな展開は、そのシステムデバイスの以前に開始されたいずれかの展開が完了した時点で、開始することになる(ステップ570B)。このシステムデバイスの展開が完了されると、クラウドベースのアプリケーションモジュール上の、そのシステムデバイスに関連付けられているアイコンは、そのシステムデバイスの新たな展開状態をユーザに示すように、変化することになる。多くの実施形態では、システムデバイス自身からは、その展開が完了されたことを示すための視覚的な確認が行われることはない。ユーザが、システムデバイスを移動させる(再度ローカライズする)ことを望まないことを示す場合には、システムデバイスのローカライズの変更は実施されず、そのデバイスは、位置Aにローカライズされたまま維持される(ステップ580B)。
既にローカライズ済みのアイコンが選択されている(又は、何も選択されていない)場合に、感知器をトリガする
図5Bに示されるシナリオに関連して、変更形態を考察することができる。互いに近接して配置されている、2つのシステムデバイス(感知器A及び感知器B)が存在することを考察する。例えば、それぞれが、天井取り付け照明器具であってもよい。感知器Bは、クラウドベースのアプリケーションモジュール(例えば、システムマップアプリケーションモジュール160)上の位置Bに、既にローカライズされていると想定する。また、この変更されたシナリオでは、感知器Bのゲートウェイに関連付けられた無線ネットワーク(例えば、ZigBee(登録商標)ネットワーク)が開かれていると想定する。この時点で、ユーザは、未だローカライズされていない感知器Aに、遠隔制御デバイスを使用して、赤外線(IR)トリガを送信する。感知器Aは、そのIRトリガを受信したことを(例えば、3回点滅することによって)示す。感知器Aはまた、無線ネットワークに参加して、クラウドベースのアプリケーションモジュールによって受信されるSignOnメッセージを送信する。この時点で、クラウドベースのアプリケーションモジュールは、感知器(感知器A)からのSignOnメッセージを受信しているが、感知器Aがローカライズされるための関連する位置は受信していない。そのような状況において、多くの実施形態では、クラウドベースのアプリケーションモジュールは、「点滅フロー」シーケンスに入ってもよい。そのようなシーケンスでは、ローカライズされていない感知器のリストが提示されてもよい。本シナリオにおける第1及び唯一の感知器(感知器A)は、クラウドベースのアプリケーションモジュールから「点滅」メッセージを受信することになる。これに応答して、ユーザは、そのアプリケーションモジュールのUI上で、点滅する感知器Aに対応するアイコン(またそれゆえ、位置)を示すことが必要となる。これに応答して、アプリケーションモジュールは、その示された位置に感知器Aをローカライズするように進む。
ローカライズされていないアイコンが選択されている(又は、何も選択されていない)場合に、複数の感知器をトリガする
図5Cは、ローカライズのために使用されるクラウドベースのアプリケーションモジュール(例えば、システムマップアプリケーションモジュール160)上で位置/アイコンが選択されていない場合に、複数のシステムデバイス(例えば、感知器)がトリガされる、シナリオ又はユースケースを示す。このユースケースはまた、ローカライズされていないアイコン/位置がアプリケーションモジュール上で選択されている状態で、複数のシステムデバイスがトリガされる場合の、イベントのシーケンスを決定するために使用されてもよい。
ステップ510Cで、クラウドベースのアプリケーションモジュール上で位置を選択することなく、ユーザ(例えば、インストーラー)は、遠隔制御デバイスを使用して、2つ以上のシステムデバイス(例えば、感知器)にIRトリガを送信する。ステップ520Cで、それら2つ以上のシステムデバイスは、それらがIRトリガを受信したことを、(例えば、それらのライトを3回ずつ点滅させることによって)視覚的に又は他の方式で示す。それら2つ以上のシステムデバイスは、それらのゲートウェイデバイスに関連付けられているオープン無線ネットワークに参加し、各システムデバイスは、その無線ネットワークを介して、SignOnを示すメッセージ(例えば、SignOnメッセージ)を送信する(ステップ530C)。クラウドベースのアプリケーションモジュールは、それら2つ以上のSignOnの指標を受信して、例えば、それらのSignOnメッセージ内の識別情報に基づいて、そのアプリケーションモジュールのUI上の対応するシステムデバイスを識別する(ステップ540C)。識別された対応するシステムデバイスは、トリガされた物理システムデバイスの仮想表現である。ステップ550Cで、トリガされた2つ以上のシステムデバイスのうちの第1のシステムデバイスは、それ自身を、ユーザに対して(例えば、点滅し続けることによって)視覚的に又は他の方式で識別させる。このことは、クラウドベースのアプリケーションモジュールが、識別された対応する第1のシステムデバイスに、点滅を開始する要求を送信することによるものであってもよい。これに応答して、ユーザは、アプリケーションモジュールのUI上で、どの位置/アイコンを、その点滅している(又は、他の方式で注意喚起している)物理システムデバイスに関連付けるかを指示することになる(ステップ560C)。ステップ570Cで、クラウドベースのアプリケーションモジュールは、第1のシステムデバイスを、ユーザの選択した位置/アイコンにローカライズするように進む。ローカライズが成功すると、そのシステムデバイスはまた、展開されることになる。クラウドベースのアプリケーションモジュールは、トリガされた2つ以上のシステムデバイスと共に、それらトリガされた2つ以上のシステムデバイスに対応するものとしてクラウドベースのアプリケーションモジュールによって識別されたシステムデバイスのそれぞれを、上述の方法で巡回することにより、ユーザは、それらトリガされたシステムデバイスのそれぞれをローカライズする機会を得ることになる。
既に1つがローカライズされている、複数の感知器をトリガする
図5Cに示され、上述されたものと同様のユースケースで、ユーザ(例えば、インストーラー)が、クラウドベースのアプリケーションモジュール(例えば、システムマップアプリケーションモジュール160)上で、位置/アイコン(例えば、アイコンA)を既に選択していることを考察する。この時点で、少数のシステムデバイス(例えば、感知器A及び感知器B)に関連付けられているゲートウェイ(例えば、ゲートウェイ110A)の無線ネットワーク(例えば、ZigBee(登録商標)ネットワーク)が、開かれていると想定する。次いで、ユーザは、遠隔制御デバイスを使用して、感知器A及び感知器Bの双方に赤外線(IR)トリガを送信する。これに応答して、感知器A及び感知器Bは、そのIRメッセージが受信されたことを、(例えば、3回点滅することによって)視覚的に又は他の方式で示す。それらの感知器は、その後、オープン無線ネットワークに参加し、それぞれがクラウドベースのアプリケーションモジュールにSignOnメッセージを送信する。アプリケーションモジュールは、1つが感知器AのIDに関連付けられており、もう1つが感知器BのIDに関連付けられている、2つのSignOnメッセージを受信する。しかしながら、感知器Aは、既にアイコンAにローカライズされているため、アプリケーションモジュールは、感知器AのSignOnメッセージを単純に無視してもよい。このシナリオでは、他の1つの感知器(感知器B)のみが残されているため、感知器Bは、アイコンAに関連付けられている位置に、直ちにローカライズされることが可能である。ローカライズの成功後には、感知器Bの展開が開始されることが可能である。
ローカライズ中の潜在的問題
更なるシナリオでは、ユーザ(例えば、インストーラー)が、クラウドベースのアプリケーションモジュール(例えば、システムマップアプリケーションモジュール160)のUI上のアイコン(アイコンA)をタップしたと想定する。その後、ゲートウェイ(例えば、ゲートウェイ110A)に関連付けられている無線ネットワークが、アプリケーションモジュールによって開かれる。ユーザは、遠隔制御デバイスから、システムデバイス(感知器B)に、IRトリガを送信する。感知器Bは、例えば3回点滅することによって、そのIRメッセージの受信を示す。この時点で、例示目的で、ローカライズのプロセスを妨害するように発生する恐れがある、2つの潜在的問題を論じる。また、これらの問題に対処するための、潜在的方法も論じる。
問題1:システムデバイスがトリガされるが、ゲートウェイの無線ネットワークに参加することができない
感知器Bは、様々な理由から無線ネットワークに参加することができない場合がある。例えば、圏外であるか、又は他の欠陥がある場合もある。その結果、感知器Bは、SignOnメッセージを送信することなく、ローカライズの成功の何らかの視覚的指標又は他の指標を、ユーザに提供することがない。成功の指標が示されない場合、ユーザは、ローカライズのプロセスで何か不具合が生じたことを理解する可能性が高い。トラブルシューティングするために、ユーザは、クラウドベースのアプリケーションモジュールのUIをチェックして、感知器Bに関連付けられているゲートウェイ又は建物サーバ自体がオフラインであるか否かを判定することができる。あるいは、ユーザは、同じ挙動の発生が認められるか否かを明らかにするために、未だローカライズされていない異なるシステムデバイス(例えば、感知器A)をトリガすることを試みてもよい。ユーザはまた、遠隔制御デバイスを使用して、工場出荷時設定コマンドを感知器Bに送信し、その後、再度その感知器をトリガすることを試みてもよい。最終的に、ユーザは、感知器Bを交換してもよい。
問題2:システムデバイスがネットワークに参加するが、SignOnの指標がクラウドに到達しない
感知器Bは、オープン無線ネットワークに参加し、次いで、クラウドベースのアプリケーションモジュールに、SignOnの指標(例えば、SignOnメッセージ)を送信することを試みる。しかしながら、クラウドベースのアプリケーションモジュールとゲートウェイとの間の通信リンクが、その後に断ち切られる(例えば、ゲートウェイと建物サーバ(例えば、建物サーバ100)との間、建物サーバとクラウド(例えば、クラウド115)との間、又はクラウドベースのアプリケーションモジュールとクラウドとの間の通信リンクのうちの1つ以上が遮断される)場合には、ローカライズは、通常どおりに進むことが不可能となる。しかしながら、これらの接続性の切断は、クラウドベースのアプリケーションモジュールのUI上で、ユーザに対して視認可能に示されることになる。感知器BからのSignOnは、クラウドベースのアプリケーションモジュールには到達することがないため、感知器Bのローカライズが進むことはない。しかしながら、遮断された接続が復旧すると直ちに、ユーザは再度、感知器Bに第2のIRトリガを送信することを試みることができる。この場合も、前と同様に、感知器Bは、そのIRメッセージの受信を示すために、所定の回数(例えば、3回)点滅することになる。しかしながら、今回は、以前に経験されていた接続の問題が解消されている場合には、クラウドベースのアプリケーションモジュールは、感知器Bから送信された新たなSignOnメッセージを受信することになり、前のセクションで示された方式で、ローカライズが継続することになる。展開もまた、前述のように、ローカライズの成功に続けて実施されることになる。
感知器の以前の不正確なローカライズの修正
以下の論考は、システムデバイス(例えば、感知器A)の以前の不正確なローカライズが修正されることが可能な、一部の例示的方法を対象とする。この論考は、例示することのみを目的とし、限定することを意図するものではない。感知器Aは、アイコンAに関連付けられた位置に既にローカライズされており、これは不正確なローカライズであることを想定する。ユーザ(例えば、インストーラー)が、この不正確なローカライズを修正するための、少なくとも2つの方法が存在する。
第1のシナリオでは、ユーザが、代わりにアイコンBに感知器Aをローカライズすることを望んでおり、感知器Cが、既にローカライズされているという視覚的指標を、既に物理的に呈している(例えば、既に10%まで減光されている)ことに、そのユーザが気付いている場合には、ユーザは、遠隔制御デバイスを使用して、感知器Cに工場出荷時設定コマンドを送信してもよい。これに応答して、感知器Cはリセットして、予め割り当てられていたネットワークから離れ、その旨を示すメッセージ(例えば、「LeaveNetwork」メッセージ)を、関連付けられているゲートウェイに送信することになる。このイベントのシーケンスは、アイコンAに対する感知器Cのローカライズを除去する効果を有することになる。クラウドベースのアプリケーションモジュール(例えば、システムマップアプリケーションモジュール160)では、アイコンAの外観は、それに応じて、現時点ではシステムデバイスに関連付けられていないことを示すように変化することになる。ここで、ユーザは、アイコンB(又は、そのユーザが選択した任意の他のアイコン)に関連付けられている位置に、感知器Aをローカライズするように進むことができる。
第2のシナリオでは、ユーザは、アイコンAに対する感知器Aのローカライズが、予定どおりには進行しなかった(例えば、ローカライズのプロセス中に何か不具合が生じた)ことを知る。ユーザは、クラウドベースのアプリケーションモジュールを使用して、再ローカライズのプロセスを開始することができる。ユーザは、例えば、感知器Aからアンマップするために、アイコンAをタップしてもよい。このことは、アイコンAに関連付けられている位置に対する感知器Aのローカライズを除去することになる。次いで、クラウドベースのアプリケーションモジュール(例えば、システムマップアプリケーションモジュール160)は、誤ったローカライズを除去するプロセスを開始することになる。例えば、感知器Aに「工場出荷時設定」信号を送信してもよく、感知器Aは、これに応答してリセットし、予め関連付けられていたゲートウェイの無線ネットワークから離れることになる。ここで、ユーザは、アイコンB(又は、そのユーザが選択した任意の他のアイコン)に関連付けられている位置に、感知器Aをローカライズすることができる。
コミッショニング及びローカライズアシスタント
図13Aは、システムの中でも特に、物理的環境のクラウドベースの監視及び制御のための図1のシステム100A等の、システム内での使用のために感知デバイス又は発光デバイスをコミッショニングする及び/又はローカライズする際のエラーを自動的に検出するためのシステム1300の実施形態を示す。システム1300は、建物サーバ100、ゲートウェイ110A、システムデバイス101〜103、コンピューティングクラウド115、システムインテークアプリケーションモジュール130、システムマップアプリケーションモジュール160、プロジェクトデータベース170A、データデータベース170B、データプラットフォームモジュール180、インストーラー610、リモートデバイス622、及びシステムマップアプリケーションモジュール160Aを備えたコミッショニングデバイス632を含む。システム1300の他の実施形態は、追加的な、又はより少ない、建物サーバ、ゲートウェイ、システムデバイス、クラウド、ユーザ、コミッショニングデバイス、及びリモートデバイスを含み得る。システム1300の様々な構成要素は、図13Aに示されるリンク線を使用して、通信可能にリンクされている。しかしながら、図中の2つのブロック又はモジュール間のリンク線の欠如は、必ずしも、それらブロック又はモジュール間の通信能力の欠如を示すものではない。
本明細書で論じられるように、システムインテークアプリケーションモジュール130は、例えば、感知デバイス及び発光デバイスが、指定領域に適切に割り当てられると共に、対応のゲートウェイに適切に割り当てられることを確認するために、システム1300のインストーラー610が、ファンクションの中でも特に、インテークプロセスをチェックするために使用されてもよい、クラウドベースのソフトウェアアプリケーションである。この情報は、その後、プロジェクトデータベース170Aに入力するために使用されてもよい。同様に、システムマップアプリケーションモジュール160は、プロジェクト階層に関連付けられている様々なシステムデバイス(例えば、照明器具、センサ、スイッチ、ゲートウェイ)を登録、ローカライズすると共に、それらのシステムデバイスにコンフィギュレーション情報を展開するために、インストーラー610によって使用されてもよい、クラウドベースのソフトウェアアプリケーションである。このアプリケーションモジュールは、これらのデバイスに関連付けられるローカライズ情報、建物の様々なフロアのマップビュー、及び各フロアのフロアプラン上の関連システムデバイスの位置を提示してもよい。このアプリケーションモジュールは、インストーラー610が、対話型のマップ/フロアプラン上に、システムデバイスをグラフィカルに追加、除去、又は再配置して、そのマップ/フロアプラン上に、これらのデバイスに関連付けられる他のコンフィギュレーション情報を描写することを可能にし得る。インストールを容易にするために、アプリケーションモジュール160は、インストーラーがインストールサイトにいる間に使用することが可能な、スマートフォン又はタブレットコンピュータなどのモバイルデバイス上に、そのフロントエンドをレンダリングしてもよい。
インストーラー610は、システム1300の物理的環境内でシステムデバイス101〜103をコミッショニング及びローカライズするためにコミッショニングデバイス632を利用する。コミッショニングデバイスは、タブレット、スマートフォン、又は他のデバイスを含むハンドヘルドコンピューティングデバイスのような任意のコンピュータであってもよい。コミッショニングデバイスは、本明細書に記載されているか、さもなければ構想されているように、デバイスの機能を実行又は容易にするように構成又はプログラムされるプロセッサ640を含む。コミッショニングデバイスはまた、システムインテークアプリケーションモジュール130又はシステムマップアプリケーションモジュール160のバックエンドのような、クラウドベースのコミッショニングアプリケーション又はプログラムを含む。インストーラー610は、コミッショニングデバイス上のクラウドベースのコミッショニングアプリケーション上のフロアプラン上のシステムデバイス(例えば、照明器具)を選択する。クラウドベースのコミッショニングアプリケーションは、システムデバイスと関連付けられた無線ゲートウェイ(例えば、ゲートウェイ110A)の無線ネットワーク(例えば、ZigBeeネットワーク)を開くためにシステムと通信する。その後、インストーラー610は、システムデバイスをゲートウェイのネットワークに追加するために装置にトリガを送信するため、IR遠隔制御デバイスなどのリモートデバイス622を使用する。例えば、インストーラーは、追加されるデバイスにリモートデバイスを指し示し、その後、リモートデバイスの「追加」ボタンを押してもよい。これで、システムデバイスは、ローカライズされていると見なされる。
しかしながら、インストーラー610は、あり得るエラーの中でも特に、誤って複数のデバイスをネットワークに一度に追加したり、間違ったデバイスをコミッション又はローカライズしたりする可能性がある。これらのエラーは、コミッショニング及びローカライズ中に見過ごされたり、見逃されたりする可能性がある。したがって、システム1300は、感知デバイス又は発光デバイスのコミッショニング及び/又はローカライズにおけるエラーを自動的に検出する機能を含んでもよい。
図13Bは、システムデバイスのコミッショニング及び/又はローカライズにおけるエラーを自動的に検出する方法1350の実施形態を示す。方法1350は、システムの最初のコミッショニング中、及び/又はシステム内のシステムデバイスの置換又は修復の後のエラーを検出するために利用されてもよい。例えば、照明器具が交換された後、照明器具は、再コミッショニングされる必要がある。
本方法のステップ1352において、システム1300内のシステムデバイスは、近隣のシステムデバイスから、それらの近隣のシステムデバイスに関する情報を含む無線信号を受信する。情報は、送信デバイスのアドレス及びネットワーク識別子を含んでもよい。信号は、部分的又は完全に暗号化され得る。例えば、信号は、送信デバイスのアドレス及びネットワーク識別子、例えば、16ビットアドレス及び16ビットネットワーク識別子(PAN iD)を含んでもよく、この情報は、暗号化又は非暗号化されてもよい。システムは、システムデバイスが、コミッショニングの前に近隣のシステムデバイスから情報を受信し、格納するよう構成されてもよい。例えば、デバイスは、ZigBeeネットワークレベルリンクステータスコマンド等の無線信号を周期的に送信することができる。デバイスは、他の多くの時間周期が可能であるが、15秒等の所定の時間周期で情報を周期的に送信することができる。受信された情報は、ネットワークにまだ参加されていないシステムデバイスに格納されることもできる。ネットワークに参加すると、この情報は、システムと共有されることができる。代替的に、システムは、システムデバイスが、コミッショニング中、又はシステムデバイスのコミッショニング又はローカライズの要求時にのみ、近隣のシステムデバイスから情報を受信し、格納するよう構成されてもよい。
本方法のステップ1354において、システムデバイスは、受信した無線信号から、無線信号の信号強度を決定する。これは、無線信号を分析し、信号強度を決定又は推定するための任意の方法を使用して達成されることができる。一実施形態によれば、各システムデバイスは、複数の無線信号を受信し、受信した複数の無線信号の各々について信号強度を決定する。その後、各受信された無線信号の強度は、当該無線信号を送信したシステムデバイスの識別情報と関連付けられることができる。一実施形態によれば、システムデバイスは、受信した無線信号の強度及び関連する識別情報をメモリに記憶することができる。
本方法のステップ1356において、システムは、システムデバイスをコミッショニング及びローカライズするためにインストーラー610から要求又はコマンドを受信する。例えば、インストーラー610は、リモートデバイス622を使用して、システムデバイスをゲートウェイのネットワークに追加するためにデバイスにトリガを送信してもよい。その後、関連付け要求がシステムに送信される。関連付け要求は、参加するシステムデバイスの識別子を含む。
本方法のオプションのステップ1355において、1つ以上のシステムデバイスは、システム内のデバイスのローカライズを容易にするために、他のセンサ情報を取得することができる。例えば、システムデバイスは、ローカライズを容易にするために光レベル感知、占有感知、及び他の情報などの情報を入手し、格納することができる。システムは、この情報を利用して、システムに参加する新たなシステムデバイスのローカライズが正しいかどうか、又はエラーがあるかどうかを分析及び判断してもよい。例えば、(窓に近い)追加システムデバイスによって検出される光レベルが、窓又は他の光源から離れたシステムデバイスによって検出される光レベルに類似している場合、これは、システムに対して、間違ったシステムデバイスがコミッショニングのために識別されたことを示唆する。情報の別の例として、システムデバイスは、近隣のシステムデバイスからメッセージパターンを受信し、格納してもよい。例えば、システムデバイスは、近隣のシステムデバイスが、突然あるタイムフレーム内で複数のメッセージを送信していることを検出又は判断してもよい。これは、近隣のシステムデバイスがコミッショニングされていることを示唆する。これは、例えば、受信するシステムデバイスがすぐにコミッショニングされる可能性があることを示唆し得る。
本方法のステップ1358において、システムは、物理的環境内の1つ以上の他のシステムデバイスから無線信号強度情報、及び関連付け要求を受信する。システムはまた、参加するシステムデバイスから無線信号強度情報を受信してもよい。一実施形態によれば、関連付け要求は、参加するシステムデバイスのための識別子情報を含む。すでにシステム内にコミッショニングされている全てのシステムデバイスは、関連付け要求の信号強度を測定することができ、先の無線信号強度情報と共に、この情報をシステムと共有することができる。
本方法のステップ1360において、システムは、1つ以上の他のシステムデバイスからの無線信号強度情報に少なくとも部分的に基づいて、正しいシステムデバイスが関連付け要求で選択されたかどうかを判定する。例えば、システムは、システムデバイスによって受信された無線信号強度を分析して、信号を送信したデバイスに対する当該システムデバイスの近似位置を決定してもよい。この近似位置を決定し、それを要求された位置と比較することによって、システムは、正しいシステムデバイスがインストーラーによって選択されたかどうかを判定することができる。
図13Cは、複数のシステムデバイス101A〜101Hを有する物理的環境1380を示す。コミッショニングプロセスの一例によれば、システムデバイス101A及び101Eは、システム内ですでにコミッショニングされている。インストーラー610は、システムデバイス101Bをコミッショニングすることを意図しているが、誤ってシステムデバイス101Fのコミッショニング要求を送信する。例えば、インストーラーは、システムデバイス101Bの代わりに、システムデバイス101Fにリモートデバイスを誤って向けたかもしれない。システムは、コミッショニング要求及び無線信号強度から、システムデバイス101Fがシステムデバイス101Bでない可能性が高いと判断する。例えば、システムデバイス101Fは、コミッショニングされているシステムデバイス101Aからよりも強い無線信号をコミッショニングされているシステムデバイス101Eから受信し、これは、システムデバイス101Fがシステムデバイス101Eに近いことを示唆する。インストーラーが正しいシステムデバイス(すなわち101B)を選択した場合、当該システムデバイスは、システムデバイス101Aからより強い無線信号を受信するはずである。一実施形態によれば、システムはまた、光レベル感知情報を使用して位置決定を行う。
コミッショニングプロセスの別の例によれば、システムデバイス101A及び101Eは、システム内ですでにコミッショニングされている。インストーラー610は、単一のシステムデバイス101Bをコミッショニングすることを意図しているが、誤ってシステムデバイス101Bとシステムデバイス101Fの両方のコミッショニング要求を送る。システムデバイス101B及び101Fの両方とも、関連付け要求を送信し得る。システムはまた、システムデバイス101B及び101F並びに/又はシステムデバイス101A及び101Eから信号強度情報を受信し、この情報を分析して、インストーラーが単一のシステムデバイスではなく2つのシステムデバイスをコミッショニングしたと判断する。しかしながら、システムデバイス101B及び101Fのうちの1つのみが、システムデバイス101A及び101Eからの信号強度情報とマッチし、斯くして、システムは、システムデバイス101Bが意図したデバイスであると判断してもよい。
本方法のステップ1362において、システムは、間違ったシステムデバイスが関連付け要求で選択されたと判断した場合、システムは、間違ったシステムデバイスがコミッショニングのために選択されたことをインストーラーにアラートする。例えば、システムは、インストーラーのコミッショニングデバイスに、誤ったシステムデバイスが、選択された位置に対してコミッショニングされたことを示すアラートメッセージをポップアップさせてもよい。別の実施形態によれば、システムは、デバイスをコミッショニングせずに、アラートメッセージを送信してもよい。アラートは、視覚的アラート、触覚アラート、可聴アラート、メッセージ、テキストメッセージ、又は任意の他のアラートであってもよい。アラートは、インストーラーのコミッショニングデバイスに表示されたマップ上のインジケーションなど、どのシステムデバイスがコミッショニングのために誤って選択されたかに関する情報を含んでもよい。
本方法のオプションのステップ1364において、システムは、インストーラーによって選択された位置に基づいて、どのシステムデバイスがコミッショニングされることが意図されたかに関する提言(recommendation)をインストーラーに行ってもよい。これは、ステップ1362でアラートと共に提供されてもよいし、インストーラーからの要求に応じて提供されてもよい。一実施形態によれば、システムは、正しいシステムデバイスを自動的にコミッショニングしてもよい。その後、システムは、違うシステムデバイスがコミッショニングされたが、これは選択された位置に適切なシステムデバイスであることをインストーラーにアラートしてもよい。
様々なクラウドベースのシステムアプリケーションモジュール間の例示的な対話
図6は、物理的環境の監視及び制御のための例示的なクラウドベースのシステムによって利用されてもよい、様々なクラウドベースのシステムアプリケーションモジュールの対話の一実施形態を示す。これらのクラウドベースのアプリケーションのうちの一部は、図1との関連において既に論じられている。図6は、追加的モジュール、並びに、既に論じられているモジュールに関する、それらの互いに対する対話及びそれらの例示的な使用などの、更なる詳細を提供する。図6に示されるユーザA、ユーザB、ユーザC、及びユーザDは、それぞれが異なる役割に関連付けられているユーザである。ユーザの役割に基づいて、そのユーザは、アプリケーションモジュールのうちの1つ以上へのアクセスを付与されてもよい。
ユーザAは、典型的には、物理的環境を監視及び制御するための例示的なクラウドベースのシステムの動作を、ホスト及び/又は他の方式で管理するエンティティ(例えば、会社Z)自体に関連付けられている、運用要員を表す。様々な実施形態では、ユーザAは、クラウドベースのシステムによって維持及び制御される全てのプロジェクトデータ(例えば、プロジェクト階層)へのアクセスを有する。このユーザAは、そのクラウドベースのシステムによって監視されている様々なサイトを監視及び制御する際の、エンドユーザの日々の業務を維持する際に、他の全てのユーザ、特にユーザDをサポートする。ユーザBは、インテーク技術者を表し、この文脈内での主要な機能は、プロジェクト階層内の1つ以上の建物のデジタルモデルを作成することであってもよい。ユーザCは、インストーラー又はコミッショニング技術者などの人物であり、その主要なタスクは、作成された建物のデジタルモデルに基づいて、建物内に物理的及び論理的にデバイスをインストールし、その後、コミッショニング、コンフィギュレーション、及び展開のプロセスに関与することであってもよい。ユーザDは、施設管理、財務、又は、エンティティ/顧客(例えば、会社X)に関する持続可能性などの部門からの人員であり、この例示的なクラウドベースのエンドユーザである。
図1との関連で前述されたユーザ管理アプリケーションモジュール150は、様々な実施形態では、システム管理者又は同様に資格認定された何らかの人物が、物理的環境を監視及び制御するためのクラウドベースのシステムに関する、新たなユーザアカウントを作成することを可能にする、クラウドベースのソフトウェアモジュールである。例えば、システム管理者は、新たなユーザ(例えば、ユーザL)を作成し、そのユーザに、ユーザ名及び一時パスワードなどのクレデンシャルを割り当ててもよく、それにより、ユーザLは、その後、システムログインアプリケーションモジュール610を使用して、図6に示されるクラウドベースのシステムアプリケーションモジュールのうちの1つ以上へのアクセスを得ることができる。
システムユーザアプリケーションモジュール630は、様々な実施形態では、1つ以上のプロジェクト階層、サイト、又は建物を、ユーザに割り当てるために使用される。このクラウドベースの監視及び制御システムの様々な実施形態では、プロジェクト階層は、階層のルートである。各プロジェクト階層は、1つ以上のサイトを含んでもよく、各サイトは、1つ以上の建物を含んでもよく、各建物は、1つ以上のフロアを含んでもよい。ユーザ(例えば、ユーザL)が、プロジェクト階層PHに割り当てられる場合には、そのユーザは、自身の役割に基づいて、プロジェクト階層PHの様々なフィーチャへのアクセスを有することになる。ユーザのアクセス権はまた、カスタマイズされた方式で制限されてもよい。例えば、ユーザLがサイト1に割り当てられる場合、そのユーザは、サイト1に関連付けられている建物のみへのアクセスが許可されてもよく、サイト1が属するプロジェクト階層内の、他のサイトへのアクセスは許可されない。
図1との関連で前述されたシステムプロジェクトアプリケーションモジュール140は、他の全てのシステムアプリケーションモジュールへのアクセスを制御する、中心システムアプリケーションモジュールである。ユーザが、クラウドベースの監視及び制御システムにログインする際に、そのユーザによって遭遇されるアプリケーションモジュールは、システムプロジェクトアプリケーションモジュール140である。ユーザは、自身が割り当てられているプロジェクト階層、サイト、又は建物のみを、見る及び/又は操作することが可能となる。様々な実施形態では、様々なプロジェクト階層、サイト、及び/又は建物へのユーザの割り当ては、そのユーザのログインクレデンシャル(例えば、ユーザID)に関連付けられているが、システムマップアプリケーションモジュール160又はシステムインテークアプリケーションモジュール130などの1つ以上のシステムアプリケーションモジュールにアクセスするための、そのユーザの能力は、自身に割り当てられている役割(例えば、インストーラー又はインテーク技術者)に関連付けられている。ユーザが、システムプロジェクトアプリケーションモジュール140にアクセスし、例えば、そのユーザが割り当てられている1つのプロジェクト階層(例えば、MegaCorp)を提示されると、そのユーザは、グラフィカルユーザインタフェース上で自身に提示されているユーザインタフェース要素を介して、そのプロジェクト階層を選択することができる。次いで、プロジェクト階層MegaCorpに関連付けられている様々なサイト(例えば、ロンドン及び上海)が提示されてもよい。ロンドンのサイトをクリックすることは、例えば、そのロンドンのサイトに関連付けられている様々な建物(例えば、建物1及び建物2)のグラフィック表現(例えば、アイコン)を、ユーザに提示することになる。多くの実施形態では、ユーザに提示されるシステムプロジェクトアプリケーションモジュール140のグラフィカルユーザインタフェースは、ユーザの役割及び/又はログインクレデンシャルに基づいて、そのユーザがアクセスを有する他のシステムアプリケーションモジュール(例えば、システム運用アプリケーションモジュール620又はシステムエネルギーアプリケーションモジュール120)にアクセスするための1つ以上の方法を、ユーザに提供することになる。
システムインテークアプリケーションモジュール130は、図1との関連で前述されている。多くの実施形態では、このアプリケーションモジュールは、運用要員又はインテーク技術者の役割を割り当てられているユーザなどの、適切に資格認定されたユーザが、サイト及びプロジェクト階層内の建物のデジタルモデルを作成することを可能にする。そのような実施形態では、このことはまた、そのユーザがまた、その建物にシステムプロジェクトアプリケーションモジュール140を介してアクセスするための、クレデンシャルを有さなければならないことも意味する。必要なクレデンシャルが存在していると想定すると、ユーザ(例えば、ユーザL)は、選択された建物の様々な物理フロアをグラフィカルかつ論理的に表現するためのフロアプランを、そのユーザが追加することを可能にする、ユーザインタフェースを提示されることになる。特定の建物のフロアに関するフロアプランが選択されると、次いで、ユーザは、そのフロアプラン内の様々な領域をグラフィカルに細分化して、様々なタイプの空間(例えば、セル式オフィス、オープンプラン式オフィス、会議室、又は廊下)を描写するように進むことができる。ユーザは、そのフロアの仮想レイアウトを、グラフィカルに作成している。様々な実施形態では、ユーザはまた、適切なユーザインタフェース要素及び機能性(例えば、ドラッグアンドドロップ、カットアンドペースト、照明器具及び無線ゲートウェイなどの個々のデバイスを表すアイコン)も提示されることにより、ユーザは、フロアプラン上の多数の部屋又は領域内の特定の場所に、ゲートウェイ、照明器具、照明器具のグリッド、スイッチ、光センサ及び占有センサなどのシステムデバイスを、グラフィカルに描写することができる。様々な態様では、空間内での照明器具などのデバイスの挙動(例えば、特定の廊下内の照明器具が、どのように占有の変化に対応するか)を指示する、コンフィギュレーションデータもまた、この段階で種々の領域(例えば、オフィス、廊下、開放空間)に関連付けられる。システムインテークアプリケーションモジュール130はまた、照明器具及びセンサなどの個々のデバイスの挙動(例えば、光出力)を更に制御するための、追加コンフィギュレーションデータを関連付けるために使用されてもよい。様々な実施形態では、アプリケーションモジュール130は、運用要員又はインテーク技術者の役割を割り当てられているユーザのみがアクセス可能である。
多くの実施形態によれば、図1との関連で前述されたシステムマップアプリケーションモジュール160は、典型的には、クラウドベースの監視及び制御システムに関連付けられたプロジェクト階層の一部である建物の現場にいる間に、インストーラーなどのユーザによって使用される。多くの実施形態では、インストーラーは、建物内に入り、例えばシステムインテークアプリケーションモジュール130を使用して作成された、その建物のデジタルモデルのグラフィック描写上に示されている場所に、物理的にデバイスをインストールする。システムマップアプリケーションモジュール160は、その後、図4及び図5との関連で前述され、また図10、図11、及び図12との関連でも説明される、コミッショニング、ローカライズ、及び展開のプロセスを支援する。様々な実施形態では、アプリケーションモジュール160を使用して、インストーラーは、適切なデジタルフロアプランを識別し、このことは、フロアプラン上の領域である全てのシステムデバイスの可視化をもたらす。コミッショニングプロセスは、目下の建物に関連付けられている建物サーバ(例えば、建物サーバ100)から開始して、次いで、様々な無線ゲートウェイ、並びに照明器具及びスイッチなどの関連システムデバイスへと続く。前述のように、インストーラーは、スマートフォン又はタブレットなどのモバイルコンピューティングデバイスを使用して、そのインストーラーがコミッショニング及びローカライズすることを望んでいる特定の物理デバイスを、アプリケーションモジュール160のユーザインタフェース上で選択することによって、選択する。次いで、インストーラーは、スマートフォン又はタブレット上のカメラを使用して、そのデバイス上のQR(Quick Response(登録商標))コードの写真を撮影するように進み、このことが、様々な他の図に関連して及び本明細書の全体を通して詳細に論じられる、コミッショニング、ローカライズ、及び展開のプロセスを開始させる。このQRコードは、純粋に例として使用されるものであり、任意の他のコードが同様に使用されてもよい。様々な実施形態では、システムマップアプリケーションモジュール160は、運用要員又はインストーラーの役割を有するユーザのみがアクセス可能である。
システムエネルギーアプリケーションモジュール120は、多くの実施形態では、エンドユーザによって、典型的には、クラウドベースの監視及び制御システムの動作をホスト及び/又は他の方式で管理するエンティティ(例えば、会社Z)に関連付けられている、運用要員、あるいは、クラウドベースの監視システムによって建物が監視されている特定のプロジェクト階層に関連付けられた、エンドユーザエンティティに関連付けられている、施設管理要員によってアクセスされてもよい。したがって、様々な実施形態では、適切な役割(例えば、運用要員又は施設管理者)及び適切なアクセスクレデンシャルを有するユーザのみが、アプリケーションモジュール120へのアクセスを許可される。そのような実施形態及び他の実施形態では、監視されている全てのシステムデバイス及び領域からの、空間及びリソース利用データは、それらの対応のゲートウェイ及び建物サーバを介して、このクラウドベースの監視システムに関連付けられているクラウド(例えば、図1に示されるクラウド115)に転送され、そのクラウドで、それらのデータが分析される。有用な分析を導き出すために、統計的分析及び機械学習技術が採用されてもよく、次いで、それらの分析は、過去の使用、将来のエネルギー消費の予測、及び現在の(リアルタイムの)エネルギー利用を示す、グラフ及び他の視覚化モードの形態で、エンドユーザに提示される。占有データと共に分析されたエネルギー消費データは、殆ど利用されていない物理的領域及びリソースを明らかにすることができ、それゆえ、将来のエネルギー利用を低減させる方策に寄与することが可能である。
システム運用アプリケーションモジュール620は、多くの実施形態では、典型的には、クラウドベースの監視システムの動作をホスト及び/又は他の方式で管理するエンティティ(例えば、会社Z)に関連付けられている、運用要員(例えば、図6に示されるユーザA)のみがアクセス可能である。このアプリケーションモジュールは、不適切な光レベル、エネルギー及び占有データの収集若しくは分析におけるエラー、又は不正確なコミッショニング、ローカライズ、又は展開などの実行時問題を、リモートでトラブルシューティングし、診断し、対処するための、ユーザインタフェース及びバックエンド論理をユーザに提供する。
展開
図7A〜図7Cは、図1に示された物理的環境を監視及び制御するためのクラウドベースのシステムの、展開の一実施形態を示す。図7Aに示されるクラウドモジュールは、図1との関連で説明されたクラウド115と同様である。システムプロジェクトアプリケーションモジュール140、システムインテークアプリケーションモジュール130、システムマップアプリケーションモジュール160、システム運用アプリケーションモジュール620、システムエネルギーアプリケーションモジュール120、クラウド接続性サービスモジュール190、データプラットフォームモジュール180及びプロジェクト170Aは、図1及び図6に示されている同一名称のモジュールと同様である。プロジェクトサービスモジュール708は、システムインテークアプリケーションモジュール130及びシステムマップアプリケーションモジュール160などの様々なシステムアプリケーションモジュールが、DyNet(登録商標)及びZigBee(登録商標)などの複数の通信プロトコルをサポートすることを可能にする。このモジュールは、本質的に、それらのシステムアプリケーションモジュールが、それらの機能をプロトコル非依存方式で実行することを可能にする。また、プロジェクト170Aデータベースとシステムアプリケーションモジュールとの間の、データの通信も容易にする。
展開構想エンジンモジュール711は、感知デバイスなどのシステムデバイスに関する、コンフィギュレーションファイルの生成に関与する。これらのコンフィギュレーションファイルは、個々の感知器又は感知器群に適用可能であり、アンビエント照明、占有、時刻などにおける変化などのイベントに応答して、それらの挙動を制御するために使用される。プラグイン構想モジュール709は、展開構想エンジンモジュール711が、プロジェクトサービスモジュール708とシームレスに通信することを可能にする、プラグインモジュールである。換言すれば、このプラグインは、展開構想エンジンモジュール711及びプロジェクトサービスモジュール708の双方と通信することができるため、プロジェクトサービスモジュール708は、展開構想エンジンモジュール711の実装又はアーキテクチャに全く依存せずに、実装されることができる。データ分析構想モジュール714は、建物サーバ及びゲートウェイを経て全ての感知デバイスから収集された、エネルギー及びリソース使用情報に対して、必要な分析を実行し、その分析されたデータを、システムエネルギーアプリケーションモジュール120に提示するために利用可能にする。
登録、ユーザ認証、及びデバイス認可の概説
図7Aに示されるデバイス701は、各プロジェクト階層に関連付けられている、様々な建物サーバ(例えば、建物サーバ100)、ゲートウェイ(例えば、ゲートウェイ110A)、及びシステムデバイス(例えば、システムデバイス101)の全てに関連する情報を保持するようにコンフィギュレーションされている、データベースモジュールである。例えば、特定の建物サーバが、特定のプロジェクト又はサイトに関するリソース及びエネルギー管理の目的で利用されることが可能となる前に、その建物サーバ自身をクラウド(例えば、クラウド115)に登録することが必要となる。この登録プロセスは、図8A、図8Bに付随する説明で更に詳細に説明される。図1のクラウドベースのシステムの登録ユーザに関連付けられている情報(例えば、ユーザ名、パスワード、役割)は、図7Aに示されるユーザ702データベースモジュール内にセキュアに記憶されている。様々な実施形態では、この情報は、認証プロセス中に、ユーザが、例えば、クラウドベースのシステムアプリケーションモジュールのうちの1つ以上(例えば、システムマップアプリケーションモジュール160)にアクセスすることを望む場合に、アイデンティティ管理モジュール705によってアクセスされる。標準的な認証技術が、アイデンティティ管理モジュール705によって採用されてもよい。様々な実施形態では、Forgerock OpenAM/DJモジュール706は、物理的環境を監視及び制御するための例示的なシステムにおいて自身の役割を実行するために、クラウドへのアクセスを求める様々なデバイス(例えば、建物サーバ及び無線ゲートウェイ)のアイデンティティに対して、適切な認可を保証することを担当している。そのような実施形態では、ポリシーエージェントモジュール707は、図示の様々なシステムアプリケーションモジュールにアクセスするための認可を、ユーザに付与することを支援する。例えば、ユーザが適切に認証され、最初のシステムプロジェクトアプリケーションモジュール140へのアクセスを得た後であっても、システムインテークアプリケーションモジュール130及びシステムマップアプリケーションモジュール160などの他のシステムアプリケーションモジュールへの更なるアクセスは、そのユーザが割り当てられている役割に基づいて制限される。役割は、図6に関連付けられている説明で、更に詳細に説明されている。多くの実施形態では、様々な役割に関連付けられたアクセスポリシーが、URLを介してコンフィギュレーション/実装されている。例えば、システムプロジェクトアプリケーションモジュール140の様々な態様は、それぞれ異なるURLでアクセスされることが可能であると想定する。管理者の役割を割り当てられているユーザは、これらの異なるURL(それぞれが、システムプロジェクトアプリケーションモジュール140によって提供される様々な機能性に、ユーザがアクセスすることを可能にする)の全てにアクセスする能力を付与されてもよいが、インストーラーを割り当てられているユーザは、これらのURLのうちの2つへのアクセスのみが付与されてもよい。ポリシーエージェントモジュール707は、各役割がアクセスすることが可能な機能に対して、予め設定されたコンフィギュレーション可能なポリシーを施行する。
ファームウェア/ソフトウェアのイメージ及び更新
図7AのFWイメージ700データベースモジュールは、建物サーバ、ゲートウェイ、並びにシステムデバイスの、ファームウェア及び/又はソフトウェアを更新するためのイメージを記憶する。FW/SWの更新プロセスは、クラウドのSW更新モジュール703から建物サーバへの、MQTTプロトコルを介したトリガで開始する。様々な実施形態では、このトリガは、必要な更新イメージを取得するためのURLを含み得る。建物サーバのファームウェア更新の場合には、クラウド内のSW更新モジュール703は、MQTTを介してトリガを送信することになり、建物サーバ内のFW更新BSモジュール721は、そのトリガを認識することになり、次いで、建物サーバは、そのトリガ内のURLを使用して、更新イメージを取得し、その更新イメージのダウンロードを終了したことを、MQTTチャネルを使用してクラウドに報告を返すことになる。これらの実施形態では、クラウド内のSW更新モジュール703は、その後、MQTTを介して明示的なトリガを送信することになり、そのトリガを受信すると、建物サーバは、新たな更新イメージに切り替えるために必要とされるタスクを実行する(例えば、再起動して、新たなイメージのアプリケーションに切り替える)ことになる。無線ゲートウェイのファームウェア更新を実行するためのプロセスは、上述の建物サーバに関するファームウェア更新と同様である。しかしながら、無線ゲートウェイに関する更新プロセスは、建物サーバをプロキシとして使用する。例えば、無線ゲートウェイによるURLを介したFWイメージの取得は、この図中の建物サーバモジュール内に示されるHTTPプロキシモジュール718を介してプロキシされる。
図7Aに示される建物サーバは、図1との関連で説明された建物サーバ100と同様である。この建物サーバの実施形態は、ソフトウェアの更新、デバイスの登録、及びデータ収集を容易にする役割を果たす、様々なモジュールを示している。HTTPプロキシモジュール718及びMQTTプロキシモジュール720は、それぞれ、HTTPプロトコル及びMQTTプロトコルを使用して、1つ以上の無線ゲートウェイとクラウドとの間の通信をプロキシする。例えば、図7Aの建物サーバに関連付けられている無線ゲートウェイ内のMQTTクライアントから発せられる通信は、その建物サーバのMQTTプロキシモジュール720によってルーティングされる。多くの実施形態では、監視されている物理的環境内の1つのデバイス(例えば、建物サーバ)のみが、その環境を監視するために使用されているクラウドへの直接アクセスを有することになる。様々な無線ゲートウェイ及びシステムデバイスからの全てのデータは、その建物サーバを介してプロキシされることになる。そのような実施形態では、無線ゲートウェイ及びシステムデバイスは、クラウド非依存性である。換言すれば、それらは、クラウドに直接接続するためのデータ又は論理を有する必要がない。デバイス登録モジュール716は、クラウドへの建物サーバの登録を組織化する。このプロセスは、図8A、図8Bに付随する説明で、より詳細に説明される。フィールドネットワーク発見モジュール717は、ネットワーク内のデバイスを発見するプロセスに関与する。ネットワークプロバイダモジュール719は、クラウド内のプラグイン構想モジュール709からコンフィギュレーションデータを受信し、このデータをシステムデバイス(例えば、感知デバイス)に転送することを担当している。更には、ネットワークプロバイダモジュール719は、クラウドと無線ゲートウェイとの間の双方向通信を容易にする。例えば、このモジュールは、感知器、無線ゲートウェイ、及び建物サーバ内から発せられるSignOnメッセージを、プラグイン構想モジュール709を介してクラウドに送信することができる。同様に、ネットワークプロバイダモジュール719はまた、クラウドからのコマンド(例えば、ZigBeeネットワークを開くコマンド)を、無線ゲートウェイに伝搬することもできる。
フェイルオーバモジュール726及び回復モジュール728は、建物サーバの動作におけるエラーを検出して、そのエラーから回復することを、一体となって担当している。一部の実施形態では、1つ以上の重要なソフトウェアプロセスの動作は、タイマによって継続的に監視される。エラー条件によりプロセスが停止する場合には、タイマもまた停止する。タイマの停止は、1つ以上のプロセス又は建物サーバ自体が、エラー条件から回復するために再起動する結果をもたらす、トリガである。BS診断モジュール727は、その建物サーバのルーチン動作についての情報を収集する。例えば、多くの実施形態では、動作エラーを診断する際に役立ち得るエラーメッセージが収集される。これらのメッセージは、システムエネルギーアプリケーションモジュール120などのシステムアプリケーションモジュールによる、分析及び視覚化のために、定期的にクラウドに送信される。建物サーバ内のスケジューリングモジュール729は、占有又は昼光の変化などのイベントに基づいた、物理的環境(例えば、建物)内の通常の挙動をオーバーライドするタスクのスケジューリングに関与している。一部の実施形態では、スケジューリングモジュール729は、建物サーバ内で実行されるが、他の実施形態では、クラウド内で実行される。
図7B及び図7Cに示されるゲートウェイ(例えば、無線ゲートウェイ)は、図1との関連で前述されたゲートウェイ110A及びゲートウェイ110Bと同様である。図7B及び図7Cは、無線ゲートウェイの様々なモジュールを示す。本明細書の全体を通して説明される殆どのモジュールと同様に、これらのモジュールは、ファームウェアとして、又は完全にソフトウェアとして実装されてもよい。完全にソフトウェアとして実装される場合には、それらは、その無線ゲートウェイ自体に物理的に配置された1つ以上のプロセッサ上で、又は、その無線ゲートウェイからリモートであるが、アクセス可能に配置された1つ以上のプロセッサ上で実行されてもよい。無線ゲートウェイのNTPクライアントモジュール735は、感知器などのシステムデバイスに時刻データをプッシュすることに関与している点で、建物サーバ内の同様に名付けられたモジュールと同様である。無線ゲートウェイのZigBeeクロック同期サーバモジュール736もまた、この時刻同期関連プロセスに関与しており、その関与は、無線ゲートウェイのNTPクライアントモジュール735と共に、時刻同期についての次のセクションで、より詳細に説明される。無線ゲートウェイのデータ収集モジュール733は、システムデバイス(例えば、感知器)からの、エネルギー及び他のメトリックの収集に関与しており、建物サーバを経て、この情報をクラウドに上向きにプッシュしている。その機能性に関する詳細は、メトリックの報告についての以下のセクションで説明される。様々な実施形態では、WG診断モジュール734は、無線ゲートウェイのルーチン動作中に遭遇される、エラー又は他の異常な条件若しくは状態を報告することを、主に担当している。これらのエラー条件又は状態は、その後、更なる分析及び提示のために、建物サーバを介してクラウドに報告される。無線ゲートウェイのFW更新モジュール732は、建物サーバ上の同様に名付けられたモジュールのように、その無線ゲートウェイ自体に関する、及び感知デバイスに関する、ファームウェア及びソフトウェアの更新の調整を主に担当している。このプロセスは、図9との関連において、更に詳細に説明される。無線ゲートウェイの発見登録モジュール730は、その無線ゲートウェイ自体を建物サーバ及び/又はクラウドに登録する機能を果たす。MQTTクライアントモジュール731は、無線ゲートウェイから、及び無線ゲートウェイと通信している任意のデバイスから発せられる、MQTTプロトコルに基づく通信を、建物サーバのMQTTプロキシモジュール720を介して、建物サーバにルーティングするように機能する。
図7Cに示される感知器は、図1との関連で説明されたデバイス101〜106と同様である。様々な実施形態では、感知器診断モジュール737は、感知器の通常動作に関連付けられるエラー状態及びエラー条件を、時刻同期についての以下のセクションで説明されるメトリック報告モジュールに報告する。ZigBeeクロック同期クライアントモジュール743及びZigBeeクロック同期サーバモジュール744もまた、時刻同期についての以下のセクションで説明される。そのような実施形態及び他の実施形態では、FW更新モジュール742は、その感知器のファームウェア及び/又はソフトウェアを更新するプロセスに関与し、このプロセスは、図9に付随する説明で、より詳細に論じられる。センサ740は、例えば、赤外線信号、動き又は光強度の変化を感知する。アクチュエータ738は、例えば、照明に関連付けられる強度又は他の特性を変更するように、照明器具などのデバイスを作動させる。また、HVACデバイス、ブラインド、カーテン、プロジェクタ、ディスプレイなどの、建物内に見出される様々な他のデバイスも作動させることができる。制御構想モジュール739は、多くの実施形態によれば、クラウド内の展開構想エンジンモジュール711及びプラグイン構想モジュール709から、建物サーバ及びゲートウェイを介して感知器に渡された、コンフィギュレーションデータ(例えば、コンフィギュレーションファイル)を適用する機能を果たす。そのような実施形態では、そのコンフィギュレーションファイルは、占有、温度、又は移動の変化などの、様々な照明条件及び環境条件に対する、特定の感知器又は感知器群の応答を詳述している。
時刻同期
多くの実施形態では、図7Aの建物サーバの一部として示されるNTPクライアントモジュール723は、時刻同期の目的で使用される。このモジュールは、インターネットなどのネットワーク上のNTPサーバモジュール715、図7Aに示される建物サーバの同じく一部であるNTPサーバモジュール725、並びに、図7Bの無線ゲートウェイWGの一部として示されるNTPクライアントモジュール735及びZigBeeクロック同期サーバモジュール736と共に機能する。NTPとは、一般に、コンピュータシステム間のクロック同期のために一般的に使用されるネットワークプロトコルである、既知のネットワークタイムプロトコルを指す。NTPは、典型的には、コンピューティングデバイスを、協定世界時(Coordinated Universal Time;UTC)の数ミリ秒の範囲内で同期させるように機能する。NTPは、クライアント−サーバモデルの下で動作してもよいが、また、複数のデバイスが潜在的な時間ソースと見なされてもよい、ピアツーピアの解決策で使用されることも可能である。
多くの実施形態では、感知器から収集されたエネルギー及びリソース使用データを正確にタイムスタンプするためには、全ての感知器、無線ゲートウェイ、及び建物サーバを定期的に同期させることが不可欠である。最初に、現在時刻データが、クラウド又は建物サーバの外部に存在するように示されている、NTPサーバモジュール715から取得される。一般に、そのようなNTPサーバは、インターネット上に存在している。様々な実施形態では、建物サーバのNTPクライアントモジュール723が、その現在時刻データを受信する。次に、この現在時刻データは、建物サーバ内のNTPサーバモジュール725によって受信された後に、図7Bに示される無線ゲートウェイのNTPクライアントモジュール735に通信される。無線ゲートウェイ内で、この現在時刻データは次に、ZigBeeクロック同期サーバモジュール736に通信される。その後、この無線ゲートウェイの最も近くに存在している感知デバイスを識別するために、レベル発見段階が開始される。多くの実施形態では、このことは、無線ゲートウェイが、特定のレベル(例えば、その無線ゲート自体に関連付けられているレベル0)を有するブロードキャストコマンドを、ZigBeeを介して送信することによって達成される。無線ゲートウェイに最も近い感知デバイスが、そのブロードキャストコマンドを受信すると、それらの感知デバイスは、それら自身のレベルを1に増大させ、次いで、レベル1を有する同じ又は同様のメッセージを再ブロードキャストする。その再ブロードキャストメッセージを受信する感知デバイスは、その後、自身をレベル2に識別して、再度、そのメッセージを再ブロードキャストすることになる。このプロセスは、全ての近傍感知デバイスが識別されて、レベルに関連付けられるまで継続する。このレベル発見段階に続く第2段階は、既知のペアワイズ時刻同期アルゴリズムを使用することを伴う、同期段階である。同期プロセスの一部として、第1のレベルの1つ以上の感知器の、ZigBeeクロック同期クライアントモジュール743が、無線ゲートウェイのZigBeeクロック同期サーバモジュール736から、現在時刻データを受信する。この情報は、次いで、それらの感知器自身によって、ピアツーピアで伝搬される。これは、図7Cに矢印線で示されるように、特定の感知器のZigBeeクロック同期サーバモジュール744が、この情報を、近傍の感知器内のZigBeeクロック同期クライアントモジュール743による受信のために、ZigBeeネットワークを介して通信する結果であってもよい。
メトリック報告
様々な実施形態では、感知器は、エネルギーデータ及び/又は占有データを定期的に報告することになる(例えば、エネルギーデータは15分ごとに、占有データは50秒ごとに報告されてもよい)。各感知器の一部として図7Cに示されるメトリック報告モジュール741は、ZigBeeクロック同期クライアントモジュール743から時刻データを受信し、次いで、その時刻データが、報告されるエネルギー又はリソース使用データに、タイムスタンプとして追加される。感知器診断モジュール737もまた、その感知器自身の動作に関する診断データを、メトリック報告モジュール741に提供する。この診断データは、通常の方式で感知又は作動することが不可能であることなどの、その感知器のルーチン動作に関する潜在的問題又は既知の問題を示す、エラーメッセージであってもよい。多くの実施形態では、メトリックデータは、各感知器から以下の方式で送信される。まず、いくつかの異なるパケットタイプ、すなわち、アドレス情報を送信するためのパケットタイプ、第1のメトリックを有するフルタイムスタンプを送信するための別のパケットタイプ、及び、更なるメトリックを有する時間オフセットを送信するための更に別のパケットタイプが利用される。典型的実施形態では、感知器のメトリック報告モジュール741が、例えば、エネルギー使用に関するメトリックを報告する場合、最初に、そのメトリックを発信する感知デバイスを識別するために必要なアドレス情報を有する、第1のメッセージを送信する。その後、エネルギー使用に関する第1のメトリックを有する、フルタイムスタンプが送信される。最後に、エネルギー使用に関する第2のメトリックが、第1のメトリックの送信から経過した時間を示す、時間オフセットデータと共に送信される。メトリックデータは、無線ゲートウェイのデータ収集モジュール733によって受信される。
一部の実施形態では、感知器は、メトリックデータを報告する際に、自身を無線ゲートウェイに一意に識別させるいずれのアドレス情報も、自身では提供しない。そのような実施形態では、無線ゲートウェイ内の(図7B及び図7Cに示される)データ収集モジュール733が、感知器に関するグローバル一意アドレスを、その報告されたメトリックに添付するか又は別の方式で関連付ける。無線ゲートウェイ内のデータ収集モジュール733はまた、その無線ゲートウェイ自身のアドレス情報も添付してもよい。様々な実施形態では、この無線ゲートウェイのアドレス情報と特定の感知器又は感知器群に関連付けられたアドレスとの組み合わせは、報告されている特定のメトリック又はメトリックの集合に関連付けられるアドレスの、グローバルに一意な性質を結果としてもたらすものである。無線ゲートウェイ内のデータ収集モジュール733は、典型的にはZigBeeプロトコルを使用して、感知器から情報を受信するが、建物サーバには、典型的にはHTTPSを使用して情報を提供する。
定期的に、無線ゲートウェイのデータ収集モジュール733は、建物サーバ内のデータ収集モジュール724にデータを送信する。様々な実施形態では、無線ゲートウェイは、この情報を定期的にプッシュする。他の実施形態では、建物サーバが、この情報を無線ゲートウェイから引き出す。メトリックデータを受信した後、建物サーバのデータ収集モジュール724は、アドレス情報に、その建物サーバ自身のアドレスを追加する。このアドレス情報は、無線ゲートウェイから受信される受信メトリックのそれぞれに追加されてもよく、又は、メトリックのバッチ全体に一括して追加した後に、そのメトリックのバッチをクラウドに送信してもよい。多くの実施形態では、建物サーバは、全ての受信メトリックを短い期間(例えば、5秒間)で収集した後に、それらのメトリックを、クラウドのデータプラットフォームモジュール180にバッチ送信する。そのような実施形態では、ある期間にわたってクラウドとの接続性が欠落する場合には、その建物サーバに関連付けられている全ての無線ゲートウェイから受信されたメトリックデータは、最大継続時間(例えば、24時間)にわたってバッファリングされることになる。クラウドとの接続性が再確立されると、建物サーバは、バッファリングされたメトリックデータを、クラウドにプッシュすることになる。多くの実施形態では、そのようなバッファリングはまた、無線ゲートウェイと建物サーバとの間の接続性が中断された場合のデータ損失を防止するために、無線ゲートウェイでも利用可能である。
建物サーバの登録及び接続
図8A及び図8Bは、物理的環境を監視及び制御するためのクラウドベースのシステムのクラウド(例えば、図1のクラウド115)に、建物サーバを登録及び接続する方法の、一実施形態を示す。双方の図の上部のボックスは、施設内部の建物サーバ(例えば、図1の建物サーバ100)と、例えば図1のクラウド115に関連付けられている、様々なクラウドベースのモジュールとを表す。デバイス登録モジュール704、アイデンティティ管理モジュール705、データプラットフォームモジュール180は全て、図7Aとの関連で前述された同一名称のクラウドベースのモジュールの実施形態である。
図8Aに示されるように、建物サーバ100は、建物サーバの全てのベンダにわたって、その建物サーバを一意に識別する、ローカルに保存されているMACアドレスを取得する(建物サーバIDを取得する())。その後、建物サーバ100は、例えばAPIコールによって、例えば、デバイスtoサービス通信を開始する(登録する())。多くの実施形態では、クラウド(例えば、クラウド115)内のデバイス登録モジュール704は、登録プロセスを開始するために建物サーバ100が呼び出すAPIを本質的に公開する。様々な実施形態では、建物サーバ100は、自身をクラウドに登録するために、その取得された建物サーバID(例えば、64ビットMACアドレス)、建物サーバであることを示すデバイスタイプ、及び鍵付きハッシュメッセージ認証コード(HMAC)を通信する。HMACは、秘密鍵と組み合わせてハッシュ関数を使用する、既知の暗号メッセージ認証コードである。これは、メッセージ認証及びデータ完全性の双方を検証するために使用される。HMACは、MD5又はSHA−1などの、任意の既知の暗号学的ハッシュ関数を使用して算出されてもよい。様々な実施形態では、デバイス登録モジュール704は、各建物サーバに関する秘密暗号鍵を記憶しているデータベースへのアクセスを有する。各建物サーバは、それ自身の秘密暗号鍵のコピーへのアクセスを有するが、いずれの他の建物サーバの暗号鍵へのアクセスも有さない。クラウド上のデバイス登録モジュール704は、その後、受信された建物サーバID及びHMACが、互いに関連付けられていることを検証する(BSID及びHMACを検証する())。そうすることで、デバイス登録モジュール704は、建物サーバ100を認証する。このプロセスの間に、デバイス登録モジュール704が、検証/認証することが不可能な建物サーバからの複数の登録の試みを受信した場合には、そのような建物サーバからの試みを一時的にブロックしてもよい。
次に、デバイス登録モジュール704は、様々なクラウドベースのモジュールと対話する際に、建物サーバIDと組み合わせて、その建物サーバの動作IDとして機能することになる、パスワードを作成する(パスワードを作成する())。多くの実施形態では、次いで、デバイス登録モジュール704は、アイデンティティ管理モジュール705を呼び出して、屋内空間及びリソース使用を監視するためのクラウドベースのシステム内の建物サーバ100を表す、新たなアイデンティティを作成させる(アイデンティティを作成する())。この新たなアイデンティティを案出するために、建物サーバID及びパスワードが使用される。建物サーバ100に関する新たなアイデンティティの作成が成功すると、アイデンティティ管理モジュール705は、クラウドによって認識されている建物サーバの群に、建物サーバ100を追加するように進む(群に追加する())。このことは、その建物サーバID及び建物サーバの新たに創出されたアイデンティティと、所定の群との間に、データベース内での関連付けを単純に作り出すことによって達成されてもよい。クラウドの一部の実施形態では、クラウドに登録されている各建物サーバは、建物サービス群と称されてもよい群に属している。この群に属していることは、特別なタイプのデバイス、すなわち建物サーバとして、デバイスを識別する1つの方法である。その群への追加の成功に続けて、アイデンティティ管理モジュール705は、デバイス登録モジュール704に、完了が成功したことを通知する(アイデンティティ管理モジュール705からデバイス登録モジュール704への点線矢印によって示される)。
その後、デバイス登録モジュール704は、建物サーバ100がセキュアなサーバとして機能するために使用する、暗号証明書を作成する。そのような暗号証明書が作成される様々な方法が存在する。典型的には、証明書は、認証局の秘密鍵を使用して署名及び暗号化されている、公開鍵である。この証明書のユーザ(例えば、建物サーバ100)は、その真正性の証拠として、他のエンティティに公開鍵を提示することができ、それにより、エンティティが別のエンティティを偽装することを防止する。様々な実施形態では、次いで、デバイス登録モジュール704は、建物サーバ100がクラウドと通信するために使用することが可能な、建物サーバ100に関して以前に生成したパスワード、作成済みの証明書、暗号化秘密鍵、及びリソースについての情報(例えば、MQTTのエンドポイント又はURL)を、建物サーバ100に送信する(デバイス登録モジュール704から建物サーバ100への点線矢印によって示される)。
デバイス登録モジュール704からの上記の情報を受信すると、建物サーバ100は、例えば、予めデバイス登録モジュール704と共有している、自身の秘密鍵を使用して、暗号化秘密鍵を復号化する(インストール秘密鍵証明書を抽出する())。建物自体の内部での(例えば、建物サーバ100と様々な無線ゲートウェイとの間の)セキュアな通信のために、共有秘密が、これらのデバイス間のセキュアな接続を保証するように使用されてもよい。建物サーバ100は、建物内で使用するための、そのような共有秘密として、サイト鍵を生成する(インストールサイト鍵を生成する())。
次に、建物サーバ100は、例えば、デバイス登録モジュール704から受信した、自身の建物サーバID及びパスワードを提供することによって、アイデンティティ管理モジュール705によって自身を認証させることを試みる(認証する(BSID、パスワード))。認証が成功した場合には、アイデンティティ管理モジュール705は、建物サーバ100が、その後クラウド内のサービスにアクセスするために使用してもよい、アクセストークンを返す(「アクセストークン」と標識された点線矢印によって示される)。
多くの実施形態では、クラウドに関連付けられているデータプラットフォームモジュール180にアクセスするために、建物サーバ100は、第2のアクセスクレデンシャルのセットを有することが必要とされる。このことは、他の全てのクラウドモジュールへのアクセスを得ることに関連するセキュリティと、クラウドのデータプラットフォーム自体へのアクセスに関連付けられるセキュリティとを、本質的に区別するものである。以下の論考は、この追加的なクレデンシャルのセットを付与する結果をもたらすことになる、建物サーバ100の登録プロセスの一部を論じるものである。このプロセスを開始するために、建物サーバは、例えば、APIコールを呼び出して(データプラットフォームをアクティブ化する(BSID、パスワード))、自身の建物サーバID並びに自身のパスワードを提供する。この通信は、HTTPSを介して行われてもよい。この通信を受信すると、デバイス登録モジュール704は、アイデンティティ管理モジュール705を呼び出して、供給されたクレデンシャルを検証する(クレデンシャルを検証する(BSID、パスワード))。検証されると(アイデンティティ管理モジュール705からデバイス登録モジュール704への、OKと標識された点線矢印)、デバイス登録モジュール704は、建物サーバ100が、データプラットフォームモジュール180との通信に使用するための、別のパスワードを生成するように進む(パスワードを作成する())。多くの実施形態では、次いで、デバイス登録モジュール704は、データプラットフォームモジュール180に、以下の情報を提供する:建物サーバID、データプラットフォームアクセスのための新たなパスワード、及び、建物サーバ100が属する特定の群についての情報(対象デバイス群())。多くの実施形態では、この通信は、HTTPSを介して達成されてもよい。この情報を使用して、データプラットフォームモジュール180は、その建物サーバとの将来の対話において、建物サーバ100を識別する際に使用するための、一意のアイデンティティを作成する(DPアイデンティティを作成する())。この新たなアイデンティティの作成が成功すると、データプラットフォームモジュール180は、その旨をデバイス登録モジュール704に通知する(データプラットフォームモジュール180からデバイス登録モジュール704への、DPアイデンティティと標識された点線矢印)。デバイス登録モジュール704は、次に、この成功の通知を、その新たに生成された建物サーバのデータプラットフォームクレデンシャルと共に、建物サーバ100に渡す(デバイス登録モジュール704から建物サーバ100への、DPアイデンティティと標識された点線矢印)。
その後、建物サーバ100は、データプラットフォームモジュール180に自身を直接認証させることを、例えば、データプラットフォームモジュール180で、この目的のためのAPIを呼び出すことによって試みる。この建物サーバは、データプラットフォームに、自身の建物サーバID、及びデータプラットフォームモジュール180によって作成されたパスワードを供給する。次に、データプラットフォームモジュール180は、建物サーバ100によって供給されたクレデンシャルを検証し(クレデンシャルを検証する())、データプラットフォームモジュール180との将来の通信の際に建物サーバ100によって使用されるための、アクセストークンを返す(データプラットフォームモジュール180から建物サーバ100への、データプラットフォームトークンと標識された点線矢印)。
図8Bに示されるように、登録の後、建物サーバ100は、例えば、クラウド接続性サービスモジュール190が提供するAPIを使用して、クラウド接続性サービスモジュール190のメソッドを呼び出し、自身の建物サーバIDと、デバイス登録モジュール704によって建物サーバ100に関して最初に作成されたパスワードとを供給することによって、初めてクラウドに接続する(接続する(BSID、パスワード))。これに応答して、クラウド接続性サービスモジュール190が、認証メソッドを呼び出すことにより、アイデンティティ管理モジュール705は、その建物サーバのクレデンシャルを認証するように求められる。この目的のために、建物サーバ100によって提供された建物サーバID及びパスワードが使用される(認証する(BSID、パスワード))。多くの実施形態では、認証プロセスは、HTTPSプロトコルを使用して、アイデンティティ管理モジュール705でクラウド接続性サービスモジュール190によって開始されてもよい。認証が成功すると、アイデンティティ管理モジュール705は、建物サーバ100の認証が成功したことを示すトークンを、クラウド接続性サービスモジュール190に返す(「トークン」と標識された点線矢印によって示される)。受信されたトークンを使用して、次いで、クラウド接続性サービスモジュール190は、建物サーバ100が予め割り当てられている群を、アイデンティティ管理モジュール705が取得するように要求する(群を取得する(トークン))。これに応答して、アイデンティティ管理モジュール705は、建物サーバ100が割り当てられている群(例えば、その特定のクラウドに関連付けられている全ての登録済み建物サーバに対する参照を含む群)に対する参照を返す。
様々な実施形態では、上記の情報交換の全てが、HTTPSプロトコルを使用して実施されてもよい。建物サーバ100に割り当てられている群に対する参照を使用して、クラウド接続性サービスモジュール190は、建物サーバ100の認可を検証することができる(認可を検証する())。このことを行うために、様々な実施形態では、クラウド接続性サービスモジュール190は、建物サーバ100が正しい認可群に属していることを確認する。建物サーバ及びゲートウェイのようなシステムデバイスは、通常、あるデバイス群に関連付けられている。結果として、いずれかのデバイスが、MQTTを使用してクラウド接続性サービスモジュール190に接続すると、クラウド接続性サービスモジュール190は、そのデバイスが、実際にそのデバイス群の一部であるか否かを確認する。多くの実施形態では、ユーザではなく、デバイス又はサービス(例えば、プロトコル構想プラグイン)のみが、MQTTを介してクラウドに接続することを許可される。建物サーバ100の認可ステータスの検証が成功すると、クラウド接続性サービスモジュール190は、接続が成功していることを示す通知を(例えば、MQTTを使用して)建物サーバ100に返信する(クラウド接続性サービスモジュール190から建物サーバ100への、「接続済み」と標識された点線矢印によって示される)。建物サーバ100は、その後、例えばMQTTの「発行」メカニズムを使用して、クラウド接続性サービスモジュール190を介して「SignOn」メッセージを発行することができる。「SignOn」メッセージは、特定の建物サーバに関連付けられている特定のトピックに対して発行される。MQTTでは、異なるトピックは、異なるチャネル又は機能性に関連付けられている。様々なデバイスは、それらのチャネル上に発行されたメッセージを受信するために、様々なチャネルに加入することができる。したがって、特定のトピックに加入している全てのデバイスは、建物サーバ100の「SignOn」メッセージの通知を受信することになる。しかしながら、建物サーバ100の、その「SignOn」メッセージを発行しようという望みに肯定応答する前に、クラウド接続性サービスモジュール190は、建物サーバ100の接続呼び出しに続けて以前に実行したように、認可の検証を再び実行する(認可を検証する())。認可の検証が成功したことに続けて、肯定応答が建物サーバ100に返される(クラウド接続性サービスモジュール190から建物サーバ100への、「ACK」と標識された点線矢印によって示される)。その後、クラウド接続性サービスモジュール190は、建物サーバ100がそのSignOnメッセージを発行することを望むトピックの全ての加入者に、建物サーバ100のSignOnメッセージをプッシュする(建物サーバのSignOn())。加入者として、プラグイン構想モジュール709は、そのSignOnメッセージを受信し、受信に肯定応答する(プラグイン構想モジュール709からクラウド接続性サービスモジュール190への、「ACK」と標識された点線矢印によって示される)。建物サーバ100のSignOnを受信すると、プラグイン構想モジュール709は、その旨を速やかにプロジェクトサービスモジュール708に報告し、それにより、プロジェクトサービスモジュール708は、新たなデバイスのSignOnを認識して、なんらかの必要なアクションを実施することができる(発見済みデバイスをコールバックする())。
システムデバイスのソフトウェア又はファームウェアの更新
図9は、感知デバイスなどのシステムデバイス(例えば、図1のデバイス101)の、ソフトウェア又はファームウェアを更新する方法の一実施形態を示す。図9に示される矢印は、同じプロセッサ、又は異なるプロセッサであるがアクセス可能なプロセッサ上で、ソフトウェア又はファームウェアの実行部分からアクション又は応答を呼び出すための、関数コール、コマンド、又は任意の他のメカニズムを表し得る。以下の説明では、HTTPSは、例えば、建物サーバとゲートウェイとの間、又は建物サーバとクラウドとの間の、通信プロトコルとして言及される場合がある。しかしながら、HTTPSは、任意の実施形態で使用されてもよい多くのプロトコルのうちの1つである。例えば、MQTTもまた、これらの通信に適用可能であってもよい。図の上部に示されているモジュールのうち、特に、SW更新モジュール703、プロジェクトサービスモジュール708、及びSWイメージ700の3つは、図1のクラウド115又は図7Aのクラウドなどのクラウド内に存在する、ソフトウェアモジュールである。この図に示されるプロジェクトサービスモジュール708は、図7Aに示されるプロジェクトサービスモジュール708と同様である。この図の上部に示されている残りの3つのモジュール又はデバイス、すなわち、FW更新BSモジュール721、ゲートウェイ110A、及びシステムデバイス101は、建物などの物理的構造内に配置された物理デバイスに関連付けられているプロセッサ上で実行される、物理デバイス又はモジュールを表す。
SW更新モジュール703が、最初に、プロジェクトサービスモジュール708に対して、「開く」コマンド又は関数コールを実行する。様々な実施形態では、SW更新モジュール703は、特定の既存のプロジェクト階層を開くことを望む。プロジェクト階層は、図5A〜図5C及び図6との関連で前述されている。これに応答して、特定のプロジェクトの論理モデルが返され、これを使用して、SW更新モジュール703は、特定のフロアに関連付けられているデータへのアクセス(選択する(フロア))と、その特定のフロア上の1つ以上のシステムデバイス(例えば、感知デバイス)に関連付けられているデータへのアクセス(選択する(システムデバイス))とを得る。
更新ファイルを閲覧する()の矢印は、SW更新モジュール703が、SWイメージ700リポジトリから、SW更新モジュール703が予め選択したシステムデバイスに関する更新ファイルのURLを、要求又は別の方式で取得することを示す。SW更新モジュール703は、その後、建物サーバのFW更新BSモジュール721に、そのシステムデバイスの更新ファイルのURL、デバイスMAC、及び通信経路のうちの1つ以上を有する、FW更新メッセージを送信する(FW更新(ファイルURL、デバイスMAC、通信経路))。更新されるデバイスが、建物サーバ自体である場合には、通信経路は空であってもよい。ゲートウェイ(例えば、無線ゲートウェイ)が更新される場合には、通信経路は、そのゲートウェイのIPアドレスである。また、システムデバイスが更新される場合には、通信経路は、無線ゲートウェイのIPアドレス、及び/又はZigBeeショートアドレスである。様々な実施形態では、FW更新(ファイルURL、デバイスMAC、通信経路)の矢印は、少なくとも感知デバイスなどのシステムデバイスに関する更新の場合には、FW更新BSモジュール721を完全に迂回して、ゲートウェイのFW更新モジュール732を直接呼び出すように進むことになる。この図の場合(例えば、図9示される方法の実施形態)では、建物サーバのFW更新BSモジュール721は、SW更新モジュール703によって供給されたデバイスMACが、建物サーバ(例えば、それ自身)に属しているか否かを判定するためにチェックする(デバイスMACをチェックする())。属していない場合には、そのデバイスMACに関連付けられているデバイスに関する更新ファイルの取得を開始する。HTTPS取得(ファイルURL)の矢印は、FW更新BSモジュール721が、SW更新モジュール703から予め受信されているファイルURLを使用して、適切な更新ファイルを取得するために、HTTPSプロトコルを使用することを示す。
次に、建物サーバのFW更新BSモジュール721が、更新される感知デバイスに関する更新ファイルを取得した実施形態では、建物サーバのFW更新BSモジュール721は、適切な無線ゲートウェイ(例えば、更新される感知デバイスに関連付けられているもの)に、その更新ファイルのURLを通知する(FW更新())。デバイスMAC及び通信経路もまた、この時点で、その無線ゲートウェイに中継されてもよい。これに応答して、無線ゲートウェイは、伝達されたファイルURLを使用して、建物サーバから更新ファイルを取得する(HTTPS取得(ファイルURL))。代替的実施形態では、この情報を建物サーバに問い合わせることを必要とするのではなく、無線ゲートウェイ自体が、HTTPSサーバを実装してもよい。無線ゲートウェイはまた、新たな更新に関して、建物サーバに定期的にポーリングしてもよい。更には、無線ゲートウェイは、TLSサーバソケットを実装してもよい。
イメージ通知()の矢印は、無線ゲートウェイが、更新を必要としている特定の感知器に、利用可能な新しい更新が存在していることを送信するトリガである。感知器(システムデバイス101)から発している、次のイメージの問い合わせ()の矢印は、そのトリガに対する感知器からの応答であり、本質的に、新たな更新に関連付けられている詳細について問い合わせるものである。無線ゲートウェイから発している、次のイメージの問い合わせの応答()の矢印は、この問い合わせに対する応答である。この応答は、バージョン管理情報(例えば、メジャー及びマイナーバージョン番号)、及びハードウェアIDなどの、その更新に関連する情報を含み得る。これらの問い合わせ及び応答は、多くの実施形態では、ZigBeeプロトコルを使用して遂行される。
この時点で、感知器の更新ファイルに関連付けられているイメージの全体が、その感知器自体に転送されるまで、要求及び応答のループが実行される。このループは、感知器が、無線ゲートウェイにイメージブロックを要求することから開始する(イメージブロック要求())。これに応答して、無線ゲートウェイは、要求されたイメージブロックで応答する(イメージブロック応答())。このループは、更新イメージファイル内の全てのイメージブロックが、感知デバイスによって受信された時点で終了する。
多くの実施形態によれば、全ての更新ファイルイメージブロックの転送に続けて、感知デバイスは、例えばアップグレード終了要求()メソッドを呼び出すことによって、無線ゲートウェイから、続行についての更なる命令を要求する。一部の実施形態では、無線ゲートウェイは、更なる通知まではソフトウェア/ファームウェアの更新の開始を控えるべきではないことを指示することによって、感知器に応答してもよい(更新終了応答())。このアップグレード終了要求/応答の通信は、通常、ZigBeeプロトコルを使用して達成されるが、必ずしもそれに限定されるものではない。次に、無線ゲートウェイは、感知デバイスに関連付けられた新たなステータスを、建物サーバのFW更新BSモジュール721に通知するメソッドを呼び出す(HTTPS(ステータス、デバイスMAC))。この通知を受信すると、次に、建物サーバのFW更新BSモジュール721は、クラウド上のSW更新モジュール703に、特定のMACアドレスに関連付けられている感知デバイスが、更新の準備が整っていることを通知する(ステータス更新(デバイスMAC))。これに応答して、SW更新モジュール703は、感知デバイスでの更新の開始をトリガするための、建物サーバのFW更新BSモジュール721でのメソッドを呼び出してもよい(FW更新をトリガする(デバイスMAC、通信経路))。このトリガは、感知デバイスのMACアドレス及び/又は感知デバイスの通信経路を通信してもよい。多くの実施形態では、建物サーバのFW更新BSモジュール721は、次に、同様のメカニズムを使用して、更新トリガを無線ゲートウェイに通知する(FW更新をトリガする(デバイスMAC、通信経路)。この通知に応答して、無線ゲートウェイは、そのMACデバイスアドレス及び/又は通信経路によって識別された感知デバイスに、現時点で更新の適用を開始してもよいことを通知する(更新終了応答(現在))。感知器は、その後、予め受信されている更新のイメージブロックを使用して、更新を適用する(FW更新を適用する())。感知器が更新のインストールを終了し、再起動の成功のような他の必要なタスクを実行した後に、その感知器は、SignOn及び通常動作の再開の準備が現時点で整っていることを、無線ゲートウェイに示す(SignOn())。
建物サーバのローカライズ
図10A及び図10Bは併せて、物理的環境を監視及び制御するための例示的なクラウドベースのシステムにおいて、建物サーバをローカライズする方法の一実施形態を示す。双方の図の上部のボックスは、施設内部の建物サーバ100(例えば、図1の建物サーバ100)と、例えば図1のクラウド115に関連付けられている、様々なクラウドベースのモジュールとを表す。プロジェクトサービスモジュール708、プラグイン構想モジュール709、展開構想エンジンモジュール711、クラウド接続性サービスモジュール190、及びデバイス登録モジュール704は全て、図7Aとの関連で前述された同一名称のクラウドベースのモジュールの実施形態である。更には、システムマップアプリケーションモジュール160は、図1及び図6との関連で前述された、クラウドベースのアプリケーションモジュールである。図10Aの左側に示されるユーザCもまた、図6との関連で前述されている。本質的に、ユーザCは、インストーラー又はコミッショニング技術者などの人物であり、その主要なタスクは、作成された建物のデジタルモデルに基づいて、建物内に物理的及び論理的にデバイスをインストールすることであってもよい。ユーザC、又は何らかの他の同様の資格認定されたユーザは、その後、コミッショニング、コンフィギュレーション、及び展開のプロセスに関与することができる。
この図に示される実施形態は、クラウド内のプロジェクトサービスモジュール708が自己始動して(プロジェクトサービスを開始する())、プラグイン構想モジュール709のインスタンスを呼び出す(開始する())ことから開始する。実行されると、プラグイン構想モジュール709のインスタンスは、自身をクラウド接続性サービスモジュール190に登録する(登録する())。その一方で、監視される建物内の建物サーバ100は、自身をデバイス登録モジュール704に登録する。建物サーバ100の登録プロセスは、図8A及び図8Bに付随する説明で、より詳細に説明されている。この登録プロセスにおける初期ステップのうちの1つは、建物サーバ100が、デバイス登録モジュール704でAPIコールを呼び出して(登録する())、様々な実施形態ではMACアドレスである、そのローカルに記憶されている建物サーバIDを提供することを伴う。デバイス登録モジュール704は、登録に成功すると、建物サーバ100がクラウドとの更なる通信を継続することが可能な、アドレス/位置と、そのクラウドによって提供される様々なサービスにアクセスするために建物サーバ100が提示することが必要とされる、クレデンシャルとを返す(接続設定())。これらのクレデンシャルは、典型的には、建物サーバのインスタンスごとに発行される。受信された接続設定及びその建物サーバIDを使用して、建物サーバ100は、次に、デバイス登録モジュール704によって提供されたアドレス/位置でクラウド接続性サービスモジュール190に連絡することによって、セキュアな接続の作成を開始する(接続を作成する(建物サーバID))。クラウドとのセキュアな接続の設定が成功すると、クラウド接続性サービスモジュール190は、その旨を建物サーバ100に通知する(「OK」と標識された矢印によって示される)。
次に、建物サーバ100は、展開構想エンジン(Envision Deployment Engine;EDE)モジュール711を介して、自身をクラウドに告知するように進む。建物サーバは、本質的に、まさにこの目的のために、EDEモジュール711によって公開されるAPIを呼び出して、自身についての様々な情報(例えば、その建物サーバID、並びに、ソフトウェア及びハードウェアのバージョン管理情報)を提供する。このことは、図10Aで、建物サーバ告知(デバイス情報)と標識された矢印によって表されている。建物サーバ100などのデバイスからのデータを、システムプロジェクトアプリケーションモジュール140及びシステムマップアプリケーションモジュール160などのシステムアプリケーションモジュールに通信するモジュールである、プロジェクトサービスモジュール708に、この告知を通信するために、その建物サーバの告知は、最初に、プラグイン構想モジュール709に伝搬されなければならない(建物サーバ告知())。一部の実施形態では、建物サーバ100からの建物サーバ告知は、展開構想エンジンモジュール711にではなく、プラグイン構想モジュール709自体に直接送信される。建物サーバの告知が、プラグイン構想モジュール709を介してクラウドに到達すると、プロジェクトサービスモジュール708に通知され、建物サーバを、既知デバイスのリストに追加する(発見リストにデバイスを追加する())。プロジェクトサービスモジュール708は、建物サーバのID並びに他の情報(例えば、バージョン管理情報)をデータベースに追加することなどの、任意の既知の手段によって、そのことを行ってもよい。
建物サーバ100が登録及び接続され、その存在をプロジェクトサービスモジュール708が認識すると、ユーザ(例えば、この図に示されるユーザC)は、タブレットコンピュータなどのモバイルデバイス上に提示されるアプリケーションのフロントエンドを現場で使用している間に、システムアプリケーションモジュールにアクセスすることができる(アプリを開始する)。ユーザCは、例えば、システムマップアプリケーションモジュール160などの1つ以上のシステムアプリケーションにアクセスするために必要なアクセスクレデンシャルを予め付与されている、インストーラー又はコミッショニング技術者であってもよい。例示的なシステムアプリケーションモジュールは、図1及び図6との関連において、より詳細に前述されている。次いで、ユーザCは、様々な実施形態では、そのユーザの役割及びクレデンシャルに基づいて、自身がアクセスを有する様々なプロジェクトを閲覧して回り、そのユーザが物理的に存在しているサイトに関連付けられている、プロジェクト階層及び建物を、グラフィカルに選択する(プロジェクトを選択する(建物))。次いで、システムマップアプリケーションモジュール160は、選択された建物に関して予め作成されているデータモデルを、プロジェクトサービスモジュール708からフェッチ又は要求する(取得する())。これに応答して、プロジェクトサービスモジュール708は、選択された建物に関連付けられているデジタルフロアプランを提供し(フロアプラン())、そのデジタルフロアプランは、その後、ユーザCのモバイルコンピューティングデバイス上で実行されているシステムマップアプリケーションモジュール160の、フロントエンド上に表示される(点線矢印)。
次に、ユーザCは、システムマップアプリケーションモジュール160のフロントエンド上に、自分が建物サーバをローカライズすることを望んでいることを示す(選択(建物サーバ))。このことは、単純に建物サーバのアイコンを選択して、その建物のフロアプランの視覚的表現上に、そのアイコンをドラッグすることによって行われてもよい。このシステムアプリケーションモジュールとのユーザ対話は、その建物サーバの固有の製造元提供QRコードの写真を、ユーザCが撮影するべき時間であることを示す。したがって、アプリケーションモジュール160は、ユーザCのモバイルコンピューティングデバイス上のカメラデバイスを起動して(カメラを開始する())、ユーザCにQRコードを要求する(QRコードを要求する())。ユーザCは、QRコードを含む建物サーバの部分の写真を撮影することによって、それに応じる。QRコードは、ここでは一例として使用されており、限定することを意図するものではない。他の実施形態では、建物サーバ上に物理的に取り付けられているか又は別の方式で貼り付けられている、任意の固有コードが使用されてもよい。システムマップアプリケーションモジュール160は、その後、ユーザCのモバイルデバイス上のカメラデバイスによって取り込まれた画像から、QRコードを抽出する(QRコードを返す(ID))。
建物サーバをローカライズする本実施形態に関連付けられている残りのステップは、図10Bに示される。システムマップアプリケーションモジュール160が、ユーザCのモバイルデバイス上のカメラによって撮影された画像から、QRコードデータを取得すると、アプリケーションモジュール160は、そのQRコードデータと共に、建物サーバのIDを、プロジェクトサービスモジュール708に送信する(<BS ID>を入力する(QRデータ)、ここで「BS」は建物サーバを表す)。このことは、一部の実施形態では、HTTPS PUTメソッド呼び出しを介して達成されてもよい。これに応答して、プロジェクトサービスモジュール708は、アクセス可能な発見リスト内の、一致するQRコードデータを有するデバイスを検索して、識別されたデバイスのプロファイル、例えば「発見済みデバイスプロファイル」を返す(発見リスト内のデバイスを検索する(QRデータ、発見済みデバイスプロファイル))。次に、プロジェクトサービスモジュール708は、メモリ内で、その物理デバイス(例えば、そのQRコードがユーザCによって画像内に取り込まれた建物サーバ)を、その物理建物サーバが中に存在している建物のモデルのフロアプラン上の、ローカライズのための仮想デバイスに関連付ける(仮想デバイスに物理デバイスを関連付ける(モデル、発見済みデバイスプロファイル))。プロジェクトサービスモジュール708は、その後、システムマップアプリケーションモジュール160に肯定応答を返す(点線矢印)。
肯定応答の受信に続けて、アプリケーションモジュール160は、ユーザCがローカライズしている建物サーバが、オンラインであるか又はオフラインであるかを判定するためにチェックする。したがって、プロジェクトサービスモジュール708で適切なAPIコールを呼び出して、必要な建物サーバIDを提供する(オンライン状態を得る(建物サーバID))。プロジェクトサービスモジュール708は、関連付けられている発見済みデバイスプロファイルを検索するために、供給された建物サーバIDを使用して、(例えば、データベース内の)探索を実行する(探索する(建物サーバID、発見済みデバイスプロファイル))。次いで、この発見済みデバイスプロファイルを使用して、プロジェクトサービスモジュール708は、建物サーバの適切なID、及びオンライン状態に関する要求を使用して、プラグイン構想モジュール709を呼び出して(オンライン状態を得る(BS ID))、その後、プラグイン構想モジュール709は、それらを使用して正しい建物サーバに連絡し、オンライン状態情報を直接要求することができる(オンライン状態を要求する())。次いで、建物サーバ100は、そのオンライン状態(例えば、現在オンラインであるか又はオフラインであるかの指標)を返す(点線矢印)。次いで、この情報は、プラグイン構想モジュール709によって、例えば適切なAPIコールの呼び出しを介して、プロジェクトサービスモジュール708に伝搬される(デバイス状態をコールバックする(オンライン))。プロジェクトサービスモジュール708によって受信された情報(例えば、オンライン又はオフライン)に基づいて、プロジェクトサービスモジュール708は、システムマップアプリケーションモジュール160に適切に通知する(選択的な点線矢印オンライン及びオフライン)。建物サーバ100が、現在オンラインである場合には(例えば、ユーザCがローカライズプロセスの完了を試みている時)、システムマップアプリケーションモジュール160は、その建物サーバのローカライズが成功していることを、ユーザCに通知する(ローカライズの成功を示す())。あるいは、建物サーバ100が、現在オフラインであると判定された場合には、プロジェクトサービスモジュール708は、様々な実施形態では、その発見済みデバイスプロファイルと物理建物サーバとの間の、予め作成されていた関連付けを除去し、システムマップアプリケーションモジュール160は、ローカライズが失敗したことを、ユーザCに通知する(ローカライズの失敗を示す())。ユーザCは、ローカライズが失敗した理由、例えば建物サーバ100がオフラインであること、及び、ローカライズが適切に完了するためには、建物サーバがオンラインであることが必要であることを、通知されてもよい。
ゲートウェイのローカライズ
図11は、物理的環境を監視及び制御するための例示的なクラウドベースのシステムにおいて、無線ゲートウェイ(例えば、図1のゲートウェイ110A)をローカライズする方法の一実施形態を示す。この図の上部のボックスは、施設内部の(例えば、図1の建物サーバ100と同様の)建物サーバ100と、例えば図1のクラウド115に関連付けられている、様々なクラウドベースのモジュールとを表す。プラグイン構想モジュール709、及びプロジェクトサービスモジュール708は、図7Aとの関連で前述された、同一名称のクラウドベースのモジュールの実施形態である。更には、システムマップアプリケーションモジュール160は、図1及び図6との関連で前述された、クラウドベースのアプリケーションである。図11の左側に示されるユーザCもまた、図6との関連で前述されている。本質的に、ユーザCは、インストーラー又はコミッショニング技術者などの人物であり、作成された建物のデジタルモデルに基づいて、建物内に物理的及び論理的にデバイスをインストールし、その後、コミッショニング、コンフィギュレーション、及び/又は展開のプロセスに関与することなどのタスクを実行する。
一部の実施形態では、無線ゲートウェイ110Aに関するローカライズのプロセスは、その無線ゲートウェイが、例えばMQTTプロトコルを介して、SignOnメッセージを送信することから開始する。このSignOnメッセージは、多くの実施形態では、建物サーバの固有ID、無線ゲートウェイのIPアドレス、ゲートウェイに関する情報、及び無線ゲートウェイに関連付けられているIDを含む(SignOn(建物サーバID、IPアドレス、デバイス情報、無線ゲートウェイID))。様々な実施形態では、建物サーバは、(例えば、図7Bに示されるような)MQTTプロキシを実行し、次いで、そのSignOnメッセージを、プラグイン構想モジュール709に転送する(SignOn(建物サーバID、IPアドレス、デバイス情報、無線ゲートウェイID)と標識された、第2の矢印によって示される)。一方、プラグイン構想モジュール709も、そのSignOnメッセージ及びその関連パラメータを、クラウド115上で動作しているプロジェクトサービスモジュール708に転送する。それを行うために、プラグイン構想モジュールは、プロジェクトサービスモジュール708が、自身のAPIの一部として公開する、コールバックメソッド又は関数を呼び出してもよい(コールバック(建物サーバID、IPアドレス、デバイス情報、無線ゲートウェイID))。このコールバックは、未だローカライズされていない新たなデバイスがSignOnを試みており、利用可能であることを、プロジェクトサービスモジュール708に通知する方法である。次いで、プロジェクトサービスモジュール708は、そのコールバックで受信された無線ゲートウェイ110Aに関する情報を、以前に遭遇していない「新たな」デバイスのリストに追加する(発見リストにデバイスを追加する())。
その間に、本実施形態では、ユーザCは、タブレットコンピュータなどのポータブルコンピューティングデバイス上で実行されているシステムマップアプリケーションモジュール160のユーザインタフェース上で、無線ゲートウェイ110Aを表すアイコンをグラフィカルに選択する(無線ゲートウェイの選択)。このことは、システムマップアプリケーションモジュール160に、ポータブルデバイス上のカメラアプリケーションを起動させる(カメラを開始する())。次いで、マップアプリケーションモジュール160は、無線ゲートウェイに関連付けられているQRコードに関して、ユーザCを促すことができる(QRコードを要求する())。それに応じるべく、ユーザCは、QRコードを上に有している、その無線ゲートウェイの一部にカメラを向けて、写真を撮影する(写真を撮影する())。次いで、その画像がマップアプリケーションモジュール160によって分析され、QRコードが抽出される(QRコードを返してデコードする())。
QRコードが画像から抽出されると、マップアプリケーションモジュール160は、プロジェクトサービスモジュール708が、そのQRコードに関連付けられている物理デバイスを、(例えば、その建物のデジタルフロアプラン上の)建物のデータモデル内に表されており、かつマップアプリケーションモジュール160のグラフィカルユーザインタフェース上に表されている、仮想デバイスに関連付けるように要求する(仮想デバイスに物理デバイスを関連付ける(QRコード、仮想デバイスID))。多くの実施形態では、物理デバイスを識別するために、マップアプリケーションモジュール160は、QRコードを供給し、仮想デバイスを識別するために、仮想デバイスIDを供給する。これに応答して、プロジェクトサービスモジュール708は、自身の発見済みデバイスのリスト内に仮想デバイスを配置し(リスト内でデバイスを検索する())、その後、メモリ内で、物理デバイス(例えば、そのQRコードがユーザCによって画像内に取り込まれた無線ゲートウェイ)を、ローカライズ目的で仮想デバイス(例えば、システムマップアプリケーションモジュール160によって供給された仮想デバイスIDに一致する、そのリスト内の仮想デバイス)に関連付ける(仮想デバイスに物理デバイスを関連付ける())。プロジェクトサービスモジュール708は、その後、システムマップアプリケーションモジュール160に肯定応答を返す(プロジェクトサービスモジュール708からシステムマップアプリケーションモジュール160への、点線矢印によって示される)。
この関連付けの肯定応答の受信に続けて、システムマップアプリケーションモジュール160は、その無線ゲートウェイに関連付けられるオンライン状態を要求する。プロジェクトサービスモジュール708が、その状態を検索することを可能にするために、システムマップアプリケーションモジュールは、その無線ゲートウェイの仮想デバイスIDを供給する(オンライン状態を得る(仮想デバイスID))。プロジェクトサービスモジュール708は、その後、この仮想デバイスIDに基づいて、発見済みデバイスプロファイルを取得する。様々な実施形態では、このプロファイルは、デバイス(この実施例では、無線ゲートウェイ)の物理アドレスを含む(探索する(仮想デバイスID、発見済みデバイスプロファイル))。次いで、プロジェクトサービスモジュール708は、その無線ゲートウェイのオンライン状態に関する要求を、プラグイン構想モジュール709に転送し(オンライン状態を得る(DDP)、ここで「DDP」は「発見済みデバイスプロファイル」を表す)、この要求は、適切な建物サーバ(この実施例では、建物サーバ100)へと連鎖的に転送される(オンライン状態を得る(DDP))。多くの実施形態では、発見済みデバイスプロファイル内に含まれている、無線ゲートウェイの物理アドレスはまた、対象のゲートウェイに関連付けられている適切な建物サーバのアドレスも識別する。建物サーバ100は、発見済みデバイスプロファイル内で識別された無線ゲートウェイに、SignOnすることを要求し(ReuestSignOn())、これに応答して、その無線ゲートウェイはSignOnして、その旨を建物サーバに示す(SignOn())。建物サーバは、その後、この無線ゲートウェイがオンラインであることをプラグイン構想モジュール709に通知し(オンライン状態結果(真))、プラグインは次に、例えば、そのコールバックAPIを使用して、プロジェクトサービスモジュール708に通知する(コールバック(オンライン状態が真))。最後に、プロジェクトサービスモジュール708は、システムマップアプリケーションモジュール160に、その無線ゲートウェイが実際にオンラインであることを通知し(デバイスがオンライン())、マップアプリケーションモジュールは次に、ユーザCに、ローカライズの成功を示す(ローカライズの成功を示す())。
感知デバイスなどのシステムデバイスをローカライズする
図12A、図12B−I、及び図12B−IIは、物理的環境を監視及び制御するための例示的なクラウドベースのシステムにおいて、感知デバイス(例えば、照明器具)などのシステムデバイスをローカライズする方法の一実施形態を示す。図の上部のボックスは、施設内の建物サーバ(例えば、図1の建物サーバ100)、無線ゲートウェイ(図1のゲート110A)、感知デバイス(例えば、図1のデバイス101)、IR遠隔制御デバイス、及び、例えば図1のクラウド115に関連付けられている様々なクラウドベースのモジュールを表す。プラグイン構想モジュール709及びプロジェクトサービスモジュール708は、図7Aとの関連で前述された同一名称のクラウドベースのモジュールの実施形態である。更には、システムマップアプリケーションモジュール160は、図1及び図6との関連で前述された、クラウドベースのアプリケーションである。これらの図の左上に示されるユーザCもまた、図6との関連で前述されている。本質的に、ユーザCは、インストーラー又はコミッショニング技術者などの人物であり、この文脈でのその主要なタスクは、作成された建物のデジタルモデルに基づいて、建物内に物理的及び論理的にデバイスをインストールすることであってもよい。多くの実施形態では、ユーザCは、その後、コミッショニング、コンフィギュレーション、及び展開のプロセスに関与する。
ユーザCは、システムマップアプリケーションモジュール160上に提示された、建物のデジタルフロアプラン上に示されている、照明器具などの感知デバイスを選択することによって、ローカライズのプロセスを開始する(選択する(感知器))。前述のように、マップモジュール160のフロントエンドは、タブレットコンピューティングデバイス上で実行されていてもよい。多くの実施形態では、フロアプランを入力するために使用される、基礎となるデータモデルは、選択された感知デバイスに関連付けられている無線ゲートウェイについての情報を既に有しているため、マップモジュール160は、プロジェクトサービスモジュール708が、その特定の無線ゲートウェイに関連付けられているネットワークを開くことを要求する。ネットワークを開くことを容易にするために、マップモジュール160は、そのゲートウェイの適切なIDを供給する(ネットワークを開く(ゲートウェイID))。この要求を受信すると、プロジェクトサービスモジュール708は、関連する建物サーバのID及びゲートウェイのIPアドレスを追加した後に、プラグイン構想モジュール709に同様の要求を転送する(ネットワークを開く(建物サーバID、ゲートウェイID、ゲートウェイIPアドレス))。プラグイン構想モジュール709は、次に、供給された建物サーバのIDによって識別された特定の建物サーバが、ZigBeeネットワークを開くことを要求する。このことを容易にするために、プラグインは、関連するゲートウェイのIPアドレスを供給する(ZigBeeネットワークを開く(ゲートウェイIPアドレス))。建物サーバ(例えば、この実施例では建物サーバ100)は、これに応答して、そのZigBeeネットワークを開く同様の要求を、ゲートウェイIPアドレスによって識別された無線ゲートウェイに転送する(ZigBeeネットワークを開く())。無線ゲートウェイ(例えば、この実施例ではゲートウェイ110A)は、そのZigBeeネットワークを開き、全ての関連する感知デバイスに、その旨を通知する(ビーコンを送信する())。無線ゲートウェイ110Aはまた、ネットワークの開放が成功したことを、建物サーバ100にも通知する(ネットワーク開放())。建物サーバ100は、次に、ZigBeeネットワークの開放の成功を、プラグイン構想モジュール709に通知する(通知する(開放の成功))。プラグインモジュール709は、その役割として、特定のネットワークの状態が「開放」状態に変化したことを、プロジェクトサービスモジュール708に通知する(ネットワーク状態の変化(開放))。プロジェクトサービスモジュール709は、その後、システムマップアプリケーションモジュール160に、アプリケーションモジュールから最初に受信されたネットワーク開放要求が、実際に成功して完了しており、アプリケーションモジュールによって識別された特定のゲートウェイIDに関連付けられているネットワークが、実際に開いていることを通知する(ネットワーク開放(ゲートウェイID))。一部の実施形態では、システムマップアプリケーションモジュール160は、この情報を受信すると、自身のGUI上に、そのIRリモコンのダイアログを表示する(IRダイアログを示す())。
このIRリモコンのダイアログが、マップアプリケーションモジュール上で開かれると、ユーザCは随意に、そのIR遠隔制御デバイスを対象の感知器に向けて、その感知器がその無線ゲートウェイのネットワークに追加されるべきであることを示すために、ボタンを押す。多くの実施形態では、このボタンは、「追加」ボタンに指定されてもよい。IR遠隔制御デバイスは、この入力を受信し、これに応答して、感知デバイスが、その無線ゲートウェイのオープンネットワークに自身を追加するべきであることを示す信号を、その感知デバイスに送信する(追加する())。この命令を受信すると、感知デバイスは、無線ゲートウェイ110Aに、そのネットワークに参加する要求を送信し(参加を要求する())、その後、無線ゲートウェイ110Aは、その無線ネットワークに感知器を追加して(ネットワークにデバイスを追加する())、感知器に、そのゲートウェイのネットワークに参加する要求が承認されたことを通知する(参加を承認する())。多くの実施形態では、感知器が、無線ゲートウェイのネットワークに参加する場合には、その感知器は、自身を識別するためのショートアドレスを選択する。次いで、感知器は、無線ゲートウェイ110AとSignOnして、自身のデバイス情報、並びに、自身のショートアドレスを提供する。無線ゲートウェイ110Aは、SignOn要求を、その感知器に関連付けられている感知器ID、無線ゲートウェイ自身のID、建物サーバのID、無線ゲートウェイのIPアドレス、及び感知器のデバイス情報と共に、建物サーバ100に転送する(SignOn(感知器ID、ゲートウェイID、建物サーバID、ゲートウェイIPアドレス、デバイス情報))。様々な実施形態では、無線ゲートウェイ110Aは、上述の情報のサブセットを提供してもよい。受信すると、建物サーバ100は、プラグイン構想モジュール709に同じ要求を転送する。プラグインモジュールは、同じ又は同様のパラメータを使用する、プロジェクトサービスモジュール708のコールバックメソッドを呼び出し(コールバック(感知器ID、ゲートウェイID、建物サーバID、ゲートウェイIPアドレス、デバイス情報))、プロジェクトサービスモジュール708は、次に、システムマップアプリケーションモジュール160に、そのアプリケーション上でユーザCによって予め選択されていた感知器に対応する、新たなデバイスが発見されたことを通知する。多くの実施形態では、プロジェクトサービスモジュール708はまた、関数コールに対するパラメータとしての、一意の物理デバイス識別子も、マップアプリケーションモジュール160に転送する(発見済みデバイス(物理デバイスID))。
その後、図12B−I及び図12B−IIに示されるように、プロジェクトサービスモジュール708は、その感知デバイスを、クラウドによって管理されているデバイスのリストに追加する(デバイス管理リストに物理デバイスを追加する(物理デバイスID、仮想デバイスID))。ゲートウェイ及び建物サーバのローカライズとの関連で前述されたように、物理デバイスIDは、典型的には、その物理デバイス自体に関連付けられている一意識別子(例えば、製造元提供ID)であり、仮想デバイスIDは、典型的には、その物理デバイスの(例えば、データベース内の)仮想表現に既に関連付けられていてもよい一意識別子である。例えば、物理感知器を収容する特定の建物に関連付けられているデータモデルは、その物理感知器が、実際にローカライズされるか、又は、その仮想表現に関連付けられる前であっても、その物理感知器を表す仮想識別子を有していてもよい。
次に、プロジェクトサービスモジュール708は、データベースなどのメモリ内で、感知器の物理デバイスIDを、その仮想デバイスIDに関連付ける(仮想デバイスに物理デバイスを関連付ける(物理デバイスID、仮想デバイスID))。その一方で、システムマップアプリケーションモジュール160は、ユーザCに、感知デバイスのローカライズが成功したことを(例えば、視覚的に)示す(ローカライズの成功を示す())。ユーザCは、その後、例えば、マップアプリケーションモジュール160上に表示されているデジタルフロアプラン上で、感知デバイスを表すアイコンを選択することによって、別の感知デバイスをローカライズするように進むことができる(選択(感知デバイス))。様々な実施形態では、クラウドシステムが、建物内の様々な感知デバイスのローカライズに関与している間であっても、既にローカライズされたデバイスの展開は、自動的に、並行して、ユーザCからの更なる補助又は介入をなんら伴うことなく進行する。
プロジェクトサービスモジュール708は、典型的には、ローカライズされた感知デバイス(例えば、照明器具)に関する展開プロセスを、その感知デバイスの仮想デバイスIDを使用して、それ自身のメソッドを呼び出すことによって開始する(展開する(仮想デバイスID))。その後、プロジェクトサービスモジュールは、その感知デバイスに好適なデバイスコンフィギュレーションを作成する要求を、プラグイン構想モジュール709に送信する。様々な実施形態では、そのような要求は、感知デバイスの仮想デバイスID、デバイスが配置される領域(例えば、廊下、会議室、オフィス、建物フロア)の指標、及び、様々な状況下(例えば、占有、光、又は熱の変化など)での感知デバイスの挙動を指示する1つ以上の(人間に読み取り可能又は器械読み取り可能なフォーマットでの)テンプレートフラグメントを含む(デバイスコンフィギュレーションを作成する(仮想デバイスID、領域、テンプレートフラグメント))。プラグイン構想モジュール709は、この要求を受信すると、プロトコル間での何らかの必要な変換を実行した後、その要求を単純に展開構想エンジンモジュール711に転送する。この要求を受信すると、展開構想エンジンモジュール711は、受信されたテンプレートフラグメント、領域情報、及び仮想デバイスIDを使用して、対象の感知デバイスによって読み取り可能な、目標コンフィギュレーションファイルを作成する(デバイスコンフィギュレーションを作成する(仮想デバイスID、領域、テンプレートフラグメント))。作成の成功の肯定応答が、プラグイン構想モジュール709及びプロジェクトサービスモジュール708へと、連鎖的に転送されて返される(「ACK」と標識された点線矢印によって示される)。
プロジェクトサービスモジュール708が、目標コンフィギュレーションの作成の成功の肯定応答を受信すると、感知デバイスのコンフィギュレーションの更新を開始する要求を、プラグイン構想モジュール709に送信する(更新コマンドを送信する(仮想デバイスID、目標コンフィギュレーション))。これに応答して、プラグイン構想モジュール709は、何らかの必要なプロトコルフォーマットの変換を実行した後、同様の要求を建物サーバ100に転送する。次いで、建物サーバ100は、様々なデバイスのコンフィギュレーションを更新する同様の要求を保持している、更新待ち行列に、その更新要求を仮想デバイスIDと共に追加する(待ち行列コマンド(仮想デバイスID))。これは、ユーザCが、他のローカライズされたデバイスがコンフィギュレーションされている間に、新たなデバイスをローカライズすることが可能であるためである。このコンフィギュレーションプロセス、特に、それらのデバイス自体への多数のコンフィギュレーションデータブロックの書き込みは、時間を要する場合がある。したがって、多くの実施形態では、最近ローカライズされたデバイスをコンフィギュレーションする要求が、建物サーバ100によって受信されると、その要求は待ち行列に追加され、先着順で処理される。この実施例で論じられている感知デバイスが、待ち行列に追加される最初のものであると想定すると、建物サーバ100は、感知デバイスに、建物サーバからのコマンドのリッスンを、この時点で開始するべきであることを通知する(リッスンしてください())。これに応答して、感知デバイスは、建物サーバ100に肯定応答を返信する(「ACK」と標識された点線矢印によって示される)。
次に、建物サーバ100は、その建物サーバが、仮想デバイスIDによって識別された特定の感知デバイスに、コンフィギュレーションデータのブロックを書き込むことを望んでいるという信号/メッセージを、無線ゲートウェイ110Aに送信する(コンフィギュレーションブロックを書き込む(仮想デバイスID、コンフィギュレーションブロック))。無線ゲートウェイは、そのメッセージを、仮想デバイスIDによって識別された正しい感知デバイスに転送する。感知デバイスから肯定応答を受信すると、その肯定応答は、建物サーバ100へと連鎖的に転送されて返される(「ACK」と標識された2つの点線矢印によって示される)。そのようなシーケンスは、感知デバイスに関して作成された目標コンフィギュレーションファイルに関連付けられている全てのブロックが、その感知デバイスに書き込まれるまで、繰り返し遂行される。全てのブロックが書き込まれると、建物サーバ100は、特定の感知デバイスのコンフィギュレーション更新が完了されたことを、プラグイン構想モジュール709に通知する(更新の完了(仮想デバイスID))。次いで、このメッセージは、プロジェクトサービスモジュール708へと連鎖的に転送され、プロジェクトサービスモジュールは、その特定の感知デバイスのコンフィギュレーションが、この時点で最新のものであるという事実を記録する。プロジェクトサービスは、クラウドベースのアプリケーションモジュールがアクセス可能なデータベースを更新して、その旨を示すことを含めた、様々な方式で、そのことを行ってもよい(デバイスコンフィギュレーションが最新())。最後に、プロジェクトサービスは、特定の感知デバイスのコンフィギュレーションが現時点で完了していることを示すメッセージを、システムマップアプリケーションモジュール160に送信する(更新の完了(仮想デバイスID))。
建物サーバ100はまた、その一方で、感知デバイスにリセットメッセージを送信して(リセットする())、その感知デバイスに自身を再起動させる。多くの実施形態では、それ自身の再起動が成功すると、感知デバイスは、そのデバイス情報、及びそのデバイスが新たなコンフィギュレーションを有していることの指標と共に、建物サーバ100にSignOnメッセージを送信する(SignOn(デバイス情報、新たなコンフィギュレーション))。
いくつかの発明実施形態が、本明細書で説明及び図示されてきたが、当業者は、本明細書で説明される機能を実行するための、並びに/あるいは、その結果及び/又は利点のうちの1つ以上を得るための、様々な他の手段及び/又は構造体を、容易に構想することとなり、そのような変形態様及び/又は修正態様は、本明細書で説明される発明実施形態の範囲内にあるものと見なされる。より一般的には、本明細書で説明される全てのパラメータ、寸法、材料、及びコンフィギュレーションは、例示であることが意図されており、実際のパラメータ、寸法、材料、及び/又はコンフィギュレーションは、本発明の教示が使用される特定の用途に応じて変化することを、当業者は容易に理解するであろう。当業者は、通常の実験のみを使用して、本明細書で説明される特定の発明実施形態に対する、多くの等価物を認識し、又は確認することが可能であろう。それゆえ、上述の実施形態は、例としてのみ提示されており、添付の請求項及びその等価物の範囲内で、具体的に説明及び特許請求されるもの以外の発明実施形態が実践されてもよい点を理解されたい。本開示の発明実施形態は、本明細書で説明される、それぞれの個別の特徴、システム、物品、材料、キット、及び/又は方法を対象とする。更には、2つ以上のそのような特徴、システム、物品、材料、キット、及び/又は方法の任意の組み合わせは、そのような特徴、システム、物品、材料、キット、及び/又は方法が相互に矛盾しない場合であれば、本開示の発明の範囲内に含まれる。
本明細書で定義及び使用されるような、全ての定義は、辞書定義、参照により組み込まれる文書中での定義、及び/又は定義される用語の通常の意味を支配するように理解されるべきである。
不定冠詞「a」及び「an」は、本明細書及び請求項において使用されるとき、そうではないことが明確に示されない限り、「少なくとも1つ」を意味するように理解されるべきである。
語句「及び/又は」は、本明細書及び請求項において使用されるとき、そのように結合されている要素の「いずれか又は双方」、すなわち、一部の場合には接続的に存在し、他の場合には離接的に存在する要素を意味するように理解されるべきである。「及び/又は」で列挙されている複数の要素は、同じ方式で、すなわち、そのように結合されている要素のうちの「1つ以上」として解釈されるべきである。「及び/又は」の節によって具体的に特定されている要素以外の他の要素は、具体的に特定されているそれらの要素に関連するか又は関連しないかにかかわらず、オプションとして存在してもよい。それゆえ、非限定例として、「A及び/又はB」への言及は、「含む(comprising)」などのオープンエンドの言語と共に使用される場合、一実施形態では、Aのみ(オプションとして、B以外の要素を含む)、別の実施形態では、Bのみ(オプションとして、A以外の要素を含む)、更に別の実施形態では、A及びBの双方(オプションとして、他の要素を含む)などに言及することができる。
本明細書及び請求項において使用されるとき、「又は」は、上記で定義されたような「及び/又は」と同じ意味を有するように理解されるべきである。例えば、リスト内の項目を分離する際、「又は」又は「及び/又は」は、包括的であるとして、すなわち、少なくとも1つを含むが、また、いくつかの要素又は要素のリストのうちの2つ以上、オプションとして、列挙されていない追加項目も含むとして解釈されるものとする。それとは反対に、明確に示される「〜のうちの1つのみ」若しくは「〜のうちの厳密に1つ」、又は請求項で使用される場合の「〜からなる」などの用語のみが、いくつかの要素又は要素のリストのうちの厳密に1つを含むことに言及する。一般に、用語「又は」は、本明細書で使用されるとき、「〜のいずれか」、「〜のうちの1つ」、「〜のうちの1つのみ」、又は「〜のうちの厳密に1つ」などの、排他性の用語に先行する場合にのみ、排他的選択肢(すなわち、「一方又は他方であるが、双方ではない」)を示すとして解釈されるものとする。「〜から本質的になる」は、請求項で使用される場合、特許法の分野で使用される際の、その通常の意味を有するものとする。
本明細書及び請求項において使用されるとき、1つ以上の要素のリストを参照する語句「少なくとも1つ」は、その要素のリスト内の要素の任意の1つ以上から選択された、少なくとも1つを意味するが、必ずしも、その要素のリスト内で具体的に列挙されているそれぞれの要素のうちの、少なくとも1つを含むものではなく、その要素のリスト内の要素の、任意の組み合わせを排除するものではないことが理解されるべきである。この定義はまた、語句「少なくとも1つ」が言及する、その要素のリスト内で具体的に特定されている要素以外の要素が、具体的に特定されているそれらの要素に関連するか又は関連しないかにかかわらず、オプションとして存在してもよいことも可能にする。それゆえ、非限定例として、「A及びBのうちの少なくとも1つ」(又は、等価的に「A又はBのうちの少なくとも1つ」、又は、等価的に「A及び/又はBのうちの少なくとも1つ」は、一実施形態では、オプションとして2つ以上を含めた、少なくとも1つのAであり、Bは存在しないこと(及び、オプションとしてB以外の要素を含む)、別の実施形態では、オプションとして2つ以上を含めた、少なくとも1つのBであり、Aは存在しないこと(及び、オプションとしてA以外の要素を含む)、更に別の実施形態では、オプションとして2つ以上を含めた、少なくとも1つのA、及び、オプションとして2つ以上を含めた、少なくとも1つのB(及び、オプションとして他の要素も含む)などに言及することができる。
また、そうではないことが明確に示されない限り、2つ以上のステップ又は行為を含む、本明細書で特許請求されるいずれの方法においても、その方法のステップ又は行為の順序は、必ずしも、その方法のステップ又は行為が列挙されている順序に限定されるものではないことも理解されるべきである。
請求項において現れる括弧内の参照番号は、単に欧州特許慣行に則して便宜上提供されているものであり、いかなる点でも請求項を制限するものとして理解されるべきではない。
請求項並びに上記の明細書では、「備える(comprising)」、「含む(including)」、「運ぶ(carrying)」、「有する(having)」、「包含する(containing)」、「伴う(involving)」、「保持する(holding)」、「〜で構成される(composed of)」などの全ての移行句は、オープンエンドであり、すなわち、含むが限定されないことを意味する点を理解されたい。移行句「〜からなる」及び「〜から本質的になる」のみが、それぞれ、クローズド又は半クローズドの移行句であるものとする。