以下に、本発明の実施の形態に係る機器制御装置を図面に基づいて詳細に説明する。なお、以下の実施の形態により発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1に係る機器制御装置を含む機器管理システムを示す図である。機器管理システム1は、建物130の内部130I、すなわち建物内130Iに設けられた複数の機器を制御する。機器管理システム1は、機器制御装置である自コントローラ100と、複数の機器である家電機器104、住宅設備105及びセンサ106と、機器を制御するための指示メッセージを送信する制御装置である他コントローラ101とを含む。
自コントローラ100は、HEMSのコントローラ、建物内130Iのネットワークに設けられる建物内130Iの高機能ルータ又はホームゲートウェイが例示されるが、これらに限定されない。他コントローラ101は、個人に使用されて、建物内130Iの機器を制御するコントローラである。他コントローラ101は、スマートフォン、タブレット型コンピュータ、建物130のセキュリティシステムを制御するセキュリティコントローラ、テレビのコントローラ、音響機器のコントローラ又はエアーコンディショナーのコントローラ、その他のコントローラが例示されるが、これらに限定されない。
家電機器104は、エアーコンディショナー、冷蔵庫又は給湯装置が例示されるが、これらに限定されない。住宅設備105は、建物130の電動ドア、電動窓、電動ガレージ又は電子錠が例示されるが、これらに限定されない。センサ106は、建物内130Iの温度を検出する温度センサ又は建物内130Iの明るさを検出する照度センサが例示されるが、これらに限定されない。家電機器104も温度センサ又は照度センサ、その他のセンサを有するものがあるが、実施の形態1のセンサ106は、家電機器104が有するセンサとは異なる。
実施の形態1において、自コントローラ100は、家電機器104及び住宅設備105を制御するが、自コントローラ100の制御対象はこれらに限定されず、FA(Factory Automation)に用いられる加工装置又はロボットのような機器であってもよい。この場合、自コントローラ100は、PLC(Programmable Logic Controller)が例示される。
建物内130Iに設けられたホームルータ102は、LAN(Local Area Network)120を用いて、建物内130Iに設けられた自コントローラ100及び他コントローラ101と、建物内130Iのネットワークを構成する。LAN120は、無線でも有線でもよい。自コントローラ100と他コントローラ101とは、LAN120を介してホームルータ102に接続し、通信を行う。自コントローラ100と他コントローラ101との通信は、IP(Internet Protocol)通信が例示されるが、これに限定されない。
建物内130Iの家電機器104、住宅設備105及びセンサ106は、特小無線通信121を介して自コントローラ100と接続する。特小無線通信121は、Bluetooth(登録商標)又は無線LANといった通信媒体が例示される。
実施の形態1において、ホームルータ102は、建物130の外部のネットワークである外部ネットワーク103と接続する。外部ネットワーク103は、インターネットが例示されるがこれに限定されない。このような構造により、自コントローラ100及び他コントローラ101は、ホームルータ102及び外部ネットワーク103を介して、外部ネットワーク103に接続されたサーバ110、その他の機器類と通信して、情報をやり取りできる。実施の形態1において、サーバ110は、家電機器104、住宅設備105又はセンサ106の製造元のサーバが例示される。サーバ110は、外部ネットワーク103及びホームルータ102を介して、家電機器104、住宅設備105及びセンサ106を制御するプログラム又はこれらの制御に用いられる情報のアップデートをする。
図2は、実施の形態1に係る機器管理システムの制御例を示す制御シーケンス図である。機器管理システム1が建物内130Iの機器を制御するにあたり、自コントローラ100は、他コントローラ101からの要求を受け付け、自コントローラ100に接続された機器、すなわち家電機器104、住宅設備105及びセンサ106の少なくとも1つを制御する。
ステップS11において、他コントローラ101は、HTTP(Hypertext Transfer Protocol)のpostメソッドを用いて、第1指示メッセージ210を自コントローラ100に送信する。第1指示メッセージ210は、機器、すなわち家電機器104、住宅設備105及びセンサ106の制御内容及び制御の優先度を含む指令である。実施の形態1において、第1指示メッセージ210は、少なくとも一部がテキストで定義され、記述されるが、第1指示メッセージの形式はテキストに限定されない。第1指示メッセージ210がテキストで記述されると、可読性がよく、メンテナンスが容易であるという利点がある。postメソッドは、クライアントからデータを送信するためのものである。postメソッドのリクエストは、ヘッダ及びボディ部を有している。送信したいデータは、ステップS11では第1指示メッセージ210は、ボディ部に記述される。
ステップS12において、自コントローラ100は、第1指示メッセージ210を受信すると、第1指示メッセージ210の少なくとも一部の形式を変換する。実施の形態1において、自コントローラ100は、第1指示メッセージ210の少なくとも一部を構文解析することにより、第1指示メッセージ210の少なくとも一部の形式を変換する。形式の変換は、構文解析に限定されない。自コントローラ100は、第1指示メッセージ210が記述された形式では、第1指示メッセージ210の情報を処理することができない。このため、自コントローラ100は、第1指示メッセージ210の少なくとも一部を変換、実施の形態1では構文解析することにより、自コントローラ100が読み取り、かつ処理できる形式とする。
第1指示メッセージ210は、自コントローラ100が実行すべき制御内容に加え、制御の優先度を含む。制御の優先度は、一例として、低速な特小無線通信121における通信の優先度を設定するために用いられる。また、制御の優先度は、制御実行スレッドの優先度に用いられてもよい。
自コントローラ100は、構文解析の結果から、制御内容及び制御の優先度を取得し、家電機器104、住宅設備105及びセンサ106の少なくとも1つに制御メッセージ211を送信する。制御メッセージ211は、第1指示メッセージ210が有する制御内容を少なくとも含む。実施の形態1において、制御内容が自コントローラ100への設定情報の場合、自コントローラ100は、制御メッセージ211を送信しない。
ステップS13において、家電機器104、住宅設備105及びセンサ106の少なくとも1つは、制御メッセージ211を受信すると、制御メッセージ211に含まれる制御内容に基づいて制御を実行する。その後、家電機器104、住宅設備105及びセンサ106の少なくとも1つは、自コントローラ100に第1応答メッセージ212を送信する。ステップS14において、自コントローラ100は、第1応答メッセージ212を受信すると、他コントローラ101にHTTPを用いて第2応答メッセージ213を送信する。第2応答メッセージ213は、第1応答メッセージ212が、自コントローラ100と他コントローラ101との通信方式に適した形式に変換されたものである。
実施の形態1において、通信プロトコルはHTTPとしているが、coapプロトコルが用いられてもよい。家電機器104、住宅設備105及びセンサ106を制御するための制御メッセージ211は、実施の形態1ではECHONET Lite、ZigBee(登録商標)又はKNXが用いられるが、これらに限定されない。
機器管理システム1は、複数の他コントローラ101から同時に第1指示メッセージ210が送信されると、前述したステップS12において、自コントローラ100が実行する構文解析が輻輳する。また、構文解析は、解析の対象である情報を先頭から順に読みながらデータ構造を解析する処理であり、本質的に逐次処理なので、処理に時間を要する。このため、機器管理システム1は、第1指示メッセージ210が集中すると、優先度が高い第1指示メッセージ210の処理に遅延を引き起こす可能性がある。
実施の形態1において、自コントローラ100は、第1指示メッセージ210が有する制御の優先度、すなわち制御内容を実行する優先度に基づいて、複数の第1指示メッセージ210を構文解析する順序を決定する。この処理により、自コントローラ100は、処理しなければならない第1指示メッセージ210が集中したときに、第1指示メッセージ210の処理の遅延を抑制する。次に、自コントローラ100について説明する。
図3は、実施の形態1に係る機器管理システムが有する自コントローラを示す図である。図3は、自コントローラ100のハードウェア構成例を示している。自コントローラ100は、処理装置100Pと、記憶装置100Mと、入出力装置100IFとを有する。処理装置100Pは、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)のようなプロセッサである。処理装置100Pは、専用のハードウェアで実現されてもよい。この場合、処理装置100Pは、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらを組み合わせたものである。
処理装置100Pは、コンピュータプログラムに記述された命令、すなわちデータの転送、演算、加工及び制御その他の処理を実行する装置である。処理装置100Pは、処理装置100Pが直接アクセスできる主記憶装置100PMを作業領域として使用しながら、記憶装置100Mに記憶されているコンピュータプログラムを実行する。このコンピュータプログラムは、BIOS(Basic Input/Output System)、UEFI(Unified Extensible Firmware Interface)、OS(Operating System)プログラム及び制御用プログラム358である。自コントローラ100が家電機器104、住宅設備105及びセンサ106に対して実行する処理は、処理装置100Pが実行する。
処理装置100Pは、指示メッセージ処理部355、応答メッセージ処理部356及びOS機能部354を有する。指示メッセージ処理部355は、他コントローラ101が送信した第1指示メッセージ210を取得する。そして、指示メッセージ処理部355は、第1指示メッセージ210が有する制御の優先度を用いて、複数の第1指示メッセージ210を構文解析する順序を決定し、決定した順序に基づいて構文解析を実行する。指示メッセージ処理部355は、構文解析を実行した後、構文解析の結果から得られた機器の制御内容を用いて、家電機器104、住宅設備105又はセンサ106を制御する。
応答メッセージ処理部356は、家電機器104、住宅設備105及びセンサ106からの第1応答メッセージ212をHTTP形式に書き換える処理をして、他コントローラ101へ処理後の第1応答メッセージ212、すなわち第2応答メッセージ213を送信する。OS機能部354は、基本ソフトウェア機能を提供する。実施の形態1において、処理装置100Pは、制御用プログラム358を実行することにより指示メッセージ処理部355及び応答メッセージ処理部356を実現し、OSプログラムを実行することによりOS機能部354を実現する。
制御用プログラム358は、C言語のようなソフトウェア言語を用いて記述される。処理装置100Pは、制御用プログラム358に記述された命令列を実行することにより、家電機器104、住宅設備105及びセンサ106の動作を制御したり、構文解析を実行したりする。
記憶装置100Mは、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、SSD(Solid State Drive)、HDD(Hard Disc Drive)及びこれらの組合せのうち少なくとも1つである。記憶装置100Mは、処理装置100Pが実行するコンピュータプログラム及び処理装置100Pの処理に必要な情報を記憶する装置である。記憶装置100Mは、第1のデータベースである制御履歴データベース306を記憶している。自コントローラ100は、家電機器104、住宅設備105及びセンサ106を制御する際に制御履歴データベース306を用いる。また、記憶装置100Mは、自コントローラ100が家電機器104、住宅設備105及びセンサ106を制御する際に用いるコンピュータプログラムである制御用プログラム358を記憶している。実施の形態1において、記憶装置100Mは、少なくとも制御履歴データベース306を記憶していればよい。
入出力装置100IFは、自コントローラ100が、自コントローラ100の外部の機器類と情報をやり取りするためのインターフェース回路である。入出力装置100IFは、自コントローラ100と自コントローラ100の外部の機器類とが通信するための通信インターフェース回路も有する。
実施の形態1において、入出力装置100IFは、LAN120に接続されている。このような構造により、実施の形態1において、自コントローラ100は、LAN120を介して自コントローラ100の外部の機器類と通信して情報をやり取りする。実施の形態1において、自コントローラ100の外部の機器類は、他コントローラ101、ホームルータ102、家電機器104、住宅設備105及びセンサ106である。
実施の形態1において、処理装置100P、記憶装置100M及び入出力装置100IFは、データバス100DBに接続される。処理装置100P、記憶装置100M及び入出力装置100IFは、データバス100DBを介して情報をやり取りする。
図4は、実施の形態1に係る自コントローラの制御ブロック図である。自コントローラ100が有する指示メッセージ処理部355は、受信部301、決定部304、解析部302、制御部303及び監視部305を含む。受信部301は、ハードウェアとソフトウェアとで実現される。受信部301を実現するハードウェアは、実施の形態1においては入出力装置100IFが有する通信インターフェース回路である。受信部301は、他コントローラ101が送信した指示メッセージ210を受信する。受信部301は、受信した第1指示メッセージ210から第2指示メッセージ450を生成する処理を実行する。受信部301は、生成した第2指示メッセージ450を決定部304に受け渡す。
第2指示メッセージ450は、第1指示メッセージ210が受信部301によって処理された後の情報である。第2指示メッセージ450が有する情報の内容は、第1指示メッセージ210が有する情報の内容と同一である。すなわち、第2指示メッセージ450も、第1指示メッセージ210と同様に、機器である家電機器104、住宅設備105及びセンサ106の制御内容及び制御の優先度を含む指令である。
決定部304は、受信部301から第2指示メッセージ450を取得し、かつ第2指示メッセージ450の送信元である他コントローラ101の情報を検索キーとして、制御履歴データベース306から制御の優先度を検索する。決定部304は、検索された制御の優先度を用いて解析部302が、第2指示メッセージ450を構文解析する順序を決定する。実施の形態1において、決定部304は、解析部302が第2指示メッセージ450を構文解析する順序を決定する場合、輻輳制御を実行する。実施の形態1において、決定部304は、バッファリング手法の1つであるキューイング(Queueing)を用いて輻輳制御を実行するが、輻輳制御はキューイングに限定されない。
輻輳制御のため、決定部304は、アウトプットのキューとして、第1キュー304A、第2キュー304B及び第3キュー304Cを有する。決定部304は、受信部301から取得した第2指示メッセージ450を、第1キュー304A、第2キュー304B又は第3キュー304Cに格納する。
解析部302が構文解析を実行する優先度は、第1キュー304Aに格納された第2指示メッセージ450、第2キュー304Bに格納された第2指示メッセージ450、第3キュー304Cに格納された第2指示メッセージ450の順に低くなる。すなわち、第1キュー304Aに格納された第2指示メッセージ450は最も高い優先度で構文解析が実行され、第2キュー304Bに格納された第2指示メッセージ450は2番目に高い優先度で構文解析が実行される。第3キュー304Cに格納された第2指示メッセージ450は最も低い優先度で構文解析が実行される。
実施の形態1において、第2指示メッセージ450の制御の優先度は、「高(H)」、「中(M)」、「低(L)」のいずれかである。決定部304は、制御履歴データベース306から検索した制御の優先度に対応する第2指示メッセージ450を、この制御の優先度にしたがって第1キュー304A、第2キュー304B又は第3キュー304Cのいずれかに格納する。
第1キュー302A、第2キュー304B及び第3キュー304Cは、主記憶装置100PMの一部を記憶領域として実現される。実施の形態において、アウトプットのキューの数は3個に限定されない。アウトプットのキューは2個であってもよい。この場合、制御の優先度は「高(H)」及び「低(L)」の2段階となる。また、アウトプットのキューの数は4個以上でもよい。この場合、制御の優先度は4段階以上となる。
解析部302は、家電機器104、住宅設備105又はセンサ106の制御内容及び制御の優先度を含む第2指示メッセージ450の少なくとも一部の形式を変換、実施の形態1では構文解析することにより、第2指示メッセージ450から制御内容及び制御の優先度を取り出す。解析部302は、第2指示メッセージ450から取り出した制御内容及び制御の優先度のうち、少なくとも制御内容を制御部303に受け渡す。
解析部302は、第1キュー304A、第2キュー304B及び第3キュー304Cの少なくとも1つに格納された第2指示メッセージ450を構文解析するにあたって、第1キュー304A、第2キュー304B、第3キュー304Cの順に第2指示メッセージ450が存在しているか否かを確認する。そして、解析部302は、制御の優先度が高いキューに存在する第2指示メッセージ450から順に構文解析する。解析部302は、キューに第2指示メッセージ450が存在しなくなったら、次に優先度の高いキューに存在する第2指示メッセージ450を構文解析する。
実施の形態1において、解析部302は、第1キュー304A、第2キュー304B、第3キュー304Cの順に、それぞれに存在する第2指示メッセージ450を構文解析する。解析部302は、第1キュー304Aに第2指示メッセージ450が存在しなくなったら、第2キュー304Bに存在する第2指示メッセージ450を構文解析する。そして、解析部302は、第2キュー304Bに第2指示メッセージ450が存在しなくなったら、第3キュー304Cに存在する第2指示メッセージ450を構文解析する。
制御部303は、解析部302から少なくとも制御内容を取得し、取得した制御内容を用いて家電機器104、住宅設備105又はセンサ106を制御する。解析部302は、制御の優先度にしたがって構文解析を実行し、構文解析の結果である制御の内容を制御部303に受け渡す。このため、制御部303は、第2指示メッセージ450の制御の優先度にしたがって、家電機器104、住宅設備105及びセンサ106を制御する。
監視部305は、解析部302が第2指示メッセージ450を構文解析することにより得られた制御の優先度及び制御内容と、第2指示メッセージ450に含まれる指示メッセージを送信した送信元である他コントローラ101の情報とを関連付けて、制御履歴データベース306に書き込む。このとき、監視部305は、管理リスト750を用いる。管理リスト750については後述する。
図5は、実施の形態1に係る第1指示メッセージのデータ構造の一例を示す図である。実施の形態1において、指令である第1指示メッセージ210は、HTTP形式で記述される。第1指示メッセージ210は、IPヘッダAと、TCPヘッダBと、HTTPヘッダCと、HTTPボディDとを有する。IPヘッダA,TCPヘッダB及びHTTPヘッダCとには、第1指示メッセージ210を送信した送信元である他コントローラ101の情報が記述されている。以下において、送信元の情報を、第1送信元情報251と称する。第1送信元情報251は、送信時刻、送信元のアドレス及びアクセス先のアドレス及びサイズを含む。HTTPボディDは、制御の優先度及び制御内容を含む。以下において、制御の優先度及び制御内容を、第1制御情報253と称する。
図6は、実施の形態1に係る第2指示メッセージのデータ構造の一例を示す図である。第2指示メッセージ450は、第1指示メッセージ210と同様に、送信元の情報、制御の優先度及び制御内容を含む。以下において、第2指示メッセージ450に含まれる送信元の情報を第2送信元情報451と称し、第2指示メッセージ450に含まれる制御の優先度及び制御内容を第2制御情報453と称する。第2送信元情報451は、時刻DT、送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZを含む。第2制御情報453は、制御の優先度PR及び制御内容CCを含む。第1送信元情報251のHTTPヘッダCの内容及び第2送信元情報451の内容は、いずれも同一である。第1制御情報253の内容及び第2制御情報453の内容は、いずれも同一である。
第1送信元情報251及び第2送信元情報451は、自コントローラ100の解析部302が構文解析を実行する前に受信部301が取得できる情報であればよい。このため、実施の形態1において、第1送信元情報251及び第2送信元情報451は、時刻DT、送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZを含むが、これら以外であってもよい。第1送信元情報251及び第2送信元情報451は、構文解析の実行前に受信部301が取得できる情報なので、決定部304は、解析部302が第2指示メッセージ450を構文解析する前に、第2送信元情報451及び制御履歴データベース306を用いて制御の優先度PRを決定できる。
時刻DTは、自コントローラ100が他コントローラ101から第1指示メッセージ210を受信した時刻である。送信元のアドレスADdは、第1指示メッセージ210の送信元である他コントローラ101のIPアドレスの情報である。自コントローラ100が他コントローラ101の種別を取得できる場合、送信元のアドレスADdは、種別等を含んでもよい。アクセス先のアドレスACUは、他コントローラ101がアクセスしたアドレスである。サイズSZは、他コントローラ101が送信した第1指示メッセージ210のサイズである。制御の優先度PRは、自コントローラ100が有する制御部303が、機器である家電機器104、住宅設備105及びセンサ106を制御する際の優先度である。制御内容CCは、第1指示メッセージ210又は第2指示メッセージ450の制御の対象及び制御内容の詳細を表す情報である。実施の形態1において、制御の優先度PRは、一例として、他コントローラ101が制御内容CCの重要度に応じて決定する。
図7は、実施の形態1に係る制御履歴データベースの構造の一例を示す図である。制御履歴データベース306は、第2指示メッセージ450に含まれる、第1指示メッセージ210の送信元の情報である第2送信元情報451と、第2制御情報453とが関連付けられて記述される。制御履歴データベース306の第2制御情報453は、解析部302が第2指示メッセージ450を構文解析した結果得られた、制御の優先度PR及び制御内容CCである。制御履歴データベース306は、より具体的には、時刻DTと、送信元のアドレスADdと、アクセス先のアドレスACUと、サイズSZと、制御の優先度PRと、制御内容CCとが関連付けられて記述される。
図8は、実施の形態1に係る管理リストの一例を示す図である。管理リスト750は、管理番号452と、第2送信元情報451とが関連付けられて記述される。管理リスト750は、図4に示される監視部305が生成する。実施の形態1において、解析部302は、第2指示メッセージ450を構文解析すると、結果と管理番号452とを関連付けて監視部305に受け渡す。第2指示メッセージ450が構文解析された結果は、図7に示される第2制御情報453である。
監視部305は、解析部302から結果及び管理番号452を取得すると、取得した結果に対応した管理番号452を検索キーとして管理リスト750を検索して、管理番号452に対応する第2送信元情報451を得る。監視部305は、解析部302から取得した結果と、管理リスト750から得た第2送信元情報451とを関連付けて、制御履歴データベース306に書き込んで記憶させる。このようにして、制御履歴データベース306が作成又は更新される。次に、機器管理システム1、より具体的には自コントローラ100が実行する制御を説明する。
図9は、実施の形態1に係る機器制御装置の制御例を示す動作シーケンス図である。図1に示される機器管理システム1の他コントローラ101は、自コントローラ100に第1指示メッセージ210を送信する。自コントローラ100の受信部301は、他コントローラ101から送信された第1指示メッセージ210を受信する。受信部301は、第1指示メッセージ210を受信すると、IP(Internet Protocol)/TCP(Transmission Control Protocol)/HTTP処理を行った後、ステップS101において、第2指示メッセージ450及び第2送信元情報451を生成する。
第1送信元情報251及び第1制御情報253は、図5に示される第1指示メッセージ210のHTTPヘッダC及びHTTPボディDに記述されている。このため、ステップS101において、受信部301は、第1指示メッセージ210のHTTPヘッダC及びHTTPボディDから第1送信元情報251及び第1制御情報253を読み出し、図6に示される第2指示メッセージ450を生成する。また、受信部301は、第1指示メッセージ210のHTTPヘッダCから第1送信元情報251を読み出し、これを第2送信元情報451とする。第2指示メッセージ450が有する第2送信元情報451は、IPヘッダA、TCPヘッダB及びHTTPヘッダCの必要な情報のサマリである。第2指示メッセージ450が有する第2制御情報453は、第1制御情報253と同一である。
受信部301は、第2指示メッセージ450及び第2送信元情報451を生成したら、自コントローラ100内において、第2指示メッセージ450及び第2送信元情報451を一意に特定するための番号である管理番号452を生成する。その後、受信部301は、生成した第2指示メッセージ450、第2送信元情報451及び管理番号452を決定部304に受け渡す。同時に、受信部301は、生成した第2送信元情報451及び管理番号452を監視部305に受け渡す。決定部304は、受信部301から第2指示メッセージ450、第2送信元情報451及び管理番号452を取得する。監視部305は、第2送信元情報451及び管理番号452を取得する。
ステップS102において、決定部304は、受信部301から取得した第2送信元情報451を用いて、制御履歴データベース306から制御の優先度PRを検索する。具体的には、決定部304は、取得した第2送信元情報451のうち、送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZを検索キーとして制御履歴データベース306を検索する。このように、第2送信元情報451が検索キーとして用いられる場合、第2送信元情報451が有するすべての情報は用いられなくてもよい。決定部304は、同一の送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZの組合せが制御履歴データベース306に存在した場合、その組合せに対応する制御の優先度PRを、ステップS101で取得した第2指示メッセージ450の制御の優先度PRに決定する。実施の形態1において、決定部304は、送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZを検索キーとしたが、検索キーはこれらに限定されない。
決定部304は、ステップS101で取得した第2指示メッセージ450の制御の優先度PRを決定したら、決定した制御の優先度PRを用いて解析部302が第2指示メッセージ450、より具体的には第2指示メッセージ450の第2制御情報453を構文解析する順序を決定する。すなわち、決定部304は、決定した制御の優先度PRに応じたキューに、決定した制御の優先度PRに対応する第2指示メッセージ450を格納する。
決定された制御の優先度PRが「高(H)」であれば、決定部304は、対応する第2指示メッセージ450を図4に示される第1キュー304Aに格納する。決定された制御の優先度PRが「中(M)」であれば、決定部304は、対応する第2指示メッセージ450を図4に示される第2キュー304Bに格納する。決定された制御の優先度PRが「低(L)」であれば、決定部304は、対応する第2指示メッセージ450を図4に示される第3キュー304Cに格納する。決定部304は、ステップS101で取得した第2指示メッセージ450とともに、これに対応する管理番号452も第1キュー304A、第2キュー304B又は第3キュー304Cに格納する。決定部304は、格納された第2指示メッセージ450及び管理番号452を、第1キュー304Aのもの、第2キュー304Bのもの、第3キュー304Cのもの、の順に解析部302に受け渡す。このようにして、決定部304は、制御の優先度PRに応じて、解析部302が構文解析する第2指示メッセージ450の順番を決定する。この制御を優先制御と称する。
第2送信元情報451、実施の形態1では送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZが一致する制御の優先度PRは、制御履歴データベース306に複数存在することがある。この場合、ステップS102において、制御履歴データベース306は、最新の第2制御情報453に含まれる制御の優先度PRを決定部304に返す。決定部304は、制御履歴データベース306から受け取った最新の制御の優先度PRを用いて、解析部302が第2指示メッセージ450を構文解析する順序を決定する。このような処理により、解析部302は、最新の制御の優先度PRにしたがって構文解析を実行できるので、制御部303は実情に即した機器の制御を実現できる。
第2送信元情報451、実施の形態1では送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZが一致する制御の優先度PRが、制御履歴データベース306に存在しないこともある。この場合、ステップS102において、制御履歴データベース306は、予め定められた制御の優先度PRを決定部304に返す。予め定められた制御の優先度PRは、「中(M)」とすることができる。決定部304は、制御履歴データベース306から受け取った最新の制御の優先度PRを用いて、解析部302が第2指示メッセージ450を構文解析する順序を決定する。このような処理により、解析部302は、制御履歴データベース306に制御の優先度PRが存在しない場合でも、予め定められた制御の優先度PRにしたがって構文解析を実行できる。
ステップS103において、解析部302は、決定部304から受け渡された第2指示メッセージ450を構文解析する。解析部302は、1つの構文解析が終了した時点で、制御の優先度PRが最も高い第2指示メッセージ450を構文解析する。一例として、第1キュー304Aには第2指示メッセージ450が存在せず、第2キュー304Bに複数の第2指示メッセージ450が存在する場合を考える。この場合、解析部302は、第2キュー304Bの複数の第2指示メッセージ450を逐次、構文解析する。この場合、第2キュー304Bに格納された第2指示メッセージ450の処理中に、第1キュー304Aに第2指示メッセージ450が格納されたとする。すると、解析部302は、処理中の第2指示メッセージ450の構文解析が終了した後は、第1キュー304Aに格納された第2指示メッセージ450を構文解析する。
解析部302は、構文解析により、第2指示メッセージ450の第2制御情報453に含まれる制御内容CC及び制御の優先度PRを取得する。構文解析により得られた制御内容CC及び制御の優先度PRを、以下においては適宜解析結果454と称する。構文解析後、解析部302は、解析結果454を制御部303に受け渡す。また、解析部302は、解析結果454及び管理番号452を監視部305に受け渡す。
ステップS104において、制御部303は、解析結果454を用いて、制御対象の機器を制御するための制御メッセージ211を生成し、制御対象の機器に送信する。このとき、制御部303は、解析結果454の制御内容CCを、制御対象の機器が読み取ることができ、かつ処理できる書式に変換して、制御メッセージ211を生成する。制御対象の機器は、図1に示される家電機器104、住宅設備105及びセンサ106である。
ステップS105において、監視部305は、ステップS101で受信部301から取得した第2送信元情報451と、ステップS103で解析部302から取得した解析結果454とを関連付けて、制御履歴データベース306に書き込み、記憶させる。解析結果454は第2制御情報453に含まれる制御内容CC及び制御の優先度PRなので、監視部305は、制御履歴データベース306の第2制御情報453の制御内容CC及び制御の優先度PRに、解析結果454を書き込む。このとき、監視部305は、ステップS101で受信部301から取得した管理番号452と、ステップS103で解析部302から取得した管理番号452とを用いる。具体的には、監視部305は、管理番号452が同一の第2送信元情報451及び解析結果454を関連付ける。制御履歴データベース306に書き込まれた第2送信元情報451及び解析結果454は、決定部304が制御履歴データベース306から制御の優先度PRを検索するときの対象となる。次に、決定部304、解析部302及び監視部305の処理を説明する。
図10は、実施の形態1に係る決定部の処理の一例を示すフローチャートである。図10のフローチャートの処理は、ステップS102の処理に相当する。前述したステップS101において、図4に示される受信部301が第2指示メッセージ450、第2送信元情報451及び管理番号452を決定部304に受け渡したら、ステップS201において、決定部304は、第2指示メッセージ450及び第2送信元情報451を取得する。次に、ステップS202において、決定部304は、第2送信元情報451を検索キーとして、図4及び図7に示される制御履歴データベース306を検索し、第2送信元情報451に対応する制御の優先度PRを取得する。
この場合、決定部304は、検索キーとした第2送信元情報451に関連する過去の第2制御情報453、すなわち制御の優先度PR及び制御内容CCのリストを、制御履歴データベース306から取得する。前述したリストは、制御内容CCを含んでいなくてもよい。決定部304は、前述したリストのうち、最新の制御の優先度PRを取得する。
ステップS203において、決定部304は、ステップS202で取得した、最新の制御の優先度PRが「高」である場合(ステップS203,Yes)、ステップS204に進む。ステップS204において、決定部304は、ステップS201で取得した第2指示メッセージ450を図4に示される第1キュー304Aに格納する。
ステップS203において、決定部304は、ステップS202で取得した、最新の制御の優先度PRが「高」でない場合(ステップS203,No)、ステップS205に進む。ステップS205において、決定部304は、ステップS202で取得した、最新の制御の優先度PRが「中」である場合(ステップS205,Yes)、ステップS206に進む。ステップS206において、決定部304は、ステップS201で取得した第2指示メッセージ450を図4に示される第2キュー304Bに格納する。
ステップS205において、決定部304は、ステップS202で取得した、最新の制御の優先度PRが「中」でない場合(ステップS205,No)、ステップS207に進む。ステップS207において、決定部304は、ステップS201で取得した第2指示メッセージ450を図4に示される第3キュー304Cに格納する。このようにして、決定部304は、第2指示メッセージ450が解析部302に構文解析される順番を決定する。
図11は、実施の形態1に係る解析部が構文解析を実行する際の処理の一例を示すフローチャートである。図12は、XML文書の一例を示す図である。図13は、図12に示されるXML文書をツリー構造のデータに変換した一例を示す図である。実施の形態1において、解析部302は、構文解析を実行するにあたってDOM(Document Object Model)ツリーを用いて、XMLで作成された第2指示メッセージ450を構文解析する。実施の形態1において、第1指示メッセージ210及び第2指示メッセージ450は少なくとも一部がXML文書で作成されているため、XML文書で作成されている部分はテキスト形式で記述されている。
ステップS401において、解析部302は、第2指示メッセージ450、より具体的には第2送信元情報451のDOMツリーを作成する。図12に示されるXML文書がDOMツリー化されると、図13に示されるように、最初に出現する要素aをルートとして、属性s=“y”、要素b,c,d,e,f及び文字列“go”,“to”,“xxy”がツリー構造で表現される。第2指示メッセージ450がDOMツリー化されることで、第2指示メッセージ450を構成する字句の並びが得られる。実施の形態1において、図5に示される第1指示メッセージ210は、HTTPボディDがXML文書で作成されている。HTTPボディDは、テキスト形式で記述されている。また、実施の形態1において、図6に示される第1指示メッセージ210は、第2制御情報453がXML文書で作成されているため、この部分はテキスト形式で記述されている。
ステップS402において、解析部302は、XMLの仕様に基づいて第2指示メッセージ450を構成する字句の並びの意味を解釈する。ステップS403において、解析部302は、解釈した第2指示メッセージ450の意味を、制御メッセージ211として制御部303に引き渡す。制御部303は、引き渡された制御メッセージ211を家電機器104、住宅設備105及びセンサ106の少なくとも1つに送信することにより、これらを制御する。実施の形態1において、第2指示メッセージ450を構成する字句の並びの意味を解釈するのは解析部302であるが、制御部303が前述を実行してもよい。
実施の形態1において、解析部302はDOMツリーを用いて構文解析を実行するが、構文解析の方法はこれに限定されない。解析部302は、DOMツリー以外でも、演算子順位法、トップダウン構文解析法及びボトムアップ構文解析法その他の方法を用いて構文解析を実行してもよい。XML文書は、論理的にはツリー構造であるため、第1指示メッセージ210及び第2指示メッセージ450がXML文書で作成されている場合、解析部302は、DOMツリーを用いることによって確実に構文解析することができる。
実施の形態1において、解析部302は、第2指示メッセージ450のすべてを構文解析してもよいが、第2指示メッセージ450の少なくとも一部、具体的には自コントローラ100が処理することのできない形式で記述されている部分を構文解析すればよい。実施の形態1において、第2指示メッセージ450のうち、自コントローラ100が処理することのできない形式で記述されている部分は第2制御情報453である。したがって、解析部302は、第2指示メッセージ450のうち、少なくとも第2制御情報453を構文解析すればよい。
図14は、実施の形態1に係る監視部の処理の一例を示すフローチャートである。図14のフローチャートは、決定部304が、第2送信元情報451及び管理番号452を監視部305に受け渡したときに監視部305が実行する処理を示している。ステップS301において、監視部305は、決定部304から第2送信元情報451及び管理番号452を取得すると、ステップS302において、図8に示される管理リスト750に書き込み、記憶させる。
図15は、実施の形態1に係る監視部の処理の一例を示すフローチャートである。図15のフローチャートは、解析部302が、解析結果454及び管理番号452を監視部305に受け渡したときに監視部305が実行する処理を示している。ステップS501において、監視部305は、解析部302から解析結果454及び管理番号452を取得すると、ステップS502において、取得した管理番号452を検索キーとして、図8に示される管理リスト750を検索する。そして、監視部305は、取得した管理番号452に対応する第2送信元情報451を取得する。
ステップS503において、監視部305は、ステップS501で取得した解析結果454と、ステップS502で取得した第2送信元情報451とを関連付けて、制御履歴データベース306に書き込み、記憶させる。ステップS504において、監視部305は、管理リスト750から、ステップS501で取得した管理番号452と、これに対応する第2送信元情報451とを削除する。
実施の形態1において、制御履歴データベース306は、初期状態において情報が記述されていなくてもよい。この場合、自コントローラ100が他コントローラ101からの第1指示メッセージ210を受け付けて処理をすると、制御履歴データベース306には、時刻DTと、送信元のアドレスADdと、アクセス先のアドレスACUと、サイズSZと、制御の優先度PRと、制御内容CCとが関連付けられて記述される。自コントローラ100が他コントローラ101からの第1指示メッセージ210を受け付けて処理する毎に、制御履歴データベース306の情報が増加する。
また、制御履歴データベース306は、初期状態において、送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、制御の優先度PR及び制御内容CCに関して、予め定められた値が記述されていてもよい。この場合、自コントローラ100が他コントローラ101からの第1指示メッセージ210を受け付けて処理をすると、制御履歴データベース306の内容が書き換えられることがある。
自コントローラ100が他コントローラ101からの第1指示メッセージ210を処理する回数が増加するにしたがって、制御履歴データベース306に蓄積される情報も増加する。すると、制御履歴データベース306には、時刻DT、送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、制御の優先度PR及び制御内容CCが同一の組合せが複数蓄積されることがある。この場合、自コントローラ100は、同一の組合せについては、最新のものを除いて消去してもよい。このようにすれば、自コントローラ100は、限られた記憶装置100Mを有効に利用することができる。
実施の形態1において、機器管理システム1及び自コントローラ100は、構文解析を実行する前に取得できる送信元の情報、過去の制御内容CC及び制御の優先度PRを関連付けて、制御履歴データベース306に記憶させる。そして、機器管理システム1及び自コントローラ100は、他コントローラ101から受信した指令である第1指示メッセージ210の制御の優先度PRを、構文解析を実行する前に決定する。機器管理システム1及び自コントローラ100は、決定した制御の優先度PRにしたがって構文解析を実行し、構文解析の結果を用いて機器を制御する。このため、機器は、第1指示メッセージ210の制御の優先度PRにしたがって動作する。
このように、機器管理システム1及び自コントローラ100は、構文解析を実行する前に制御の優先度PRを決定し、決定した制御の優先度PRに基づいて複数の機器を制御できる。このため、機器管理システム1及び自コントローラ100は、単数又は複数の他コントローラ101から複数の第1指示メッセージ210が自コントローラ100に送信された場合であっても、制御の優先度PRが高い順に機器を制御できる。結果として、機器管理システム1及び自コントローラ100は、複数の第1指示メッセージ210を集中して受信した場合でも、構文解析の輻輳を抑制し、優先度が高い第1指示メッセージ210の処理の遅延を抑制できる。
機器を制御するための制御装置である自コントローラ100は、CPUを始めとしたハードウェア資源が限られる場合が多い。実施の形態1において、自コントローラ100は、構文解析の前に把握できる情報から制御の優先度PRを決定し、決定した制御の優先度PRに基づいて複数の機器を制御する。このため、ハードウェア資源が限られる制御装置であっても、機器を制御するための指令が集中した場合に、優先度の高い制御の遅延を抑制することができる。
実施の形態1で開示した各構成は、以下の実施の形態においても適宜適用することができる。
実施の形態2.
図16は、実施の形態2に係る機器管理システム及び自コントローラを示す図である。図16は、自コントローラ100aのハードウェア構成例を示している。図17は、実施の形態2に係る自コントローラの制御ブロック図である。図18は、実施の形態2に係る優先度設定データベースの構造の一例を示す図である。実施の形態2において、機器管理システム1aの自コントローラ100aは、制御内容CCと制御の優先度PRとの関係が記述された第2のデータベースである優先度設定データベース801を有する点が実施の形態1とは異なる。自コントローラ100aの他の構造は、実施の形態1と同様である。
図16に示されるように、優先度設定データベース801は、自コントローラ100aの記憶装置100Mに記憶される。図18に示されるように優先度設定データベース801は、条件番号NJと、送信元のアドレスADdと、制御内容CCと、指定優先度PRCとが関連付けられて記述される。条件番号NJは、条件を特定する番号である。送信元のアドレスADd又は制御内容CCは実施の形態1と同様である。指定優先度PRCは、送信元のアドレスADdと制御内容CCとが合致した場合の制御の優先度を指定するものである。指定優先度PRCは、送信元のアドレスADdと制御内容CCとの組合せに応じて予め定められて、優先度設定データベース801に記述される。実施の形態2において、送信元のアドレスADdの代わりに又は送信元のアドレスADdに加えて、送信元の種類を示す送信元種別が用いられてもよい。
実施の形態2において、指定優先度PRCは、制御内容CCの重要度に応じて決定されてもよい。一例として、建物130のセキュリティシステムの制御のように、防犯に関する制御は指定優先度PRCが高く設定される。また、建物内130Iに設けられた家電機器104、住宅設備105及びセンサ106の制御の優先度PRは、機器を制御する制御プログラムのアップデートにともなって変更されることがある。この場合、監視部305は、図16に示されるLAN120及びホームルータ102を介して、図1に示される外部ネットワーク103に接続されたサーバ110にアクセスする。実施の形態1で説明したように、サーバ110は、家電機器104、住宅設備105又はセンサ106の製造元のものである。監視部305は、サーバ110から家電機器104、住宅設備105又はセンサ106の制御プログラムの最新版を取得し、その中に記述されている制御の優先度PRを、指定優先度PRCとする。
指定優先度PRCは、建物130の住人又は建物内130Iで仕事をする者が設定してもよい。この場合、建物130の住人又は建物内130Iで仕事をする者は、特定の機器を特定の制御で動作させる場合を優先させたい場合、その条件の指定優先度PRCを「高(H)」に設定する。また、建物130の住人又は建物内130Iで仕事をする者は、特定の機器を特定の制御で動作させる場合が他と比較して後回しでもよい場合、その条件の指定優先度PRCを「低(L)」に設定する。
自コントローラ100aの監視部305は、送信元の情報である第2送信元情報451及び構文解析によって得られた制御内容CCを検索キーとして、図18に示される優先度設定データベース801から制御の優先度である指定優先度PRCを検索する。そして、監視部305は、解析部302が第2指示メッセージ450を構文解析することにより得られた制御内容CCと、優先度設定データベース801から検索された指定優先度PRCと、第2送信元情報451とを関連付けて、制御履歴データベース306に書き込んで記憶させる。この場合、監視部305は、指定優先度PRCと第2指示メッセージ450の構文解析により得られた制御の優先度PRとが異なる場合に、指定優先度PRCを制御履歴データベース306に書き込んでもよい。
図19は、実施の形態2に係る監視部の処理の一例を示すフローチャートである。図19のフローチャートは、解析部302が、解析結果454及び管理番号452を監視部305に受け渡したときに監視部305が実行する処理を示している。ステップS601及びステップS602は、図15のフローチャートのステップS501及びステップS502と同様なので説明を省略する。
ステップS603は、監視部305が解析結果454を制御履歴データベース306に書き込む前の処理である。ステップS603において、監視部305は、ステップS602で取得した第2送信元情報451、実施の形態2においては送信元のアドレスADd、及びステップS601で取得した解析結果454の制御内容CCを検索キーとして、優先度設定データベース801から指定優先度PRCを検索する。
ステップS604において、監視部305は、取得した送信元のアドレスADd及び制御内容CCと同一の条件が優先度設定データベース801に存在する場合、ステップS601で取得した解析結果454の制御の優先度PRを、前述した同一の条件に対応する優先度設定データベース801の指定優先度PRCに書き換える。この場合、監視部305は、ステップS601で取得した解析結果454の制御の優先度PRと、優先度設定データベース801から検索された指定優先度PRCとが異なる場合に、ステップS601で取得した解析結果454の制御の優先度PRを指定優先度PRCに書き換えてもよい。
ステップS605において、監視部305は、ステップS601で取得した解析結果454の制御内容CCと、ステップS603で検索した指定優先度PRCと、ステップS602で取得した第2送信元情報451とを関連付けて、制御履歴データベース306に書き込み、記憶させる。ステップS606は、図15のフローチャートのステップS504と同様なので説明を省略する。このような処理により、監視部305は、第2指示メッセージ450の構文解析により得られた制御内容CCと、優先度設定データベース801から検索された指定優先度PRCと、第2送信元情報451とを関連付けて、制御履歴データベース306に書き込むことができる。
他コントローラ101は、建物内130Iのセキュリティ及び警備モードを制御するものであったり、家電機器104又は住宅設備105のリモートコントローラとして動作するものであったりすることがある。このような他コントローラ101から機器を制御する要求があった場合、ユーザの快適性を損なわないために一定以上の応答速度が必要になることがある。自コントローラ100aは、特定の送信元又は制御内容について優先度設定データベース801の指定優先度PRCを「高」とすることで、特定の送信元の制御又は特定の制御内容に関して、制御履歴データベース306に書き込まれる制御の優先度PRを高くすることができる。その結果、自コントローラ100aは、実施の形態1における作用及び効果に加え、ユーザの利便性の低下を抑制できるという利点が得られる。
実施の形態3.
実施の形態1及び実施の形態2で説明された第2送信元情報451に含まれる送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZが同一であっても、第2制御情報453に含まれる制御の優先度PR及び制御内容CCは異なる場合がある。実施の形態3は、制御の優先度PRが出現した回数に関する情報を用いて、複数の異なる制御の優先度PRの中から1つの制御の優先度PRを選択し、選択された制御の優先度PRを用いて、第1指示メッセージ210を変換する順序を決定する。
図20は、実施の形態3に係る制御履歴データベースの構造を示す図である。実施の形態3の機器管理システム及び自コントローラは、図3に示される、実施形態1の機器管理システム1及び自コントローラ100である。自コントローラ100の記憶装置100Mは、図20に示される制御履歴データベース306を記憶している。
図20に示される制御履歴データベース306は、第2送信元情報451に含まれる送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZが同一で、第2制御情報453に含まれる制御の優先度PR及び制御内容CCが異なる組合せを含んでいる。具体的には、組合せCB1及び組合せCB2である。組合せCB1は、制御の優先度PRが高(H)で、制御内容CCが電子鍵01の状態確認である。組合せCB2は、制御の優先度PRが中(M)で、制御内容CCが電子鍵01のロック解除である。次に、自コントローラ100が、実施の形態3の制御を実行する例を説明する。
図21は、実施の形態3に係る決定部の処理の一例を示すフローチャートである。図21のフローチャートの処理は、図9に示されるステップS102の処理に相当する。図9のステップS101において、図4に示される受信部301が第2指示メッセージ450、第2送信元情報451及び管理番号452を決定部304に受け渡したら、ステップS701において、決定部304は、第2指示メッセージ450及び第2送信元情報451を取得する。次に、ステップS702において、決定部304は、第2送信元情報451を検索キーとして、図20に示される制御履歴データベース306を検索し、第2送信元情報451に対応する制御の優先度PRを取得する。
この場合、決定部304は、検索キーとした第2送信元情報451に関連する過去の第2制御情報453、すなわち制御の優先度PR及び制御内容CCのリストを、制御履歴データベース306から取得する。前述したリストは、制御内容CCを含んでいなくてもよい。決定部304は、前述したリストのうち、すべての制御の優先度PRを取得する。
ステップS703に進み、決定部304は、ステップS702で異なる複数の制御の優先度PRを検索し、これらを取得した場合(ステップS703,Yes)、ステップS704の処理を実行する。ステップS704において、決定部304は、それぞれの制御の優先度PRが出現した回数に基づいて、制御の優先度PRを選択する。具体的には、決定部304は、それぞれの制御の優先度PRが出現した回数が多い方の制御の優先度PRを選択する。3以上の異なる制御の優先度PRが検索された場合、決定部304は、それぞれの制御の優先度PRが出現した回数が最も多い制御の優先度PRを選択することができる。この点は、以下においても同様である。
第2送信元情報451を検索キーとして図20に示される制御履歴データベース306が検索されて、検索キーが共通する組合せCB1及び組合せCB2からそれぞれ制御の優先度PRが取得されたとする。組合せCB1の制御の優先度PRは高(H)、組合せCB2の制御の優先度PRは中(M)である。組合せCB1の制御の優先度PRが出現した回数が8回、組合せCB2の制御の優先度PRが出現した回数が2回であった場合、決定部304は、組合せCB1の制御の優先度PR、すなわち高(H)を選択して、優先制御に用いる。
決定部304は、ステップS705において、ステップS704で選択した制御の優先度PRが「高」である場合(ステップS705,Yes)、ステップS706に進む。ステップS706において、決定部304は、ステップS701で取得した第2指示メッセージ450を図4に示される第1キュー304Aに格納する。
ステップS705において、決定部304は、ステップS704で選択した制御の優先度PRが「高」でない場合(ステップS705,No)、ステップS707に進む。ステップS707において、決定部304は、ステップS704で選択した制御の優先度PRが「中」である場合(ステップS707,Yes)、ステップS708に進む。ステップS708において、決定部304は、ステップS701で取得した第2指示メッセージ450を図4に示される第2キュー304Bに格納する。
ステップS707において、決定部304は、ステップS704で選択した制御の優先度PRが「中」でない場合(ステップS707,No)、ステップS709に進む。ステップS709において、決定部304は、ステップS701で取得した第2指示メッセージ450を図4に示される第3キュー304Cに格納する。このようにして、決定部304は、第2指示メッセージ450が解析部302に構文解析される順番を決定する。
次にステップS703に戻って説明する。決定部304は、ステップS702で検索し、取得した制御の優先度PRが複数の異なる優先度でない場合(ステップS703,No)、ステップS705に進み、以降の処理を実行する。ステップS702で単数の制御の優先度PRが検索された場合、決定部304は、検索された制御の優先度PRを用いてステップS705以降の処理を実行する。ステップS702で複数かつ同種の制御の優先度PRが検索された場合、決定部304は、最新の制御の優先度PRを用いてステップS705以降の処理を実行する。
第1変形例.
図22は、実施の形態3の第1変形例に係る制御履歴データベースの構造を示す図である。図22に示される制御履歴データベース306bは、図20に示される制御履歴データベース306に加えて、制御の優先度PRの出現回数NAを有する。出現回数NAは、具体的には、第2送信元情報451の送信元のアドレスADd、アクセス先のアドレスACU及びサイズSZと、第2制御情報453の制御の優先度PR及び制御内容CCとが同一である組合せが出現した回数である。
前述したように、図4に示される自コントローラ100の監視部305は、第2送信元情報451と、解析部302から取得した結果である第2制御情報453の制御内容CC及び制御の優先度PRとを関連付けて、制御履歴データベース306bに書き込んで記憶させる。このとき、監視部305は、制御履歴データベース306b中に、これから書き込む情報と同一の情報がある場合、同一の情報の出現回数NAに1を加算する。これから書き込む情報と同一の情報がある場合とは、監視部305がこれから書き込む情報と、制御履歴データベース306bに既に存在する情報との間で、送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、第2制御情報453の制御の優先度PR及び制御内容CCの組合せが同一であることをいう。
監視部305は、制御履歴データベース306bに、これから書き込む情報と同一の情報が存在しない場合、送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、第2制御情報453の制御の優先度PR及び制御内容CCの組合せを新たに書き込む。そして、監視部305は、制御履歴データベース306bに書き込んだ新たな情報の出現回数NAを1にする。次に、監視部305が、第2送信元情報451と第2制御情報453とを関連付けて、制御履歴データベース306bに書き込んで記憶させる際の処理を説明する。
図23は、実施の形態3の第1変形例に係る監視部の処理の一例を示すフローチャートである。図23のフローチャートは、図15に示されるステップS503の処理である。監視部305は、解析結果である第2制御情報453と第2送信元情報451とを関連付けて、制御履歴データベース306bに書き込む場合、ステップS5031において、制御履歴データベース306bに、これから書き込む情報と同一の情報が存在するか否かを判定する。具体的には、監視部305は、これから書き込む情報である送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、第2制御情報453の制御の優先度PR及び制御内容CCの組合せをキーとして制御履歴データベース306bを検索する。
検索の結果、制御履歴データベース306b中にこれから書き込む情報と同一の情報が存在する場合(ステップS5031,Yes)、監視部305は、ステップS5032の処理を実行する。ステップS5032において、監視部305は、これから書き込む情報と同一の情報、すなわち制御履歴データベース306bに書き込まれた送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、第2制御情報453の制御の優先度PR及び制御内容CCの組合せに対応した出現回数NAに、1を加算する(NA←NA+1)。その後、監視部305は、図15のステップS504の処理を実行する。
検索の結果、制御履歴データベース306b中にこれから書き込む情報と同一の情報が存在しない場合(ステップS5031,No)、監視部305は、ステップS5033の処理を実行する。ステップS5033において、監視部305は、これから書き込む情報、すなわち送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、第2制御情報453の制御の優先度PR及び制御内容CCの組合せを制御履歴データベース306bに書き込む。そして、監視部305は、書き込んだ情報に対応する、制御履歴データベース306b中の出現回数NAを1とする(NA←1)。その後、監視部305は、図15のステップS504の処理を実行する。
決定部304は、制御履歴データベース306bを用いて優先制御を実行する場合、図21に示されるステップS704において、それぞれの制御の優先度PRに対応する出現回数NAを制御履歴データベース306bから取得する。図24の制御履歴データベース306bを例とすると、決定部304は、組合せCB1の制御の優先度PRに対応する出現回数NA=8と、組合せCB2の制御の優先度PRに対応する出現回数NA=2とを取得する。そして、決定部304は、取得した出現回数NAが大きい方の制御の優先度PRを選択する。
第2変形例.
第2変形例は、実施の形態3と同様に、制御の優先度PRが出現した回数に関する情報を用いて、複数の異なる制御の優先度PRの中から1つの制御の優先度PRを選択し、選択された制御の優先度PRを用いて、第1指示メッセージ210を変換する順序を決定する。第2変形例は、実施の形態2に係る機器管理システム1a及び自コントローラ100aが有する優先度設定データベース801を用いる点が実施の形態3とは異なる。すなわち、第2変形例は、実施の形態32と実施の形態2とを組み合わせたものである。
第2変形例の機器管理システム及び自コントローラは、図16に示される、実施形態2の機器管理システム1a及び自コントローラ100aである。自コントローラ100aが図20に示される制御履歴データベース306を用いる場合、自コントローラ100aの処理は、監視部305が優先度設定データベース801を用いて制御履歴データベース306に情報を書き込む処理以外は、実施の形態3と同様である。自コントローラ100aの監視部305が、優先度設定データベース801を用いて制御履歴データベース306に情報を書き込む処理は、実施の形態2と同様である。
自コントローラ100aが図23に示される制御履歴データベース306bを用いる場合、自コントローラ100aの処理は、監視部305が優先度設定データベース801を用いて制御履歴データベース306bに情報を書き込む処理が、実施の形態3及び実施の形態3とは異なる。次に、第2変形例において、監視部305が、優先度設定データベース801を用いて制御履歴データベース306bに情報を書き込む処理を説明する。この処理は、第1変形例と共通する部分を有するので、図23のフローチャートを用いて説明する。
第2変形例において、図19に示されるステップS605の処理は、図23のフローチャートで示される。図17に示される自コントローラ100aの監視部305は、図19のステップS605の処理を実行する場合、ステップS5031において、制御履歴データベース306b中に、これから書き込む情報と同一の情報があるか否かを判定する。監視部305がこれから書き込む情報は、図19のステップS601で取得した解析結果454の制御内容CC、ステップS603で検索した指定優先度PRC及びステップS602で取得した第2送信元情報451である。これらは、互いに関連付けられて制御履歴データベース306bに書き込まれる。
ステップS5031において、監視部305は、これから書き込む情報である送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、指定優先度PRC及び制御内容CCの組合せをキーとして制御履歴データベース306bを検索する。
検索の結果、制御履歴データベース306b中にこれから書き込む情報と同一の情報が存在する場合(ステップS5031,Yes)、監視部305は、ステップS5032の処理を実行する。ステップS5032において、監視部305は、これから書き込む情報と同一の情報、すなわち制御履歴データベース306bに書き込まれた送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、制御の優先度PR(指定優先度PRC)及び制御内容CCの組合せに対応した出現回数NAに、1を加算する(NA←NA+1)。その後、監視部305は、図19のステップS606の処理を実行する。
検索の結果、制御履歴データベース306b中にこれから書き込む情報と同一の情報が存在しない場合(ステップS5031,No)、監視部305は、ステップS5033の処理を実行する。ステップS5033において、監視部305は、これから書き込む情報、すなわち送信元のアドレスADd、アクセス先のアドレスACU、サイズSZ、指定優先度PRC及び制御内容CCの組合せを制御履歴データベース306bに書き込む。制御履歴データベース306bに書き込まれた指定優先度PRCは、制御の優先度PRとなる。そして、監視部305は、書き込んだ情報に対応する、制御履歴データベース306b中の出現回数NAを1とする(NA←1)。その後、監視部305は、図19のステップS606の処理を実行する。
決定部304は、第2変形例において制御履歴データベース306bを用いて優先制御を実行する場合、図21に示されるステップS704において、それぞれの制御の優先度PRに対応する出現回数NAを制御履歴データベース306bから取得する。図24の制御履歴データベース306bを例とすると、決定部304は、組合せCB1の制御の優先度PRに対応する出現回数NA=8と、組合せCB2の制御の優先度PRに対応する出現回数NA=2とを取得する。そして、決定部304は、取得した出現回数NAが大きい方の制御の優先度PRを選択する。
実施の形態1及び実施の形態2は、最新の制御の優先度PRを用いて第1指示メッセージ210を変換する順序を決定するため、過去に得られた制御の優先度PRは第1指示メッセージ210を変換する順序の決定に用いられない。実施の形態3、第1変形例及び第2変形例は、過去に出現した制御の優先度PRの回数に基づいて、第1指示メッセージ210を変換する順序が決定される。つまり、実施の形態3、第1変形例及び第2変形例では、過去に多く出現した制御の優先度PR、すなわちユーザの要求が多かった制御内容に対応した制御の優先度PRを用いて、第1指示メッセージ210を変換する順序が決定される。このように、実施の形態3、第1変形例及び第2変形例は、過去に発生したユーザの要求の情報を利用することで、ユーザの要求の傾向を機器の制御に反映させることができる。その結果、実施の形態3、第1変形例及び第2変形例は、機器を制御するための指令が集中した場合に、優先度の高い制御の遅延を抑制しつつ、ユーザが要求する機器にユーザが要求する制御を実行させることができる確率を向上させることができる。
実施の形態3、第1変形例及び第2変形例では、決定部304は、それぞれの制御の優先度PRが出現した回数である出現回数に基づいて制御の優先度PRを選択したが、出現回数そのものに基づかなくてもよい。出現回数以外でも、それぞれの制御の優先度PRが出現した頻度である出現頻度、又はそれぞれの制御の優先度PRが出現した確率である出現確率に基づいて、制御の優先度PRが選択されてもよい。このように、実施の形態3、第1変形例及び第2変形例では、それぞれの制御の優先度PRが出現した回数に関する情報に基づいて、制御の優先度PRが選択されてもよい。
制御の優先度PRが出現した回数に関する情報は、決定部304が制御の優先度PRを選択するタイミングを基準として、過去の所定期間に出現した制御の優先度PRの情報が用いられる。前述した所定期間よりも前の情報は削除される。所定期間は、1日、1週間、1か月、3か月又は半年とすることができる。これらは例示であって、所定期間を限定するものではない。所定期間を季節毎とすれば、季節毎におけるユーザの要求を機器の制御に反映させることができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
前述した実施の形態1から実施の形態3においては、指令の少なくとも一部の形式を変換する処理は、構文解析を例としたが、これに限定されない。指令の少なくとも一部の形式を変換する処理の他の例は、異なる機器制御プロトコル間の変換処理を行う場合及びECHONET LiteのオブジェクトモデルをZigBee(登録商標)のオブジェクトモデル又はKNXのオブジェクトモデルに変換する場合が挙げられる。このような処理は、指令の形式の返還に解析が必要であるので処理負荷が高くなるので、自コントローラ100,100a,100bが優先制御を実行することにより、解析の輻輳を抑制して優先度の高い指令、すなわちメッセージの処理の遅延を抑制できる。