(57)【特許請求の範囲】
【請求項１】
情報処理装置と通信するための通信装置と、
プロセッサと、
操作対象の機器を特定するための情報を記憶するように構成された記憶手段とを備え、
前記機器を特定するための情報は、２以上の項目を含み、
前記２以上の項目は、階層的に配列されており、
前記２以上の項目の各々は、前記機器を操作するためのユーザインタフェースのテンプレートに関連付けられており、
前記プロセッサは、
前記機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、前記機器のユーザインタフェースを表示するためのデータを生成し、かつ、
前記通信装置を用いて、前記機器のユーザインタフェースを表示するためのデータを前記情報処理装置に送信するように構成されている、サーバ。
【請求項２】
前記プロセッサは、２以上の前記テンプレートを、各前記テンプレートが関連付けられた項目の階層の配列に従って組み合わせるように構成されている、請求項１に記載のサーバ。
【請求項３】
前記データを生成することは、前記２以上の項目の各々にそれぞれ関連付けられたテンプレートの中の、上位の階層に対応するテンプレートの少なくとも一部を、下位の階層に対応するテンプレートの前記一部に対応する部分と置換することを含む、請求項１または請求項２に記載のサーバ。
【請求項４】
前記データを生成することは、前記２以上の項目の各々にそれぞれ関連付けられたテンプレートの中の、上位の階層に対応するテンプレートに、下位の階層のテンプレートを追加することを含む、請求項１〜請求項３のいずれか１項に記載のサーバ。
【請求項５】
前記プロセッサは、２以上の機器のユーザインタフェースのデータから共通する部分を抽出することにより、前記２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータをさらに生成するように構成されている、請求項１〜請求項４のいずれか１項に記載のサーバ。
【請求項６】
前記テンプレートを格納するための記憶装置をさらに備える、請求項１〜請求項５のいずれか１項に記載のサーバ。
【請求項７】
前記２以上の項目は、機器の機能に基づく種類を特定するための第１の項目と、機器の製造元を特定するための第２の項目とを含み、
前記第２の項目は、前記第１の項目よりも下位の階層に位置付けられている、
請求項１〜請求項６のいずれか１項に記載のサーバ。
【請求項８】
前記通信装置は、前記機器と通信可能であり、
前記プロセッサは、前記通信装置を介して取得した前記機器の状態を当該機器のユーザインタフェースを表示するためのデータに組み込むように構成されている、請求項１〜請求項７のいずれか１項に記載のサーバ。
【請求項９】
機器を操作するためのユーザインタフェースを表示するためのデータを情報処理装置に提供するためのサーバのプロセッサによって実行される当該サーバの制御方法であって、
操作対象の機器を特定するための情報を、メモリにロードするステップを備え、
前記機器を特定するための情報は、２以上の項目を含み、
前記２以上の項目は、階層的に配列されており、
前記２以上の項目の各々は、ユーザインタフェースのテンプレートに関連付けられており、
前記制御方法は、
前記機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、前記機器のユーザインタフェースを表示するためのデータを生成するステップと、
前記機器のユーザインタフェースを表示するためのデータを前記情報処理装置に送信するステップとをさらに備える、サーバの制御方法。
【請求項１０】
機器を操作するためのユーザインタフェースを表示するためのデータを情報処理装置に提供するために、サーバのプロセッサによって実行される当該サーバの制御プログラムであって、
前記制御プログラムは、前記プロセッサに、
操作対象の機器を特定するための情報を、メモリにロードするステップを実行させ、
前記機器を特定するための情報は、２以上の項目を含み、
前記２以上の項目は、階層的に配列されており、
前記項目の各々は、ユーザインタフェースのテンプレートに関連付けられており、
前記制御プログラムは、前記プロセッサに、
前記機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、前記機器のユーザインタフェースを表示するためのデータを生成するステップと、
前記機器のユーザインタフェースを表示するためのデータを前記情報処理装置に送信するステップとを実行させる、サーバの制御プログラム。
【請求項１１】
情報処理装置と、機器を操作するためのユーザインタフェースを表示するためのデータを前記情報処理装置に提供するためのサーバとを備える通信システムであって、
前記サーバは、
情報処理装置と通信するための通信装置と、
プロセッサと、
操作対象の機器を特定するための情報を記憶するための記憶手段とを含み、
前記機器を特定するための情報は、２以上の項目を含み、
前記２以上の項目は、階層的に配列されており、
前記２以上の項目の各々は、機器を操作するためのユーザインタフェースのテンプレートに関連付けられており、
前記プロセッサは、
前記機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、前記機器のユーザインタフェースを表示するためのデータを生成し、かつ、
前記通信装置を用いて、前記機器のユーザインタフェースを表示するためのデータを前記情報処理装置に送信するように構成されており、
前記情報処理装置は、
前記機器のユーザインタフェースを表示するためのデータを、前記サーバから受信するように構成された送受信部と、
前記機器のユーザインタフェースを表示するためのデータに基づいて、当該機器のユーザインタフェースを表示するように構成された表示部とを含む、通信システム。
【請求項１２】
前記送受信部は、一括して操作する対象となる２以上の機器を指定する情報を、前記サーバに送信するように構成されており、
前記通信装置は、前記２以上の機器を指定する情報を受信するように構成されており、
前記プロセッサは、前記２以上の機器を指定する情報によって指定される機器のそれぞれのユーザインタフェースのデータから共通する部分を抽出することにより、前記２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータを生成するように構成されており、
前記通信装置は、前記２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータを、前記情報処理装置に送信するように構成されており、
前記表示部は、前記２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータに基づいて、前記２以上の機器を一括して操作するためのユーザインタフェースを表示するように構成されている、請求項１１に記載の通信システム。
【請求項１３】
サーバと通信可能な情報処理装置であって、
機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより生成された、前記機器のユーザインタフェースを表示するためのデータを、前記サーバから受信するように構成された送受信部と、
前記機器のユーザインタフェースを表示するためのデータに基づいて、当該機器のユーザインタフェースを表示するように構成された表示部とを含み、
前記ユーザインタフェースは、２以上の機器に対する共通する指令を送信するための単一の操作部を含む、情報処理装置。
【請求項１４】
前記送受信部は、
一括して操作する対象となる２以上の機器を指定する情報を、前記サーバに送信し、かつ、
前記２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータを、前記サーバから受信するように構成されており、
前記表示部は、前記２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータに基づいて、前記２以上の機器を一括して操作するためのユーザインタフェースを表示するように構成されており、
前記単一の操作部は、指定された前記２以上の機器に対する共通する指令を送信するための操作部である、請求項１３に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、特に、情報処理装置に制御対象の機器のユーザインタフェースのデータを送信するサーバ、サーバから制御対象の機器のユーザインタフェースのデータを受信する情報処理装置、および、このようなサーバと情報処理装置とを含む通信システムに関する。
【背景技術】
【０００２】
従来、エアコンやテレビなどの制御対象の機器のリモート操作端末として情報処理装置を利用するために、当該情報処理装置へこれらの機器のユーザインタフェースを提供する技術があった。たとえば、特開２００７−１１４８８８号公報（特許文献１）では、その段落００５５〜００６１等に記載されるように、操作端末は、機器のデバイス情報ごとに準備されたテンプレートを利用して、当該機器のユーザインタフェースを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１１４８８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、機器の種類ごとに、テンプレートが必要とされた。つまり、操作端末として利用される情報処理装置は、ユーザインタフェースを必要とされることが想定される機器の種類の数だけ、テンプレートを格納している必要があった。ユーザインタフェースの生成等のために格納されることを必要とされる情報の量は、記憶装置のコストの削減等の観点から、常に抑えることが求められる。その一方で、情報処理装置が操作端末として利用される場合、より多くの機器に対応できることも望まれる。
【０００５】
本開示は、かかる実情に鑑み考え出されたものであり、その目的は、情報処理装置に、より多くの種類の機器に対応するユーザインタフェースを提供しつつ、予め格納されることを必要とされる情報の量をより少なく抑えることのできる、サーバ、通信システム、および、このような通信システムにおいて利用される情報処理装置を提供することである。
【課題を解決するための手段】
【０００６】
ある局面に従うと、サーバが提供される。サーバは、情報処理装置と通信するための通信装置と、プロセッサと、操作対象の機器を特定するための情報を記憶するように構成された記憶手段とを備える。機器を特定するための情報は、２以上の項目を含み、２以上の項目は、階層的に配列されている。２以上の項目の各々は、機器を操作するためのユーザインタフェースのテンプレートに関連付けられている。プロセッサは、機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器のユーザインタフェースを表示するためのデータを生成し、かつ、通信装置を用いて、機器のユーザインタフェースを表示するためのデータを情報処理装置に送信するように構成されている。
【０００７】
好ましくは、プロセッサは、２以上のテンプレートを、各テンプレートが関連付けられた項目の階層の配列に従って組み合わせるように構成されている。
【０００８】
好ましくは、データを生成することは、２以上の項目の各々にそれぞれ関連付けられたテンプレートの中の、上位の階層に対応するテンプレートの少なくとも一部を、下位の階層に対応するテンプレートの一部に対応する部分と置換することを含む。
【０００９】
好ましくは、データを生成することは、２以上の項目の各々にそれぞれ関連付けられたテンプレートの中の、上位の階層に対応するテンプレートに、下位の階層のテンプレートを追加することを含む。
【００１０】
好ましくは、プロセッサは、２以上の機器のユーザインタフェースのデータから共通する部分を抽出することにより、２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータをさらに生成するように構成されている。
【００１１】
好ましくは、サーバは、テンプレートを格納するための記憶装置をさらに備える。
好ましくは、２以上の項目は、機器の機能に基づく種類を特定するための第１の項目と、機器の製造元を特定するための第２の項目とを含む。第２の項目は、第１の項目よりも下位の階層に位置付けられている。
【００１２】
好ましくは、通信装置は、機器と通信可能である。プロセッサは、通信装置を介して取得した機器の状態を当該機器のユーザインタフェースを表示するためのデータに組み込むように構成されている。
【００１３】
他の局面に従うと、機器を操作するためのユーザインタフェースを表示するためのデータを情報処理装置に提供するためのサーバのプロセッサによって実行される当該サーバの制御方法が提供される。制御方法は、操作対象の機器を特定するための情報を、メモリにロードするステップを備える。機器を特定するための情報は、２以上の項目を含む。２以上の項目は、階層的に配列されている。２以上の項目の各々は、ユーザインタフェースのテンプレートに関連付けられている。制御方法は、機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器のユーザインタフェースを表示するためのデータを生成するステップと、機器のユーザインタフェースを表示するためのデータを情報処理装置に送信するステップとをさらに備える。
【００１４】
さらに他の局面に従うと、機器を操作するためのユーザインタフェースを表示するためのデータを情報処理装置に提供するために、サーバのプロセッサによって実行される当該サーバの制御プログラムが提供される。制御プログラムは、プロセッサに、操作対象の機器を特定するための情報を、メモリにロードするステップを実行させる。機器を特定するための情報は、２以上の項目を含む。２以上の項目は、階層的に配列されている。項目の各々は、ユーザインタフェースのテンプレートに関連付けられている。制御プログラムは、プロセッサに、機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器のユーザインタフェースを表示するためのデータを生成するステップと、機器のユーザインタフェースを表示するためのデータを情報処理装置に送信するステップとをさらに実行させる。
【００１５】
さらに他の局面に従うと、情報処理装置と、機器を操作するためのユーザインタフェースを表示するためのデータを情報処理装置に提供するためのサーバとを備える通信システムが提供される。サーバは、情報処理装置と通信するための通信装置と、プロセッサと、操作対象の機器を特定するための情報を記憶するための記憶手段とを含む。機器を特定するための情報は、２以上の項目を含む。２以上の項目は、階層的に配列されている。２以上の項目の各々は、機器を操作するためのユーザインタフェースのテンプレートに関連付けられている。プロセッサは、機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器のユーザインタフェースを表示するためのデータを生成し、かつ、通信装置を用いて、機器のユーザインタフェースを表示するためのデータを情報処理装置に送信するように構成されている。情報処理装置は、機器のユーザインタフェースを表示するためのデータを、サーバから受信するように構成された送受信部と、機器のユーザインタフェースを表示するためのデータに基づいて、当該機器のユーザインタフェースを表示するように構成された表示部（タッチパネル２５５）とを含む。
【００１６】
好ましくは、送受信部は、一括して操作する対象となる２以上の機器を指定する情報を、サーバに送信するように構成され、通信装置は、２以上の機器を指定する情報を受信するように構成されている。プロセッサは、２以上の機器を指定する情報によって指定される機器のそれぞれのユーザインタフェースのデータから共通する部分を抽出することにより、２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータを生成するように構成されている。通信装置は、２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータを、情報処理装置に送信するように構成されている。表示部（タッチパネル２５５）は、２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータに基づいて、２以上の機器を一括して操作するためのユーザインタフェースを表示するように構成されている。
【００１７】
さらに他の局面に従うと、サーバと通信可能な情報処理装置が提供される。情報処理装置は、機器を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより生成された、機器のユーザインタフェースを表示するためのデータを、サーバから受信するように構成された送受信部と、機器のユーザインタフェースを表示するためのデータに基づいて、当該機器のユーザインタフェースを表示するように構成された表示部（タッチパネル２５５）とを含み、ユーザインタフェースは、２以上の機器に対する共通する指令を送信するための単一の操作部を含む。
【００１８】
好ましくは、送受信部は、一括して操作する対象となる２以上の機器を指定する情報を、サーバに送信し、かつ、２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータを、サーバから受信するように構成されている。表示部（タッチパネル２５５）は、２以上の機器を一括して操作するためのユーザインタフェースを表示するためのデータに基づいて、２以上の機器を一括して操作するためのユーザインタフェースを表示するように構成されており、単一の操作部は、指定された前記２以上の機器に対する共通する指令を送信するための操作部である。
【発明の効果】
【００１９】
本開示によれば、機器のユーザインタフェースは、２以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態１に係る通信システムの概略構成を表した図である。
【図２】通信システムの機能的な構成を模式的に示す図である。
【図３】機器ＤＢ（データベース）に格納された内容の一例と、ＵＩ（ユーザインタフェース）におけるテンプレートの構成の一例とを、模式的に示す図である。
【図４】サーバのハードウェア構成の典型例を表した図である。
【図５】スマートフォンのハードウェア構成の典型例を表した図である。
【図６】ユーザＤＢ１２２に格納されるデータの構成を模式的に示す図である。
【図７】機器種別テンプレートＤＢに格納されるデータの構成を模式的に示す図である。
【図８】メーカテンプレートＤＢに格納されるデータの構成を模式的に示す図である。
【図９】シリーズテンプレートＤＢに格納されるデータの構成を模式的に示す図である。
【図１０】モデルテンプレートＤＢに格納されるデータの構成を模式的に示す図である。
【図１１】通信システムにおいて、スマートフォンから機器に制御命令が送信される際の情報処理の流れの一例を示す図である。
【図１２】図１１のステップＳ３０のサブルーチンのフローチャートである。
【図１３】タッチパネルに表示されるメインウィンドウの一例である。
【図１４】機器ＩＤ「１」のＵＩの一例を示す図である。
【図１５】サーバからスマートフォンに送信されるデータの一例を示す図である。
【図１６】テンプレートＤＢに格納されているテンプレートの一例を示す図である。
【図１７】機器ＩＤ「２」のＵＩの一例を示す図である。
【図１８】サーバからスマートフォンに送信されるデータの一例を示す図である。
【図１９】機器ＩＤ「３」のＵＩの一例を示す図である。
【図２０】サーバからスマートフォンに送信されるデータの一例を示す図である。
【図２１】機器ＩＤ「４」のＵＩの一例を示す図である。
【図２２】スマートフォンからサーバへ送信される制御指令のデータの一例を示す図である。
【図２３】実施の形態３におけるＵＩの一例を示す図である。
【図２４】実施の形態３におけるＵＩの他の例を示す図である。
【図２５】実施の形態４のテンプレートＤＢに格納されているテンプレートの変形例を示す図である。
【図２６】実施の形態４におけるサーバからスマートフォンに送信されるデータの具体例を示す図である。
【図２７】２以上の機器を指定するためのＵＩの一例を示す図である。
【図２８】２以上の機器を指定するためのＵＩの一例を示す図である。
【図２９】スマートフォンにおいて、２以上の機器を一括して制御するために表示されるＵＩの一例を示す図である。
【図３０】２以上の機器を指定するためのＵＩの他の例を示す図である。
【図３１】スマートフォンにおいて、２以上の機器を一括して制御するために表示されるＵＩの他の例を示す図である。
【図３２】実施の形態６の通信システムの機能的な概略構成を表した図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しつつ、本開示の各実施の形態に係る通信システムについて説明する。また、以下の説明では、同一の部材には同一の参照符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２２】
［実施の形態１］
＜システム構成＞
図１は、実施の形態１に係る通信システム１の概略構成を表した図である。図１を参照して、通信システム１は、サーバ１００と、情報処理装置としてのスマートフォン２００と、家庭用電気機器（以下、「機器」と略す。）３１０，３２０，３３０，３４０とを含む。サーバ１００は、ホームサーバとして機能する。機器３１０，３２０，３３０，３４０は、家庭用電気機器の一例である。
【００２３】
より具体的には、機器３１０は、宅内の子供部屋に配置されたエアーコンディショナである。機器３２０は、宅内の寝室に配置されたエアーコンディショナである。機器３３０は、宅内のリビングルームに配置されたエアーコンディショナである。機器３４０は、上記リビングルームに配置された空気清浄機である。機器３１０〜３４０は、必要に応じて、操作対象の機器として機器３００と総称される。エアーコンディショナおよび空気清浄機は、通信システム１において操作対象となる機器の単なる例示である。通信システム１において操作対象となる機器の配置や種類は、図１に示されたものに限定されない。通信システム１が操作の対象とする機器の配置、および、そのような機器の機能や種類等が、これらの例示によっていかなる制限を受けることがないことは言うまでもない。
【００２４】
スマートフォン２００は、サーバ１００と通信可能である。サーバ１００は、機器３１０，３２０，３３０，３４０と通信可能である。サーバ１００は、一例として、ＸＭＬ（Extensible  Markup  Language）等のマークアップ言語を用いた通信仕様に基づき、スマートフォン２００および機器３００と通信する。なお、サーバ１００は、ＪＳＯＮ（JavaScript（登録商標）  Object  Notation）等の非マークアップ言語を用いた通信仕様に基づき、スマートフォン２００および機器３００と通信してもよい。通信に用いるデータの形式は、特に限定されるものではない。
【００２５】
また、機器３００は、たとえばＥＣＨＯＮＥＴ  Ｌｉｔｅ（登録商標）のような汎用の通信プロトコルに従って送受信されるデータに基づいて、動作し得る。つまり、機器３００は、サーバ１００との間ではマークアップ言語で通信し、当該通信データから上記汎用の通信プロトコルに従ったデータを抽出し、そして、当該抽出したデータに基づいて自機の動作を制御する。この場合、機器３００は、サーバ１００とのマークアップ言語での通信を実現するためのアダプタに接続されていても良い。
【００２６】
サーバ１００は、スマートフォン２００に対して、機器３００を操作するためのユーザインタフェースを提供する。これに応じて、スマートフォン２００では、機器３００を操作するためのユーザインタフェースが表示される。以下、ユーザインタフェースは適宜「ＵＩ」と省略され得る。そして、スマートフォン２００は、ユーザ操作に基づき、機器３００を制御するための制御指令の入力を受け付ける。スマートフォン２００は、受付けた制御指令をサーバ１００に送信する。サーバ１００は、受信した制御指令を、当該制御指令において指定される送信先へと送信する。当該制御指令を受信した機器３００は、当該制御指令に基づいて、自機の動作を制御する。
【００２７】
＜通信システムの動作の概要＞
図２は、通信システム１の機能的な構成を模式的に示す図である。図２を参照して、通信システム１の動作の概要を説明する。
【００２８】
サーバ１００は、テンプレートデータベース１１０と情報データベース１２０とを格納する。以下の説明では、「データベース」は、「ＤＢ」と称される場合がある。テンプレートＤＢ１１０は、スマートフォン２００に提供されるＵＩを生成するためのテンプレートを階層的に分けて格納する。より具体的には、テンプレートＤＢ１１０は、機器種別テンプレートＤＢ１１１、メーカテンプレートＤＢ１１２、シリーズテンプレートＤＢ１１３、およびモデルテンプレートＤＢ１１４に分けて、ＵＩを生成するためのテンプレートを格納する。
【００２９】
機器種別テンプレートＤＢ１１１は、機器３００の種別ごとにＵＩのテンプレートを格納する。本明細書において「機器種別」とは、「エアーコンディショナ」「空気清浄機」「テレビ」「照明器具」等のように、機器の本質的な機能に基づいた区別を意味する。メーカテンプレートＤＢ１１２は、機器のメーカごとにＵＩのテンプレートを格納する。シリーズテンプレートＤＢ１１３は、各メーカにおいて対応する機器種別について、シリーズごとにＵＩのテンプレートを格納する。モデルテンプレートＤＢ１１４は、各シリーズについて、機器のモデルごとにＵＩのテンプレートを格納する。
【００３０】
階層は、上位から「機器種別」「メーカ」「シリーズ」「モデル」の順に設定されている。つまり、テンプレートＤＢ１１０では、機器種別テンプレートＤＢ１１１が最も高い階層でテンプレートを格納し、その後、階層の高い順から、メーカテンプレートＤＢ１１２、シリーズテンプレートＤＢ１１３、モデルテンプレートＤＢ１１４で、階層が設定されている。
【００３１】
情報ＤＢ１２０は、機器３００の情報を格納する機器ＤＢ１２１と、ユーザの情報を格納するユーザＤＢ１２２とを含む。通信システム１では、サーバ１００は、機器３００から、当該機器３００の機器情報を取得する。機器情報は、機器３００の、機器種別、メーカ、シリーズ、およびモデルのそれぞれを特定する項目を含み得る。機器ＤＢ１２１では、機器３００の機器情報は、ユーザを特定する情報と関連付けられる。ユーザＤＢ１２２は、通信システム１における各ユーザを特定するための情報を格納する。
【００３２】
機器情報において、４つの項目（「機器種別」「メーカ」「シリーズ」および「モデル」）は、階層的に配列されている。「機器種別」が最も高い階層に位置づけられ、次に、階層の高い順から、メーカ、シリーズ、およびモデルの順に、位置付けられる。
【００３３】
サーバ１００は、演算処理を実行するプロセッサ１５１を含む。プロセッサ１５１は、機器３００のＵＩを表示させるためのデータを生成して、スマートフォン２００へ提供する。より具体的には、プロセッサ１５１は、機器ＤＢ１２１から機器３００の機器情報を取得し、当該機器情報に対応するテンプレートを機器種別テンプレートＤＢ１１１、メーカテンプレートＤＢ１１２、シリーズテンプレートＤＢ１１３、およびモデルテンプレートＤＢ１１４のそれぞれから取得し、取得したテンプレートを組み合わせることにより、ＵＩを表示させるためのデータを生成する。そして、プロセッサ１５１は、生成したデータを、スマートフォン２００へ提供する。プロセッサ１５１は、スマートフォン２００へ、ＵＩを表示させるためのデータとともに、機器３００の機器情報を提供し得る。
【００３４】
スマートフォン２００は、ＵＩの表示に利用される枠組データが格納されている。枠組データとは、たとえば、ＵＩのレイアウトを特定するデータである。そして、スマートフォン２００は、サーバ１００から受信した「ＵＩを表示させるためのデータ」を、当該枠組データに適合させることによって、ＵＩを表示させる。なお、以降の説明では、サーバ１００からスマートフォン２００に「ＵＩを表示させるためのデータが送信される」ことが、単に「ＵＩが送信される」と言及される場合もあり得る。また、通信システム１では、スマートフォン２００が枠組データを格納せず、サーバ１００からスマートフォン２００に対して上記枠組データを含めて、ＵＩを表示させるためのデータが送信される場合もあり得る。また、「ＵＩを表示させるためのデータ」は、送信用データとも呼ばれる。
【００３５】
プロセッサ１５１は、機器３００の動作状態（機器状態）を取得する。そして、プロセッサ１５１は、スマートフォン２００に対して、機器状態を提供し得る。プロセッサ１５１は、機器状態をＵＩに含めて、スマートフォン２００へ提供することができる。
【００３６】
ＵＩを提供されたスマートフォン２００を操作するユーザは、機器３００に対する制御内容を入力する。スマートフォン２００は、入力された制御内容に応じた制御指令を、サーバ１００へ送信する。サーバ１００は、スマートフォン２００から入力された制御指令を、対応する機器３００へ送信する。サーバ１００から制御指令を受信した機器３００は、当該制御指令に従って動作する。
【００３７】
図３は、機器ＤＢ１２１に格納された内容の一例と、ＵＩにおけるテンプレートの構成の一例とを、模式的に示す図である。図３には、機器ＤＢ１２１に格納された内容の一例が、テーブルＴ１として示されている。テーブルＴ１は、機器ＩＤと、ユーザＩＤと、機器種別と、メーカと、シリーズと、モデルとを含む。機器ＩＤは、通信システム１において機器３００に割り当てられる。ユーザＩＤは、通信システム１において各ユーザに割り当てられる。ラベルは、通信システム１において、機器３００に対して、ユーザ等によって任意に割り当てられた名称である。
【００３８】
通信システム１では、サーバ１００は、機器３００と通信することにより機器３００の機器情報を取得する。たとえば、機器３００からサーバ１００に任意の時間ごとに定期的に機器情報を送信する。もしくは機器３００の機器情報が更新された場合のみに、機器３００が、サーバ１００に機器情報を送信するようにしてもよい。
【００３９】
サーバ１００は、さらに、各ユーザからの通信システム１への登録を受け付ける。そして、サーバ１００は、機器３００と各ユーザとを関連付ける。サーバ１００は、たとえば、スマートフォン２００に、通信システム１に登録されたすべての機器３００の機器情報を提供する。これに応じて、ユーザは、スマートフォン２００に、機器情報を提供された機器３００の中から、当該ユーザが関連付けられることを希望する機器３００を選択する情報を送信する。これに応じて、サーバ１００は、ユーザが希望する機器３００と当該ユーザとを関連付ける情報を、機器ＤＢ１２１に登録する。図３のテーブルＴ１では、ユーザと機器との関連付けの一例として、ユーザＩＤ「１」のユーザに、機器ＩＤ「１」〜「４」の各機器が関連付けられた状態が示されている。
【００４０】
テーブルＴ１では、機器ＩＤ「１」に対して、ラベル「子供部屋エアコン」が設定されている。また、機器ＩＤ「２」に対して、ラベル「寝室エアコン」が設定されている。また、機器ＩＤ「３」に対して、ラベル「リビングエアコン」（「リビングルームに設置されたエアーコンディショナ」を意味する。）が設定されている。機器ＩＤ「４」に対して、ラベル「空気清浄機」が設定されている。
【００４１】
さらに、テーブルＴ１では、機器３００の機器情報が示されている。より具体的には、機器ＩＤ「１」の機器情報において、機器種別は、「エアーコンディショナ」（図面では、「エアコン」と略記されている。）である。メーカは、「Ｍ０」である。機器ＩＤ「１」の機器情報は、シリーズとモデルの情報を含まない。
【００４２】
機器ＩＤ「２」の機器情報において、機器種別は、「エアーコンディショナ」である。メーカは、「Ｍ１」である。シリーズは、「Ｓ２」である。モデルは、「Ｃ１」である。
【００４３】
機器ＩＤ「３」の機器情報において、機器種別は、「エアーコンディショナ」である。メーカは、「Ｍ１」である。シリーズは、「Ｓ２」である。モデルは、「Ｃ２」である。
【００４４】
機器ＩＤ「４」の機器情報において、機器種別は、「空気清浄機」である。メーカは、「Ｍ１」である。シリーズは、「Ｓ２」である。モデルは、「Ｃ２」である。
【００４５】
機器のＵＩは、テンプレートＤＢ１１０に格納されるテンプレートのうち、機器の機器情報に基づいて選択されたテンプレートが利用される。図３のテーブルＴ２を参照して、テーブルＴ１の機器のＵＩに利用されるテンプレートの組み合わせを説明する。
【００４６】
機器ＩＤ「１」のＵＩは、機器種別「エアーコンディショナ」に対応するテンプレート（temp001）を用いて生成される。
【００４７】
機器ＩＤ「２」のＵＩは、機器種別「エアーコンディショナ」に対応するテンプレート（temp001）と、メーカ「Ｍ１」に対応するテンプレート（temp101）と、シリーズ「Ｓ２」に対応するテンプレート（temp202）とを用いて生成される。
【００４８】
機器ＩＤ「３」のＵＩは、機器種別「エアーコンディショナ」に対応するテンプレート（temp001）と、メーカ「Ｍ１」に対応するテンプレート（temp101）と、シリーズ「Ｓ２」に対応するテンプレート（temp202）と、モデル「Ｃ２」に対応するテンプレート（temp302）とを用いて生成される。
【００４９】
機器ＩＤ「４」のＵＩは、機器種別「空気清浄機」に対応するテンプレート（temp002）と、メーカ「Ｍ１」に対応するテンプレート（temp111）と、シリーズ「Ｓ２」に対応するテンプレート（temp212）と、モデル「Ｃ２」に対応するテンプレート（temp312）とを用いて生成される。
【００５０】
テンプレートtemp101は、機器種別「エアーコンディショナ」のメーカ「Ｍ１」に対応する。テンプレートtemp111は、機器種別「空気清浄機」のメーカ「Ｍ１」に対応する。機器情報は、機器種別ごと、かつ、メーカごとに、テンプレートに対応する。つまり、２以上の機器情報は、それらのメーカが共通しても、それらの機器種別が異なれば、異なるテンプレートに対応し得る。
【００５１】
テンプレートtemp202は、機器種別「エアーコンディショナ」とメーカ「Ｍ１」に対応し、かつ、シリーズ「Ｓ２」に対応する。テンプレートtemp212は、機器種別「空気清浄機」とメーカ「Ｍ１」に対応し、かつ、シリーズ「Ｓ２」に対応する。機器情報は、機器種別、メーカ、およびシリーズごとに、テンプレートに対応する。つまり、２以上の機器情報は、それらのシリーズが共通しても、それらの機器種別とメーカの少なくとも一方が異なれば、異なるテンプレートに対応し得る。
【００５２】
テンプレートtemp302は、機器種別「エアーコンディショナ」とメーカ「Ｍ１」とシリーズ「Ｓ２」に対応し、かつ、モデル「Ｃ２」に対応する。テンプレートtemp312は、機器種別「空気清浄機」とメーカ「Ｍ１」とシリーズ「Ｓ２」とに対応し、かつ、モデル「Ｃ２」に対応する。機器情報は、機器種別、メーカ、シリーズおよびモデルごとに、テンプレートに対応する。つまり、２以上の機器情報は、それらのモデルが共通しても、それらの機器種別とメーカとシリーズの中の少なくとも一つが異なれば、異なるテンプレートに対応し得る。
【００５３】
実施の形態１では、テンプレートＤＢ１１０におけるテンプレートの記憶態様は、機器情報の階層構造に対応している。つまり、機器種別テンプレートＤＢ１１１では、「機器種別」の各々に関連付けられたテンプレートが格納されている。メーカテンプレートＤＢ１１２では、「機器種別」の各々について、「メーカ」の各々に関連付けられたテンプレートが格納されている。シリーズテンプレートＤＢ１１３では、「機器種別」の各々と「メーカ」の各々とのそれぞれの組み合わせについて、「シリーズ」の各々に関連付けられたテンプレートが格納されている。モデルテンプレートＤＢ１１４では、「機器種別」の各々と「メーカ」の各々と「シリーズ」の各々とのそれぞれの組み合わせについて、「モデル」の各々に関連付けられたテンプレートが格納されている。ただし、このようなテンプレートの階層的な記憶態様は、実施の形態１において必須ではない。実施の形態１では、少なくとも機器情報に含まれる２以上の項目が、階層的に配列されていればよい。つまり、機器情報の２以上の階層に位置付けられた項目のそれぞれに関連付けられたテンプレートが組み合させることによって、当該機器情報に対応するＵＩが生成されればよい。
【００５４】
実施の形態１では、機器ＩＤ「１」、機器ＩＤ「２」、および機器ＩＤ「３」の３つの機器のＵＩでは、テンプレートtemp001が共通して利用されている。また、機器ＩＤ「２」と機器ＩＤ「３」の２つの機器のＵＩでは、さらに、テンプレートtemp101およびテンプレートtemp202が共通して利用されている。実施の形態１では、機器を特定する情報（機器情報）において２以上の項目が階層的に配列されており、各項目に対応するテンプレートを用いて、ＵＩを表示するためのデータが生成される。当該データでは、２以上のテンプレートは、各テンプレートが関連付けられた項目が位置づけられる階層に対応する優先順位で組み合わされる。たとえば、当該データでは、階層の低い項目に対応するテンプレート（または、その一部）は、階層の高い項目に対応するテンプレート（または、その一部）と置換される。また、たとえば、当該データでは、階層の低い項目に対応するテンプレートが階層の高い項目に対応するテンプレートに含まれない記述を有する場合には、当該記述が当該データに追加される。これにより、２以上の機器のＵＩを表示するためのデータを、共通する部分のテンプレートを共有しながら生成することができる。これにより、予め準備しておく必要のあるテンプレートの数を抑えながら、より多くの機器に対応するＵＩを表示するためのデータを生成することができる。
【００５５】
実施の形態１のテンプレートＤＢ１１０では、メーカＭ０については、「機種種別」より下位の階層（「メーカ」「シリーズ」「モデル」）の機器情報に対応するテンプレートは格納されていない。一方、メーカＭ１については、「機種種別」より下位の階層（「メーカ」「シリーズ」「モデル」）の機器情報に対応するテンプレートが格納されている。ＵＩの生成により下位の階層のテンプレートが利用されるほど、生成されるＵＩの機器に対応する度合いが高くなることが期待される。これにより、サーバ１００は、機器のメーカごとに、スマートフォン２００に提供するＵＩの、機器に対応する度合いを変化させることができる。
【００５６】
＜ハードウェア構成＞
（１）サーバ１００
図４は、サーバ１００のハードウェア構成の典型例を表した図である。図４に示されるように、サーバ１００は、主たる構成要素として、プログラムを実行するプロセッサ１５１と、データを不揮発的に格納するＲＯＭ（Read  Only  Memory）１５２と、プロセッサ１５１によるプログラムの実行により生成されたデータ、又は入力装置（図示せず）を介して入力されたデータを揮発的に格納するＲＡＭ（Random  Access  Memory）１５３と、データを不揮発的に格納するＨＤＤ（Hard  Disk  Driver）１５４と、ＬＥＤ（Light  Emitting  Diode）１５５と、スイッチ１５６と、通信ＩＦ（Interface）１５７と、電源回路１５８と、モニタ１５９と、操作キー１６０とを含む。各構成要素は、相互にデータバスによって接続されている。
【００５７】
ＨＤＤ１５４は、テンプレートＤＢ１１０および情報ＤＢ１２０を格納する。電源回路１５８は、コンセントを介して受信した商用電源の電圧を降圧し、サーバ１００の各部に電源供給を行なう。スイッチ１５６は、電源回路１５８に給電を行なうか否かを切替えるための主電源用のスイッチ、およびその他の各種の押しボタンスイッチである。モニタ１５９は、各種のデータを表示するためのデバイスである。通信ＩＦ１５７は、機器３００とのデータの送受信処理、および、スマートフォン２００とのデータの送受信処理を行なう。
【００５８】
ＬＥＤ１５５は、サーバ１００の動作状態を表す各種の表示ランプである。たとえば、ＬＥＤ１５５は、サーバ１００の主電源のオンまたはオフ状態、およびＨＤＤ１５４への読み出しまたは書き込み状態等を表す。操作キー１６０は、サーバ１００のユーザがサーバ１００へデータを入力するための用いるキー（キーボード）である。
【００５９】
サーバ１００における処理は、ハードウェアおよびプロセッサ１５１により実行されるソフトウェアによって実現される。このようなソフトウェアは、ＨＤＤ１５４に予め記憶されている場合がある。また、ソフトウェアは、その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、読取装置によりその記憶媒体から読み取られて、あるいは、通信ＩＦ１５７等を介してダウンロードされた後、ＨＤＤ１５４に一時的に格納される。そのソフトウェアは、プロセッサ１５１によってＨＤＤ１５４から読み出され、ＲＡＭ１５３に実行可能なプログラムの形式で格納される。プロセッサ１５１は、そのプログラムを実行する。
【００６０】
図４に示されるサーバ１００を構成する各構成要素は、一般的なものである。したがって、本開示の本質的な部分は、ＲＡＭ１５３、ＨＤＤ１５４、記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、サーバ１００のハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【００６１】
なお、記録媒体としては、ＤＶＤ（Digital  Versatile  Disc）−ＲＡＭに限られず、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスク、磁気テープ、カセットテープ、光ディスク、ＥＥＰＲＯＭ（Electronically  Erasable  and  Programmable  Read  Only  Memory）、フラッシュＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。また、ここでいうプログラムとは、プロセッサにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００６２】
（２）スマートフォン２００
図５は、スマートフォン２００のハードウェア構成の典型例を表した図である。図５に示されるように、スマートフォン２００は、主たる構成要素として、プログラムを実行するプロセッサ２５１と、データを不揮発的に格納するＲＯＭ２５２と、プロセッサ２５１によるプログラムの実行により生成されたデータ、又は入力装置（図示せず）を介して入力されたデータを揮発的に格納するＲＡＭ２５３と、データを不揮発的に格納するメモリ２５４と、タッチパネル２５５と、スイッチ２５６と、通信ＩＦ（Interface）２５７と、電源回路２５８とを含む。各構成要素は、相互にデータバスによって接続されている。
【００６３】
電源回路２５８は、スマートフォン２００に内蔵される電池等の電源の電圧を降圧し、スマートフォン２００の各部に電源供給を行なう回路である。スイッチ２５６は、電源回路２５８に給電を行なうか否かを切替えるための主電源用のスイッチ、およびその他の各種の押しボタンスイッチである。通信ＩＦ２５７は、サーバ１００とのデータの送受信処理を行なう。メモリ２５４は、たとえばフラッシュメモリである。
【００６４】
タッチパネル２５５は、情報を表示し、かつ情報の入力を受け付ける。つまり、タッチパネル２５５は、情報の表示部（タッチパネル２５５）の機能と入力部の機能とを有する。なお、スマートフォン２００では、両機能は、タッチパネル２５５として一体の部材として実現されても良いし、「モニタ」と「キーボードおよび／またはタッチパッド」というように、複数の部材として実現されても良い。
【００６５】
スマートフォン２００における処理は、ハードウェアおよびプロセッサ２５１により実行されるソフトウェアによって実現される。このようなソフトウェアは、メモリ２５４に予め記憶されている場合がある。また、ソフトウェアは、その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、読取装置によりその記憶媒体から読み取られて、あるいは、通信ＩＦ２５７等を介してダウンロードされた後、メモリ２５４に一旦格納される。そのソフトウェアは、プロセッサ２５１によってメモリ２５４から読み出され、ＲＡＭ２５３に実行可能なプログラムの形式で格納される。プロセッサ２５１は、そのプログラムを実行する。
【００６６】
図５に示されるスマートフォン２００を構成する各構成要素は、一般的なものである。したがって、実施の形態１の本質的な部分は、ＲＡＭ２５３、メモリ２５４、記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、スマートフォン２００のハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【００６７】
なお、記録媒体としては、ＤＶＤ−ＲＡＭに限られず、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスク、磁気テープ、カセットテープ、光ディスク、ＥＥＰＲＯＭ、フラッシュＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。また、ここでいうプログラムとは、プロセッサにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００６８】
＜データ構成の具体例＞
次に、サーバ１００の各データベースに格納されるデータ構成の具体例を説明する。機器ＤＢ１２１に格納される機器ＤＢのデータ構成の一例は、図３のテーブルＴ１として示された。以下に、他のＤＢにおけるデータ構成の具体例を説明する。なお、テーブルＴ１についての説明および以下の説明は、単なる具体例であり、実施の形態１において実現される技術的思想に対していかなる制限も与えない。
【００６９】
（１）  機器ＤＢ１２１
図６は、ユーザＤＢ１２２に格納されるデータの構成を模式的に示す図である。ユーザＤＢ１２２では、各ユーザＩＤが、メールアドレスおよびパスワードと関連付けられる。後述するように、通信システム１では、ユーザＤＢ１２２において関連付けられたメールアドレスとパスワードとによって、ユーザが特定される。
【００７０】
（２）  機器種別テンプレートＤＢ１１１
図７は、機器種別テンプレートＤＢ１１１に格納されるデータの構成を模式的に示す図である。機器種別テンプレートＤＢ１１１では、機器種別ごとに、テンプレートが格納されている。図７では、各テンプレートが、「temp001」「temp002」「temp003」等のように、当該テンプレートの名称で示されている。図７の例では、テンプレート「temp001」は、機器種別「エアーコンディショナ」に対応する。テンプレート「temp002」は、機器種別「空気清浄機」に対応する。テンプレート「temp003」は、機器種別「照明器具」に対応する。
【００７１】
（３）  メーカテンプレートＤＢ１１２
図８は、メーカテンプレートＤＢ１１２に格納されるデータの構成を模式的に示す図である。メーカテンプレートＤＢ１１２では、機器種別ごとに機器のメーカによる分類がなされ、各機器種別のメーカごとに、テンプレートが格納されている。図８では、各テンプレートが、「temp101」「temp102」等のように、当該テンプレートの名称で示されている。図８の例では、テンプレート「temp101」は、機器種別「エアーコンディショナ」のメーカ「Ｍ１」に対応する。テンプレート「temp102」は、機器種別「エアーコンディショナ」のメーカ「Ｍ２」に対応する。
【００７２】
（４）  シリーズテンプレートＤＢ１１３
図９は、シリーズテンプレートＤＢ１１３に格納されるデータの構成を模式的に示す図である。シリーズテンプレートＤＢ１１３では、機器種別と機器のメーカの組み合わせごとに、機器のシリーズによる分類がなされ、各シリーズに対応して、テンプレートが格納されている。図９では、各テンプレートが、「temp202」「temp203」「temp204」等のように、当該テンプレートの名称で示されている。図９の例では、テンプレート「temp202」は、機器種別「エアーコンディショナ」のメーカ「Ｍ１」の、シリーズ「Ｓ２」に対応する。テンプレート「temp203」は、機器種別「エアーコンディショナ」のメーカ「Ｍ１」の、シリーズ「Ｓ３」に対応する。
【００７３】
（５）  モデルテンプレートＤＢ１１４
図１０は、モデルテンプレートＤＢ１１４に格納されるデータの構成を模式的に示す図である。モデルテンプレートＤＢ１１４では、機器種別と機器のメーカと機器のシリーズの組み合わせごとに、機器のモデルによる分類がなされ、各モデルに対応して、テンプレートが格納されている。図１０では、各テンプレートが、「temp302」「temp303」等のように、当該テンプレートの名称で示されている。図１０の例では、テンプレート「temp302」は、機器種別「エアーコンディショナ」のメーカ「Ｍ１」のシリーズ「Ｓ２」の、モデル「Ｃ２」に対応する。テンプレート「temp303」は、機器種別「エアーコンディショナ」のメーカ「Ｍ１」のシリーズ「Ｓ２」の、モデル「Ｃ３」に対応する。
【００７４】
＜処理の流れ＞
次に、図１１を参照して、通信システム１における情報処理の流れの一例を説明する。図１１は、通信システム１において、スマートフォン２００から機器３００に制御命令が送信される際の情報処理の流れの一例を示す図である。実施の形態１では、図１１に示される処理の流れは、図３のテーブルＴ１に示されたような機器ＤＢが生成されている状態を前提としている。
【００７５】
まず、スマートフォン２００において、たとえば機器を制御するためのアプリケーションが起動される。次に、当該アプリケーションは、通信システム１にログインするために、タッチパネル２５５に、ユーザ情報の入力を促す情報を表示する。次に、ユーザは、タッチパネル２５５に、メールアドレスとパスワードを入力する。そして、ステップＳ１０で、スマートフォン２００のプロセッサ２５１は、入力されたメールアドレスとパスワードを、サーバ１００へ送信する。
【００７６】
ステップＳ２０で、サーバ１００のプロセッサ１５１は、スマートフォン２００から受信したメールアドレスとパスワードを検証する。より具体的には、プロセッサ１５１は、ユーザＤＢ１２２において、受信したメールアドレスとパスワードの組み合わせに対応するユーザＩＤを検索する。そして、制御は、ステップＳ３０へ進められる。
【００７７】
ステップＳ３０で、プロセッサ１５１は、ステップＳ２０で取得したユーザＩＤのＵＩを生成する。
【００７８】
ステップＳ４０で、機器３００は、自機の状態を、サーバ１００へ送信する。機器３００からサーバ１００への状態の送信は、たとえば、機器３００からサーバ１００に任意の時間ごとに定期的に機器情報を送信する。もしくは機器３００の機器情報が更新された場合のみに、機器３００が、サーバ１００に機器情報を送信するようにしてもよい。
【００７９】
ステップＳ５０で、プロセッサ１５１は、ステップＳ３０で生成したＵＩに、機器の状態を組み込む。そして、制御は、ステップＳ６０へ進められる。
【００８０】
ステップＳ６０で、プロセッサ１５１は、ステップＳ６０で機器の状態を組み込まれたＵＩを、スマートフォン２００へ送信する。
【００８１】
ステップＳ７０で、プロセッサ２５１は、サーバ１００から受信したＵＩをタッチパネル２５５に表示する。そして、制御は、ステップＳ８０へ進められる。
【００８２】
ステップＳ８０で、プロセッサ２５１は、ＵＩに対して、ユーザから機器３００の制御についての指示を受け付ける。そして、プロセッサ２５１は、受け付けた指示に従って、サーバ１００へ、制御指令を送信する。
【００８３】
ステップＳ９０で、プロセッサ１５１は、スマートフォン２００から受信した制御指令を、機器３００へ送信する。
【００８４】
制御指示を送信する方法としては、たとえば２つの例が挙げられる。一つ目の例では、まず機器３００が、サーバ１００に対して、任意の時間ごとに制御指令の有無を確認する信号を送信する。当該信号を受信すると、サーバ１００は、スマートフォン２００から受信した制御指令であって機器３００に未送信の制御指令の有無を判断する。そして、サーバ１００は、そのような制御指令があると判断すれば、機器３００に、当該制御指令を送信する。また、サーバ１００は、そのような制御指令がないと判断すれば、機器３００に、未送信の制御指令が無いことを示す情報を送信する。もう一つの例では、サーバ１００と機器３００が常時接続されている。これにより、サーバ１００と機器３００は、双方向に通信が可能な状態にある。この例では、サーバ１００は、スマートフォン２００から制御指令を受信したことに応じて、機器３００に、当該制御指令を送信する。
【００８５】
図１２は、図１１のステップＳ３０のサブルーチンのフローチャートである。図１２を参照して、図１１のステップＳ３０の処理内容を、より詳細に説明する。
【００８６】
機器のＵＩの生成では、ステップＳ３０２で、プロセッサ１５１は、ステップＳ２０で取得したユーザＩＤに関連付けられた機器のうち、未処理の機器が存在するか否かを判断する。
【００８７】
「関連付けられた」とは、機器ＤＢ１２１において関連付けられていることを意味する。たとえば、図３のテーブルＴ１において、ユーザＩＤ「１」のユーザに関連付けられた機器は、機器ＩＤ「１」〜「４」の機器である。また、「未処理」とは、まだステップＳ３０４以降の処理の対象となっていないことを意味する。
【００８８】
プロセッサ１５１は、そのような機器があると判断すると（ステップＳ３０２で「ＹＥＳ」）、ステップＳ３０４へ制御を進める。一方、ステップＳ２０で取得したユーザＩＤに関連付けられた機器のすべてがステップＳ３０４以降の処理対象となったと判断すると（ステップＳ３０２で「ＮＯ」）、プロセッサ１５１は、図１１のステップＳ３０へ制御を戻す。
【００８９】
ステップＳ３０４では、プロセッサ１５１は、未処理の機器から１つの機器を選択する。たとえば、プロセッサ１５１は、未処理の機器のうち、機器ＩＤの値が最も小さい機器を選択する。そして、制御は、ステップＳ３０６へ進められる。以降の説明では、ここで選択された機器を、処理対象の機器と称することがある。
【００９０】
ステップＳ３０６では、プロセッサ１５１は、機器ＤＢ１２１から、処理対象の機器の機器種別を取得する。より具体的には、プロセッサ１５１は、機器ＤＢ１２１から処理対象の機器の機器種別を読み出して、ＲＡＭ１５３へロードする。そして、制御は、ステップＳ３０８へと進められる。
【００９１】
ステップＳ３０８では、プロセッサ１５１は、ステップＳ３０６で取得した機器種別に対応するテンプレートが存在するか否かを判断する。より具体的には、プロセッサ１５１は、機器種別テンプレートＤＢ１１１において、ステップＳ３０６で取得した「機器種別」に対応するテンプレートを検索する。そして、プロセッサ１５１は、そのようなテンプレートが存在すると判断すると（ステップＳ３０８で「ＹＥＳ」）、当該テンプレートを取得して、ステップＳ３１０へ制御を進める。一方、プロセッサ１５１は、そのようなテンプレートは存在しないと判断すると（ステップＳ３０８で「ＮＯ」）、ステップＳ３１２へ制御を進める。
【００９２】
ステップＳ３１０では、プロセッサ１５１は、ステップＳ３０８で取得したテンプレートを、スマートフォン２００に送信されるデータであってＵＩを表示するためのデータ（送信用データ）に組み合わせる。そして、制御は、ステップＳ３１２へ進められる。
【００９３】
ステップＳ３１２では、プロセッサ１５１は、機器ＤＢ１２１から、処理対象の機器のメーカを取得する。より具体的には、プロセッサ１５１は、機器ＤＢ１２１から処理対象の機器のメーカを読み出して、ＲＡＭ１５３へロードする。そして、制御は、ステップＳ３１４へと進められる。
【００９４】
ステップＳ３１４では、プロセッサ１５１は、ステップＳ３１２で取得したメーカに対応するテンプレートが存在するか否かを判断する。より具体的には、プロセッサ１５１は、メーカテンプレートＤＢ１１２において、ステップＳ３０６で取得した「機器種別」およびステップＳ３１２で取得した「メーカ」に対応するテンプレートを検索する。そして、プロセッサ１５１は、そのようなテンプレートが存在すると判断すると（ステップＳ３１４で「ＹＥＳ」）、当該テンプレートを取得して、ステップＳ３１６へ制御を進める。一方、プロセッサ１５１は、そのようなテンプレートは存在しないと判断すると（ステップＳ３１４で「ＮＯ」）、ステップＳ３１８へ制御を進める。
【００９５】
ステップＳ３１６では、プロセッサ１５１は、ステップＳ３１４で取得したテンプレートを、送信用データに組み合わせる。そして、制御は、ステップＳ３１８へ進められる。
【００９６】
ステップＳ３１８では、プロセッサ１５１は、機器ＤＢ１２１から、処理対象の機器のシリーズを取得する。より具体的には、プロセッサ１５１は、機器ＤＢ１２１から処理対象の機器のシリーズを読み出して、ＲＡＭ１５３へロードする。そして、制御は、ステップＳ３２０へと進められる。
【００９７】
ステップＳ３２０では、プロセッサ１５１は、ステップＳ３１８で取得したシリーズに対応するテンプレートが存在するか否かを判断する。より具体的には、プロセッサ１５１は、シリーズテンプレートＤＢ１１３において、ステップＳ３０６で取得した「機器種別」とステップＳ３１２で取得した「メーカ」とステップＳ３１８で取得した「シリーズ」とに対応するテンプレートを検索する。そして、プロセッサ１５１は、そのようなテンプレートが存在すると判断すると（ステップＳ３２０で「ＹＥＳ」）、当該テンプレートを取得して、ステップＳ３２２へ制御を進める。一方、プロセッサ１５１は、そのようなテンプレートは存在しないと判断すると（ステップＳ３２０で「ＮＯ」）、ステップＳ３２４へ制御を進める。
【００９８】
ステップＳ３２２では、プロセッサ１５１は、ステップＳ３２０で取得したテンプレートを、送信用データに組み合わせる。そして、制御は、ステップＳ３２４へ進められる。
【００９９】
ステップＳ３２４では、プロセッサ１５１は、機器ＤＢ１２１から、処理対象の機器のモデルを取得する。より具体的には、プロセッサ１５１は、機器ＤＢ１２１から処理対象の機器のモデルを読み出して、ＲＡＭ１５３へロードする。そして、制御は、ステップＳ３２６へと進められる。
【０１００】
ステップＳ３２６では、プロセッサ１５１は、ステップＳ３２４で取得したモデルに対応するテンプレートが存在するか否かを判断する。より具体的には、プロセッサ１５１は、モデルテンプレートＤＢ１１４において、ステップＳ３０６で取得した「機器種別」とステップＳ３１２で取得した「メーカ」とステップＳ３１８で取得した「シリーズ」とステップＳ３２５で取得した「モデル」とに対応するテンプレートを検索する。そして、プロセッサ１５１は、そのようなテンプレートが存在すると判断すると（ステップＳ３２６で「ＹＥＳ」）、当該テンプレートを取得して、ステップＳ３２８へ制御を進める。一方、プロセッサ１５１は、そのようなテンプレートは存在しないと判断すると（ステップＳ３２６で「ＮＯ」）、ステップＳ３０２へ制御を戻す。
【０１０１】
ステップＳ３２８では、プロセッサ１５１は、ステップＳ３２６で取得したテンプレートを、送信用データに組み合わせる。そして、制御は、ステップＳ３０２へ戻される。
【０１０２】
以上、図１２を参照して説明された処理によれば、機器情報に含まれる項目のそれぞれに関連付けられたテンプレートが取得される。テンプレートそれぞれは、機器情報の項目のそれぞれに関連付けられて、テンプレートＤＢ１１０に格納されている。テンプレートの取得は、階層の高い項目に関連付けられたものから順に、実施される。取得されたテンプレートは、それまでに取得されたテンプレートと組み合わされることにより、機器のＵＩを表示させるためのデータに利用される。
【０１０３】
新たに取得されたテンプレートを、それまで取得されたテンプレートに「組み合わせる」ことは、新たに取得されたテンプレートをそれまで取得されたテンプレートに追加すること（後述する図２０等を参照）、および、新たに取得されたテンプレートをそれまで取得されたテンプレートの一部と置換すること（後述する図１８等を参照）を含む。なお、本明細書において、テンプレートを「組み合わせる」ことは、あるテンプレートの記述に他のテンプレートの記述の全部または一部を追加することを含む。また、テンプレートを「組み合わせる」ことは、あるテンプレートから、他のテンプレートの記述に従った態様で記述を削除することも含む。
【０１０４】
＜送信用データおよびＵＩの具体例＞
次に、送信用データの具体例とＵＩの具体例を説明する。この具体例では、ＵＩは、機器のそれぞれに対応する表示と、各機器に対応する表示に移行するための表示とを含む。本明細書では、後者の表示を、前者の表示と区別するために、「メインウィンドウ」と呼ぶ。
【０１０５】
（１）  メインウィンドウ
図１３は、タッチパネル２５５に表示されるメインウィンドウの一例である。図１３のメインウィンドウ５００は、図３のテーブルＴ１上のユーザＩＤ「１」のユーザが操作するスマートフォン２００のタッチパネル２５５における表示の一例である。
【０１０６】
メインウィンドウ５００は、ボタン６００，７００，８００，９００を含む。ボタン６００は、機器ＩＤ「１」に関するＵＩ（図１４参照）を表示させるためのボタンである。ボタン７００は、機器ＩＤ「２」に関するＵＩ（図１７参照）を表示させるためのボタンである。ボタン８００は、機器ＩＤ「３」に関するＵＩ（図１９参照）を表示させるためのボタンである。ボタン９００は、機器ＩＤ「４」に関するＵＩ（図２１参照）を表示させるためのボタンである。
【０１０７】
（２）  機器ＩＤ「１」のＵＩ
図１４は、機器ＩＤ「１」のＵＩの具体例を示す図である。機器ＩＤ「１」のＵＩは、図１４に示された、３つの表示６００Ａ，６００Ｂ，６００Ｃを含む。
【０１０８】
表示６００Ａ，６００Ｂ，６００Ｃは、フィールド６１０，６２０，６３０，６４０を含む。フィールド６１０は、機器のラベル（図３のテーブルＴ１参照）と機器情報を表示するための領域である。フィールド６２０は、表示モードを表示するための領域である。フィールド６３０は、機器の状態を表示するための領域である。フィールド６４０は、制御指令についての情報を表示するための領域である。
【０１０９】
フィールド６２０は、表示６００Ａ，６００Ｂ，６００Ｃに対応する３つの表示モード（「電源」「モード」「温度」）の名称を表示する。表示モード「電源」は、機器の電源のＯＮ／ＯＦＦ状態を表示するためのモードである。表示モード「モード」は、機器の動作モードを表示するためのモードである。表示モード「温度」は、機器の動作に対する設定温度を表示するためのモードである。表示６００Ａは、表示モード「電源」に対応する。表示６００Ｂは、表示モード「モード」に対応する。表示６００Ｃは、表示モード「温度」に対応する。
【０１１０】
表示６００Ａ，６００Ｂ，６００Ｃにおいて、フィールド６２０は、表示モード「電源」に対応するボタン６２１と、表示モード「モード」に対応するボタン６２２と、表示モード「温度」に対応するボタン６２３とを含む。タッチパネル２５５では、ボタン６２１，６２２，６２３のいずれかが操作されると、表示６００Ａ，６００Ｂ，６００Ｃの中から操作されたボタンに対応するものが表示される。フィールド６２０では、ボタン６２１，６２２，６２３のうち、タッチパネル２５５における表示対象のボタンは、他のボタンと異なる態様（たとえば、異なる色）で表示される。つまり、ボタン６２１，６２２，６２３のうち、表示６００Ａではボタン６２１が、表示６００Ｂではボタン６２２が、表示６００Ｃではボタン６２３が、他の２つのボタンとは異なる態様で表示されている。
【０１１１】
フィールド６３０は、上記したように機器の状態を表示する。より具体的には、表示モード「電源」に対応する表示６００Ａでは、フィールド６３０には、機器の電源のＯＮ／ＯＦＦの状態が示される。さらに具体的には、表示６００Ａのフィールド６３０では、機器の電源状態が「ＯＮ」であることが示されている。表示モード「モード」に対応する表示６００Ｂでは、フィールド６３０には、機器の運転状態（冷房運転か暖房運転か）が示される。より具体的には、表示６００Ｂのフィールド６３０では、機器が冷房運転していることが示されている。表示モード「温度」に対応する表示６００Ｃでは、フィールド６３０には、機器に対する設定温度が表示される。より具体的には、表示６００Ｃのフィールド６３０には、機器に対する設定温度が「２６℃」であることが示されている。
【０１１２】
フィールド６４０は、上記したように機器の制御指令についての情報が表示される。より具体的には、表示６００Ａのフィールド６４０には、機器の電源をＯＮするためのボタン６４１と、機器の電源をＯＦＦするためのボタン６４２とが示されている。なお、フィールド６４０では、現在の機器の状態に対応するボタンは、残りのボタンとは異なる態様で表示される。より具体的には、表示６００Ａでは、機器のＯＮ状態に対応するボタン６４１は、ＯＦＦ状態に対応するボタン６４２と異なる色で、表示されている。
【０１１３】
表示６００Ｂのフィールド６４０には、機器の運転状態を変更するためのボタン６４１とボタン６４２とが表示される。表示６００Ｂでは、ボタン６４１は、冷房運転に対応するボタンである。ボタン６４２は、暖房運転に対応するボタンである。現在の運転状態に対応するボタン６４１は、ボタン６４２とは異なる態様（異なる色）で表示されている。
【０１１４】
表示６００Ｃのフィールド６４０には、機器に対する設定温度を変更するためのボタン６４１とボタン６４２が表示される。表示６００Ｃでは、ボタン６４１は設定温度を上昇させるためのボタンである。ボタン６４２は、設定温度を低下させるためのボタンである。表示６００Ｃでは、ボタン６４１とボタン６４２のいずれも、現在の機器の状態を示していない。したがって、いずれのボタンも、同様に表示されている。
【０１１５】
（３）  機器ＩＤ「１」のＵＩを表示させるためのデータ
図１４のＵＩを表示させるためのデータ（送信用データ）の一例について、説明する。図１５は、機器ＩＤ「１」のＵＩのための送信用データの一例を示す図である。図１５に示されたデータの少なくとも一部は、テンプレートＤＢ１１０に格納されたテンプレートを含む。図１６は、テンプレートＤＢ１１０に格納されているテンプレートの一例を示す図である。
【０１１６】
図１６には、機器種別テンプレートＤＢ１１１に格納されるテンプレートtemp001が示されている。テンプレートtemp001は、ECHONET  Lite（登録商標）のデータフォーマットに従ったデータである。「statusName」というタグを先頭とする３つの部分を含む。１つ目の部分は、「"statusName":"電源"」で始まる３行である。２つ目の部分は、「"statusName":"モード"」で始まる３行である。３つ目の部分は、「"statusName":"温度"」で始まる３行である。
【０１１７】
通信システム１において、ＵＩを表示させるためのデータ（送信用データ）は、機器の機器情報に対応するテンプレートと、機器の状態を示す情報とを含む。図１４の画面を表示させるための送信用データは、図３のテーブルＴ２から理解されるようにテンプレートtemp001を利用して生成され、さらに、機器３１０の状態を示すデータを利用して生成される。これに対応して、図１５に示されるデータＤＡ１０は、テンプレートtemp001に加えて、機器３１０の状態を示すデータ（図１５中の部分Ｐ１５）を含む。また、データＤＡ１０は、機器３１０の機器ＩＤとラベルに対応するデータ（図１５中の部分Ｐ１０）をさらに含む。
【０１１８】
（４）  機器ＩＤ「２」のＵＩ
図１７は、機器ＩＤ「２」のＵＩの具体例を示す図である。機器ＩＤ「２」のＵＩは、図１７に示された、３つの表示７００Ａ，７００Ｂ，７００Ｃを含む。
【０１１９】
表示７００Ａ，７００Ｂ，７００Ｃは、図１４の表示６００Ａ，６００Ｂ，６００Ｃと同様に、フィールド６１０，６２０，６３０，６４０を含む。
【０１２０】
図１４の表示６００Ａ，６００Ｂ，６００Ｃのフィールド６１０が、機器ＩＤ「１」のラベル（子供部屋エアコン）および機器情報の機器種別以外の部分（Ｍ０）を表示していたのに対し、図１７の表示７００Ａ，７００Ｂ，７００Ｃのフィールド６１０は、機器ＩＤ「２」のラベル（寝室エアコン）および機器情報の機器種別以外の部分（Ｍ１，Ｓ２，Ｃ１）を表示する。
【０１２１】
表示７００Ａ，７００Ｂ，７００Ｃのフィールド６２０は、表示６００Ａ，６００Ｂ，６００Ｃのフィールド６２０と同様に、３つの表示モードに対応するボタン６２１，６２２，６２３を含む。表示７００Ａは、ボタン６２１に対応する。表示７００Ｂは、ボタン６２２に対応する。表示７００Ｃは、ボタン６２３に対応する。
【０１２２】
表示７００Ａ，７００Ｂ，７００のフィールド６３０は、表示６００Ａ，６００Ｂ，６００のフィールド６３０と同様に、各表示モードに対応する機器の状態を表示する。
【０１２３】
表示７００Ａ，７００Ｂ，７００のフィールド６４０は、表示６００Ａ，６００Ｂ，６００のフィールド６４０と同様に、各表示モードに対応する機器制御指令についての情報を表示する。ただし、表示６００Ｂのフィールド６４０がボタン６４１とボタン６４２を含んでいたのに対し、表示７００Ｂのフィールド６４０は、ボタン６４３をさらに含む。このことは、ＵＩを表示するためのデータの差異に基づく。ＵＩを表示するためのデータの差異に基づく表示内容の差異については、図１８等を参照して、後述する。
【０１２４】
（５）機器ＩＤ「２」のＵＩを表示させるためのデータ
図１７のＵＩを表示させるための送信用データの一例について、説明する。図１８は、機器ＩＤ「２」のＵＩのための送信用データの一例を示す図である。図１８に示されるデータＤＡ２０は、機器ＩＤ「２」（機器３２０）の、機器ＩＤとラベルに対応するデータ（部分Ｐ２０）と、機器の状態に対応するデータ（部分Ｐ２５）とを含む。データＤＡ２０の構成を、機器ＩＤ「２」の送信用データが生成される際に用いられるテンプレートの種類の観点から、説明する。
【０１２５】
図３のテーブルＴ２から理解されるように、機器ＩＤ「２」のＵＩを表示させるためのデータは、テンプレートtemp001とテンプレートtemp101とテンプレートtemp202とが利用されて生成される。図１６には、メーカテンプレートＤＢ１１２に格納されるテンプレートtemp101、および、シリーズテンプレートＤＢ１１３に格納されるテンプレートtemp202の具体例が示されている。
【０１２６】
図１６から理解されるように、テンプレートtemp101は、「"statusName":"モード"」で始まる３行の記述を含む。当該記述は、テンプレートtemp001内の「"statusName":"モード"」で始まる３行の記述と比較して、部分Ｐ２で示される「"name":"自動"」という記載をさらに含む。このことに対応して、図１８に示されるデータＤＡ２０では、部分Ｐ２２として示されるように、テンプレートtemp001に対して部分Ｐ０２に対応するデータが追加されている。このことに応じて、図１７の表示７００Ｂでは、「"statusName":"モード"」で始まる３行の記述に対応するフィールド６４０は、表示６００Ｂのフィールド６４０が含むボタン６４１，６４２に加えて、ボタン４６３をさらに含む。つまり、ボタン４６３は、部分Ｐ２２に対応して表示される。
【０１２７】
プロセッサ１５１は、ステップＳ３１６（図１２参照）において、テンプレートtemp101中の「"statusName":"モード"」で始まる３行の記述と、テンプレートtemp001中の「"statusName":"モード"」で始まる３行の記述とを比較し、これらの差分（部分Ｐ０２）を抽出する。そして、当該差分を、すでに生成されている送信用データに追加することにより、データＤＡ２０を生成する。
【０１２８】
データＤＡ２０が部分Ｐ２２を含むことは、スマートフォン２００から送信される制御指令の内容にも影響を与える。具体的には、機器ＩＤ「１」のＵＩでは、動作モードとして、ボタン６４１に対応する「冷房」、または、ボタン６４２に対応する「暖房」の制御指令を送信できる。一方、機器ＩＤ「２」のＵＩでは、動作モードとして、ボタン６４１に対応する「冷房」、ボタン６４２に対応する「暖房」、または、ボタン６４３に対応する「自動」の制御指令を送信できる。
【０１２９】
また、図１６から理解されるように、テンプレートtemp202では、テンプレートtemp001と比較して、「"statusName":"温度"」で始まる３行の記述の一部が異なる。より具体的には、制御指令が対応する温度の範囲についての記述が、テンプレートtemp001では部分Ｐ０１で示されるように「"min":"20","max":"28"」であるのに対し、テンプレートtemp202では部分Ｐ０３で示されるように「"min":"18","max":"30"」である。前者は、温度範囲が２０℃から２８℃であることを示すのに対し、後者は、温度範囲が１８℃から３０℃であることを示す。図１８のデータＤＡ２０では、テンプレートtemp001における温度範囲に対応する部分が、部分Ｐ２３で示されるように、テンプレートtemp202の温度範囲に対応する部分に置換されている。
【０１３０】
このことに応じて、図１４の表示６００Ｃ（機器ＩＤ「１」のＵＩ）では２０℃から２８℃の間で温度を指定できるのに対し、図１７の表示６００Ｃ（機器ＩＤ「２」のＵＩ）では１８℃から３０℃の間で温度を指定できる。
【０１３１】
（６）機器ＩＤ「３」のＵＩ
図１９は、機器ＩＤ「３」のＵＩの具体例を示す図である。機器ＩＤ「３」のＵＩは、図１９に示される、表示８００Ａ，８００Ｂ，８００Ｃ，８００Ｄを含む。
【０１３２】
表示８００Ａ，８００Ｂ，８００Ｃ，８００Ｄは、図１４の表示６００Ａ，６００Ｂ，６００Ｃと同様に、フィールド６１０，６２０，６３０，６４０を含む。
【０１３３】
図１４の表示６００Ａ，６００Ｂ，６００Ｃのフィールド６１０では、機器ＩＤ「１」のラベル（子供部屋エアコン）および機器情報の機器種別以外の部分（Ｍ０）が表示されていた。これに対応して、図１９の表示８００Ａ，８００Ｂ，８００Ｃ，８００Ｄのフィールド６１０は、機器ＩＤ「３」のラベル（リビングエアコン）および機器情報の機器種別以外の部分（Ｍ１，Ｓ２，Ｃ２）を表示する。
【０１３４】
図１４の表示６００Ａ，６００Ｂ，６００Ｃのフィールド６２０が３つのボタン６２１，６２２，６２３を含むのに対し、表示８００Ａ，８００Ｂ，８００Ｃ，８００Ｄのフィールド６２０は、４つのボタン６２１，６２２，６２３，６２４を含む。ボタン６２１は、表示８００Ｄに対応するボタンであり、表示モード「除菌」に対応するボタンである。つまり、機器ＩＤ「３」のＵＩは、機器ＩＤ「１」のＵＩに対して、表示モードが１つ多い。このような表示の差異は、図２０等を参照して後述される。
【０１３５】
（７）機器ＩＤ「３」のＵＩを表示させるためのデータ
図２０は、機器ＩＤ「３」のＵＩの送信用データの一例を示す図である。図２０に示されるデータＤＡ３０は、機器ＩＤ「３」（機器３３０）の、機器ＩＤとラベルに対応するデータ（部分Ｐ３０）と、機器の状態に対応するデータ（部分Ｐ３５）とを含む。データＤＡ３０の構成を、機器ＩＤ「３」の送信用データが生成される際に用いられるテンプレートの種類の観点から、説明する。
【０１３６】
図３のテーブルＴ２から理解されるように、機器ＩＤ「３」のＵＩを表示させるためのデータは、機器ＩＤ「２」のＵＩを表示させるためのデータと同様に、テンプレートtemp001とテンプレートtemp101とテンプレートtemp202とが利用されて生成される。これにより、データＤＡ３０は、図１８のデータＤＡ２０の部分Ｐ２２，Ｐ２３に相当する、部分Ｐ３２，Ｐ３３を含む。
【０１３７】
機器ＩＤ「３」のＵＩを表示させるためのデータは、さらに、テンプレートtemp302を利用されて生成される。図１６には、テンプレートtemp302の具体例が示されている。
【０１３８】
テンプレートtemp302は、「"statusName":"除菌"」で始まる３行の記述を含む。当該記述は、テンプレートtemp001における、「statusName」というタグを先頭とする３つの部分と並列する記述である。このことから、プロセッサ１５１は、ステップＳ３２８（図１２参照）において、テンプレートtemp302中の「"statusName":"除菌"」で始まる３行の記述を、すでに生成されている送信用データに追加することにより、データＤＡ３０を生成する。
【０１３９】
これにより、データＤＡ３０に基づいて表示されるＵＩは、表示モード「除菌」に対応する表示（図１９の表示８００Ｄ）を含む。表示８００Ｄは、表示モード「除菌」のＵＩであり、除菌動作のＯＮ／ＯＦＦを切り替えるためのＵＩである。これにより、スマートフォン２００から機器３３０に対して除菌モードについての制御指令を送信できる。
【０１４０】
（８）機器ＩＤ「４」のＵＩ
図２１は、機器ＩＤ「４」のＵＩの具体例を示す図である。機器ＩＤ「４」のＵＩは、図２１に示される、表示９００Ａ，９００Ｂ，９００Ｃを含む。
【０１４１】
表示９００Ａ，９００Ｂ，９００Ｃは、図１４の表示６００Ａ，６００Ｂ，６００Ｃと同様に、フィールド６１０，６２０，６３０を含む。
【０１４２】
図１４の表示６００Ａ，６００Ｂ，６００Ｃのフィールド６１０では、機器ＩＤ「１」のラベル（子供部屋エアコン）および機器情報の機器種別以外の部分（Ｍ０）が表示されていた。これに対応して、図２１の表示９００Ａ，９００Ｂ，９００Ｃのフィールド６１０は、機器ＩＤ「４」のラベル（空気清浄機）および機器情報の機器種別以外の部分（Ｍ１，Ｓ２，Ｃ２）を表示する。
【０１４３】
表示９００Ａ，９００Ｂは、図１４の表示６００Ａ，６００Ｂと同様に、フィールド６４０を含む。しかしながら、図１９の表示６００Ｃがフィールド６４０を含むのに対し、表示９００Ｃは、フィールド６４０を含まない。表示９００Ｃは、表示モード「湿度」に対応する表示である。表示９００Ｃのフィールド６３０には、機器３４０における湿度の検出値が表示されている。そして、表示９００Ｃがフィールド６４０を含まないことは、スマートフォン２００から機器３４０に対して、湿度の設定についての制御指令を送信できないことを意味する。
【０１４４】
＜スマートフォン２００から送信される制御指令＞
図２２は、スマートフォン２００からサーバ１００へ送信されるデータ構成の一例を示す図である。図２２のデータＤＡ５０は、機器を制御するための汎用の通信プロトコルに従ったデータであり、機器を特定する部分Ｐ５１と、制御指令を構成する部分Ｐ５２とを含む。
【０１４５】
データＤＡ５０を受信したサーバ１００は、機器３００の中の部分Ｐ５１で特定される機器に対して、部分Ｐ５２を送信する。なお、部分Ｐ５２のデータは、サーバ１００と機器との間での通信仕様に基づいて加工されて、サーバ１００から機器に送信され得る。たとえば、サーバ１００が機器とマークアップ言語で通信する場合には、部分Ｐ５１は、当該マークアップ言語で宛先等を特定する記述が追加されて、サーバ１００から機器へと送信される。
【０１４６】
［実施の形態２］
実施の形態１のスマートフォン２００では、機器３００のそれぞれについて、表示モードごとのＵＩが表示される。たとえば、機器ＩＤ「１」について、図１４に示されたように、表示モード「電源」に対応する表示６００Ａと、表示モード「モード」に対応する表示６００Ｂと、表示モード「温度」に対応する表示６００Ｃとが表示される。実施の形態１では、これらの複数のＵＩのいずれかが、互いに切り替えられるようにタッチパネル２５５に表示された。
【０１４７】
実施の形態２では、表示６００Ａ，６００Ｂ，６００Ｃの中の２以上の表示が同時に表示され得る。これにより、ユーザは、制御指令を送信し得る項目について、より多くの選択肢を同時に提供される。
【０１４８】
［実施の形態３］
実施の形態１では、表示モードごとに１つの表示（表示６００Ａ、表示６００Ｂ、または、表示６００Ｃ）が定義された。実施の形態３では、各表示モードにおいて、２以上の設定内容のそれぞれに対応する表示が定義される。図２３は、実施の形態３における、表示モード「電源」のためのＵＩの一例を示す図である。表示モード「電源」は、２つの設定内容（「電源：ＯＮ」と「電源：ＯＦＦ」）に対応する。図２３の表示６０１Ａは、設定内容「電源：ＯＮ」に対して定義される。図２３の表示６０１Ｂは、設定内容「電源：ＯＦＦ」に対して定義される。表示６０１Ａと表示６０１Ｂについて、より具体的に説明する。
【０１４９】
表示６０１Ａは、図１４の表示６００Ａにおいてボタン６４１が操作された状態に対応する。表示６０１Ａのフィールド６３０には、ボタン６４１に対応する状態「ＯＮ」が表示されている。表示６０１Ｂは、図１４の表示６００Ａにおいてボタン６４２が操作された状態に対応する。表示６０１Ｂのフィールド６３０には、ボタン６４２に対応する状態「ＯＦＦ」が表示されている。
【０１５０】
実施の形態１の表示６００Ａでは、ボタン６４１とボタン６４２との間で設定内容が切り替えられると、ボタン６４１とボタン６４２の中で表示態様を変更されるボタンが切り替えられた。これに対し、実施の形態３では、このような切り替えがＵＩを表示６０１Ａと６０２Ａとの間で切り替えられる。
【０１５１】
実施の形態３では、図１４の表示６００Ａが、図２３に示された表示６０１Ａと表示６０２Ａとによって置換され得る。実施の形態１では、フィールド６４０に２つの設定内容のそれぞれに対応するボタン６４１，６４２を表示させることが必要とされたが、実施の形態３では、フィールド６４０には表示６０１Ａと表示６０２Ａとの間で表示を切り替えるための単一のボタン６４３のみが表示されればよい。
【０１５２】
実施の形態３では、表示モード「電源」だけでなく他の表示モードについても、設定内容ごとにＵＩを表示することができる。図２４は、実施の形態３に従った、他の表示モードのＵＩの例を示す図である。実施の形態３の表示モード「電源」のためのＵＩは、図２４の表示６０１Ｂと表示６０２Ｂとを含む。表示６０１Ｂは、図１４の表示６００Ｂにおいてボタン６４１が操作された状態に対応する。表示６０１Ｂのフィールド６３０には、ボタン６４１に対応する状態「冷房」が表示されている。表示６０２Ｂは、図１４の表示６００Ｂにおいてボタン６４２が操作された状態に対応する。表示６０２Ｂのフィールド６３０には、ボタン６４２に対応する状態「暖房」が表示されている。つまり、図１４の表示６００Ｂは、図２４の表示６０１Ｂと表示６０２Ｂとによって置換され得る。
【０１５３】
［実施の形態４］
実施の形態４では、上位の階層のテンプレートと下位の階層のテンプレートを組み合わせることが、前者に後者の記述を追加することだけでなく、後者において指定される情報に従って前者から記述が削除されることを含む。実施の形態４は、たとえば、同じメーカの同じシリーズの機器において、後続のモデルで一部の機能が削除された場合に対応する。また、実施の形態４は、ある機器種別において、新たに発売された特定のメーカの機器が、すでに多くのメーカの機器が対応している機能に対応していない場合でも、当該特定のメーカの機器のために新たにテンプレートを準備することなく、当該機器に対応するＵＩをスマートフォン２００に表示させることができる。以下、実施の形態４において生成される送信用データについて、説明する。
【０１５４】
図２５は、実施の形態４のテンプレートＤＢ１１０に格納されているテンプレートの変形例を示す図である。実施の形態４では、パラメータ「exclude」が、上位のテンプレートの記述の一部を削除するためのパラメータとして利用される。
【０１５５】
図２５では、図１６と同様に、機器種別テンプレートＤＢ１１１に格納されるテンプレートの一例として「temp001」が示され、メーカテンプレートＤＢ１１２に格納されるテンプレートの一例として「temp101」が示され、シリーズテンプレートＤＢ１１３に格納されるテンプレートの一例として「temp202」が示され、そして、モデルテンプレートＤＢ１１４に格納されるテンプレートの一例として「temp302」が示されている。
【０１５６】
テンプレートＤＢ１１０では、機器種別テンプレートＤＢ１１１は、機器情報の最上位の項目に関連付けられたテンプレートを格納する。また、テンプレートＤＢ１１０では、格納されるテンプレートが関連付けられる機器情報の項目が高い順に、メーカテンプレートＤＢ１１２、シリーズテンプレートＤＢ１１３、モデルテンプレートＤＢ１１４と並ぶ。そして、実施の形態４では、メーカテンプレートＤＢ１１２、シリーズテンプレートＤＢ１１３、モデルテンプレートＤＢ１１４のそれぞれに格納されているテンプレートは、パラメータ「exclude」についての記述を含む。
【０１５７】
図２５において、パラメータ「exclude」についての記述は、「temp101」の中では、部分Ｐ９１として示されている。「temp202」の中では、部分Ｐ９２として示されている。部分Ｐ９１および部分Ｐ９２には、「"exclude":"false"」と記述されている。「temp302」の中では、部分Ｐ９３として示されている。部分Ｐ９３には、「"exclude":"true"」と記述されている。
【０１５８】
パラメータ「exclude」は、上位のテンプレートの記述を削除するためのパラメータである。あるテンプレートにおいてパラメータ「exclude」の値が「true」であるとき（「"exclude":"true"」）、当該テンプレートにおいて指定される情報が、上位のテンプレートから削除される。一方、あるテンプレートにおいてパラメータ「exclude」の値が「false」であるとき（「"exclude":"false"」）、当該テンプレートにおいて指定される情報が、上位のテンプレートに追加される。「追加」は、記述を追加することに加え、数値の範囲等の上書きを含む。
【０１５９】
パラメータ「exclude」は、上位のテンプレートとの関係を示すパラメータである。機器種別テンプレートＤＢ１１１内のテンプレートは、最上位の項目に関連付けられているため、パラメータ「exclude」についての記述を含まない。
【０１６０】
図２５に示されたテンプレートを利用して生成された送信用データの具体例を説明する。図２６は、実施の形態１において説明された機器ＩＤ「３」のＵＩのための送信用データが図２５に示されたテンプレートを利用して作成された場合の、当該送信用データの具体例を示す図である。
【０１６１】
機器ＩＤ「３」のＵＩのための送信用データは、機器種別「エアコンディショナ」に対応するテンプレート（temp001）と、メーカ「Ｍ１」に対応するテンプレート（temp101）と、シリーズ「Ｓ２」に対応するテンプレート（temp202）と、モデル「Ｃ２」に対応するテンプレート（temp302）とを用いて生成される。
【０１６２】
図２６に示されるデータＤＡ６０は、機器ＩＤ「３２」（機器３３０）の、機器ＩＤとラベルに対応するデータ（部分Ｐ１０１）と、機器の状態に対応するデータ（部分Ｐ１０３）とを含む。
【０１６３】
図２５に示された「temp101」は、表示モードとして、「自動」「冷房」および「暖房」を含む記述である。一方、「temp101」は、表示モードとして、「冷房」と「暖房」を含む記述である。図２５において部分Ｐ９１として示されるように、「temp101」のパラメータ「exclude」の値は「false」である。このため、データＤＡ６０には、「temp001」における表示モードについての記述に対して、「temp101」と「temp001」の差分が追加される。この差分は、データＤＡ６０において、部分Ｐ１０２として示されている。部分Ｐ１０２は、表示モード「自動」に対応する記述である。
【０１６４】
図２５に示された「temp202」は、表示モードとして、「除菌」を含む記述である。一方、「temp202」よりも上位の階層のテンプレートを組み合わされた記述は、「temp101」と「temp101」のいずれかに含まれる表示モード、つまり、「自動」「冷房」および「暖房」を含む。図２５において部分Ｐ９２として示されるように、「temp202」のパラメータ「exclude」の値は「false」である。このため、「temp001」と「temp101」が組み合わされたところに、さらに「temp202」が組み合わされた送信用データでは、表示モードとして、さらに「除菌」が追加される。
【０１６５】
図２５に示された「temp302」は、表示モード「除菌」についての記述である。なお、図２５において部分Ｐ９３として示されるように、「temp302」のパラメータ「exclude」の値は「true」である。このため、「temp001」と「temp101」と「temp202」とが組み合わされたところに、さらに「temp302」が組み合わされた送信用データでは、表示モードとして、「除菌」が削除される。このため、図２６に示されたデータＤＡ６０は、表示モードとして、部分Ｐ１０２として示されているように「自動」を含み、さらに、部分Ｐ１０４として示されているように「冷房」と「暖房」とを含むが、「除菌」は含まない。
【０１６６】
［実施の形態５］
実施の形態５のサーバ１００は、２以上の機器３００を一括して制御するためのＵＩをスマートフォン２００へ提供できる。より具体的には、サーバ１００は、２以上の機器３００のそれぞれの送信用データを生成する。そして、それらの共通する部分を用いて当該２以上の機器３００を一括して制御するための送信用データを生成し、スマートフォン２００へ送信する。以下に、実施の形態５における処理の流れを、より具体的に説明する。
【０１６７】
サーバ１００は、実施の形態１において説明されたように、スマートフォン２００を操作するユーザに関連付けられた複数の機器３００のそれぞれの送信用データを生成する。そして、サーバ１００は、当該複数の機器３００の送信用データを、スマートフォン２００へ送信する。ここで使用される「複数」という文言は、上記した「２以上」と等しいまたはこれを超える数を意味する。
【０１６８】
スマートフォン２００では、特定のメニューが選択されると、２以上の機器３００を指定するためのＵＩが表示される。図２７および図２８は、２以上の機器３００を指定するためのＵＩの一例を示す図である。
【０１６９】
図２７の表示１５００は、ボタン１６００，１７００，１８００とボタン１０００を含む。実施の形態５において、ボタン１６００は、機器３１０に対応する。ボタン１７００は、機器３２０に対応する。ボタン１８００は、機器３４０に対応する。ボタン１６００は、欄１６０１を含む。ボタン１７００は、欄１７０１を含む。ボタン１８００は、欄１８０１を含む。ボタン１６００と欄１６０１は、機器３１０に対応する。ボタン１７００と欄１７０１は、機器３２０に対応する。ボタン１８００と欄１８０１は、機器３４０に対応する。欄１６０１，１７０１，１８０１は、一括した操作指示の送信の対象とされる機器を指定するために操作される。ボタン１０００は、欄１６０１，１７０１，１８０１における指定を確定させるために操作される。
【０１７０】
図２８の表示１５００は、欄１６０１と欄１７０１とが操作された状態が示されている。これにより、機器３１０と機器３２０とが指定される。
【０１７１】
図２９は、スマートフォン２００において、２以上の機器３００を一括して制御するために表示されるＵＩの一例を示す図である。図２９の表示６０３Ａ，６０３Ｂ，６０３Ｃは、機器３１０と機器３２０とを一括して制御するためのＵＩである。
【０１７２】
表示６０３Ａは、機器３１０に対応する表示６００Ａ（図１４参照）と機器３２０に対応する表示７００Ａ（図１７参照）との間の共通部分を表示する。表示６００Ａと表示７００Ａとでは、フィールド６２０，６３０，６４０の表示内容は共通する。したがって、表示６０３Ａのフィールド６２０，６３０，６４０の表示内容は、表示６００Ａおよび表示７００Ａの各フィールドの表示内容と共通する。表示６０３Ａのフィールド６１０には、文字列「一括表示」と、表示６０３Ａによる表示の対象となる機器のラベル（図３参照）とが表示される。
【０１７３】
表示６０３Ｂは、機器３１０に対応する表示６００Ｂ（図１４参照）と機器３２０に対応する表示７００Ｂ（図１７参照）との間の共通部分を表示する。表示６００Ｂのフィールド６４０は、表示７００Ｂのフィールド６４０に含まれるボタン６４３を含まない。したがって、表示６０３Ａのフィールド６４０は、表示６００Ｂのフィールド６４０と表示７００Ｂのフィールド６４０の双方に含まれるボタン６４１，６４２のみを含み、ボタン６４３を含まない。
【０１７４】
表示６０３Ｃは、機器３１０に対応する表示６００Ｃ（図１４参照）と機器３２０に対応する表示７００Ｃ（図１７参照）との間の共通部分を表示する。表示６００Ｃと表示７００Ｃとでは、フィールド６２０，６３０，６４０の表示内容は共通する。したがって、表示６０３Ｃのフィールド６２０，６３０，６４０の表示内容は、表示６００Ｃおよび表示７００Ｃの各フィールドの表示内容と同じである。
【０１７５】
図３０は、２以上の機器３００を指定するためのＵＩの他の例を示す図である。図２８の表示１５００は、欄１６０１と欄１８０１とが操作された状態が示されている。これにより、機器３１０と機器３４０とが指定される。
【０１７６】
図３１は、スマートフォン２００において、２以上の機器３００を一括して制御するために表示されるＵＩの他の例を示す図である。図３１の表示６０４は、機器３１０と機器３４０とを一括して制御するためのＵＩである。
【０１７７】
機器３１０のＵＩは、図１４に示された表示６００Ａ，６００Ｂ，６００Ｃである。機器３４０のＵＩは、図２１に示された表示９００Ａ，９００Ｂ，９００Ｃである。機器３１０と機器３４０とでは、機器種別が異なる。そして、機器３１０に対する制御指令と機器３４０に対する制御指令との間では、電源のＯＮ／ＯＦＦを指示する指令のみが共通する。このことから、表示６０４は、機器３１０および機器３４０についての、電源のＯＮ／ＯＦＦの状態のみに関する情報を表示する。
【０１７８】
より具体的には、表示６０４は、フィールド６１０，６２０，６３０，６４０を含む。表示６１０のフィールド６１０には、文字列「一括制御」と、機器３１０および機器３４０のラベル（図３参照）とが表示される。表示６１０のフィールド６２０には、表示モード「電源」についてのボタン６２１のみが表示される。表示６１０のフィールド６３０には、機器３１０および機器３４０の電源のＯＮ／ＯＦＦ状態が表示される。表示６１０のフィールド６４０には、機器３１０および機器３４０の電源状態を制御するためのボタン６４１，６４２が表示される。
【０１７９】
［実施の形態６］
実施の形態１では、図２等に示されたように、テンプレートＤＢ１１０がサーバ１００に格納されていた。実施の形態６では、テンプレートＤＢ１１０は、サーバ１００と離間した記憶装置に格納される。図３２は、実施の形態６の通信システム１の機能的な概略構成を表した図である。
【０１８０】
図３２に示されるように、実施の形態６では、サーバ１００は、記憶装置２００１，２００２を含む複数の記憶装置と、通信可能である。記憶装置２００１は、たとえば、機器３００のあるメーカ（図３２では「メーカ（１）」と記載される）が所有するサーバ装置である。記憶装置２００２は、たとえば、機器３００の別のメーカ（図３２では「メーカ（２）」と記載される）が所有するサーバ装置である。
【０１８１】
実施の形態６では、サーバ１００は、機器種別に共通するテンプレートのみが格納される。つまり、サーバ１００には、機器種別テンプレートＤＢ１１１（図３参照）のみが格納される。そして、記憶装置２００１，２００２等の、サーバ１００と離間した記憶装置には、各メーカの機器についての、メーカテンプレートＤＢ１１２，シリーズテンプレートＤＢ１１３，モデルテンプレートＤＢ１１４が格納される。
【０１８２】
このようなテンプレートの格納形態に対応して、プロセッサ１５１は、図１２に示された処理におけるデータの検索対象を適宜変更する。より具体的には、ステップＳ３０８では、プロセッサ１５１は、サーバ１００内の機器種別テンプレートＤＢ１１１を対象としてテンプレートを検索する。そして、ステップＳ３１４，ステップＳ３２０，ステップＳ３２６では、プロセッサ１５１は、記憶装置２００１，２００２等の記憶装置の中から、ステップＳ３１２で取得したメーカに対応する記憶装置におけるメーカテンプレートＤＢ１１２，シリーズテンプレートＤＢ１１３，モデルテンプレートＤＢ１１４を対象としてテンプレートを検索する。
【０１８３】
各メーカの機器に対応するテンプレートが、各メーカの所有する記憶装置に格納されるように構成されることにより、機器の最新のテンプレートがより早期に各記憶装置に格納され得る。これにより、実施の形態６の通信システム１では、スマートフォン２００に、より確実に、機器についての最新のＵＩを提供できる。
【０１８４】
［実施の形態の効果］
ある局面に従うと、サーバ１００が提供される。サーバ１００は、情報処理装置（スマートフォン２００）と通信するための通信装置（通信ＩＦ１５７）と、プロセッサ１５１と、操作対象の機器３００を特定するための情報を記憶するように構成された記憶手段（ＲＡＭ１５３）とを備える。機器３００を特定するための情報は、２以上の項目を含み、２以上の項目は、階層的に配列されている。２以上の項目の各々は、機器３００を操作するためのユーザインタフェースのテンプレートに関連付けられている。プロセッサ１５１は、機器３００を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を生成し、かつ、通信装置（通信ＩＦ１５７）を用いて、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を情報処理装置（スマートフォン２００）に送信するように構成されている。
【０１８５】
これにより、機器のユーザインタフェースは、２以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
【０１８６】
好ましくは、プロセッサは、２以上のテンプレートを、各テンプレートが関連付けられた項目の階層の配列に従って組み合わせるように構成されている（実施の形態４）。
【０１８７】
これにより、上位のテンプレートに対して、下位のテンプレートに従った追加や削除などの修正することにより、ユーザインタフェースを表示するためのデータを生成できる。
【０１８８】
好ましくは、データ（送信用データ）を生成することは、２以上の項目の各々にそれぞれ関連付けられたテンプレートの中の、上位の階層に対応するテンプレートの少なくとも一部を、下位の階層に対応するテンプレートの一部に対応する部分（部分Ｐ０１）と置換することを含む。
【０１８９】
これにより、ある機器のＵＩを、他の機器と共通するテンプレートに当該機器に対応する部分を組み合わせて、生成することができる。
【０１９０】
好ましくは、データ（送信用データ）を生成することは、２以上の項目の各々にそれぞれ関連付けられたテンプレートの中の、上位の階層に対応するテンプレートに、下位の階層のテンプレート（テンプレートtemp302）を追加することを含む。
【０１９１】
これにより、ある機器のＵＩを、他の機器と共通するテンプレートに当該機器に対応する部分を組み合わせて、生成することができる。
【０１９２】
好ましくは、プロセッサ１５１は、２以上の機器３００のユーザインタフェースのデータ（送信用データ）から共通する部分を抽出することにより、２以上の機器３００を一括して操作するためのユーザインタフェース（図２９の表示６０３Ａ，６０３Ｂ，６０３Ｃ、図３１の表示６０４）を表示するためのデータ（送信用データ）をさらに生成するように構成されている。
【０１９３】
これにより、機器を特定する情報に対応するテンプレートを利用して、ユーザに対し、より利便性の高いユーザインタフェースを提供することができる。
【０１９４】
好ましくは、サーバ１００は、テンプレートを格納するための記憶装置ＨＤＤ１５４をさらに備える。
【０１９５】
これにより、外部の記憶装置へのアクセスの不通等により、サーバ１００のプロセッサ１５１がテンプレートを取得できない事態を回避できる。これにより、サーバ１００は、より確実に、情報処理装置にユーザインタフェースを提供できる。
【０１９６】
好ましくは、２以上の項目は、機器３００の機能に基づく種類を特定するための第１の項目（機器種別）と、機器３００の製造元を特定するための第２の項目（メーカ）とを含む。第２の項目は、第１の項目よりも下位の階層に位置付けられている。
【０１９７】
これにより、サーバは、送信用データの中の、機器の種類ごとに共通する部分を共通するテンプレートを用いて生成し、メーカごとに異なる部分をメーカごとに準備されたテンプレートを用いて生成できる。
【０１９８】
好ましくは、通信装置（通信ＩＦ１５７）は、機器３００と通信可能である。プロセッサ１５１は、通信装置（通信ＩＦ１５７）を介して取得した機器３００の状態を当該機器３００のユーザインタフェースを表示するためのデータ（送信用データ）に組み込むように構成されている。
【０１９９】
これにより、サーバ１００は、情報処理装置に、より多くの有効な情報を提供できる。
他の局面に従うと、機器３００を操作するためのユーザインタフェースを表示するためのデータ（送信用データ）を情報処理装置（スマートフォン２００）に提供するためのサーバ１００のプロセッサ１５１によって実行される当該サーバ１００の制御方法が提供される。制御方法は、操作対象の機器３００を特定するための情報を、メモリにロードするステップ（図１２のステップＳ３０６，ステップＳ３１２，ステップＳ３１８，ステップＳ３２４）を備える。機器３００を特定するための情報は、２以上の項目を含む。２以上の項目は、階層的に配列されている。２以上の項目の各々は、ユーザインタフェースのテンプレートに関連付けられている。制御方法は、機器３００を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を生成するステップ（図１２のステップＳ３１０，ステップＳ３１６，ステップＳ３２２，ステップＳ３２８）と、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を情報処理装置（スマートフォン２００）に送信するステップ（図１１のステップＳ６０）とをさらに備える。
【０２００】
これにより、機器のユーザインタフェースは、２以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
【０２０１】
さらに他の局面に従うと、機器３００を操作するためのユーザインタフェースを表示するためのデータ（送信用データ）を情報処理装置（スマートフォン２００）に提供するために、サーバ１００のプロセッサ１５１によって実行される当該サーバ１００の制御プログラムが提供される。制御プログラムは、プロセッサ１５１に、操作対象の機器３００を特定するための情報を、メモリにロードするステップ（図１２のステップＳ３０６，ステップＳ３１２，ステップＳ３１８，ステップＳ３２４）を実行させる。機器３００を特定するための情報は、２以上の項目を含む。２以上の項目は、階層的に配列されている。項目の各々は、ユーザインタフェースのテンプレートに関連付けられている。制御プログラムは、プロセッサ１５１に、機器３００を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を生成するステップ（図１２のステップＳ３１０，ステップＳ３１６，ステップＳ３２２，ステップＳ３２８）と、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を情報処理装置（スマートフォン２００）に送信するステップ（図１１のステップＳ６０）とをさらに実行させる。
【０２０２】
これにより、機器のユーザインタフェースは、２以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
【０２０３】
さらに他の局面に従うと、情報処理装置（スマートフォン２００）と、機器３００を操作するためのユーザインタフェースを表示するためのデータ（送信用データ）を情報処理装置（スマートフォン２００）に提供するためのサーバ１００とを備える通信システムが提供される。サーバ１００は、情報処理装置（スマートフォン２００）と通信するための通信装置（通信ＩＦ１５７）と、プロセッサ１５１と、操作対象の機器３００を特定するための情報を記憶するための記憶手段（ＲＡＭ１５３）とを含む。機器３００を特定するための情報は、２以上の項目を含む。２以上の項目は、階層的に配列されている。２以上の項目の各々は、機器３００を操作するためのユーザインタフェースのテンプレートに関連付けられている。プロセッサ１５１は、機器３００を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を生成し、かつ、通信装置（通信ＩＦ１５７）を用いて、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を情報処理装置（スマートフォン２００）に送信するように構成されている。情報処理装置（スマートフォン２００）は、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を、サーバ１００から受信するように構成された送受信部（通信ＩＦ２５７）と、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）に基づいて、当該機器３００のユーザインタフェースを表示するように構成された表示部（タッチパネル２５５）とを含む。
【０２０４】
これにより、機器のユーザインタフェースは、２以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、予め格納されることを必要とされるテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
【０２０５】
好ましくは、送受信部（通信ＩＦ２５７）は、一括して操作する対象となる２以上の機器３００を指定する情報を、サーバ１００に送信するように構成され、通信装置（通信ＩＦ１５７）は、２以上の機器３００を指定する情報を受信するように構成されている。プロセッサ１５１は、２以上の機器３００を指定する情報によって指定される機器３００のそれぞれのユーザインタフェースのデータ（送信用データ）から共通する部分を抽出することにより、２以上の機器３００を一括して操作するためのユーザインタフェースを表示するためのデータ（送信用データ）を生成するように構成されている。通信装置（通信ＩＦ１５７）は、２以上の機器３００を一括して操作するためのユーザインタフェースを表示するためのデータ（送信用データ）を、情報処理装置（スマートフォン２００）に送信するように構成されている。表示部（タッチパネル２５５）は、２以上の機器３００を一括して操作するためのユーザインタフェースを表示するためのデータ（送信用データ）に基づいて、２以上の機器３００を一括して操作するためのユーザインタフェースを表示するように構成されている。
【０２０６】
これにより、機器を特定する情報に対応するテンプレートを利用して、ユーザに対し、より利便性の高いユーザインタフェースを提供することができる。
【０２０７】
さらに他の局面に従うと、サーバ１００と通信可能な情報処理装置（スマートフォン２００）が提供される。情報処理装置（スマートフォン２００）は、機器３００を特定するための情報に含まれる２以上の項目の各々にそれぞれ関連付けられたテンプレートを組み合わせることにより生成された、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）を、サーバ１００から受信するように構成された送受信部（通信ＩＦ２５７）と、機器３００のユーザインタフェースを表示するためのデータ（送信用データ）に基づいて、当該機器３００のユーザインタフェースを表示するように構成された表示部（タッチパネル２５５）とを含む。
【０２０８】
これにより、機器のユーザインタフェースは、２以上のテンプレートが組み合わされることによって生成され、予め格納されることを必要とされるテンプレートの数は、機器の種類の数よりも少ない数とされ得る。したがって、情報処理装置は、記憶装置において予め格納されることを必要とするテンプレートの数を、制御対象とされることが予定される機器の数よりも少なく抑えることができる。
【０２０９】
好ましくは、送受信部（通信ＩＦ２５７）は、一括して操作する対象となる２以上の機器３００を指定する情報を、サーバ１００に送信し、かつ、２以上の機器３００を一括して操作するためのユーザインタフェースを表示するためのデータ（送信用データ）を、サーバ１００から受信するように構成されている。表示部（タッチパネル２５５）は、２以上の機器３００を一括して操作するためのユーザインタフェースを表示するためのデータ（送信用データ）に基づいて、２以上の機器３００を一括して操作するためのユーザインタフェースを表示するように構成されている。
【０２１０】
これにより、情報処理装置は、ユーザにとってより利便性の高いユーザインタフェースを取得できる。
【０２１１】
今回開示された実施の形態およびその変形例はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。実施の形態のそれぞれにおいて開示された技術は、可能な限り、単独でも組み合わせても実施され得ることが意図される。
【符号の説明】
【０２１２】
１  通信システム、１００  サーバ、１１０  テンプレートデータベース、１２０  情報データベース、１５１，２５１  プロセッサ、１５３，２５３  ＲＡＭ、１５６，２５６  スイッチ、１５８，２５８  電源回路、１５９  モニタ、１６０  操作キー、２００  スマートフォン、２５２  ＲＯＭ、２５４  メモリ、２５５  タッチパネル、３００，３１０，３２０，３３０，３４０  機器。
【図１】
0005852066.tif 000002
【図２】
0005852066.tif 000003
【図３】
0005852066.tif 000004
【図４】
0005852066.tif 000005
【図５】
0005852066.tif 000006
【図６】
0005852066.tif 000007
【図７】
0005852066.tif 000008
【図８】
0005852066.tif 000009
【図９】
0005852066.tif 000010
【図１０】
0005852066.tif 000011
【図１１】
0005852066.tif 000012
【図１２】
0005852066.tif 000013
【図１３】
0005852066.tif 000014
【図１４】
0005852066.tif 000015
【図１５】
0005852066.tif 000016
【図１６】
0005852066.tif 000017
【図１７】
0005852066.tif 000018
【図１８】
0005852066.tif 000019
【図１９】
0005852066.tif 000020
【図２０】
0005852066.tif 000021
【図２１】
0005852066.tif 000022
【図２２】
0005852066.tif 000023
【図２３】
0005852066.tif 000024
【図２４】
0005852066.tif 000025
【図２５】
0005852066.tif 000026
【図２６】
0005852066.tif 000027
【図２７】
0005852066.tif 000028
【図２８】
0005852066.tif 000029
【図２９】
0005852066.tif 000030
【図３０】
0005852066.tif 000031
【図３１】
0005852066.tif 000032
【図３２】
0005852066.tif 000033