以下、図面を参照しつつ、本開示の各実施の形態に係る通信システムについて説明する。また、以下の説明では、同一の部材には同一の参照符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
[実施の形態1]
<システム構成>
図1は、実施の形態1に係る通信システム1の概略構成を表した図である。図1を参照して、通信システム1は、サーバ100と、情報処理装置としてのスマートフォン200と、家庭用電気機器(以下、「機器」と略す。)310,320,330,340とを含む。サーバ100は、ホームサーバとして機能する。機器310,320,330,340は、家庭用電気機器の一例である。
より具体的には、機器310は、宅内の子供部屋に配置されたエアーコンディショナである。機器320は、宅内の寝室に配置されたエアーコンディショナである。機器330は、宅内のリビングルームに配置されたエアーコンディショナである。機器340は、上記リビングルームに配置された空気清浄機である。機器310〜340は、必要に応じて、操作対象の機器として機器300と総称される。エアーコンディショナおよび空気清浄機は、通信システム1において操作対象となる機器の単なる例示である。通信システム1において操作対象となる機器の配置や種類は、図1に示されたものに限定されない。通信システム1が操作の対象とする機器の配置、および、そのような機器の機能や種類等が、これらの例示によっていかなる制限を受けることがないことは言うまでもない。
スマートフォン200は、サーバ100と通信可能である。サーバ100は、機器310,320,330,340と通信可能である。サーバ100は、一例として、XML(Extensible Markup Language)等のマークアップ言語を用いた通信仕様に基づき、スマートフォン200および機器300と通信する。なお、サーバ100は、JSON(JavaScript(登録商標) Object Notation)等の非マークアップ言語を用いた通信仕様に基づき、スマートフォン200および機器300と通信してもよい。通信に用いるデータの形式は、特に限定されるものではない。
また、機器300は、たとえばECHONET Lite(登録商標)のような汎用の通信プロトコルに従って送受信されるデータに基づいて、動作し得る。つまり、機器300は、サーバ100との間ではマークアップ言語で通信し、当該通信データから上記汎用の通信プロトコルに従ったデータを抽出し、そして、当該抽出したデータに基づいて自機の動作を制御する。この場合、機器300は、サーバ100とのマークアップ言語での通信を実現するためのアダプタに接続されていても良い。
サーバ100は、スマートフォン200に対して、機器300を操作するためのユーザインタフェースを提供する。これに応じて、スマートフォン200では、機器300を操作するためのユーザインタフェースが表示される。以下、ユーザインタフェースは適宜「UI」と省略され得る。そして、スマートフォン200は、ユーザ操作に基づき、機器300を制御するための制御指令の入力を受け付ける。スマートフォン200は、受付けた制御指令をサーバ100に送信する。サーバ100は、受信した制御指令を、当該制御指令において指定される送信先へと送信する。当該制御指令を受信した機器300は、当該制御指令に基づいて、自機の動作を制御する。
<通信システムの動作の概要>
図2は、通信システム1の機能的な構成を模式的に示す図である。図2を参照して、通信システム1の動作の概要を説明する。
サーバ100は、テンプレートデータベース110と情報データベース120とを格納する。以下の説明では、「データベース」は、「DB」と称される場合がある。テンプレートDB110は、スマートフォン200に提供されるUIを生成するためのテンプレートを階層的に分けて格納する。より具体的には、テンプレートDB110は、機器種別テンプレートDB111、メーカテンプレートDB112、シリーズテンプレートDB113、およびモデルテンプレートDB114に分けて、UIを生成するためのテンプレートを格納する。
機器種別テンプレートDB111は、機器300の種別ごとにUIのテンプレートを格納する。本明細書において「機器種別」とは、「エアーコンディショナ」「空気清浄機」「テレビ」「照明器具」等のように、機器の本質的な機能に基づいた区別を意味する。メーカテンプレートDB112は、機器のメーカごとにUIのテンプレートを格納する。シリーズテンプレートDB113は、各メーカにおいて対応する機器種別について、シリーズごとにUIのテンプレートを格納する。モデルテンプレートDB114は、各シリーズについて、機器のモデルごとにUIのテンプレートを格納する。
階層は、上位から「機器種別」「メーカ」「シリーズ」「モデル」の順に設定されている。つまり、テンプレートDB110では、機器種別テンプレートDB111が最も高い階層でテンプレートを格納し、その後、階層の高い順から、メーカテンプレートDB112、シリーズテンプレートDB113、モデルテンプレートDB114で、階層が設定されている。
情報DB120は、機器300の情報を格納する機器DB121と、ユーザの情報を格納するユーザDB122とを含む。通信システム1では、サーバ100は、機器300から、当該機器300の機器情報を取得する。機器情報は、機器300の、機器種別、メーカ、シリーズ、およびモデルのそれぞれを特定する項目を含み得る。機器DB121では、機器300の機器情報は、ユーザを特定する情報と関連付けられる。ユーザDB122は、通信システム1における各ユーザを特定するための情報を格納する。
機器情報において、4つの項目(「機器種別」「メーカ」「シリーズ」および「モデル」)は、階層的に配列されている。「機器種別」が最も高い階層に位置づけられ、次に、階層の高い順から、メーカ、シリーズ、およびモデルの順に、位置付けられる。
サーバ100は、演算処理を実行するプロセッサ151を含む。プロセッサ151は、機器300のUIを表示させるためのデータを生成して、スマートフォン200へ提供する。より具体的には、プロセッサ151は、機器DB121から機器300の機器情報を取得し、当該機器情報に対応するテンプレートを機器種別テンプレートDB111、メーカテンプレートDB112、シリーズテンプレートDB113、およびモデルテンプレートDB114のそれぞれから取得し、取得したテンプレートを組み合わせることにより、UIを表示させるためのデータを生成する。そして、プロセッサ151は、生成したデータを、スマートフォン200へ提供する。プロセッサ151は、スマートフォン200へ、UIを表示させるためのデータとともに、機器300の機器情報を提供し得る。
スマートフォン200は、UIの表示に利用される枠組データが格納されている。枠組データとは、たとえば、UIのレイアウトを特定するデータである。そして、スマートフォン200は、サーバ100から受信した「UIを表示させるためのデータ」を、当該枠組データに適合させることによって、UIを表示させる。なお、以降の説明では、サーバ100からスマートフォン200に「UIを表示させるためのデータが送信される」ことが、単に「UIが送信される」と言及される場合もあり得る。また、通信システム1では、スマートフォン200が枠組データを格納せず、サーバ100からスマートフォン200に対して上記枠組データを含めて、UIを表示させるためのデータが送信される場合もあり得る。また、「UIを表示させるためのデータ」は、送信用データとも呼ばれる。
プロセッサ151は、機器300の動作状態(機器状態)を取得する。そして、プロセッサ151は、スマートフォン200に対して、機器状態を提供し得る。プロセッサ151は、機器状態をUIに含めて、スマートフォン200へ提供することができる。
UIを提供されたスマートフォン200を操作するユーザは、機器300に対する制御内容を入力する。スマートフォン200は、入力された制御内容に応じた制御指令を、サーバ100へ送信する。サーバ100は、スマートフォン200から入力された制御指令を、対応する機器300へ送信する。サーバ100から制御指令を受信した機器300は、当該制御指令に従って動作する。
図3は、機器DB121に格納された内容の一例と、UIにおけるテンプレートの構成の一例とを、模式的に示す図である。図3には、機器DB121に格納された内容の一例が、テーブルT1として示されている。テーブルT1は、機器IDと、ユーザIDと、機器種別と、メーカと、シリーズと、モデルとを含む。機器IDは、通信システム1において機器300に割り当てられる。ユーザIDは、通信システム1において各ユーザに割り当てられる。ラベルは、通信システム1において、機器300に対して、ユーザ等によって任意に割り当てられた名称である。
通信システム1では、サーバ100は、機器300と通信することにより機器300の機器情報を取得する。たとえば、機器300からサーバ100に任意の時間ごとに定期的に機器情報を送信する。もしくは機器300の機器情報が更新された場合のみに、機器300が、サーバ100に機器情報を送信するようにしてもよい。
サーバ100は、さらに、各ユーザからの通信システム1への登録を受け付ける。そして、サーバ100は、機器300と各ユーザとを関連付ける。サーバ100は、たとえば、スマートフォン200に、通信システム1に登録されたすべての機器300の機器情報を提供する。これに応じて、ユーザは、スマートフォン200に、機器情報を提供された機器300の中から、当該ユーザが関連付けられることを希望する機器300を選択する情報を送信する。これに応じて、サーバ100は、ユーザが希望する機器300と当該ユーザとを関連付ける情報を、機器DB121に登録する。図3のテーブルT1では、ユーザと機器との関連付けの一例として、ユーザID「1」のユーザに、機器ID「1」〜「4」の各機器が関連付けられた状態が示されている。
テーブルT1では、機器ID「1」に対して、ラベル「子供部屋エアコン」が設定されている。また、機器ID「2」に対して、ラベル「寝室エアコン」が設定されている。また、機器ID「3」に対して、ラベル「リビングエアコン」(「リビングルームに設置されたエアーコンディショナ」を意味する。)が設定されている。機器ID「4」に対して、ラベル「空気清浄機」が設定されている。
さらに、テーブルT1では、機器300の機器情報が示されている。より具体的には、機器ID「1」の機器情報において、機器種別は、「エアーコンディショナ」(図面では、「エアコン」と略記されている。)である。メーカは、「M0」である。機器ID「1」の機器情報は、シリーズとモデルの情報を含まない。
機器ID「2」の機器情報において、機器種別は、「エアーコンディショナ」である。メーカは、「M1」である。シリーズは、「S2」である。モデルは、「C1」である。
機器ID「3」の機器情報において、機器種別は、「エアーコンディショナ」である。メーカは、「M1」である。シリーズは、「S2」である。モデルは、「C2」である。
機器ID「4」の機器情報において、機器種別は、「空気清浄機」である。メーカは、「M1」である。シリーズは、「S2」である。モデルは、「C2」である。
機器のUIは、テンプレートDB110に格納されるテンプレートのうち、機器の機器情報に基づいて選択されたテンプレートが利用される。図3のテーブルT2を参照して、テーブルT1の機器のUIに利用されるテンプレートの組み合わせを説明する。
機器ID「1」のUIは、機器種別「エアーコンディショナ」に対応するテンプレート(temp001)を用いて生成される。
機器ID「2」のUIは、機器種別「エアーコンディショナ」に対応するテンプレート(temp001)と、メーカ「M1」に対応するテンプレート(temp101)と、シリーズ「S2」に対応するテンプレート(temp202)とを用いて生成される。
機器ID「3」のUIは、機器種別「エアーコンディショナ」に対応するテンプレート(temp001)と、メーカ「M1」に対応するテンプレート(temp101)と、シリーズ「S2」に対応するテンプレート(temp202)と、モデル「C2」に対応するテンプレート(temp302)とを用いて生成される。
機器ID「4」のUIは、機器種別「空気清浄機」に対応するテンプレート(temp002)と、メーカ「M1」に対応するテンプレート(temp111)と、シリーズ「S2」に対応するテンプレート(temp212)と、モデル「C2」に対応するテンプレート(temp312)とを用いて生成される。
テンプレートtemp101は、機器種別「エアーコンディショナ」のメーカ「M1」に対応する。テンプレートtemp111は、機器種別「空気清浄機」のメーカ「M1」に対応する。機器情報は、機器種別ごと、かつ、メーカごとに、テンプレートに対応する。つまり、2以上の機器情報は、それらのメーカが共通しても、それらの機器種別が異なれば、異なるテンプレートに対応し得る。
テンプレートtemp202は、機器種別「エアーコンディショナ」とメーカ「M1」に対応し、かつ、シリーズ「S2」に対応する。テンプレートtemp212は、機器種別「空気清浄機」とメーカ「M1」に対応し、かつ、シリーズ「S2」に対応する。機器情報は、機器種別、メーカ、およびシリーズごとに、テンプレートに対応する。つまり、2以上の機器情報は、それらのシリーズが共通しても、それらの機器種別とメーカの少なくとも一方が異なれば、異なるテンプレートに対応し得る。
テンプレートtemp302は、機器種別「エアーコンディショナ」とメーカ「M1」とシリーズ「S2」に対応し、かつ、モデル「C2」に対応する。テンプレートtemp312は、機器種別「空気清浄機」とメーカ「M1」とシリーズ「S2」とに対応し、かつ、モデル「C2」に対応する。機器情報は、機器種別、メーカ、シリーズおよびモデルごとに、テンプレートに対応する。つまり、2以上の機器情報は、それらのモデルが共通しても、それらの機器種別とメーカとシリーズの中の少なくとも一つが異なれば、異なるテンプレートに対応し得る。
実施の形態1では、テンプレートDB110におけるテンプレートの記憶態様は、機器情報の階層構造に対応している。つまり、機器種別テンプレートDB111では、「機器種別」の各々に関連付けられたテンプレートが格納されている。メーカテンプレートDB112では、「機器種別」の各々について、「メーカ」の各々に関連付けられたテンプレートが格納されている。シリーズテンプレートDB113では、「機器種別」の各々と「メーカ」の各々とのそれぞれの組み合わせについて、「シリーズ」の各々に関連付けられたテンプレートが格納されている。モデルテンプレートDB114では、「機器種別」の各々と「メーカ」の各々と「シリーズ」の各々とのそれぞれの組み合わせについて、「モデル」の各々に関連付けられたテンプレートが格納されている。ただし、このようなテンプレートの階層的な記憶態様は、実施の形態1において必須ではない。実施の形態1では、少なくとも機器情報に含まれる2以上の項目が、階層的に配列されていればよい。つまり、機器情報の2以上の階層に位置付けられた項目のそれぞれに関連付けられたテンプレートが組み合させることによって、当該機器情報に対応するUIが生成されればよい。
実施の形態1では、機器ID「1」、機器ID「2」、および機器ID「3」の3つの機器のUIでは、テンプレートtemp001が共通して利用されている。また、機器ID「2」と機器ID「3」の2つの機器のUIでは、さらに、テンプレートtemp101およびテンプレートtemp202が共通して利用されている。実施の形態1では、機器を特定する情報(機器情報)において2以上の項目が階層的に配列されており、各項目に対応するテンプレートを用いて、UIを表示するためのデータが生成される。当該データでは、2以上のテンプレートは、各テンプレートが関連付けられた項目が位置づけられる階層に対応する優先順位で組み合わされる。たとえば、当該データでは、階層の低い項目に対応するテンプレート(または、その一部)は、階層の高い項目に対応するテンプレート(または、その一部)と置換される。また、たとえば、当該データでは、階層の低い項目に対応するテンプレートが階層の高い項目に対応するテンプレートに含まれない記述を有する場合には、当該記述が当該データに追加される。これにより、2以上の機器のUIを表示するためのデータを、共通する部分のテンプレートを共有しながら生成することができる。これにより、予め準備しておく必要のあるテンプレートの数を抑えながら、より多くの機器に対応するUIを表示するためのデータを生成することができる。
実施の形態1のテンプレートDB110では、メーカM0については、「機種種別」より下位の階層(「メーカ」「シリーズ」「モデル」)の機器情報に対応するテンプレートは格納されていない。一方、メーカM1については、「機種種別」より下位の階層(「メーカ」「シリーズ」「モデル」)の機器情報に対応するテンプレートが格納されている。UIの生成により下位の階層のテンプレートが利用されるほど、生成されるUIの機器に対応する度合いが高くなることが期待される。これにより、サーバ100は、機器のメーカごとに、スマートフォン200に提供するUIの、機器に対応する度合いを変化させることができる。
<ハードウェア構成>
(1)サーバ100
図4は、サーバ100のハードウェア構成の典型例を表した図である。図4に示されるように、サーバ100は、主たる構成要素として、プログラムを実行するプロセッサ151と、データを不揮発的に格納するROM(Read Only Memory)152と、プロセッサ151によるプログラムの実行により生成されたデータ、又は入力装置(図示せず)を介して入力されたデータを揮発的に格納するRAM(Random Access Memory)153と、データを不揮発的に格納するHDD(Hard Disk Driver)154と、LED(Light Emitting Diode)155と、スイッチ156と、通信IF(Interface)157と、電源回路158と、モニタ159と、操作キー160とを含む。各構成要素は、相互にデータバスによって接続されている。
HDD154は、テンプレートDB110および情報DB120を格納する。電源回路158は、コンセントを介して受信した商用電源の電圧を降圧し、サーバ100の各部に電源供給を行なう。スイッチ156は、電源回路158に給電を行なうか否かを切替えるための主電源用のスイッチ、およびその他の各種の押しボタンスイッチである。モニタ159は、各種のデータを表示するためのデバイスである。通信IF157は、機器300とのデータの送受信処理、および、スマートフォン200とのデータの送受信処理を行なう。
LED155は、サーバ100の動作状態を表す各種の表示ランプである。たとえば、LED155は、サーバ100の主電源のオンまたはオフ状態、およびHDD154への読み出しまたは書き込み状態等を表す。操作キー160は、サーバ100のユーザがサーバ100へデータを入力するための用いるキー(キーボード)である。
サーバ100における処理は、ハードウェアおよびプロセッサ151により実行されるソフトウェアによって実現される。このようなソフトウェアは、HDD154に予め記憶されている場合がある。また、ソフトウェアは、その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、読取装置によりその記憶媒体から読み取られて、あるいは、通信IF157等を介してダウンロードされた後、HDD154に一時的に格納される。そのソフトウェアは、プロセッサ151によってHDD154から読み出され、RAM153に実行可能なプログラムの形式で格納される。プロセッサ151は、そのプログラムを実行する。
図4に示されるサーバ100を構成する各構成要素は、一般的なものである。したがって、本開示の本質的な部分は、RAM153、HDD154、記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、サーバ100のハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
なお、記録媒体としては、DVD(Digital Versatile Disc)−RAMに限られず、DVD−ROM、CD−ROM、フレキシブルディスク、ハードディスク、磁気テープ、カセットテープ、光ディスク、EEPROM(Electronically Erasable and Programmable Read Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。また、ここでいうプログラムとは、プロセッサにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
(2)スマートフォン200
図5は、スマートフォン200のハードウェア構成の典型例を表した図である。図5に示されるように、スマートフォン200は、主たる構成要素として、プログラムを実行するプロセッサ251と、データを不揮発的に格納するROM252と、プロセッサ251によるプログラムの実行により生成されたデータ、又は入力装置(図示せず)を介して入力されたデータを揮発的に格納するRAM253と、データを不揮発的に格納するメモリ254と、タッチパネル255と、スイッチ256と、通信IF(Interface)257と、電源回路258とを含む。各構成要素は、相互にデータバスによって接続されている。
電源回路258は、スマートフォン200に内蔵される電池等の電源の電圧を降圧し、スマートフォン200の各部に電源供給を行なう回路である。スイッチ256は、電源回路258に給電を行なうか否かを切替えるための主電源用のスイッチ、およびその他の各種の押しボタンスイッチである。通信IF257は、サーバ100とのデータの送受信処理を行なう。メモリ254は、たとえばフラッシュメモリである。
タッチパネル255は、情報を表示し、かつ情報の入力を受け付ける。つまり、タッチパネル255は、情報の表示部(タッチパネル255)の機能と入力部の機能とを有する。なお、スマートフォン200では、両機能は、タッチパネル255として一体の部材として実現されても良いし、「モニタ」と「キーボードおよび/またはタッチパッド」というように、複数の部材として実現されても良い。
スマートフォン200における処理は、ハードウェアおよびプロセッサ251により実行されるソフトウェアによって実現される。このようなソフトウェアは、メモリ254に予め記憶されている場合がある。また、ソフトウェアは、その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、読取装置によりその記憶媒体から読み取られて、あるいは、通信IF257等を介してダウンロードされた後、メモリ254に一旦格納される。そのソフトウェアは、プロセッサ251によってメモリ254から読み出され、RAM253に実行可能なプログラムの形式で格納される。プロセッサ251は、そのプログラムを実行する。
図5に示されるスマートフォン200を構成する各構成要素は、一般的なものである。したがって、実施の形態1の本質的な部分は、RAM253、メモリ254、記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、スマートフォン200のハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
なお、記録媒体としては、DVD−RAMに限られず、DVD−ROM、CD−ROM、フレキシブルディスク、ハードディスク、磁気テープ、カセットテープ、光ディスク、EEPROM、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。また、ここでいうプログラムとは、プロセッサにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
<データ構成の具体例>
次に、サーバ100の各データベースに格納されるデータ構成の具体例を説明する。機器DB121に格納される機器DBのデータ構成の一例は、図3のテーブルT1として示された。以下に、他のDBにおけるデータ構成の具体例を説明する。なお、テーブルT1についての説明および以下の説明は、単なる具体例であり、実施の形態1において実現される技術的思想に対していかなる制限も与えない。
(1) 機器DB121
図6は、ユーザDB122に格納されるデータの構成を模式的に示す図である。ユーザDB122では、各ユーザIDが、メールアドレスおよびパスワードと関連付けられる。後述するように、通信システム1では、ユーザDB122において関連付けられたメールアドレスとパスワードとによって、ユーザが特定される。
(2) 機器種別テンプレートDB111
図7は、機器種別テンプレートDB111に格納されるデータの構成を模式的に示す図である。機器種別テンプレートDB111では、機器種別ごとに、テンプレートが格納されている。図7では、各テンプレートが、「temp001」「temp002」「temp003」等のように、当該テンプレートの名称で示されている。図7の例では、テンプレート「temp001」は、機器種別「エアーコンディショナ」に対応する。テンプレート「temp002」は、機器種別「空気清浄機」に対応する。テンプレート「temp003」は、機器種別「照明器具」に対応する。
(3) メーカテンプレートDB112
図8は、メーカテンプレートDB112に格納されるデータの構成を模式的に示す図である。メーカテンプレートDB112では、機器種別ごとに機器のメーカによる分類がなされ、各機器種別のメーカごとに、テンプレートが格納されている。図8では、各テンプレートが、「temp101」「temp102」等のように、当該テンプレートの名称で示されている。図8の例では、テンプレート「temp101」は、機器種別「エアーコンディショナ」のメーカ「M1」に対応する。テンプレート「temp102」は、機器種別「エアーコンディショナ」のメーカ「M2」に対応する。
(4) シリーズテンプレートDB113
図9は、シリーズテンプレートDB113に格納されるデータの構成を模式的に示す図である。シリーズテンプレートDB113では、機器種別と機器のメーカの組み合わせごとに、機器のシリーズによる分類がなされ、各シリーズに対応して、テンプレートが格納されている。図9では、各テンプレートが、「temp202」「temp203」「temp204」等のように、当該テンプレートの名称で示されている。図9の例では、テンプレート「temp202」は、機器種別「エアーコンディショナ」のメーカ「M1」の、シリーズ「S2」に対応する。テンプレート「temp203」は、機器種別「エアーコンディショナ」のメーカ「M1」の、シリーズ「S3」に対応する。
(5) モデルテンプレートDB114
図10は、モデルテンプレートDB114に格納されるデータの構成を模式的に示す図である。モデルテンプレートDB114では、機器種別と機器のメーカと機器のシリーズの組み合わせごとに、機器のモデルによる分類がなされ、各モデルに対応して、テンプレートが格納されている。図10では、各テンプレートが、「temp302」「temp303」等のように、当該テンプレートの名称で示されている。図10の例では、テンプレート「temp302」は、機器種別「エアーコンディショナ」のメーカ「M1」のシリーズ「S2」の、モデル「C2」に対応する。テンプレート「temp303」は、機器種別「エアーコンディショナ」のメーカ「M1」のシリーズ「S2」の、モデル「C3」に対応する。
<処理の流れ>
次に、図11を参照して、通信システム1における情報処理の流れの一例を説明する。図11は、通信システム1において、スマートフォン200から機器300に制御命令が送信される際の情報処理の流れの一例を示す図である。実施の形態1では、図11に示される処理の流れは、図3のテーブルT1に示されたような機器DBが生成されている状態を前提としている。
まず、スマートフォン200において、たとえば機器を制御するためのアプリケーションが起動される。次に、当該アプリケーションは、通信システム1にログインするために、タッチパネル255に、ユーザ情報の入力を促す情報を表示する。次に、ユーザは、タッチパネル255に、メールアドレスとパスワードを入力する。そして、ステップS10で、スマートフォン200のプロセッサ251は、入力されたメールアドレスとパスワードを、サーバ100へ送信する。
ステップS20で、サーバ100のプロセッサ151は、スマートフォン200から受信したメールアドレスとパスワードを検証する。より具体的には、プロセッサ151は、ユーザDB122において、受信したメールアドレスとパスワードの組み合わせに対応するユーザIDを検索する。そして、制御は、ステップS30へ進められる。
ステップS30で、プロセッサ151は、ステップS20で取得したユーザIDのUIを生成する。
ステップS40で、機器300は、自機の状態を、サーバ100へ送信する。機器300からサーバ100への状態の送信は、たとえば、機器300からサーバ100に任意の時間ごとに定期的に機器情報を送信する。もしくは機器300の機器情報が更新された場合のみに、機器300が、サーバ100に機器情報を送信するようにしてもよい。
ステップS50で、プロセッサ151は、ステップS30で生成したUIに、機器の状態を組み込む。そして、制御は、ステップS60へ進められる。
ステップS60で、プロセッサ151は、ステップS60で機器の状態を組み込まれたUIを、スマートフォン200へ送信する。
ステップS70で、プロセッサ251は、サーバ100から受信したUIをタッチパネル255に表示する。そして、制御は、ステップS80へ進められる。
ステップS80で、プロセッサ251は、UIに対して、ユーザから機器300の制御についての指示を受け付ける。そして、プロセッサ251は、受け付けた指示に従って、サーバ100へ、制御指令を送信する。
ステップS90で、プロセッサ151は、スマートフォン200から受信した制御指令を、機器300へ送信する。
制御指示を送信する方法としては、たとえば2つの例が挙げられる。一つ目の例では、まず機器300が、サーバ100に対して、任意の時間ごとに制御指令の有無を確認する信号を送信する。当該信号を受信すると、サーバ100は、スマートフォン200から受信した制御指令であって機器300に未送信の制御指令の有無を判断する。そして、サーバ100は、そのような制御指令があると判断すれば、機器300に、当該制御指令を送信する。また、サーバ100は、そのような制御指令がないと判断すれば、機器300に、未送信の制御指令が無いことを示す情報を送信する。もう一つの例では、サーバ100と機器300が常時接続されている。これにより、サーバ100と機器300は、双方向に通信が可能な状態にある。この例では、サーバ100は、スマートフォン200から制御指令を受信したことに応じて、機器300に、当該制御指令を送信する。
図12は、図11のステップS30のサブルーチンのフローチャートである。図12を参照して、図11のステップS30の処理内容を、より詳細に説明する。
機器のUIの生成では、ステップS302で、プロセッサ151は、ステップS20で取得したユーザIDに関連付けられた機器のうち、未処理の機器が存在するか否かを判断する。
「関連付けられた」とは、機器DB121において関連付けられていることを意味する。たとえば、図3のテーブルT1において、ユーザID「1」のユーザに関連付けられた機器は、機器ID「1」〜「4」の機器である。また、「未処理」とは、まだステップS304以降の処理の対象となっていないことを意味する。
プロセッサ151は、そのような機器があると判断すると(ステップS302で「YES」)、ステップS304へ制御を進める。一方、ステップS20で取得したユーザIDに関連付けられた機器のすべてがステップS304以降の処理対象となったと判断すると(ステップS302で「NO」)、プロセッサ151は、図11のステップS30へ制御を戻す。
ステップS304では、プロセッサ151は、未処理の機器から1つの機器を選択する。たとえば、プロセッサ151は、未処理の機器のうち、機器IDの値が最も小さい機器を選択する。そして、制御は、ステップS306へ進められる。以降の説明では、ここで選択された機器を、処理対象の機器と称することがある。
ステップS306では、プロセッサ151は、機器DB121から、処理対象の機器の機器種別を取得する。より具体的には、プロセッサ151は、機器DB121から処理対象の機器の機器種別を読み出して、RAM153へロードする。そして、制御は、ステップS308へと進められる。
ステップS308では、プロセッサ151は、ステップS306で取得した機器種別に対応するテンプレートが存在するか否かを判断する。より具体的には、プロセッサ151は、機器種別テンプレートDB111において、ステップS306で取得した「機器種別」に対応するテンプレートを検索する。そして、プロセッサ151は、そのようなテンプレートが存在すると判断すると(ステップS308で「YES」)、当該テンプレートを取得して、ステップS310へ制御を進める。一方、プロセッサ151は、そのようなテンプレートは存在しないと判断すると(ステップS308で「NO」)、ステップS312へ制御を進める。
ステップS310では、プロセッサ151は、ステップS308で取得したテンプレートを、スマートフォン200に送信されるデータであってUIを表示するためのデータ(送信用データ)に組み合わせる。そして、制御は、ステップS312へ進められる。
ステップS312では、プロセッサ151は、機器DB121から、処理対象の機器のメーカを取得する。より具体的には、プロセッサ151は、機器DB121から処理対象の機器のメーカを読み出して、RAM153へロードする。そして、制御は、ステップS314へと進められる。
ステップS314では、プロセッサ151は、ステップS312で取得したメーカに対応するテンプレートが存在するか否かを判断する。より具体的には、プロセッサ151は、メーカテンプレートDB112において、ステップS306で取得した「機器種別」およびステップS312で取得した「メーカ」に対応するテンプレートを検索する。そして、プロセッサ151は、そのようなテンプレートが存在すると判断すると(ステップS314で「YES」)、当該テンプレートを取得して、ステップS316へ制御を進める。一方、プロセッサ151は、そのようなテンプレートは存在しないと判断すると(ステップS314で「NO」)、ステップS318へ制御を進める。
ステップS316では、プロセッサ151は、ステップS314で取得したテンプレートを、送信用データに組み合わせる。そして、制御は、ステップS318へ進められる。
ステップS318では、プロセッサ151は、機器DB121から、処理対象の機器のシリーズを取得する。より具体的には、プロセッサ151は、機器DB121から処理対象の機器のシリーズを読み出して、RAM153へロードする。そして、制御は、ステップS320へと進められる。
ステップS320では、プロセッサ151は、ステップS318で取得したシリーズに対応するテンプレートが存在するか否かを判断する。より具体的には、プロセッサ151は、シリーズテンプレートDB113において、ステップS306で取得した「機器種別」とステップS312で取得した「メーカ」とステップS318で取得した「シリーズ」とに対応するテンプレートを検索する。そして、プロセッサ151は、そのようなテンプレートが存在すると判断すると(ステップS320で「YES」)、当該テンプレートを取得して、ステップS322へ制御を進める。一方、プロセッサ151は、そのようなテンプレートは存在しないと判断すると(ステップS320で「NO」)、ステップS324へ制御を進める。
ステップS322では、プロセッサ151は、ステップS320で取得したテンプレートを、送信用データに組み合わせる。そして、制御は、ステップS324へ進められる。
ステップS324では、プロセッサ151は、機器DB121から、処理対象の機器のモデルを取得する。より具体的には、プロセッサ151は、機器DB121から処理対象の機器のモデルを読み出して、RAM153へロードする。そして、制御は、ステップS326へと進められる。
ステップS326では、プロセッサ151は、ステップS324で取得したモデルに対応するテンプレートが存在するか否かを判断する。より具体的には、プロセッサ151は、モデルテンプレートDB114において、ステップS306で取得した「機器種別」とステップS312で取得した「メーカ」とステップS318で取得した「シリーズ」とステップS325で取得した「モデル」とに対応するテンプレートを検索する。そして、プロセッサ151は、そのようなテンプレートが存在すると判断すると(ステップS326で「YES」)、当該テンプレートを取得して、ステップS328へ制御を進める。一方、プロセッサ151は、そのようなテンプレートは存在しないと判断すると(ステップS326で「NO」)、ステップS302へ制御を戻す。
ステップS328では、プロセッサ151は、ステップS326で取得したテンプレートを、送信用データに組み合わせる。そして、制御は、ステップS302へ戻される。
以上、図12を参照して説明された処理によれば、機器情報に含まれる項目のそれぞれに関連付けられたテンプレートが取得される。テンプレートそれぞれは、機器情報の項目のそれぞれに関連付けられて、テンプレートDB110に格納されている。テンプレートの取得は、階層の高い項目に関連付けられたものから順に、実施される。取得されたテンプレートは、それまでに取得されたテンプレートと組み合わされることにより、機器のUIを表示させるためのデータに利用される。
新たに取得されたテンプレートを、それまで取得されたテンプレートに「組み合わせる」ことは、新たに取得されたテンプレートをそれまで取得されたテンプレートに追加すること(後述する図20等を参照)、および、新たに取得されたテンプレートをそれまで取得されたテンプレートの一部と置換すること(後述する図18等を参照)を含む。なお、本明細書において、テンプレートを「組み合わせる」ことは、あるテンプレートの記述に他のテンプレートの記述の全部または一部を追加することを含む。また、テンプレートを「組み合わせる」ことは、あるテンプレートから、他のテンプレートの記述に従った態様で記述を削除することも含む。
<送信用データおよびUIの具体例>
次に、送信用データの具体例とUIの具体例を説明する。この具体例では、UIは、機器のそれぞれに対応する表示と、各機器に対応する表示に移行するための表示とを含む。本明細書では、後者の表示を、前者の表示と区別するために、「メインウィンドウ」と呼ぶ。
(1) メインウィンドウ
図13は、タッチパネル255に表示されるメインウィンドウの一例である。図13のメインウィンドウ500は、図3のテーブルT1上のユーザID「1」のユーザが操作するスマートフォン200のタッチパネル255における表示の一例である。
メインウィンドウ500は、ボタン600,700,800,900を含む。ボタン600は、機器ID「1」に関するUI(図14参照)を表示させるためのボタンである。ボタン700は、機器ID「2」に関するUI(図17参照)を表示させるためのボタンである。ボタン800は、機器ID「3」に関するUI(図19参照)を表示させるためのボタンである。ボタン900は、機器ID「4」に関するUI(図21参照)を表示させるためのボタンである。
(2) 機器ID「1」のUI
図14は、機器ID「1」のUIの具体例を示す図である。機器ID「1」のUIは、図14に示された、3つの表示600A,600B,600Cを含む。
表示600A,600B,600Cは、フィールド610,620,630,640を含む。フィールド610は、機器のラベル(図3のテーブルT1参照)と機器情報を表示するための領域である。フィールド620は、表示モードを表示するための領域である。フィールド630は、機器の状態を表示するための領域である。フィールド640は、制御指令についての情報を表示するための領域である。
フィールド620は、表示600A,600B,600Cに対応する3つの表示モード(「電源」「モード」「温度」)の名称を表示する。表示モード「電源」は、機器の電源のON/OFF状態を表示するためのモードである。表示モード「モード」は、機器の動作モードを表示するためのモードである。表示モード「温度」は、機器の動作に対する設定温度を表示するためのモードである。表示600Aは、表示モード「電源」に対応する。表示600Bは、表示モード「モード」に対応する。表示600Cは、表示モード「温度」に対応する。
表示600A,600B,600Cにおいて、フィールド620は、表示モード「電源」に対応するボタン621と、表示モード「モード」に対応するボタン622と、表示モード「温度」に対応するボタン623とを含む。タッチパネル255では、ボタン621,622,623のいずれかが操作されると、表示600A,600B,600Cの中から操作されたボタンに対応するものが表示される。フィールド620では、ボタン621,622,623のうち、タッチパネル255における表示対象のボタンは、他のボタンと異なる態様(たとえば、異なる色)で表示される。つまり、ボタン621,622,623のうち、表示600Aではボタン621が、表示600Bではボタン622が、表示600Cではボタン623が、他の2つのボタンとは異なる態様で表示されている。
フィールド630は、上記したように機器の状態を表示する。より具体的には、表示モード「電源」に対応する表示600Aでは、フィールド630には、機器の電源のON/OFFの状態が示される。さらに具体的には、表示600Aのフィールド630では、機器の電源状態が「ON」であることが示されている。表示モード「モード」に対応する表示600Bでは、フィールド630には、機器の運転状態(冷房運転か暖房運転か)が示される。より具体的には、表示600Bのフィールド630では、機器が冷房運転していることが示されている。表示モード「温度」に対応する表示600Cでは、フィールド630には、機器に対する設定温度が表示される。より具体的には、表示600Cのフィールド630には、機器に対する設定温度が「26℃」であることが示されている。
フィールド640は、上記したように機器の制御指令についての情報が表示される。より具体的には、表示600Aのフィールド640には、機器の電源をONするためのボタン641と、機器の電源をOFFするためのボタン642とが示されている。なお、フィールド640では、現在の機器の状態に対応するボタンは、残りのボタンとは異なる態様で表示される。より具体的には、表示600Aでは、機器のON状態に対応するボタン641は、OFF状態に対応するボタン642と異なる色で、表示されている。
表示600Bのフィールド640には、機器の運転状態を変更するためのボタン641とボタン642とが表示される。表示600Bでは、ボタン641は、冷房運転に対応するボタンである。ボタン642は、暖房運転に対応するボタンである。現在の運転状態に対応するボタン641は、ボタン642とは異なる態様(異なる色)で表示されている。
表示600Cのフィールド640には、機器に対する設定温度を変更するためのボタン641とボタン642が表示される。表示600Cでは、ボタン641は設定温度を上昇させるためのボタンである。ボタン642は、設定温度を低下させるためのボタンである。表示600Cでは、ボタン641とボタン642のいずれも、現在の機器の状態を示していない。したがって、いずれのボタンも、同様に表示されている。
(3) 機器ID「1」のUIを表示させるためのデータ
図14のUIを表示させるためのデータ(送信用データ)の一例について、説明する。図15は、機器ID「1」のUIのための送信用データの一例を示す図である。図15に示されたデータの少なくとも一部は、テンプレートDB110に格納されたテンプレートを含む。図16は、テンプレートDB110に格納されているテンプレートの一例を示す図である。
図16には、機器種別テンプレートDB111に格納されるテンプレートtemp001が示されている。テンプレートtemp001は、ECHONET Lite(登録商標)のデータフォーマットに従ったデータである。「statusName」というタグを先頭とする3つの部分を含む。1つ目の部分は、「"statusName":"電源"」で始まる3行である。2つ目の部分は、「"statusName":"モード"」で始まる3行である。3つ目の部分は、「"statusName":"温度"」で始まる3行である。
通信システム1において、UIを表示させるためのデータ(送信用データ)は、機器の機器情報に対応するテンプレートと、機器の状態を示す情報とを含む。図14の画面を表示させるための送信用データは、図3のテーブルT2から理解されるようにテンプレートtemp001を利用して生成され、さらに、機器310の状態を示すデータを利用して生成される。これに対応して、図15に示されるデータDA10は、テンプレートtemp001に加えて、機器310の状態を示すデータ(図15中の部分P15)を含む。また、データDA10は、機器310の機器IDとラベルに対応するデータ(図15中の部分P10)をさらに含む。
(4) 機器ID「2」のUI
図17は、機器ID「2」のUIの具体例を示す図である。機器ID「2」のUIは、図17に示された、3つの表示700A,700B,700Cを含む。
表示700A,700B,700Cは、図14の表示600A,600B,600Cと同様に、フィールド610,620,630,640を含む。
図14の表示600A,600B,600Cのフィールド610が、機器ID「1」のラベル(子供部屋エアコン)および機器情報の機器種別以外の部分(M0)を表示していたのに対し、図17の表示700A,700B,700Cのフィールド610は、機器ID「2」のラベル(寝室エアコン)および機器情報の機器種別以外の部分(M1,S2,C1)を表示する。
表示700A,700B,700Cのフィールド620は、表示600A,600B,600Cのフィールド620と同様に、3つの表示モードに対応するボタン621,622,623を含む。表示700Aは、ボタン621に対応する。表示700Bは、ボタン622に対応する。表示700Cは、ボタン623に対応する。
表示700A,700B,700のフィールド630は、表示600A,600B,600のフィールド630と同様に、各表示モードに対応する機器の状態を表示する。
表示700A,700B,700のフィールド640は、表示600A,600B,600のフィールド640と同様に、各表示モードに対応する機器制御指令についての情報を表示する。ただし、表示600Bのフィールド640がボタン641とボタン642を含んでいたのに対し、表示700Bのフィールド640は、ボタン643をさらに含む。このことは、UIを表示するためのデータの差異に基づく。UIを表示するためのデータの差異に基づく表示内容の差異については、図18等を参照して、後述する。
(5)機器ID「2」のUIを表示させるためのデータ
図17のUIを表示させるための送信用データの一例について、説明する。図18は、機器ID「2」のUIのための送信用データの一例を示す図である。図18に示されるデータDA20は、機器ID「2」(機器320)の、機器IDとラベルに対応するデータ(部分P20)と、機器の状態に対応するデータ(部分P25)とを含む。データDA20の構成を、機器ID「2」の送信用データが生成される際に用いられるテンプレートの種類の観点から、説明する。
図3のテーブルT2から理解されるように、機器ID「2」のUIを表示させるためのデータは、テンプレートtemp001とテンプレートtemp101とテンプレートtemp202とが利用されて生成される。図16には、メーカテンプレートDB112に格納されるテンプレートtemp101、および、シリーズテンプレートDB113に格納されるテンプレートtemp202の具体例が示されている。
図16から理解されるように、テンプレートtemp101は、「"statusName":"モード"」で始まる3行の記述を含む。当該記述は、テンプレートtemp001内の「"statusName":"モード"」で始まる3行の記述と比較して、部分P2で示される「"name":"自動"」という記載をさらに含む。このことに対応して、図18に示されるデータDA20では、部分P22として示されるように、テンプレートtemp001に対して部分P02に対応するデータが追加されている。このことに応じて、図17の表示700Bでは、「"statusName":"モード"」で始まる3行の記述に対応するフィールド640は、表示600Bのフィールド640が含むボタン641,642に加えて、ボタン463をさらに含む。つまり、ボタン463は、部分P22に対応して表示される。
プロセッサ151は、ステップS316(図12参照)において、テンプレートtemp101中の「"statusName":"モード"」で始まる3行の記述と、テンプレートtemp001中の「"statusName":"モード"」で始まる3行の記述とを比較し、これらの差分(部分P02)を抽出する。そして、当該差分を、すでに生成されている送信用データに追加することにより、データDA20を生成する。
データDA20が部分P22を含むことは、スマートフォン200から送信される制御指令の内容にも影響を与える。具体的には、機器ID「1」のUIでは、動作モードとして、ボタン641に対応する「冷房」、または、ボタン642に対応する「暖房」の制御指令を送信できる。一方、機器ID「2」のUIでは、動作モードとして、ボタン641に対応する「冷房」、ボタン642に対応する「暖房」、または、ボタン643に対応する「自動」の制御指令を送信できる。
また、図16から理解されるように、テンプレートtemp202では、テンプレートtemp001と比較して、「"statusName":"温度"」で始まる3行の記述の一部が異なる。より具体的には、制御指令が対応する温度の範囲についての記述が、テンプレートtemp001では部分P01で示されるように「"min":"20","max":"28"」であるのに対し、テンプレートtemp202では部分P03で示されるように「"min":"18","max":"30"」である。前者は、温度範囲が20℃から28℃であることを示すのに対し、後者は、温度範囲が18℃から30℃であることを示す。図18のデータDA20では、テンプレートtemp001における温度範囲に対応する部分が、部分P23で示されるように、テンプレートtemp202の温度範囲に対応する部分に置換されている。
このことに応じて、図14の表示600C(機器ID「1」のUI)では20℃から28℃の間で温度を指定できるのに対し、図17の表示600C(機器ID「2」のUI)では18℃から30℃の間で温度を指定できる。
(6)機器ID「3」のUI
図19は、機器ID「3」のUIの具体例を示す図である。機器ID「3」のUIは、図19に示される、表示800A,800B,800C,800Dを含む。
表示800A,800B,800C,800Dは、図14の表示600A,600B,600Cと同様に、フィールド610,620,630,640を含む。
図14の表示600A,600B,600Cのフィールド610では、機器ID「1」のラベル(子供部屋エアコン)および機器情報の機器種別以外の部分(M0)が表示されていた。これに対応して、図19の表示800A,800B,800C,800Dのフィールド610は、機器ID「3」のラベル(リビングエアコン)および機器情報の機器種別以外の部分(M1,S2,C2)を表示する。
図14の表示600A,600B,600Cのフィールド620が3つのボタン621,622,623を含むのに対し、表示800A,800B,800C,800Dのフィールド620は、4つのボタン621,622,623,624を含む。ボタン621は、表示800Dに対応するボタンであり、表示モード「除菌」に対応するボタンである。つまり、機器ID「3」のUIは、機器ID「1」のUIに対して、表示モードが1つ多い。このような表示の差異は、図20等を参照して後述される。
(7)機器ID「3」のUIを表示させるためのデータ
図20は、機器ID「3」のUIの送信用データの一例を示す図である。図20に示されるデータDA30は、機器ID「3」(機器330)の、機器IDとラベルに対応するデータ(部分P30)と、機器の状態に対応するデータ(部分P35)とを含む。データDA30の構成を、機器ID「3」の送信用データが生成される際に用いられるテンプレートの種類の観点から、説明する。
図3のテーブルT2から理解されるように、機器ID「3」のUIを表示させるためのデータは、機器ID「2」のUIを表示させるためのデータと同様に、テンプレートtemp001とテンプレートtemp101とテンプレートtemp202とが利用されて生成される。これにより、データDA30は、図18のデータDA20の部分P22,P23に相当する、部分P32,P33を含む。
機器ID「3」のUIを表示させるためのデータは、さらに、テンプレートtemp302を利用されて生成される。図16には、テンプレートtemp302の具体例が示されている。
テンプレートtemp302は、「"statusName":"除菌"」で始まる3行の記述を含む。当該記述は、テンプレートtemp001における、「statusName」というタグを先頭とする3つの部分と並列する記述である。このことから、プロセッサ151は、ステップS328(図12参照)において、テンプレートtemp302中の「"statusName":"除菌"」で始まる3行の記述を、すでに生成されている送信用データに追加することにより、データDA30を生成する。
これにより、データDA30に基づいて表示されるUIは、表示モード「除菌」に対応する表示(図19の表示800D)を含む。表示800Dは、表示モード「除菌」のUIであり、除菌動作のON/OFFを切り替えるためのUIである。これにより、スマートフォン200から機器330に対して除菌モードについての制御指令を送信できる。
(8)機器ID「4」のUI
図21は、機器ID「4」のUIの具体例を示す図である。機器ID「4」のUIは、図21に示される、表示900A,900B,900Cを含む。
表示900A,900B,900Cは、図14の表示600A,600B,600Cと同様に、フィールド610,620,630を含む。
図14の表示600A,600B,600Cのフィールド610では、機器ID「1」のラベル(子供部屋エアコン)および機器情報の機器種別以外の部分(M0)が表示されていた。これに対応して、図21の表示900A,900B,900Cのフィールド610は、機器ID「4」のラベル(空気清浄機)および機器情報の機器種別以外の部分(M1,S2,C2)を表示する。
表示900A,900Bは、図14の表示600A,600Bと同様に、フィールド640を含む。しかしながら、図19の表示600Cがフィールド640を含むのに対し、表示900Cは、フィールド640を含まない。表示900Cは、表示モード「湿度」に対応する表示である。表示900Cのフィールド630には、機器340における湿度の検出値が表示されている。そして、表示900Cがフィールド640を含まないことは、スマートフォン200から機器340に対して、湿度の設定についての制御指令を送信できないことを意味する。
<スマートフォン200から送信される制御指令>
図22は、スマートフォン200からサーバ100へ送信されるデータ構成の一例を示す図である。図22のデータDA50は、機器を制御するための汎用の通信プロトコルに従ったデータであり、機器を特定する部分P51と、制御指令を構成する部分P52とを含む。
データDA50を受信したサーバ100は、機器300の中の部分P51で特定される機器に対して、部分P52を送信する。なお、部分P52のデータは、サーバ100と機器との間での通信仕様に基づいて加工されて、サーバ100から機器に送信され得る。たとえば、サーバ100が機器とマークアップ言語で通信する場合には、部分P51は、当該マークアップ言語で宛先等を特定する記述が追加されて、サーバ100から機器へと送信される。
[実施の形態2]
実施の形態1のスマートフォン200では、機器300のそれぞれについて、表示モードごとのUIが表示される。たとえば、機器ID「1」について、図14に示されたように、表示モード「電源」に対応する表示600Aと、表示モード「モード」に対応する表示600Bと、表示モード「温度」に対応する表示600Cとが表示される。実施の形態1では、これらの複数のUIのいずれかが、互いに切り替えられるようにタッチパネル255に表示された。
実施の形態2では、表示600A,600B,600Cの中の2以上の表示が同時に表示され得る。これにより、ユーザは、制御指令を送信し得る項目について、より多くの選択肢を同時に提供される。
[実施の形態3]
実施の形態1では、表示モードごとに1つの表示(表示600A、表示600B、または、表示600C)が定義された。実施の形態3では、各表示モードにおいて、2以上の設定内容のそれぞれに対応する表示が定義される。図23は、実施の形態3における、表示モード「電源」のためのUIの一例を示す図である。表示モード「電源」は、2つの設定内容(「電源:ON」と「電源:OFF」)に対応する。図23の表示601Aは、設定内容「電源:ON」に対して定義される。図23の表示601Bは、設定内容「電源:OFF」に対して定義される。表示601Aと表示601Bについて、より具体的に説明する。
表示601Aは、図14の表示600Aにおいてボタン641が操作された状態に対応する。表示601Aのフィールド630には、ボタン641に対応する状態「ON」が表示されている。表示601Bは、図14の表示600Aにおいてボタン642が操作された状態に対応する。表示601Bのフィールド630には、ボタン642に対応する状態「OFF」が表示されている。
実施の形態1の表示600Aでは、ボタン641とボタン642との間で設定内容が切り替えられると、ボタン641とボタン642の中で表示態様を変更されるボタンが切り替えられた。これに対し、実施の形態3では、このような切り替えがUIを表示601Aと602Aとの間で切り替えられる。
実施の形態3では、図14の表示600Aが、図23に示された表示601Aと表示602Aとによって置換され得る。実施の形態1では、フィールド640に2つの設定内容のそれぞれに対応するボタン641,642を表示させることが必要とされたが、実施の形態3では、フィールド640には表示601Aと表示602Aとの間で表示を切り替えるための単一のボタン643のみが表示されればよい。
実施の形態3では、表示モード「電源」だけでなく他の表示モードについても、設定内容ごとにUIを表示することができる。図24は、実施の形態3に従った、他の表示モードのUIの例を示す図である。実施の形態3の表示モード「電源」のためのUIは、図24の表示601Bと表示602Bとを含む。表示601Bは、図14の表示600Bにおいてボタン641が操作された状態に対応する。表示601Bのフィールド630には、ボタン641に対応する状態「冷房」が表示されている。表示602Bは、図14の表示600Bにおいてボタン642が操作された状態に対応する。表示602Bのフィールド630には、ボタン642に対応する状態「暖房」が表示されている。つまり、図14の表示600Bは、図24の表示601Bと表示602Bとによって置換され得る。
[実施の形態4]
実施の形態4では、上位の階層のテンプレートと下位の階層のテンプレートを組み合わせることが、前者に後者の記述を追加することだけでなく、後者において指定される情報に従って前者から記述が削除されることを含む。実施の形態4は、たとえば、同じメーカの同じシリーズの機器において、後続のモデルで一部の機能が削除された場合に対応する。また、実施の形態4は、ある機器種別において、新たに発売された特定のメーカの機器が、すでに多くのメーカの機器が対応している機能に対応していない場合でも、当該特定のメーカの機器のために新たにテンプレートを準備することなく、当該機器に対応するUIをスマートフォン200に表示させることができる。以下、実施の形態4において生成される送信用データについて、説明する。
図25は、実施の形態4のテンプレートDB110に格納されているテンプレートの変形例を示す図である。実施の形態4では、パラメータ「exclude」が、上位のテンプレートの記述の一部を削除するためのパラメータとして利用される。
図25では、図16と同様に、機器種別テンプレートDB111に格納されるテンプレートの一例として「temp001」が示され、メーカテンプレートDB112に格納されるテンプレートの一例として「temp101」が示され、シリーズテンプレートDB113に格納されるテンプレートの一例として「temp202」が示され、そして、モデルテンプレートDB114に格納されるテンプレートの一例として「temp302」が示されている。
テンプレートDB110では、機器種別テンプレートDB111は、機器情報の最上位の項目に関連付けられたテンプレートを格納する。また、テンプレートDB110では、格納されるテンプレートが関連付けられる機器情報の項目が高い順に、メーカテンプレートDB112、シリーズテンプレートDB113、モデルテンプレートDB114と並ぶ。そして、実施の形態4では、メーカテンプレートDB112、シリーズテンプレートDB113、モデルテンプレートDB114のそれぞれに格納されているテンプレートは、パラメータ「exclude」についての記述を含む。
図25において、パラメータ「exclude」についての記述は、「temp101」の中では、部分P91として示されている。「temp202」の中では、部分P92として示されている。部分P91および部分P92には、「"exclude":"false"」と記述されている。「temp302」の中では、部分P93として示されている。部分P93には、「"exclude":"true"」と記述されている。
パラメータ「exclude」は、上位のテンプレートの記述を削除するためのパラメータである。あるテンプレートにおいてパラメータ「exclude」の値が「true」であるとき(「"exclude":"true"」)、当該テンプレートにおいて指定される情報が、上位のテンプレートから削除される。一方、あるテンプレートにおいてパラメータ「exclude」の値が「false」であるとき(「"exclude":"false"」)、当該テンプレートにおいて指定される情報が、上位のテンプレートに追加される。「追加」は、記述を追加することに加え、数値の範囲等の上書きを含む。
パラメータ「exclude」は、上位のテンプレートとの関係を示すパラメータである。機器種別テンプレートDB111内のテンプレートは、最上位の項目に関連付けられているため、パラメータ「exclude」についての記述を含まない。
図25に示されたテンプレートを利用して生成された送信用データの具体例を説明する。図26は、実施の形態1において説明された機器ID「3」のUIのための送信用データが図25に示されたテンプレートを利用して作成された場合の、当該送信用データの具体例を示す図である。
機器ID「3」のUIのための送信用データは、機器種別「エアコンディショナ」に対応するテンプレート(temp001)と、メーカ「M1」に対応するテンプレート(temp101)と、シリーズ「S2」に対応するテンプレート(temp202)と、モデル「C2」に対応するテンプレート(temp302)とを用いて生成される。
図26に示されるデータDA60は、機器ID「32」(機器330)の、機器IDとラベルに対応するデータ(部分P101)と、機器の状態に対応するデータ(部分P103)とを含む。
図25に示された「temp101」は、表示モードとして、「自動」「冷房」および「暖房」を含む記述である。一方、「temp101」は、表示モードとして、「冷房」と「暖房」を含む記述である。図25において部分P91として示されるように、「temp101」のパラメータ「exclude」の値は「false」である。このため、データDA60には、「temp001」における表示モードについての記述に対して、「temp101」と「temp001」の差分が追加される。この差分は、データDA60において、部分P102として示されている。部分P102は、表示モード「自動」に対応する記述である。
図25に示された「temp202」は、表示モードとして、「除菌」を含む記述である。一方、「temp202」よりも上位の階層のテンプレートを組み合わされた記述は、「temp101」と「temp101」のいずれかに含まれる表示モード、つまり、「自動」「冷房」および「暖房」を含む。図25において部分P92として示されるように、「temp202」のパラメータ「exclude」の値は「false」である。このため、「temp001」と「temp101」が組み合わされたところに、さらに「temp202」が組み合わされた送信用データでは、表示モードとして、さらに「除菌」が追加される。
図25に示された「temp302」は、表示モード「除菌」についての記述である。なお、図25において部分P93として示されるように、「temp302」のパラメータ「exclude」の値は「true」である。このため、「temp001」と「temp101」と「temp202」とが組み合わされたところに、さらに「temp302」が組み合わされた送信用データでは、表示モードとして、「除菌」が削除される。このため、図26に示されたデータDA60は、表示モードとして、部分P102として示されているように「自動」を含み、さらに、部分P104として示されているように「冷房」と「暖房」とを含むが、「除菌」は含まない。
[実施の形態5]
実施の形態5のサーバ100は、2以上の機器300を一括して制御するためのUIをスマートフォン200へ提供できる。より具体的には、サーバ100は、2以上の機器300のそれぞれの送信用データを生成する。そして、それらの共通する部分を用いて当該2以上の機器300を一括して制御するための送信用データを生成し、スマートフォン200へ送信する。以下に、実施の形態5における処理の流れを、より具体的に説明する。
サーバ100は、実施の形態1において説明されたように、スマートフォン200を操作するユーザに関連付けられた複数の機器300のそれぞれの送信用データを生成する。そして、サーバ100は、当該複数の機器300の送信用データを、スマートフォン200へ送信する。ここで使用される「複数」という文言は、上記した「2以上」と等しいまたはこれを超える数を意味する。
スマートフォン200では、特定のメニューが選択されると、2以上の機器300を指定するためのUIが表示される。図27および図28は、2以上の機器300を指定するためのUIの一例を示す図である。
図27の表示1500は、ボタン1600,1700,1800とボタン1000を含む。実施の形態5において、ボタン1600は、機器310に対応する。ボタン1700は、機器320に対応する。ボタン1800は、機器340に対応する。ボタン1600は、欄1601を含む。ボタン1700は、欄1701を含む。ボタン1800は、欄1801を含む。ボタン1600と欄1601は、機器310に対応する。ボタン1700と欄1701は、機器320に対応する。ボタン1800と欄1801は、機器340に対応する。欄1601,1701,1801は、一括した操作指示の送信の対象とされる機器を指定するために操作される。ボタン1000は、欄1601,1701,1801における指定を確定させるために操作される。
図28の表示1500は、欄1601と欄1701とが操作された状態が示されている。これにより、機器310と機器320とが指定される。
図29は、スマートフォン200において、2以上の機器300を一括して制御するために表示されるUIの一例を示す図である。図29の表示603A,603B,603Cは、機器310と機器320とを一括して制御するためのUIである。
表示603Aは、機器310に対応する表示600A(図14参照)と機器320に対応する表示700A(図17参照)との間の共通部分を表示する。表示600Aと表示700Aとでは、フィールド620,630,640の表示内容は共通する。したがって、表示603Aのフィールド620,630,640の表示内容は、表示600Aおよび表示700Aの各フィールドの表示内容と共通する。表示603Aのフィールド610には、文字列「一括表示」と、表示603Aによる表示の対象となる機器のラベル(図3参照)とが表示される。
表示603Bは、機器310に対応する表示600B(図14参照)と機器320に対応する表示700B(図17参照)との間の共通部分を表示する。表示600Bのフィールド640は、表示700Bのフィールド640に含まれるボタン643を含まない。したがって、表示603Aのフィールド640は、表示600Bのフィールド640と表示700Bのフィールド640の双方に含まれるボタン641,642のみを含み、ボタン643を含まない。
表示603Cは、機器310に対応する表示600C(図14参照)と機器320に対応する表示700C(図17参照)との間の共通部分を表示する。表示600Cと表示700Cとでは、フィールド620,630,640の表示内容は共通する。したがって、表示603Cのフィールド620,630,640の表示内容は、表示600Cおよび表示700Cの各フィールドの表示内容と同じである。
図30は、2以上の機器300を指定するためのUIの他の例を示す図である。図28の表示1500は、欄1601と欄1801とが操作された状態が示されている。これにより、機器310と機器340とが指定される。
図31は、スマートフォン200において、2以上の機器300を一括して制御するために表示されるUIの他の例を示す図である。図31の表示604は、機器310と機器340とを一括して制御するためのUIである。
機器310のUIは、図14に示された表示600A,600B,600Cである。機器340のUIは、図21に示された表示900A,900B,900Cである。機器310と機器340とでは、機器種別が異なる。そして、機器310に対する制御指令と機器340に対する制御指令との間では、電源のON/OFFを指示する指令のみが共通する。このことから、表示604は、機器310および機器340についての、電源のON/OFFの状態のみに関する情報を表示する。
より具体的には、表示604は、フィールド610,620,630,640を含む。表示610のフィールド610には、文字列「一括制御」と、機器310および機器340のラベル(図3参照)とが表示される。表示610のフィールド620には、表示モード「電源」についてのボタン621のみが表示される。表示610のフィールド630には、機器310および機器340の電源のON/OFF状態が表示される。表示610のフィールド640には、機器310および機器340の電源状態を制御するためのボタン641,642が表示される。
[実施の形態6]
実施の形態1では、図2等に示されたように、テンプレートDB110がサーバ100に格納されていた。実施の形態6では、テンプレートDB110は、サーバ100と離間した記憶装置に格納される。図32は、実施の形態6の通信システム1の機能的な概略構成を表した図である。
図32に示されるように、実施の形態6では、サーバ100は、記憶装置2001,2002を含む複数の記憶装置と、通信可能である。記憶装置2001は、たとえば、機器300のあるメーカ(図32では「メーカ(1)」と記載される)が所有するサーバ装置である。記憶装置2002は、たとえば、機器300の別のメーカ(図32では「メーカ(2)」と記載される)が所有するサーバ装置である。
実施の形態6では、サーバ100は、機器種別に共通するテンプレートのみが格納される。つまり、サーバ100には、機器種別テンプレートDB111(図3参照)のみが格納される。そして、記憶装置2001,2002等の、サーバ100と離間した記憶装置には、各メーカの機器についての、メーカテンプレートDB112,シリーズテンプレートDB113,モデルテンプレートDB114が格納される。
このようなテンプレートの格納形態に対応して、プロセッサ151は、図12に示された処理におけるデータの検索対象を適宜変更する。より具体的には、ステップS308では、プロセッサ151は、サーバ100内の機器種別テンプレートDB111を対象としてテンプレートを検索する。そして、ステップS314,ステップS320,ステップS326では、プロセッサ151は、記憶装置2001,2002等の記憶装置の中から、ステップS312で取得したメーカに対応する記憶装置におけるメーカテンプレートDB112,シリーズテンプレートDB113,モデルテンプレートDB114を対象としてテンプレートを検索する。
各メーカの機器に対応するテンプレートが、各メーカの所有する記憶装置に格納されるように構成されることにより、機器の最新のテンプレートがより早期に各記憶装置に格納され得る。これにより、実施の形態6の通信システム1では、スマートフォン200に、より確実に、機器についての最新のUIを提供できる。
[実施の形態の効果]
ある局面に従うと、サーバ100が提供される。サーバ100は、情報処理装置(スマートフォン200)と通信するための通信装置(通信IF157)と、プロセッサ151と、操作対象の機器300を特定するための情報を記憶するように構成された記憶手段(RAM153)とを備える。機器300を特定するための情報は、2以上の項目を含み、2以上の項目は、階層的に配列されている。2以上の項目の各々は、機器300を操作するためのユーザインタフェースのテンプレートに関連付けられている。プロセッサ151は、機器300を特定するための情報に含まれる2以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を生成し、かつ、通信装置(通信IF157)を用いて、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を情報処理装置(スマートフォン200)に送信するように構成されている。
これにより、機器のユーザインタフェースは、2以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
好ましくは、プロセッサは、2以上のテンプレートを、各テンプレートが関連付けられた項目の階層の配列に従って組み合わせるように構成されている(実施の形態4)。
これにより、上位のテンプレートに対して、下位のテンプレートに従った追加や削除などの修正することにより、ユーザインタフェースを表示するためのデータを生成できる。
好ましくは、データ(送信用データ)を生成することは、2以上の項目の各々にそれぞれ関連付けられたテンプレートの中の、上位の階層に対応するテンプレートの少なくとも一部を、下位の階層に対応するテンプレートの一部に対応する部分(部分P01)と置換することを含む。
これにより、ある機器のUIを、他の機器と共通するテンプレートに当該機器に対応する部分を組み合わせて、生成することができる。
好ましくは、データ(送信用データ)を生成することは、2以上の項目の各々にそれぞれ関連付けられたテンプレートの中の、上位の階層に対応するテンプレートに、下位の階層のテンプレート(テンプレートtemp302)を追加することを含む。
これにより、ある機器のUIを、他の機器と共通するテンプレートに当該機器に対応する部分を組み合わせて、生成することができる。
好ましくは、プロセッサ151は、2以上の機器300のユーザインタフェースのデータ(送信用データ)から共通する部分を抽出することにより、2以上の機器300を一括して操作するためのユーザインタフェース(図29の表示603A,603B,603C、図31の表示604)を表示するためのデータ(送信用データ)をさらに生成するように構成されている。
これにより、機器を特定する情報に対応するテンプレートを利用して、ユーザに対し、より利便性の高いユーザインタフェースを提供することができる。
好ましくは、サーバ100は、テンプレートを格納するための記憶装置HDD154をさらに備える。
これにより、外部の記憶装置へのアクセスの不通等により、サーバ100のプロセッサ151がテンプレートを取得できない事態を回避できる。これにより、サーバ100は、より確実に、情報処理装置にユーザインタフェースを提供できる。
好ましくは、2以上の項目は、機器300の機能に基づく種類を特定するための第1の項目(機器種別)と、機器300の製造元を特定するための第2の項目(メーカ)とを含む。第2の項目は、第1の項目よりも下位の階層に位置付けられている。
これにより、サーバは、送信用データの中の、機器の種類ごとに共通する部分を共通するテンプレートを用いて生成し、メーカごとに異なる部分をメーカごとに準備されたテンプレートを用いて生成できる。
好ましくは、通信装置(通信IF157)は、機器300と通信可能である。プロセッサ151は、通信装置(通信IF157)を介して取得した機器300の状態を当該機器300のユーザインタフェースを表示するためのデータ(送信用データ)に組み込むように構成されている。
これにより、サーバ100は、情報処理装置に、より多くの有効な情報を提供できる。
他の局面に従うと、機器300を操作するためのユーザインタフェースを表示するためのデータ(送信用データ)を情報処理装置(スマートフォン200)に提供するためのサーバ100のプロセッサ151によって実行される当該サーバ100の制御方法が提供される。制御方法は、操作対象の機器300を特定するための情報を、メモリにロードするステップ(図12のステップS306,ステップS312,ステップS318,ステップS324)を備える。機器300を特定するための情報は、2以上の項目を含む。2以上の項目は、階層的に配列されている。2以上の項目の各々は、ユーザインタフェースのテンプレートに関連付けられている。制御方法は、機器300を特定するための情報に含まれる2以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を生成するステップ(図12のステップS310,ステップS316,ステップS322,ステップS328)と、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を情報処理装置(スマートフォン200)に送信するステップ(図11のステップS60)とをさらに備える。
これにより、機器のユーザインタフェースは、2以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
さらに他の局面に従うと、機器300を操作するためのユーザインタフェースを表示するためのデータ(送信用データ)を情報処理装置(スマートフォン200)に提供するために、サーバ100のプロセッサ151によって実行される当該サーバ100の制御プログラムが提供される。制御プログラムは、プロセッサ151に、操作対象の機器300を特定するための情報を、メモリにロードするステップ(図12のステップS306,ステップS312,ステップS318,ステップS324)を実行させる。機器300を特定するための情報は、2以上の項目を含む。2以上の項目は、階層的に配列されている。項目の各々は、ユーザインタフェースのテンプレートに関連付けられている。制御プログラムは、プロセッサ151に、機器300を特定するための情報に含まれる2以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を生成するステップ(図12のステップS310,ステップS316,ステップS322,ステップS328)と、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を情報処理装置(スマートフォン200)に送信するステップ(図11のステップS60)とをさらに実行させる。
これにより、機器のユーザインタフェースは、2以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
さらに他の局面に従うと、情報処理装置(スマートフォン200)と、機器300を操作するためのユーザインタフェースを表示するためのデータ(送信用データ)を情報処理装置(スマートフォン200)に提供するためのサーバ100とを備える通信システムが提供される。サーバ100は、情報処理装置(スマートフォン200)と通信するための通信装置(通信IF157)と、プロセッサ151と、操作対象の機器300を特定するための情報を記憶するための記憶手段(RAM153)とを含む。機器300を特定するための情報は、2以上の項目を含む。2以上の項目は、階層的に配列されている。2以上の項目の各々は、機器300を操作するためのユーザインタフェースのテンプレートに関連付けられている。プロセッサ151は、機器300を特定するための情報に含まれる2以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を生成し、かつ、通信装置(通信IF157)を用いて、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を情報処理装置(スマートフォン200)に送信するように構成されている。情報処理装置(スマートフォン200)は、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を、サーバ100から受信するように構成された送受信部(通信IF257)と、機器300のユーザインタフェースを表示するためのデータ(送信用データ)に基づいて、当該機器300のユーザインタフェースを表示するように構成された表示部(タッチパネル255)とを含む。
これにより、機器のユーザインタフェースは、2以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
好ましくは、送受信部(通信IF257)は、一括して操作する対象となる2以上の機器300を指定する情報を、サーバ100に送信するように構成され、通信装置(通信IF157)は、2以上の機器300を指定する情報を受信するように構成されている。プロセッサ151は、2以上の機器300を指定する情報によって指定される機器300のそれぞれのユーザインタフェースのデータ(送信用データ)から共通する部分を抽出することにより、2以上の機器300を一括して操作するためのユーザインタフェースを表示するためのデータ(送信用データ)を生成するように構成されている。通信装置(通信IF157)は、2以上の機器300を一括して操作するためのユーザインタフェースを表示するためのデータ(送信用データ)を、情報処理装置(スマートフォン200)に送信するように構成されている。表示部(タッチパネル255)は、2以上の機器300を一括して操作するためのユーザインタフェースを表示するためのデータ(送信用データ)に基づいて、2以上の機器300を一括して操作するためのユーザインタフェースを表示するように構成されている。
これにより、機器を特定する情報に対応するテンプレートを利用して、ユーザに対し、より利便性の高いユーザインタフェースを提供することができる。
さらに他の局面に従うと、サーバ100と通信可能な情報処理装置(スマートフォン200)が提供される。情報処理装置(スマートフォン200)は、機器300を特定するための情報に含まれる2以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより生成された、機器300のユーザインタフェースを表示するためのデータ(送信用データ)を、サーバ100から受信するように構成された送受信部(通信IF257)と、機器300のユーザインタフェースを表示するためのデータ(送信用データ)に基づいて、当該機器300のユーザインタフェースを表示するように構成された表示部(タッチパネル255)とを含む。
これにより、機器のユーザインタフェースは、2以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、情報処理装置は、記憶装置において予め格納されることを必要とするテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
好ましくは、送受信部(通信IF257)は、一括して操作する対象となる2以上の機器300を指定する情報を、サーバ100に送信し、かつ、2以上の機器300を一括して操作するためのユーザインタフェースを表示するためのデータ(送信用データ)を、サーバ100から受信するように構成されている。表示部(タッチパネル255)は、2以上の機器300を一括して操作するためのユーザインタフェースを表示するためのデータ(送信用データ)に基づいて、2以上の機器300を一括して操作するためのユーザインタフェースを表示するように構成されている。
これにより、情報処理装置は、ユーザにとってより利便性の高いユーザインタフェースを取得できる。
今回開示された実施の形態およびその変形例はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。実施の形態のそれぞれにおいて開示された技術は、可能な限り、単独でも組み合わせても実施され得ることが意図される。