以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付す。以下では、具体例として、本発明がホームシステムに適用される場合について説明するが、後述するように、他のシステムにおいても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。従って、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
(実施形態1)
図1は、本発明の実施形態1に係るホームシステム1の全体構成の一例を示すブロック図である。このホームシステム1は、コントローラ10が中心となり、各家電機器20およびサーバ装置40との間で必要なデータを送受信しつつ、各家電機器20を管理(モニタリングや制御)するシステムである。図示するように、ホームシステム1は、住居H内(宅内)に設置されたコントローラ10と、住居H内に設置された複数の家電機器20と、住居H内にて使用される端末装置30と、住居H外(宅外)に設置されたサーバ装置40とを備えている。このうち、コントローラ10と、各家電機器20と、端末装置30とは、例えば、有線LAN(Local Area Network)や無線LANからなる宅内ネットワーク80を介して通信可能に接続されている。また、コントローラ10と、サーバ装置40とは、例えば、インターネットからなる宅外ネットワーク90を介して通信可能に接続されている。
コントローラ10は、ホームシステム1全体を制御する装置である。コントローラ10は、後述するように、各家電機器20およびサーバ装置40にてそれぞれ分散して記憶されている要素データ(例えば、家電機器の運転状況、温度、湿度、および、家電機器の消費電力など)を適宜取得して、種々の管理画面を生成する。
このコントローラ10の構成の一例について、以下、図2を参照して説明する。図2は、本発明の実施形態1に係るコントローラ10の構成の一例を示すブロック図である。図示するように、コントローラ10は、宅内通信部11と、宅外通信部12と、画面定義データ記憶部13と、キャッシュデータ記憶部14と、制御部15とを備える。
宅内通信部11は、例えば、宅内ネットワーク80と接続するための通信アダプタであり、制御部15による制御の下、宅内ネットワーク80を介して、各家電機器20および端末装置30との通信を行う。例えば、宅内通信部11は、コントローラ10からの要求に応じて各家電機器20から送られる要素データを受信する。また、宅内通信部11は、制御部15(より詳細には、後述する画面生成部151)が生成した管理画面(画面データ)を端末装置30に送信する。
宅外通信部12は、宅外ネットワーク90と接続するための通信アダプタであり、制御部15による制御の下、宅外ネットワーク90を介して、サーバ装置40との通信を行う。例えば、宅外通信部12は、コントローラ10からの要求に応じてサーバ装置40から送られる要素データを受信する。また、宅外通信部12は、コントローラ10が各家電機器20から得た種々のデータを、例えば、一定時間毎にサーバ装置40に送信して蓄積させる。
画面定義データ記憶部13は、例えば、不揮発性の半導体メモリなどで構成され、管理画面の構成内容を定義する画面定義データを記憶する。具体的に、画面定義データ記憶部13は、図3に示すような管理画面P1(モニタリング画面)などを生成するために必要となる各要素データとそれらの配置位置などを規定した画面定義データを記憶する。なお、要素データとは、図3の例では、温度D1、湿度D2、消費電力量D3、および、記号SGなどである。ここで、消費電力量D3がグレー表示されているが、これは、以下に説明する更新仕様が、例えば、「手動更新」であるため、最新の値でない可能性があることを示している。また、記号SGは、ユーザが任意に更新を指示(「手動更新」を指示)できることを示しており、後述するように、消費電力量D3に向けた操作がなされた際に、その要素データがサーバ装置40などから取得され、最新の値に更新される(最新の要素データがある場合)。以下、画面定義データについて、図4を参照して、より具体的に説明する。
図4は、画面定義データ記憶部13に記憶される画面定義データの一例を示す模式図である。図示するように、画面定義データには、要素ID、配置位置、取得先、および、更新仕様が含まれている。なお、取得先として、家電機器20やサーバ装置40の名称を示しているが、説明を容易にするためであり、実際には、要素データが記憶されているアドレスおよびファイル名(データ名)などが規定されている。また、更新仕様とは、要素データの更新タイミングや更新手法などを示している。例えば、更新仕様が「毎回更新」であれば、制御部15(より詳細には、後述する画面生成部151)は、管理画面の生成時に必ず最新の要素データの取得を試みる。また、例えば、更新仕様が「手動更新」であれば、制御部15は、管理画面の生成時に、後述するキャッシュデータ記憶部14から要素データを取得する(対象の要素データが記憶されている場合)。つまり、最新であることが要求される要素データについては、更新仕様に「毎回更新」を規定しておくことで、その要素データの有効性(リアルタイム性)が確保される。一方、最新であることが要求されない要素データについては、更新仕様に「手動更新」を規定しておくことで、キャッシュデータ記憶部14から記憶済みの要素データを取得して通信を行わないため、レスポンス性能を向上させることができる。なお、更新仕様は、これらの「毎回更新」や「手動更新」に限られず、他の内容が規定されていてもよい。例えば、「時間帯指定更新」が規定されている場合に、制御部15は、指定された時間帯に含まれる時刻に管理画面を生成する場合に、上述した「毎回更新」と同様に、最新の要素データの取得を試みる。一方、指定された時間帯から外れた時刻に管理画面を生成する場合に、制御部15は、上述した「手動更新」と同様に、キャッシュデータ記憶部14から要素データを取得する。このような「時間帯指定更新」が規定される要素データは、その時間帯に限り、最新であることが要求される場合などである。例えば、上述した図3の管理画面P1における消費電力量D3について、ユーザがお昼時に最新の値で確認したいという要望がある場合、その要素データに「時間帯指定更新」(一例として、12:00〜13:00)と規定しておく。そうすることで、お昼時(指定された時間帯に含まれる時刻)に制御部15が管理画面P1を生成する際には、管理画面P1における消費電力量D3(各部屋の消費電力量)が、図3に示すようなグレー表示でなく、温度D1や湿度D2と同じような通常表示で、記号SGが省かれて生成されることになる。なお、図4に示すような画面定義データは、一例であり、管理画面P1を構成する他の図形や文字なども含んでいてもよい。
図2に戻って、キャッシュデータ記憶部14は、例えば、揮発性の半導体メモリなどで構成され、各家電機器20およびサーバ装置40から取得した各要素データを記憶する。つまり、以前に取得した各要素データをキャッシュデータとして記憶する。キャッシュデータ記憶部14内に記憶される各要素データは、上述した図4に示す画面定義データの内容と概ね同じであるが、記憶した要素データの更新日時も含まれている。この更新日時は、後述するように、制御部15がサーバ装置40から新しい要素データを取得しようとする際に、宅外通信部12からサーバ装置40に送信され、最新の要素データの有無をサーバ装置40側で判別するために使用される。
制御部15は、CPU(Central Processing Unit),ROM(Read Only Memory),RAM(Random Access Memory)など(何れも図示せず)を備え、コントローラ10全体を制御する。制御部15は、機能的には、画面生成部151と、キャッシュデータ更新部152と、操作受付部153と、指令部154とを備える。これらの機能は、CPUが、RAMをワークメモリとして用い、例えば、ROMに記憶されている各種プログラム(後述する画面生成処理のプログラムなど)を適宜実行することにより実現される。
画面生成部151は、画面定義データに従って、管理画面を生成する。その際、画面生成部151は、上述した図4の画面定義データにて規定される各更新仕様に基づいて、各要素データを、キャッシュデータ記憶部14、または、各家電機器20およびサーバ装置40からそれぞれ取得して、管理画面を生成する。
具体的に画面生成部151は、画面定義データに従って、上述した図3に示すような管理画面P1を生成する。その際、画面生成部151は、要素データの更新仕様が上述した「毎回更新」に規定されている場合に、最新の要素データの取得を試みる。例えば、取得先がサーバ装置40(より詳細には、サーバ装置40のアドレスおよびファイル名)の場合に、画面生成部151は、キャッシュデータ記憶部14に記憶済みの要素データ(同じアドレスの同じファイル名など)の更新日時を、宅外通信部12を通じてサーバ装置40に送信して、最新の要素データの有無をサーバ装置40に判別させる。この際、後述するように、サーバ装置40は、受信した更新日時と、自ら記憶している要素データ(同じアドレスの同じファイル名など)の更新日時とを比較し、最新の要素データを記憶していると判別した場合に、その要素データをコントローラ10に送信する。一方、最新の要素データを記憶していない(コントローラ10に送信済みである)と判別した場合に、サーバ装置40は、要素データを送信する代わりに、キャッシュデータが最新である旨をコントローラ10に送信する。この場合、画面生成部151は、キャッシュデータ記憶部14に記憶されている要素データ(同じアドレスの同じファイル名など)を取得する。なお、更新日時をサーバ装置40に送信しようとする際に、キャッシュデータ記憶部14に要素データ(同じアドレスの同じファイル名など)が記憶されていないと判別すると、画面生成部151は、比較などを依頼することなく、対象の要素データをサーバ装置40などに要求して取得する。
また、画面生成部151は、要素データの更新仕様が上述した「手動更新」に規定されている場合に、キャッシュデータ記憶部14から要素データを取得する。なお、キャッシュデータ記憶部14に要素データ(同じアドレスの同じファイル名など)が記憶されていない場合には、画面生成部151は、取得先となる各家電機器20やサーバ装置40に対して、要素データを要求して取得する。この他にも、要素データの更新仕様が上述した「時間帯指定更新」に規定されていると、画面生成部151は、指定された時間帯に含まれる時刻に管理画面を生成する場合に、上述した「毎回更新」と同様に、最新の要素データの取得を試みる。一方、指定された時間帯から外れる時刻に管理画面を生成する場合に、画面生成部151は、上述した「手動更新」と同様に、キャッシュデータ記憶部14から要素データを取得する。
画面生成部151は、このようにして取得した要素データを用いて、上述した図3に示すような管理画面P1を生成する。つまり、更新仕様が「毎回更新」などに規定されている要素データについては、図3の管理画面P1における温度D1や湿度D2のように通常表示で生成する。一方、更新仕様が「手動更新」などに規定されている要素データについては、図3の管理画面P1における消費電力量D3のようにグレー表示で記号SGを付加して生成する。そして、画面生成部151は、生成した図3に示すような管理画面P1の画面データを、宅内通信部11を通じて、端末装置30に送信する。
キャッシュデータ更新部152は、画面生成部151が管理画面を生成する際に、各家電機器20およびサーバ装置40から取得した要素データを、キャッシュデータ記憶部14に格納して更新する。例えば、各家電機器20およびサーバ装置40から取得した要素データと同じ要素データがキャッシュデータ記憶部14に記憶されていれば、キャッシュデータ更新部152は、上書きして更新する。一方、各家電機器20およびサーバ装置40から取得した要素データと同じ要素データがキャッシュデータ記憶部14に記憶されていなければ、そのまま要素データをキャッシュデータ記憶部14に格納する。
操作受付部153は、画面生成部151によって生成された管理画面に対するユーザの操作を受け付ける。例えば、画面生成部151が生成した管理画面の画面データが、端末装置30に送信された後、端末装置30から有効な入力検出データ(例えば、管理画面内の選択エリアなどに向けた入力検出データなど)が送られた場合に、管理画面に対するユーザの操作を受け付ける。
指令部154は、宅内通信部11を通じて、対象の家電機器20に制御を指令する。例えば、指令部154は、操作受付部153が受け付けた操作に応じて、対象の家電機器20に制御を指令する。
図1に戻って、複数の家電機器20は、住居H内の各部屋で使用される各種電化製品であり、例えば、照明、エアコン、テレビ、IH調理器、および、冷蔵庫などが含まれる。なお、家電機器20の種類は、これらに限られず、他に、空気清浄機、換気扇、および、床暖房などを含んでいてもよい。このような家電機器20の構成の一例について、以下、図5のブロック図を参照して説明する。図示するように、家電機器20は、通信部21と、データ記憶部22と、主機能部23と、制御部24と、を備える。
通信部21は、例えば、宅内ネットワーク80と接続するための通信アダプタであり、制御部24の制御の下、宅内ネットワーク80を介して、コントローラ10と通信を行う。なお、通信部21を、着脱可能な外付けの通信アダプタで構成してもよい。
データ記憶部22は、例えば、不揮発性の半導体メモリなどで構成され、家電機器20が管理する要素データ(例えば、家電機器20の運転状況、温度、湿度、および、家電機器20の消費電力など)を記憶する。また、データ記憶部22は、制御部24が実行するプログラムなども記憶する。
主機能部23は、家電機器20本来の機能(例えば、エアコンであれば冷房、暖房、および、除湿などの空調機能、冷蔵庫であれば冷凍、および、冷蔵機能など)を実現するための構成であり、制御部24により制御される。
制御部24は、CPU,RAM,ROMなど(何れも図示せず)を備え、上述した各部を制御する。制御部24は、機能的には、データ処理部241と、制御実行部242とを備える。これらの機能は、CPUが、RAMをワークメモリとして用い、ROMやデータ記憶部22に記憶されている各種プログラムを適宜実行することにより実現される。
データ処理部241は、家電機器20の図示せぬセンサなどによる計測値や、稼働状態や設定状態などの監視結果から、逐次、要素データを生成して、データ記憶部22に記憶させる。そして、データ処理部241は、コントローラ10からの要求に応じて、データ記憶部22に記憶される要素データをコントローラ10に送信する。その際、データ処理部241は、後述するサーバ装置40のように、データ処理部241は、最新の要素データがあると判別した場合に、その要素データをコントローラ10に送信するようにしてもよい。
制御実行部242は、コントローラ10における上述した指令部154の指令に基づいた制御を、主機能部23に実行させる。つまり、制御実行部242は、コントローラ10から発せられた指令(制御信号など)に応じた処理を主機能部23に実行させる。
図1に戻って、端末装置30は、例えば、タブレット端末やスマートフォンなどの携帯端末であり、ユーザによって使用される。この端末装置30の構成の一例について、以下、図6のブロック図を参照して説明する。図示するように、端末装置30は、通信部31と、表示部32と、入力部33と、データ記憶部34と、制御部35と、を備える。
通信部31は、例えば、無線LAN接続用のインタフェースを備え、制御部35の制御の下、コントローラ10と通信を行う。
表示部32は、液晶パネルなどを備え、制御部35の制御の下、種々の画面などを表示する。具体的に表示部32は、一例として、コントローラ10から送られた画面データから上述した図3に示すような管理画面P1を表示する。
入力部33は、タッチパネル,タッチパッドなどから構成され、ユーザからの操作入力を受け付ける処理を行う。例えば、入力部33としてタッチパネルを採用する場合、静電容量の変化を検出する透明な平板状の静電容量センサが、液晶表示器に重ねて実装される。この静電容量センサにより、ユーザの指先や専用のペンなどによるタッチ面(ユーザにとっては液晶表示器の表示画面)の接触(押圧)が検出されると、その位置の情報(座標データ)が制御部35に出力される。
データ記憶部34は、例えば、不揮発性の半導体メモリなどで構成される。データ記憶部34は、コントローラ10にて生成され、通信部31を通じて受信した画面データ(上述した管理画面P1など)を一時的に記憶する。この他にもデータ記憶部34は、制御部35が実行するプログラムなどを記憶する。
制御部35は、CPU,ROM,RAMなど(何れも図示せず)を備え、端末装置30全体を制御する。制御部35は、機能的には、画面表示処理部351と入力検出部352とを備える。この機能は、CPUが、RAMをワークメモリとして用い、ROMやデータ記憶部34に記憶されている各種プログラムを適宜実行することにより実現される。
画面表示処理部351は、通信部31を通じて、コントローラ10から送られた画面データに基づく管理画面(上述した管理画面P1など)を、表示部32に表示する。
入力検出部352は、表示部32に表示した管理画面の項目(例えば、各種選択エリアなど)に対するユーザからの操作を入力部33から受け付けると、入力検出データを生成して、通信部31を通じて、コントローラ10に送信する。
図1に戻って、サーバ装置40は、コントローラ10と通信することによって、各家電機器20の各種データのうち、蓄積したり解析したりする必要のあるデータを取得する。このサーバ装置40の構成の一例について、以下、図7のブロック図を参照して説明する。図示するように、サーバ装置40は、通信部41と、データ記憶部42と、制御部43と、を備える。
通信部41は、例えば、宅外ネットワーク90と接続するための通信アダプタであり、制御部43の制御の下、宅外ネットワーク90を介して、コントローラ10との通信を行う。一例として、通信部41は、コントローラ10から定期的に送られる蓄積用や解析用などのデータを受信する。また、通信部41は、コントローラ10が管理画面を生成する際に送られる要素データの要求や、要求される要素データの更新日時などを受信する。
データ記憶部42は、例えば、不揮発性の半導体メモリなどで構成され、サーバ装置40が管理する要素データ(例えば、各家電機器20の運転履歴、温度履歴、湿度履歴、および、各家電機器20の累積消費電力量など)を記憶する。また、データ記憶部42は、制御部43が実行するプログラムなども記憶する。
制御部43は、CPU,ROM,RAM等(何れも図示せず)を備え、上述した各部を制御する。制御部43は、機能的には、データ処理部431を備える。これら制御部43の各機能は、CPUが、RAMをワークメモリとして用い、ROMやデータ記憶部42に記憶されている各種プログラムを適宜実行することにより実現される。
データ処理部431は、コントローラ10から送られる各種データを蓄積したり解析するなどして生成した要素データを、データ記憶部42に記憶させる。そして、データ処理部431は、コントローラ10からの要求に応じて、データ記憶部42に記憶される要素データをコントローラ10に送信する。その際、データ処理部431は、サーバ装置40側の要素データ(データ記憶部42に記憶している要素データ)が最新であるか否か判別し、最新であると判別した場合に、データ記憶部42から読み出した要素データを通信部41を通じてコントローラ10に送信する。具体的にデータ処理部431は、コントローラ10側で記憶している要素データの更新日時が、コントローラ10から送られると、データ記憶部42に記憶している同じ要素データの更新日時と比較し、サーバ装置40側の要素データの方がコントローラ10側の要素データ(キャッシュデータ)よりも新しいか否かを判別する。サーバ装置40側の要素データの方が新しいと判別した場合に、データ処理部431は、その要素データをコントローラ10に送信する。一方、サーバ装置40側の要素データの方がコントローラ10側のキャッシュデータよりも古い(若しくは、同じ更新日時)と判別した場合に、データ処理部431は、キャッシュデータが最新である旨をコントローラ10に送信する。
以下、実施形態1に係るコントローラ10の動作について、図8を参照して説明する。図8は、本発明の実施形態1に係る画像生成処理の一例を示すフローチャートである。この画像生成処理は、端末装置30から任意の管理画面の生成が要求された場合に実行される。
まず、コントローラ10は、要求された管理画面の構成内容を定義する画面定義データを読み出す(ステップS501)。つまり、画面生成部151は、宅内通信部11を通じて、端末装置30から管理画面の生成が要求されると、その管理画面の構成内容を定義する画面定義データを画面定義データ記憶部13から読み出す。
コントローラ10は、読み出した画面定義データに定義されているn番目の要素データを更新仕様に基づいて取得する(ステップS502)。つまり、画面生成部151は、n番目の要素データについて更新仕様が上述した図4中に示すような「毎回更新」に規定されている場合に、最新の要素データの取得を試みる。例えば、n番目の要素データの取得先がサーバ装置40(より詳細には、サーバ装置40のアドレスおよびファイル名)の場合に、画面生成部151は、キャッシュデータ記憶部14に記憶済みの要素データ(同じアドレスの同じファイル名など)の更新日時を、宅外通信部12を通じてサーバ装置40に送信して、最新の要素データの有無をサーバ装置40に判別させる。そして、サーバ装置40側が、最新の要素データを記憶していると判別した場合にサーバ装置40から送られる、要素データを取得(受信)する。一方、サーバ装置40側が、最新の要素データを記憶していないと判別した場合にサーバ装置40から送られる、キャッシュデータが最新である旨を受信する。この場合、画面生成部151は、キャッシュデータ記憶部14に記憶されている要素データ(同じアドレスの同じファイル名など)を取得する。
また、画面生成部151は、要素データの更新仕様が上述した図4中に示すような「手動更新」に規定されている場合に、キャッシュデータ記憶部14から要素データを取得する。なお、キャッシュデータ記憶部14に要素データ(同じアドレスの同じファイル名など)が記憶されていない場合には、画面生成部151は、取得先となる各家電機器20やサーバ装置40に対して、要素データを要求して取得する。
コントローラ10は、要素データを全て取得したか否かを判別する(ステップS503)。つまり、画像生成部151は、画面定義データに従って全ての要素データを取得し終えたかどうかを判別する。コントローラ10は、全ての要素データを取得していないと判別すると(ステップS503;No)、上述したステップS502に処理を戻す。
一方、全ての要素データを取得したと判別した場合に(ステップS503;Yes)、コントローラ10は、管理画面を生成して端末装置30に送信する(ステップS504)。そして、端末装置30は、例えば、上述した図3に示すような管理画面P1を表示する。
コントローラ10は、要素データの更新要求を受け付けた否かを判別する(ステップS505)。例えば、上述した図3の管理画面P1における消費電力量D3(記号SGが付加されているもの)の選択エリアがユーザによって押下された場合に、操作受付部153は、要素データの更新要求(「手動更新」の要求)を受け付けたと判別する。コントローラ10は、要素データの更新要求を受け付けていないと判別すると(ステップS505;No)、後述するステップS508に処理を進める。
一方、要素データの更新要求を受け付けたと判別すると(ステップS505;Yes)、コントローラ10は、要求された要素データをサーバ装置40などから取得する(ステップS506)。例えば、要求された要素データの取得先がサーバ装置40(より詳細には、サーバ装置40のアドレスおよびファイル名)である場合に、画面生成部151は、キャッシュデータ記憶部14に記憶済みの要素データ(同じアドレスの同じファイル名など)の更新日時を、宅外通信部12を通じてサーバ装置40に送信して、最新の要素データの有無をサーバ装置40に判別させる。そして、サーバ装置40側が、最新の要素データを記憶していると判別した場合にサーバ装置40から送られる、要素データを取得(受信)する。
コントローラ10は、要素データを更新した管理画面を生成して、端末装置30に送信する(ステップS507)。そして、端末装置30は、ユーザが手動で更新を指示することによってその要素データが更新された管理画面を表示する。
コントローラ10は、画面遷移が発生したか否かを判別する(ステップS508)。つまり、操作受付部153は、ユーザの操作によって、別の管理画面への遷移が要求されたかどうかを判別する。コントローラ10は、画面遷移が発生していないと判別すると(ステップS508;No)、上述したステップS505に処理を戻す。
一方、画面遷移が発生したと判別すると(ステップS508;Yes)、コントローラ10は、画面生成処理を終える。なお、厳密には、遷移先の管理画面についての画面生成処理が、先頭(ステップS501)から開始される。
このような画面生成処理によって、画面定義データの各更新仕様に基づいて、管理画面を構成する各要素データが、キャッシュデータ記憶部14、または、各家電機器20およびサーバ装置40からそれぞれ取得され、管理画面が生成される。つまり、最新であることが要求されない要素データについては、例えば、更新仕様に「手動更新」などを規定しておくことで、キャッシュデータ記憶部14に記憶済みの要素データを取得して通信を行わないため、画面生成のレスポンス性能を向上させることができる。なお、最新であることが要求される要素データについては、例えば、更新仕様に「毎回更新」などを規定しておくことで、取得先となる家電機器20やサーバ装置40から要素データを取得する(最新の要素データがある場合)ため、その要素データの有効性(リアルタイム性)を確保できる。つまり、管理画面の実情(例えば、使い勝手など)に応じて、各要素データの更新仕様を適宜規定しておくことで、画面生成のレスポンス性能を適切に向上させることができる。
(実施形態2)
上記の実施形態1に係るコントローラ10は、上述した図4に示す内容の画面定義データを使用する場合について説明したが、他の内容の画面定義データを使用して、管理画面を段階的に作成するようにしてもよい。以下、本発明の実施形態2に係るコントローラ10などについて説明する。なお、実施形態2に係るコントローラ10の構成は、上述した図2に示す構成とほぼ同一である。
それでも、画面定義データ記憶部13に記憶される画面定義データが、以下に説明するように、上述した図4に示す内容と異なっている。実施形態2において、画面定義データ記憶部13は、具体的に、図9に示すような管理画面P2(操作画面)を生成するために必要となる各要素データとそれらの配置位置などを規定した画面定義データを記憶する。なお、管理画面P2での要素データとは、図9に示すリスト領域LTにおける選択用文字列Txや、レイアウト領域LOにおける選択用アイコンIcなどである。以下、画面定義データについて、図10を参照して、より具体的に説明する。
図10は、画面定義データ記憶部13に記憶される画面定義データの一例を示す模式図である。図示するように、画面定義データには、要素ID、配置位置、取得先、および、優先順位が含まれている。この優先順位は、画像生成部151が段階的に管理画面を生成する際に取得される順番を規定している。例えば、まず、優先順位が「1(高)」に規定されている要素データが取得されて1段階目の管理画面が生成され、次に、優先順位が「2(中)」に規定されている要素データが取得されて2段階目の管理画面が生成され、最後に、優先順位が「3(低)」に規定されている要素データが取得されて3段階目の管理画面(最終的な管理画面)が生成される。この例では、優先順位が「1」〜「3」までの3段階を示しているが、少なくとも、2段階以上であれば、適宜変更可能である。また、図10の例では、図4の更新仕様と入れ替えて、優先順位を加えているが、図4の更新仕様を残したまま、優先順位を加えてもよい。
また、実施形態2において、各家電機器20、端末装置30、および、サーバ装置40の構成も、上述した図5〜7に示す構成と同様である。
以下、実施形態2に係るコントローラ10の動作について、図11を参照して説明する。図11は、本発明の実施形態2に係る画像生成処理の一例を示すフローチャートである。この画像生成処理は、端末装置30から任意の管理画面の生成が要求された場合に実行される。
まず、コントローラ10は、要求された管理画面の構成内容を定義する画面定義データを読み出す(ステップS601)。つまり、画面生成部151は、宅内通信部11を通じて、端末装置30から管理画面の生成が要求されると、その管理画面の構成内容を定義する上述した図10に示すような画面定義データを画面定義データ記憶部13から読み出す。
コントローラ10は、読み出した画面定義データに定義されている優先順位が上位の要素データを取得する(ステップS602)。つまり、画面生成部151は、上述した図10中に示すような優先順位が「1(高)」に規定されている要素データを取得する。その際、画面生成部151は、キャッシュデータ記憶部14に記憶済みの要素データ(同じアドレスの同じファイル名など)の更新日時を、宅外通信部12を通じてサーバ装置40に送信して、最新の要素データの有無をサーバ装置40に判別させる。そして、サーバ装置40側が、最新の要素データを記憶していると判別した場合にサーバ装置40から送られる、要素データを取得(受信)する。一方、サーバ装置40側が、最新の要素データを記憶していないと判別した場合にサーバ装置40から送られる、キャッシュデータが最新である旨を受信する。この場合、画面生成部151は、キャッシュデータ記憶部14に記憶されている要素データ(同じアドレスの同じファイル名など)を取得する。
コントローラ10は、優先順位が上位の要素データを全て取得したか否かを判別する(ステップS603)。つまり、画面生成部151は、画面定義データに従って優先順位が「1(高)」に規定されている全ての要素データを取得し終えたかどうかを判別する。コントローラ10は、上位の要素データを全て取得していないと判別すると(ステップS603;No)、上述したステップS602に処理を戻す。
一方、上位の要素データを全て取得したと判別した場合に(ステップS603;Yes)、コントローラ10は、管理画面を生成し、現段階の管理画面を端末装置30に送信する(ステップS604)。端末装置30は、例えば、図12Aに示すような管理画面P2を表示する。図12Aの管理画面P2は、優先順位が上位の要素データだけから生成された画面であり、一例として、リスト領域LTにおける選択用文字列Txだけが表示されている。
図11に戻って、コントローラ10は、有効な操作があったか否かを判別する(ステップS605)。例えば、上述した図12Aのリスト領域LTにおける何れかの選択用文字列Txがユーザによって押下された場合に、操作受付部153は、現段階の管理画面に対する有効な操作があったと判別する。コントローラ10は、操作がなかった(有効な操作がなかった)と判別すると(ステップ605;No)、後述するステップS607に処理を進める。
一方、有効な操作があったと判別すると(ステップS605;Yes)、コントローラ10は、ユーザからの操作を受け付ける(ステップS606)。
コントローラ10は、読み出した画面定義データに定義されている優先順位が中位の要素データを取得する(ステップS607)。つまり、画面生成部151は、上述した図10中に示すような優先順位が「2(中)」に規定されている要素データを取得する。その際も、画面生成部151は、キャッシュデータ記憶部14に記憶済みの要素データの更新日時を、宅外通信部12を通じてサーバ装置40に送信して、最新の要素データの有無をサーバ装置40に判別させる。そして、サーバ装置40側が、最新の要素データを記憶していると判別した場合にサーバ装置40から送られる、要素データを取得する。一方、サーバ装置40側が、最新の要素データを記憶していないと判別した場合にサーバ装置40から送られる、キャッシュデータが最新である旨を受信する。この場合、画面生成部151は、キャッシュデータ記憶部14に記憶されている要素データを取得する。
コントローラ10は、優先順位が中位の要素データを全て取得したか否かを判別する(ステップS608)。つまり、画面生成部151は、画面定義データに従って優先順位が「2(中)」に規定されている全ての要素データを取得し終えたかどうかを判別する。コントローラ10は、中位の要素データを全て取得していないと判別すると(ステップS608;No)、上述したステップS607に処理を戻す。
一方、中位の要素データを全て取得したと判別した場合に(ステップS608;Yes)、コントローラ10は、管理画面を生成し、現段階の管理画面を端末装置30に送信する(ステップS609)。端末装置30は、例えば、図12Bに示すような管理画面P2を表示する。図12Bの管理画面P2は、優先順位が上位および中位の要素データだけから生成された画面であり、一例として、リスト領域LTにおける選択用文字列Txと、レイアウト領域LOの外枠だけが表示されている。つまり、レイアウト領域LOに今後何かしら表示されることが予想できるものの、現段階では、リスト領域LTにおける選択用文字列Txに対してだけ操作が可能な状態となっている。
図11に戻って、コントローラ10は、有効な操作があったか否かを判別する(ステップS610)。例えば、上述した図12Bのリスト領域LTにおける選択用文字列Txがユーザによって押下された場合に、操作受付部153は、現段階の管理画面に対する有効な操作があったと判別する。コントローラ10は、操作がなかった(有効な操作がなかった)と判別すると(ステップS610;No)、後述するステップS612に処理を進める。
一方、有効な操作があったと判別すると(ステップS610;Yes)、コントローラ10は、ユーザからの操作を受け付ける(ステップS611)。
コントローラ10は、読み出した画面定義データに定義されている優先順位が下位の要素データを取得する(ステップS612)。つまり、画面生成部151は、上述した図10中に示すような優先順位が「3(低)」に規定されている要素データを取得する。その際も、画面生成部151は、キャッシュデータ記憶部14に記憶済みの要素データの更新日時を、宅外通信部12を通じてサーバ装置40に送信して、最新の要素データの有無をサーバ装置40に判別させる。そして、サーバ装置40側が、最新の要素データを記憶していると判別した場合にサーバ装置40から送られる、要素データを取得する。一方、サーバ装置40側が、最新の要素データを記憶していないと判別した場合にサーバ装置40から送られる、キャッシュデータが最新である旨を受信する。この場合、画面生成部151は、キャッシュデータ記憶部14に記憶されている要素データを取得する。
コントローラ10は、優先順位が下位の要素データを全て取得したか否かを判別する(ステップS613)。つまり、画像生成部151は、画面定義データに従って優先順位が「3(低)」に規定されている全ての要素データを取得し終えたかどうかを判別する。コントローラ10は、下位の要素データを全て取得していないと判別すると(ステップS613;No)、上述したステップS612に処理を戻す。
一方、下位の要素データを全て取得したと判別した場合に(ステップS613;Yes)、コントローラ10は、管理画面を生成し、完成した管理画面を端末装置30に送信する(ステップS614)。端末装置30は、例えば、図12Cに示すような管理画面P2を表示する。図12Cの管理画面P2は、全ての要素データから生成された画面であり、一例として、リスト領域LTにおける選択用文字列Txと、レイアウト領域LOにおける選択用アイコンIcとが全て表示されている。つまり、新たに、レイアウト領域LOにおける選択用アイコンIcに対しても操作が可能な状態となっている。
図11に戻って、コントローラ10は、有効な操作があったか否かを判別する(ステップS615)。例えば、上述した図12Cのリスト領域LTにおける選択用文字列Txだけでなく、レイアウト領域LOにおける選択用アイコンIcがユーザによって押下された場合に、操作受付部153は、管理画面に対する有効な操作があったと判別する。コントローラ10は、操作がなかった(有効な操作がなかった)と判別すると(ステップ615;No)、後述するステップS617に処理を進める。
一方、有効な操作があったと判別すると(ステップS615;Yes)、コントローラ10は、ユーザからの操作を受け付ける(ステップS616)。
コントローラ10は、画面遷移が発生したか否かを判別する(ステップS617)。つまり、操作受付部153は、ユーザの操作によって、別の管理画面への遷移が要求されたかどうかを判別する。コントローラ10は、画面遷移が発生していないと判別すると(ステップS617;No)、上述したステップS615に処理を戻す。
一方、画面遷移が発生したと判別すると(ステップS617;Yes)、コントローラ10は、画面生成処理を終える。なお、厳密には、遷移先の管理画面についての画面生成処理が、先頭(ステップS601)から開始される。
このような画面生成処理によって、画面定義データの各要素データに規定された優先順位に基づいて、段階的に管理画面が生成される。そのため、例えば、データ量の少ない文字列などの要素データについて、優先順位を高く設定し、逆に、データ量の大きい画像などの要素データについて、優先順位を低く設定しておくことで、画面生成のレスポンス性能を向上させることができる。また、各段階の何れの管理画面でも、ユーザの操作を受け付けることができるため、画面操作のレスポンス性能も向上させることができる。
(他の実施形態)
上記の実施形態1,2に係るコントローラ10では、管理画面の生成が要求された時点から、画面定義データを読み出し、各要素データを取得する場合について説明したが、画面間の関連性や、一連の操作などから次に遷移する可能性が高い別の管理画面を予想できる場合には、遷移前から、遷移が予想される別の管理画面の画面定義データを読み出し、各要素データの取得を開始するようにしてもよい。
例えば、図13Aに示すような管理画面P3(寝室おやすみ画面)から、図13Bに示すような管理画面P4(詳細設定画面)に遷移する可能性が高いと予想される場合、画面生成部151は、管理画面P3の生成を終えた後に、実際に遷移が発生していない状態で、管理画面P4の画面定義データを読み出し、各要素データの取得を開始する。より具体的には、コントローラ10の画面生成部151は、各画面間の遷移結果を蓄積し、各画面間の遷移確率を求めることができるようにしておく。例えば、管理画面P3には、戻るボタンBt1、決定ボタンBt2、および、詳細設定ボタンBt3が含まれている。そして、ボタンBt1〜Bt3に応じて、遷移先の管理画面が異なっているものとする。なお、詳細設定ボタンBt3が押下された際の遷移先が管理画面P4とする。
画面生成部151は、管理画面P3のボタンBt1〜Bt3の何れかがユーザによって押下される毎に、画面間の遷移結果を蓄積していく。そして、一定数以上の遷移結果が蓄積されると、管理画面P3を生成した際に、画面生成部151は、蓄積した遷移結果に基づいて、管理画面P3から別の管理画面への遷移確率それぞれを求める。そして、遷移確率が予め定められた基準値よりも高い遷移先があれば、画面生成部151は、遷移前に、画面生成のための先読みを開始する。
例えば、管理画面P3から管理画面P4への遷移確率が基準値よりも高い場合に、画面生成部151は、ボタンBt3が押下される前に、管理画面P4の画面定義データを読み出し、各要素データの取得を開始する。その際、例えば、実施形態1のように、更新仕様に基づいて、各要素データの取得を開始する。そして、全ての要素データの取得を終えた際には、キャッシュデータ記憶部14に記憶した要素データだけから、管理画面P4を生成できる状態となっている。そのため、実際に、管理画面P3の詳細設定ボタンBt3が押下されると、画面生成部151は、図13Bに示すような管理画面P4を素早く生成する。この結果、画面生成のレスポンス性能を適切に向上させることができる。
上記の実施形態1,2に係るサーバ装置40は、住居H外(宅外)に設置される場合について説明したが、住居H内(宅内)に配置されていてもよい。例えば、サーバ装置40は、ゲートウェイ機能を備えたサーバなどであってもよい。
また、上記実施形態では、専用のコントローラ10などを用いる場合について説明したが、このコントローラ10などの動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末機器などに適用することで、当該パーソナルコンピュータなどを本発明に係るコントローラ10などとして機能させることも可能である。
また、このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory),DVD(Digital Versatile Disk),MO(Magneto Optical Disk),メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態および変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。