近年、環境保護のためのCO2の削減や電力料金の削減、電力不足への対策のためのエネルギーマネジメントシステムが注目を集めている。このようなエネルギーマネジメントシステムの一形態として、家庭のエネルギーマネジメントを行うホームエネルギーマネジメントシステム(HEMS)がある。HEMSは、制御・状態監視のために宅内の機器同士を接続するホームネットワーク技術をベースとして構成される。
一方で、ネットワークに接続している機器の種類が増え、エネルギーマネジメントのほかにもホームネットワークによるサービスも多様化していることから、より簡単にホームネットワークを構築したいという要求が増えている。このようなホームネットワークを実現する規格として、例えば、ECHONETコンソーシアムが定めたECHONET規格及びECHONET Lite規格がある。ECHONET Lite規格では、ECHONET規格で定めていたECHONETアドレス等の機器識別に関わる情報や手順の規定が削除されるとともに、利用可能な下位通信層についても規定が削除されているため、開発者はよりシンプルに、任意の通信を用いて対応機器を実現することが可能になっている。しかし、これによってECHONET Lite規格では任意の下位通信層が適用可能なため、機器類を制御するコントローラ側では、統一的に機器の識別・管理を行うことが困難になっている。
以下、本発明を実施するための形態について図面を用いて説明する。なお、図面において、同一符号は、同一または相当部分を示す。また、本発明は、図示例に限定されるものではない。
本実施例は、ECHONET Liteにおける機器管理方法について説明する。
<システム構成>
図1は、本実施例のシステム構成の例である。
<各装置の構成ブロック>
1はユーザ宅、2は通信サービスプロバイダが提供するアクセスネットワーク、3は、アクセスネットワークや拠点をつなぐインターネット、4はインターネット上のサーバである。また、5及び6は電力会社などが運営する無線または有線アクセスネットワーク、7は電力会社の運営するメータリングデータ管理システムMDMS(Meter Data Management System)である。
ユーザ宅1において、51はEthernet(登録商標)で構成された有線LAN(Local Area Network)で接続された宅内ネットワーク、52は無線LAN(802.11)で接続された宅内ネットワーク、53はIEEE802.15.4で構成された無線PAN(Personal Area Network)で接続された宅内ネットワークである。
100は接続されたネットワーク上の機器を管理する通信装置、200は通信装置またはサーバと接続して機器の状態を表示したり、機器の操作画面を表示する表示端末、300はネットワーク接続機能付エアコン、350はネットワーク接続機能無エアコン、400は電力量メータ、450はガスメータ、500は温度・湿度などを計測するセンサ、550は分電盤、600は蓄電池、650は照明、700は太陽光発電システムである。
また、10は通信装置100に接続して宅内ネットワーク53への接続機能を提供するUSB(Universal Serial Bus)アダプタ、20はエアコン350に接続して宅内ネットワーク51への接続機能を提供するアダプタ、30は、分電盤550における電力量を計測し、その結果を宅内ネットワーク51を介して通信装置100に送信する計測装置、40はガスメータ450に接続して宅内ネットワーク53への接続機能を提供するアダプタである。
宅内ネットワーク51には、通信装置100と、デジタルテレビ250と、アダプタ20を介してエアコン350と、計測装置30と、蓄電池600と、照明650と、太陽光発電システム700が接続され、相互にデータの送受信を行うことにより、情報取得及び操作ができる。
宅内ネットワーク52には、通信装置100と、表示端末200と、エアコン300が接続され、相互にデータの送受信を行うことにより、情報取得及び操作ができる。
宅内ネットワーク53には、通信装置100と、電力メータ400と、アダプタ40を介してガスメータ450と、センサ500がUSBアダプタ10を介して接続され、相互にデータの送受信を行うことにより、ネットワークを介しての情報取得及び操作ができる。
通信装置100がユーザ宅1の各機器とのデータ送受信により取得した情報は、インターネット3を介してサーバ4に送信され、サーバ4に蓄積される。ユーザは、表示端末200やデジタルテレビ250を利用することで、蓄積された情報を閲覧できる。
ここで、図1では、宅内ネットワーク51におけるハブや、宅内ネットワーク52、または53における中継器については図示していないが、必要に応じて接続されているものとする。また、ここでは、通信装置100が直接アクセスネットワーク2に接続しているが、ルータなどを介してアクセスネットワークに接続してもよい。
また、図1では電力線は図示していないが、各機器は電力線で分電盤に接続され、分電盤は電力線で電力メータに接続され、電力系統から電力供給を受けているものとする。
本実施例では、ユーザ宅1内の宅内ネットワーク51、アクセスネットワーク2、インターネット3、宅内ネットワーク52においては、ネットワークプロトコルとしてIP(Internet Protocol)を使用し、上位のトランスポートプロトコルにはUDP(User Datagram Protocol)やTCP(Transmission Control Protocol)を用いる。なお、IPにはバージョンの違いとしてIPv4とIPv6が有るが、本実施例は、そのどちらかに限定される物ではない。また、宅内ネットワーク53においてもUDP/IPv6を用いるが、無線区間における伝送効率化のためにヘッダ圧縮などを行う6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)を使用したZigbee(登録商標)−IP(以下、ZigbeeIP)のようなプロトコルを用いる。このような、各ネットワークの物理層等L4以下の諸元により規定されるネットワークプロトコルスタックを下位通信層と呼ぶ。各種の情報や操作要求の伝送には更に上位のアプリケーションプロトコルとしては、基本的にECHONET Liteが使用されるものとするが、これに限らず、UPnP(Universal Plug and Play)や独自のプロトコルを用いてもよいものとする。
図2は、通信装置100のハードウェア構成例を示すブロック図である。
通信装置100は、制御部101、記憶部102、時刻管理部103、USBインタフェース(I/F)104、有線LAN I/F105、無線LAN I/F106、WAN(Wide Area Network)107から構成する。
制御部101は、OS(Operating System)の実行を行い通信装置100内の他の構成要素を制御する。また、アプリケーションの実行処理を行い、宅内ネットワークで接続された他の機器やアクセスネットワークを介して接続されたサーバへのデータ送受信指示を行うなどして通信装置100を機能させる。
記憶部102は、揮発性メモリおよび不揮発性メモリで構成する。不揮発性メモリにはOSやアプリケーションなどの通信装置100を動作させるためのソフトウェアや固定データを格納する。揮発性メモリにはソフトウェアの動作に必要なデータなどを一時的に格納する。また、制御部101の指示に従い、接続された機器の情報など、指示されたデータを保持する。
時刻管理部103は、RTC(Real Time Clock)を備え、アクセスネットワーク12あるいはインターネット13上に存在するNTP(Network Time Protocol)サーバが提供する時刻情報を利用して、時刻を管理する。NTPとは、ネットワークに接続される機器において、機器が持つ時計を正しい時刻に同期するためのプロトコルである。
USB I/F104はUSBI/Fを備える別のUSB機器を接続するインタフェースである。USB機器として、特定のネットワークに接続するネットワークインタフェースデバイスが接続された場合には、USB I/F104は前記特定のネットワークに接続する通信インタフェースとしての機能を提供する。制御部101の指示によってUSB接続された機器との間でデータの送受信を行う。
有線LAN I/F105は、制御部101の指示によって宅内ネットワーク51に接続された機器との間でデータの送受信を行う。
無線LAN I/F106は、制御部101の指示によって宅内ネットワーク52に接続された機器との間でデータの送受信を行う。
WAN I/F107は、制御部101の指示によってアクセスネットワーク2を介してインターネットに接続されたサーバなどとの間でデータの送受信を行う。WAN I/F107は、Ethernetなどの有線通信部、または3G、WiMAX(Worldwide Interoperability for Microwave Access)(登録商標)、LTE(Long Term Evolution)などの無線通信部として構成される。
図3は、通信装置100のソフトウェア構成例を示すブロック図である。
通信装置100の機能を実現する制御ソフトウェア1000は、通信装置100の記憶部102に展開され制御部101で実行される。図3は、機能的にブロックに分割して記載されており、各ブロックの分割、統合はあり得る。また制御ソフトウェア7000は、1つのプログラムで実現する必要はなく、2以上のプログラムの組合せによって実現してもよい。
制御ソフトウェア1000は、ユーザ空間1100内のJava(登録商標) VM(Virtual Machine)1110、OSGi(Open Service Gateway Initiative) フレームワーク1120、下位通信層バンドル1210、ECHONET Liteバンドル1300、機器管理バンドル1410、エアコン制御用の機器制御バンドル1420、カーネル空間1500内のTCP(UDP)/IP処理部1510、ブリッジ1520、Ethernet Driver1600a、無線LAN Driver1600bから構成する。
OSGiフレームワーク1120は様々なソフトウェア部品(バンドル)のダウンロード、インストール、実行といったライフサイクルの管理やバンドルが提供する機能インタフェース(サービス)の管理機能を提供する。OSGiフレームワーク1120は、Javaベースのソフトウェアコンポーネント化技術であり、OSGiフレームワーク1120上で動作するソフトウェアはバンドルともいう。OSGiフレームワーク1120上で動作するバンドルにはHTTPサーバ(World Wide Webによる情報送信機能を持ったコンピュータ。Webサーバともいう。)やUPnP(Universal Plug and Playの略。家庭内のパソコンや周辺機器、AV機器、電話、家電製品などの機器をネットワークを通じて接続し、相互に機能を提供しあうための技術仕様。)に対応した機器の管理・制御といった、OSGiサービス基盤に含まれる標準バンドルと、OSGiサービス基盤の手法にのっとって実装されたユーザバンドルとがある。
下位通信バンドル1210は、Java VM1110及びカーネル空間1500のTCP(UDP)/IP処理部1510を介して、Ethernetで構成された宅内ネットワーク51に接続された機器との間で、データ送受信を行う。また、ネットワークにデータを創出するためのサービスとして、下位通信層インタフェースサービスをOSGiフレームワーク1120に登録し、他のバンドルに提供する。ここでは、下位通信層バンドル1210はブリッジ1520上でUDP/IP/Ethernetまたは無線LANネットワークにデータ送受信を行うが、別の下位通信層を利用する場合は、別途当該下位通信層に対応した下位通信バンドル1210を用意すればよい。同じハードウェアを利用する場合でも、異なるプロトコルでデータを送受信する場合は、別の下位通信バンドル1210を用意すればよい。このように、下位通信バンドル1210を準備することによってECHONET Liteバンドルは下位通信層を意識することなく、それぞれのネットワークに接続された機器とECHONET Liteによる通信ができる。
また、例えば異なるプロトコルで受信した電文を下位通信バンドル1210でECHONET Lite電文に変換することで前記異なるプロトコルで接続された機器も同様に操作することができる。
ECHONET Liteバンドル1300は、ECHOENT Lite電文の解析及び生成を行い、通信装置100とネットワークを介して接続されたECHONET Lite機器の検出・切断、制御、イベント通知を行い、当該機能を機器制御バンドル1420aのようなアプリケーションバンドルに提供する。また、ネットワークから受信したECHONET Lite電文を受け付けるためのサービスとして、ECHONET Lite受信・解析サービスをOSGiフレームワーク1120に登録し、他のバンドルに提供する。また、機器を操作するためのサービスとして、新しく検出した機器に対応するECHONET LiteデバイスサービスをOSGiフレームワーク1120に登録し、他のバンドルに提供する。
機器管理バンドル1410は、通信装置100のネットワーク状態及びネットワークで新規に検出した機器の監視を行い、必要に応じてサーバから対応する機器制御バンドル1420または下位通信層バンドル1210をダウンロードし、ダウンロードしたバンドルをOSGiフレームワーク1120に登録する。
機器制御バンドル1420は、ユーザまたは他のアプリケーションの指示に従い、ECHONET Liteデバイスサービスを利用してECHONET Liteバンドル1300を介して、ネットワークで接続されたエアコン300または350の制御を行う。機器制御バンドル1420は、制御対象の機器毎に準備してもよいし、一つの機器制御バンドルが、複数の機器を制御できてもよい。
TCP(UDP)/IP処理部1510は、ユーザ空間1100の任意アプリケーションの指示に従って、TCP/IPまたはUDP/IPのパケットを解析・構成する機能を有し、Ethernet Driver1600のようなネットワークドライバを介してネットワーク上の機器と前記パケットの送受信を行う。
ブリッジ1520は、Ethernet Driver1600aと無線LAN Driver1600bを接続し、上位のアプリケーション等にLAN I/F105と無線LAN I/F106を一つのネットワークデバイスとするインタフェースを提供する。
Ethernet Driver1600aは、ブリッジ1520を介してTCP(UDP)/IP処理部1510からの指示に従い、有線LAN I/F105を操作して宅内ネットワーク51へのデータ送受信を行う。
無線LAN Driver1600bは、ブリッジ1520を介してTCP(UDP)/IP処理部1510からの指示に従い、無線LAN I/F106を操作して宅内ネットワーク51へのデータ送受信を行う。
図4は、ECHONET Liteバンドル及び下位通信層バンドルの構成例を示すブロック図である。
ECHONET Liteバンドル1300は、ECHONET Lite機器管理部1310とECHONET Lite通信処理部1320から構成する。
ECHONET Lite機器管理部1310は、ネットワークに接続されたECHONET Lite機器の検出・管理等を行う機能ブロックであり、機器操作インタフェース1311、他機器操作・管理部1312、自機器操作・管理部1313から構成する。
機器操作インタフェース1311は、ネットワークに接続されたECHONET Lite機器への情報取得・制御指示などの操作を行うためにアプリケーションが利用する操作用インタフェースであり、ECHONET Lite機器であればエアコン、照明などの機器の種類に関わらず共通の形式でアクセスできるように定義する。
他機器操作・管理部1312は、機器操作インタフェース1311の他機器の操作を実行する部分であり、電文生成・送信部1321を呼び出して他機器との間でECHONET Lite電文送受信を行うよう指示する。電文送信においては、目的のネットワークにデータ送信が可能な下位通信層バンドルのサービスをOSGiフレームワーク1120から取得する。また、受信した電文を基に識別情報を生成し、機器を操作するためのサービスをOSGiフレームワーク1120に登録する。
自機器操作・管理部1313は、通信装置100自身がECHONET Lite機器として動作するための各種設定情報等を管理し、アプリケーションからの指示に応じて前記設定情報等の変更・提示を行う。また、ECHONET Liteバンドル1300の自機器操作・管理部1313が、下位通信層バンドル1210から電文を受信するために電文受信・解析部1322のオブジェクトをノードオブジェクトとして生成するとともに、自機器がコントローラとして動作するためにコントローラオブジェクトを生成し、前記電文受信・解析部1322に登録する。また、下位通信層バンドル1210がネットワークから受信した電文を受け取るため機能を提供するため、電文受信・解析部1322をECHONET Lite受信・解析サービスとしてOSGiフレームワーク1120に登録する。また、ネットワークで接続された機器からの通信装置100自身に対する要求を受信し、必要に応じて各種設定情報の変更や、下位通信層バンドル1210を介して前記ネットワークで接続された機器への応答を行う。
ECHONET Lite通信処理部1320はECHONET Lite電文の生成・解析等を行う機能ブロックであり、電文生成・送信部1321、電文受信・解析部1322、下位通信層抽象化インタフェース1323から構成する。
電文生成・送信部1321は他機器操作・管理部1312の指示によりECHONET Lite電文を構成し、所望のネットワークに前記生成した電文を送信するために、下位通信層抽象化インタフェース1323で定義されたインタフェースに従って、下位通信層バンドル1210へのデータ送信を行う。
電文受信・解析部1322は、下位通信層バンドル1210を介して他機器から受信したECHONET Lite電文を解析し、ECHONET Lite機器管理部1310に送信する。
下位通信層抽象化インタフェース1323は、ECHONET Liteバンドル1300と下位通信層バンドル1210がネットワークに送受信するECHONET Lite電文をやり取りするためのデータ送受信用インタフェースであり、各宅内ネットワークの下位通信層に関わらず共通の形式でアクセスできるように定義する。下位通信層抽象化インタフェース1323は、ECHONET Liteバンドル1300を通信路に関わらず利用可能にするための仕組みであり、下位通信層に依存しない抽象的なネットワークインタフェースを規定するものである。ここでは、通信用リソース(ソケットやCOMポート)の確保、各種プロトコルやデバイス実装に依存したパケット化などは、前記下位通信層抽象化インタフェース1323を実装したバンドル(本実施例では、下位通信層バンドル1210)にて対応するものとし、L4層以下とECHONET Liteバンドルを切り離し、異なる下位通信層のネットワークインタフェースが複数存在する場合も対応可能にする。また、前記下位通信バンドルをOSGiサービスとして提供することで、下位通信層そのものの動的な着脱にも対応するものとする。例えば、UDP/ZigbeeIPに対応したUSBデバイスを挿入した際、それに対応した下位通信ソフトウェアバンドルをダウンロードして実行する仕組みを作りこむことで、以降、当該インタフェース(USB−UDP/ZigbeeIP)を経由した機器の操作が可能になる。
下位通信層バンドル1210は、受信部1211、送信部1213、プロトコル変換部1220から構成する。
受信部1211は、Java VM1110及びカーネル空間1500のTCP(UDP)/IP処理部1510を介して、ネットワークからUDP/IP/Ethernetパケットを受信し、前記UDPパケットから取り出したECHONET Lite電文をECHONET Liteバンドル1300の下位通信層抽象化インタフェース1323を介して電文受信・解析部1322に送信する。本実施例では、TCP(UDP)/IP処理部1510が下位通信層におけるヘッダ類の除去を行うが、受信部1211は、必要に応じて下位通信層におけるヘッダの除去などを行ってもよい。
また、受信部1211はアドレス取得部1212を備え、受信したUDPパケットの送信元アドレス情報を取得し、ECHONET Lite電文と一緒に電文受信・解析部1322に送信する。ここでのアドレス情報とは、IPアドレスとMACアドレスのいずれか1つ、または両方である。MACアドレスの取得については、例えばIPv4であればカーネル空間1500で管理されるARP(Address Resolution Protocol)テーブルを参照して取得することができる。また、IPv6でも同様に、カーネル空間1500で管理される近隣キャッシュ(neighbor chache)を参照して取得することができる。
送信部1213は、ECHONET Liteバンドル1300の下位通信層抽象化インタフェース1323を介して受信したECHONET Lite電文を、Java VM1110及びカーネル空間1500のTCP(UDP)/IP処理部1510を介してUDP/IP/Ethernetパケットとしてネットワークに送信する。また、ECHONET Liteバンドル1300がECHONET Lite電文をネットワークへ送信する機能を提供するため、送信部1213を下位通信層インタフェースサービスとしてOSGiフレームワーク1120に登録する。
プロトコル変換部1220は、ECHONET Liteとは異なるL5以上のプロトコルで受信した電文をECHONET Lite電文に変換する。これにより、前記異なるプロトコルで接続された機器も同様にECHONET Liteバンドルの提供するサービスを使って操作することができるようになる。このとき、プロトコル変換部1220にて、前記異なるプロトコルで接続している機器の機器オブジェクトを生成し、管理する構成とし、ECHONET Liteバンドル1300の指示とは独立して独自に前記機器と通信し、機器オブジェクトのプロパティ情報を更新してもよい。これにより、前記異なるプロトコルで接続された機器も同様にECHONET Liteバンドルの提供するサービスを使って操作することができるようになる。ECHONET Liteとは異なるL5以上のプロトコルとしては、AV(Audio Visual)機器などで広く搭載されているUPnPやガスメータなどのテレメータリングシステムで利用されているUバス、SEP(Smart Energy Profile)2、ECHONETなどがある。
図5は、電文の構成例を示す図である。
ECHONET Lite電文D100は、ヘッダ部D110とデータ部D120から構成される。
ヘッダ部D110は、EHD1D111、EHD2D112、TIDD113から構成される。
データ部D120は、SEOJD121、DEOJD122、ESVD123、OPCD124、プロパティD130から構成される。
プロパティD130は、1つ以上のEPCD131、PDCD132、EDTD133から構成される。
EHD1D111は、ECHONET Liteヘッダ1であり、ECHONETのプロトコル種別を指定する。
EHD2D112は、ECHONET Liteヘッダ2であり、データ部の電文形式を指定する。
TIDD113は、Transaction IDであり、ECHONET Lite通信において、要求送信側が応答受信時に発行した要求と応答を紐付けするために用いる。
SEOJD121は、ECHONET Liteにおいて送信元オブジェクトを示す識別情報である。
DEOJD122は、ECHONET Liteにおいて宛先オブジェクトを示す識別情報である。
ESVD123は、EPCD131で指定されるプロパティに対する操作内容を指定する。
OPCD124は、処理対象プロパティカウンタであり、操作対象となるプロパティの数を指定する。
EPCD131は、ECHONETプロパティコードであり、サービス対象機能を指定する。サービス対象機能とは、電源状態、温度設定などの設定、読み出しなどである。
PDCD132は、プロパティデータカウンタであり、EDTD133のバイト数を指定する。
EDTD133は、ECHONETプロパティ値データであり、各プロパティの具体的設定内容を示す。
ECHONET Lite電文を含むEthernetパケットは下位通信層ヘッダD200と、ECHONET Lite電文D100から構成される。
下位通信層ヘッダD200は、EthenetヘッダD210と、IPヘッダD220と、UDPヘッダD230から構成される。
EthernetヘッダD210はEthernetにおける自機器の識別情報としてSRC MACD211と宛先の識別情報としてDST MACD212を含む。
IPヘッダD220はIPにおける自機器の識別情報としてSRC IPD221と宛先の識別情報としてDST IPD222を含む。
UDPヘッダD230はUDPにおける自機器の識別情報としてSRCポートD231と宛先の識別情報としてDSTポートD232を含む。
図6は、下位通信層抽象化インタフェース1323のパラメータ及び機器管理バンドル1410が提供する機器を操作するためのサービスの識別情報の構成例である。
下位通信層抽象化インタフェース1323のパラメータは、EHCONET Lite電文D301と識別情報D310から構成される。
識別情報D310は、ECHONET Lite電文を送受信する相手のECHONET Lite機器を識別するための識別情報であり、subnetIdD311、identifierD312、isConstD313、isMulticastD314、ipAddressD315、macAddressD316から構成される。
subnetIdD311は、下位通信層バンドル1210の識別情報である。これは、相手機器がどのサブネットに存在する機器かを示す識別情報でもある。ここで、サブネットとは、通信装置100が複数のネットワークに接続されている場合に、それぞれのネットワークで到達可能な範囲を示す。
identifierD312は、下位通信層において、相手機器を識別する識別情報であり、IPアドレス、MACアドレスなどが利用できる。identifierD312を文字列とすれば下位通信層における識別情報の型に依存せずに識別情報を構成でき、ECHONET Liteバンドルやアプリケーションは識別情報の型を意識せずに利用できる。
isConstD313は、identifierD312が可変の情報か、不変の情報かを示すフラグである。例えば、identifierD312としてIPアドレスを使用する場合はfalseに、MACアドレスを使用する場合はtrueにする。これにより、アプリケーションはidentifierD312が可変なものかどうかを把握でき、ユーザにその旨を提示するなど、利用する識別情報に応じた機器管理が可能になる。
isMulticastD314は、ネットワークに送信する際に当該サブネット内のすべての機器への同報とするかどうかを指定するマルチキャストフラグである。同報を指定する場合はtrueに設定する。本フラグにより、ECHONET Liteバンドル1300は下位通信層における同報用アドレス(例えば、ECHONET LiteではIPv4では)を意識することなく、同報によるECHONET Lite電文の送信ができる。
ipAddressD315は、相手機器のIPアドレスである。
macAddressD316は、相手機器のMACアドレスである。
secureD317は、下位通信層のセキュリティ情報である。セキュリティ機能を利用する場合はtrueを、使わない場合はfalseを設定する。ここではセキュリティ機能として、UDP/IPv4の場合には、Layer4(UDP)での暗号化及び改ざん防止機能としてDTLS(Datagram Transport Layer Security)、Layer3(IP)での暗号化及び改ざん防止機能としてIPSec(Secure Architecture for Internet Protocol)などがあるが、ここではどのセキュリティ機能を利用するかは下位通信バンドルが決定し、ECHONET Liteバンドルはセキュリティ機能の有効、無効のみを設定することで、ECHONET Liteバンドルが下位通信バンドルで対応可能なセキュリティ方式を知らなくても、セキュリティ機能を有効にすることができる。secureD317に加え、セキュア方式も併せて受け渡しする情報に加えることで、ECHONET Liteバンドルが選択できるようにしてもよい。
以上のような抽象化したインタフェースとすることで、下位通信層に依存せずECHONET Lite電文を送受信することができる。また、現在規定されていない下位通信層を追加する場合も、ECHONET Liteバンドルに変更を加えることなく、下位通信層バンドルの追加だけで新しい下位通信層を追加することができる。また、IPアドレス、MACアドレスではなく、文字列としてidentifierという文字列領域を識別情報とすることで、ECHONET Liteバンドルやアプリケーションは識別情報の型を意識せず下位通信層に依存しない形で、ネットワークで接続された機器を共通的に識別することができる。
ECHONET Lite機器の識別情報D400は、下位通信層の識別情報であるsubnetIdD311と、下位通信層における相手機器の識別情報であるidentifierD312と相手機器内におけるECHONET Liteオブジェクトの識別情報であるSEOJD121から構成する。機器を操作するためのサービスをOSGiフレームワーク1120に登録する際には、本識別情報をサービスプロパティ(OSGiフレームワーク1120に登録するサービスに対して付与されるサービスに関する情報)として設定する。このように識別情報を構成することにより、機器制御バンドル1420のようなアプリケーションは、操作対象のECHONET Lite機器を一意に特定することが可能になる。ここで、subnetIdD311と、identifierD312とSEOJD121は、別々のプロパティとしてサービスプロパティに登録してもよい。
図7は、OSGiフレームワーク1120で管理するサービス情報の一構成例である。
サービス情報は下位通信層インタフェースサービス管理テーブルT700、ECHONET Lite受信・解析サービス管理テーブルT750、及びデバイスサービス管理テーブルT800、ECHONET Liteイベントリスナーサービス管理テーブルT900から構成される。
下位通信層インタフェースサービス管理テーブルT700は、アドレスT701とサービスプロパティT710から構成される。サービスプロパティT710は、subnetIdT711から構成される。subnetIdT711は、下位通信層インタフェースサービスの識別情報であり、検索Keyとなる文字列として”ENLLowInterface.subnetID”のような文字列を用いる。本実施例では、下位通信層インタフェースサービスとして、レコードT721に”udpip:br0”というsubnetIdのサービスが登録されている。ECHONET Liteバンドル1300は、下位通信層インタフェースサービスが複数存在する場合、”ENLLowInterface.subnetID=udpip:br0”のようなフィルタを作成してOSGiフレームワーク1120から目的のサービスを取得し、所望のネットワークにデータを送信することができる。
ECHONET Lite受信・解析サービス管理テーブルT750は、アドレスT751とサービスプロパティT760から構成される。サービスプロパティT760は、subnetIdT761から構成される。subnetIdT761は、ECHONET Lite受信・解析サービスの識別情報であり、検索Keyとなる文字列として”ENLFrameListener.subnetID”のような文字列を用いる。本実施例では、ECHONET Lite受信・解析サービスとして、レコードT771に”udpip:br0”というsubnetIdのサービスが登録されている。下位通信層バンドル1210は、ECHONET Lite受信・解析サービスが複数存在する場合、”ENLFrameListener.subnetID=udpip:br0”のようなフィルタを作成してOSGiフレームワーク1120からサービスを取得することができる。
ECHONET Liteデバイスサービス管理テーブルT800は、アドレスT801とサービスプロパティT810から構成される。サービスプロパティT810は、object.idT811、DEVICE_CATEGORYT812、classcodeT813、メーカコードT814、識別番号T815、設置場所T816、自機器フラグT817、機器種別(type)T818から構成される。
object.idT811は、ECHONET Liteデバイスサービスの識別情報であり、受信した電文等の情報から生成したECHONET Lite機器の識別情報D400が設定される。
DEVICE_CATEGORYT812は、ECHONET Liteデバイスサービスがサポートする機器の種別を示す識別情報であり、設定値は”ECHONET Lite”固定である。本情報をサービスプロパティとして設定することにより、OSGi標準サービスであるDevice Accessサービスに準拠した機器としてもECHONET Lite機器を利用できる。Device Accessに準拠したサービスが登録されると、Device Accessサービスは対応する機器制御バンドルに対し、該当するデバイスが追加されたということを通知する。機器制御バンドルは、それが制御可能な機器であれば、ユーザや他のアプリケーション向けのインタフェースを提供する、といったことも可能になる。のDEVICE_CATEGORYT812は本実施例では固定値のため、以下の説明では設定内容の説明を省略する。
classcodeT813は、ECHONET Lite機器の機器種別を表す情報であり、受信したECHONET Lite電文に含まれるSEOJの上位2バイトを設定する。
メーカコードT814は、ECHONET Lite機器のメーカを表す情報であり、受信したECHONET Lite電文に含まれるメーカコードを設定する。
識別番号T815は、ECHONET Liteにおける機器の識別情報であり、受信したECHONET Lite電文に含まれる識別情報を設定する。ただし、識別情報は、未設定の場合もあるが、受信した値をそのまま設定する。
設置場所(location)T816は、機器の接地場所であり、受信したECHONET Lite電文に含まれる情報を設定する。ただし、設置場所は、未設定の場合もあるが、受信した値を基に設定を行う。
自機器フラグT817は、当該ECHONET Lite機器が自機器か、ネットワークで接続された他機器かを識別するフラグであり、自機器の場合にはYESを、他機器の場合にはNOを設定する。
機器種別T818は、ECHONET Liteにおける機器の種別を示す情報であり、”一般機器”、”送信専用機器”、”不明”のいずれかを設定する。機器種別T818を登録することにより、機器制御バンドルは、当該機器が操作可能な機器か、通知のみの機器判断することができ、ユーザにその旨を通知することができる。
レコードT821はエアコン300の操作用サービスをECHONET Liteデバイスサービスとして登録する例である。エアコン300は、無線LAN上のUDP/IPで接続しているため、object.idT811には、subnetIdとして”udpip:br0”、identiferとしてエアコン300のMACアドレス”00:00:00:00:00:01”、SEOJとして”013001”を組み合わせて生成した識別情報”udpip:br0−00:00:00:00:00:01−013001”を設定する。
ClassCodeT813には、受信したECHONET Lite電文のSEOJに含まれるクラスコードを設定する。
メーカコードT814には、受信したECHONET Lite電文に含まれるメーカコード(EPC=0x8A)を設定する。
識別番号T815には、該当する機器を搭載したノードプロファイルオブジェクトから受信したECHONET Lite電文に含まれる識別番号(EPC=0x83)を設定する。
設置場所T816には、受信したECHONET Lite電文に含まれる設置場所(EPC=0x81)を設定する。ここでは、受信した電文に含まれる設置場所の値から、下位3ビットを0としてECHONET Liteで規定された場所を示す”08”を設定する(下位3ビットは当該規定された場所内での識別情報のため)。これにより、設置場所をフィルタ条件としたECHONET Liteデバイスサービス検索が容易になる。以下、別のレコードでも同様の手順で設置場所を設定する。
自機器フラグT817には、他機器であることを示すNOを設定する。
機器種別T818には、通常の応答可能なECHONET Liteノードであることを示す”一般”を設定する。
レコードT822は分電盤550に接続された計測装置30の操作用サービスをECHONET Liteデバイスサービスとして登録する例である。
計測装置30は、有線LAN上のUDP/IPで接続しているため、object.idT811には、subnetIdとして”udpip:br0”、identiferとして計測装置30のMACアドレス”00:00:00:00:00:03”、SEOJとして”028701”を組み合わせて生成した識別情報”udpip:br0−00:00:00:00:00:03−028701”を設定する。
ClassCodeT813には、受信したECHONET Lite電文のSEOJに含まれるクラスコードを設定する。
メーカコードT814には、受信したECHONET Lite電文に含まれるメーカコード(EPC=0x8A)を設定する。
識別番号T815、設置場所T816は、前記レコード821と同様の手順で設定する。
自機器フラグT817には、他機器であることを示すNOを設定する。
機器種別T818には、通常の送信専用のECHONET Liteノードであることを示す”送信専用”を設定する。ここで、送信専用のECHONET Liteノードとは、コントローラからの要求は受け付けず、自発的な通知のみを行う機器のことである。
レコードT823は通信装置100自身の操作用サービスをECHONET Liteデバイスサービスとして登録する例である。
通信装置100は、有線LAN上のUDP/IPで接続しているものとし、object.idT811には、subnetIdとして”udpip:br0”、identiferとして通信装置100のMACアドレス”00:00:00:00:00:10”、SEOJとして”05ff01”を組み合わせて生成した識別情報”udpip:br0−00:00:00:00:00:10−05ff01”を設定する。
ClassCodeT813には、”05ff”を設定する。
メーカコードT814には、他機器への送信用に保持しているメーカコードを設定する。
識別番号T815には、他機器への送信用に保持している識別番号(EPC=0x83)を設定する。
設置場所T816には、他機器への送信用に保持している識別番号(EPC=0x81)を設定する。自機器フラグT817には、自機器であることを示すYESを設定する。
機器種別T818には、通常の応答可能なECHONET Liteノードであることを示す”一般”を設定する。
ここでは、identiferとしてMACアドレスを利用する例を示したが、IPアドレスや他の識別情報を利用してもよい。
ここでは、各レコードの機器について、ECHONET Liteで規定されるノードプロファイルに関するレコードは省略しているが、同様に登録されているものとする。また、ここで例示されている機器以外の機器ついても、同様に登録される。
ECHONET Liteイベントリスナー管理テーブルT900は、アドレスT901と、サービスプロパティT910から構成される。サービスプロパティT910は、フィルタT911から構成される。フィルタT911は、どのようなイベントを受信するかをフィルタリングする識別情報であり、検索Keyとなる文字列として” (Object.Id=Udpip:Br0−00:00:00:00:00:10−05Ff01)”のような文字列を用いる。本実施例では、下位通信層インタフェースサービスとして、レコードT912に” (Object.Id=Udpip:Br0−00:00:00:00:00:10−05Ff01)”というフィルタのサービスが登録されている。ECHONET Liteバンドル1300は、登録されたフィルタに合致するECHONET LiteイベントリスナーをOSGiフレームワーク1120から取得し、イベントを通知することができる。また、アプリケーションは、フィルタ登録をすることで、所望の条件を満たすイベントのみ受信することができる。
図8は、初期化処理の一例を示すシーケンス図である。
システムの起動後、最初に、OSGiフレームワーク1120は、ECHONET Liteバンドル1300を登録し(S801)、下位通信層バンドル1210を登録する(S802)。
次に、OSGiフレームワーク1120は、ECHONET Liteバンドル1300に開始要求を行う(S803)。
ECHONET Liteバンドル1300は開始要求を受けると、下位通信サービス追跡準備を行う(S804)。下位通信サービス追跡準備とは、下位通信層インタフェースサービスがOSGiフレームワーク1120に登録されたことや削除されたことを追跡するために、サービス追跡用オブジェクトを生成し、サービス追跡用オブジェクトの追跡処理を開始することである。
次に、OSGiフレームワーク1120は、下位通信バンドル1210に開始要求を行う(S805)。
下位通信層バンドル1210は開始要求を受けると、電文を送信する送信部1213のオブジェクトを生成し(S807)、生成した送信部オブジェクトを下位通信層インタフェースサービスとしてOSGiフレームワーク1120に登録する(S808)。
下位通信層インタフェースサービスが登録されるとOSGiフレームワーク1120は、予めECHONET Liteバンドル1300が生成したサービス追跡用オブジェクトに対して、下位通信層インタフェースサービスが登録されたことを通知する(S809)。
ECHONET Liteバンドル1300は下位通信層インタフェースサービスが登録されたことを検知すると、自機器がECHONET Liteデバイスとして動作するために必要な立ち上げ準備(S811)を行う。ここで、立ち上げ準備S811では、ECHONET Liteバンドル1300の自機器操作・管理部1313が、下位通信層バンドル1210から電文を受信するために電文受信・解析部1322のオブジェクトをノードオブジェクトとして生成するとともに自機器がコントローラとして動作するためにコントローラオブジェクトを生成し、前記電文受信・解析部1322に登録する。
次に、ECHONET Liteバンドル1300は、前記電文受信・解析部1322のオブジェクトをECHONET Lite電文受信・解析サービスとしてOSGiフレームワーク1120に登録し(S812)、前記登録通知S809で登録を通知された下位通信層インタフェースサービスを利用して下位通信層バンドル1210に対してECHONET Lite電文の受信開始要求を行う(S813)。
その後で、ECHONET Liteデバイスの立ち上げ処理として、ECHONET Lite規格に定められたインスタンスリスト通知の同報送信処理を行う(S814)。
以上の手順により、ECHONET Liteバンドル1300と下位通信層バンドル1210を分離して実装し、OSGiフレームワーク1120に登録することにより、ECHONET Lite処理部と下位通信層処理部の独立性を高めるとともに、1つのECHONET Lite処理部と複数の下位通信層処理部の連携が容易になる。
図9は、電文受信処理の一例を示すシーケンス図である。
機器制御バンドル1420は予め、受信したECHONET Lite電文をイベントとして受信するために、所望のイベントを受信するためのフィルタを生成し、フィルタとともに通知先オブジェクトを生成してECHONET LiteイベントリスナーサービスとしてOSGiフレームワーク1120に登録する(S901)。OSGiサービス基盤はJava(登録商標)ベースであるため、具体的に説明すると、ECHONET Liteバンドルの機器操作インタフェース1311でイベントリスナのインタフェースのみを規定する。機器制御バンドルは前記ECHONET Liteイベントリスナーインタフェースをインプリメント(実装)して実際の処理を記述することで、イベントリスナ実装クラスを作成する。そして、通知先オブジェクトとしてイベントリスナ実装クラスのオブジェクトを生成することがS901の具体的な内容である。
最初に、エアコン300が電文を送信する(S902)と、通信装置100のカーネル空間1500の、無線LAN I/F106、無線LAN Driver1600b、ブリッジ1520、TCP(UDP)/IP処理部1510によってデータの受信及びIEEE802.11ヘッダ、IPヘッダ、UDPヘッダの受信処理がされた後、下位通信バンドル1210に受信通知が行われる(S903)。
下位通信層バンドル1210はUDPパケットを受信すると、アドレス取得部1212が送信元の識別情報を取得する(S904)。送信元の識別情報としては、カーネル空間1500のTCP(UDP)/IP処理部1510が提供するソケットAPIなどを利用して取得できるIPアドレスなどがある。他にも、IPv4であれば取得したIPアドレスからカーネル空間1500のTCP(UDP)/IP処理部で管理されるARPテーブルを参照してMACアドレスを取得してもよい。また、IPv6の場合は、TCP(UDP)/IP処理部1510が管理する近隣キャッシュ(neighbor chache)を参照してMACアドレスを取得してもよい。また、下位通信層とのやり取りがTCP(UDP)/IP処理部が提供するソケットAPIのような汎用的なインタフェースではなく、独自に規定されている場合は、独自に規定された取得方法を利用してネットワーク機器の識別情報を取得すればよい。
下位通信層バンドル1210は送信元の識別情報を取得した後、OSGiフレームワーク1120に対してECHONET Lite受信・解析サービスの取得要求を行い(S905)、OSGiフレームワーク1120はECHONET Lite受信・解析サービスが登録されている場合は、ECHONET Lite受信・解析サービスの取得応答として該当するサービスを返す(S906)。
下位通信層バンドル1210はECHONET Lite受信・解析サービスを取得すると、取得したサービスを利用して、前記受信した電文から下位通信層ヘッダを除いた電文、すなわちECHONE Lite電文D301と、電文送信元のECHONET Lite機器(ここではエアコン300)の識別情報D310とを合わせ、電文受信通知としてECHONET Liteバンドル1300に通知する(S907)。
通知にあたっては、識別情報D310の、subnetIdD311は”udpip:br0”、identifierD312は”00:00:00:00:00:01”、isConstD313はtrue、isMulticastD314はfalse、ipAddressD315は192.168.0.3、macAddressD316は00:00:00:00:00:01に設定する。
ECHONET Liteバンドル1300は電文受信通知を受け取ると、電文解析処理S908を実施する。
電文解析処理S908では、ECHONET Lite電文を解析し、不正な電文の破棄、不要な電文(電文に含まれるDEOJが通信装置100に搭載されたEOJではない電文)の破棄などを行とともに、必要に応じてECHONET Liteデバイスサービスの登録処理を行う。ECHONET Liteデバイスサービスの登録処理については後述する。
応答の要否を判断して、必要な場合は応答用のECHONET Lite電文を生成して下位通信層バンドルに送信要求を行う(S909)。
また、機器制御バンドルへの通知要否を判断して、通知が必要な場合はOSGiフレームワーク1120から登録された通知先のイベントリスナーサービスのうち、受信した電文と予め登録されたフィルタ条件が一致するサービスを取得し(S910及びS911)、取得したサービスを利用して機器制御バンドル1420に通知を行う(S912)。
以上の手順により、機器制御バンドル1420とECHONET Liteバンドル1300と下位通信層バンドル1210を分離して実装し、それぞれのイベントまたは電文受信用のサービスをOSGiフレームワーク1120に登録し、電文の送受信に際してOSGiフレームワーク1120を介して送信先を取得することにより、機能間の独立性を高めるとともに、1つのECHONET Lite処理部と複数の機器制御アプリケーション(機器制御バンドル)及び下位通信層処理部(下位通信層バンドル)の連携が容易になる。
図10は、電文送信処理の一例を示すシーケンス図である。
機器制御バンドル1420は最初に、OSGiフレームワーク1120から操作を行う対象となる機器に相当するECHONET Liteデバイスサービスを取得する(S1001及びS1002)。例えば、エアコン300のサービスを取得する場合は、”object.id=udpip:br0−00:00:00:00:00:01−013001”というフィルタを作成し、これに該当するECHONET Liteデバイスサービスを取得すればよい。あるいは、設置場所が「居間、リビング」の機器を検索するという意味を持つ”location=08”というフィルタを作成し、これに該当するECHONET Liteデバイスサービスを取得すればよい。あるいは、設置場所が「居間、リビング」の「エアコン」を操作したい場合は、”(location=08)&(classcode=0130)”というフィルタを利用すればよい。
機器制御バンドル1420は、取得したサービスのAPI(機器操作インタフェース)を利用して、ECHONET Liteバンドル1300に操作要求を行う(S1003)。
ECHONET Liteバンドル1300は操作要求を受信すると、ECHONET Lite電文を生成する電文生成処理(S1004)を行う。
電文生成後、OSGiフレームワーク1120から捜査対象機器が接続されたサブネットの下位通信層インタフェースサービスを取得する(S1005、S1006)。
次に、取得したサービスを利用して下位通信層バンドル1210に送信サイズ取得要求を行い、下位通信バンドル1210がネットワークに送信できるECHONET Lite電文の最大サイズ取得する(S1007、S1008)。
ECHONET Liteバンドル1300は、構成した電文が前記取得した最大送信サイズ以下の場合はそのまま、電文送信要求S1010に進み、構成した電文が前記取得した最大送信サイズより大きい場合は電文の分割を行って再度ECHONET Lite電文を再構成する(S1009)。
取得したサービスを利用して下位通信層バンドル1210に電文送信要求を行い、生成したECHONET Lite電文及び他機器操作・管理部が管理している操作対象機器の識別情報D310を渡す(S1010)。下位通信層インタフェースサービス取得にあたっては、予めECHONET Liteデバイスサービスで管理されている識別情報に登録されたsubnetIdを利用して検索用のフィルタを生成する。例えば、エアコン300が接続されたサブネットの場合、”ENLLowInterface.subnetID=udpip:br0”というフィルタを利用すればよい。
下位通信層バンドル1210は、電文送信要求を受信すると、受信した別情報から捜査対象機器のIPアドレスを取得してソケットを生成するなどの電文送信準備を行う(S1011)。
その後、カーネル空間1500のTCP(UDP)/IP処理部1510に送信要求を行う(S1012)。
カーネル空間1500のTCP(UDP)/IP処理部1510は、送信要求に従って、無線LAN Driver1600bに送信指示を行い、無線LAN I/F106を介してネットワークに接続されたエアコン300に電文を送信する(S1013)。
以上の手順により、機器制御バンドル1420とECHONET Liteバンドル1300と下位通信層バンドル1210を分離して実装し、それぞれのイベントまたは電文受信用のサービスをOSGiフレームワーク1120に登録し、電文の送受信に際してOSGiフレームワーク1120を介して送信先を取得することにより、機能間の独立性を高めるとともに、1つのECHONET Lite処理部と複数の機器制御アプリケーション(機器制御バンドル)及び下位通信層処理部(下位通信層バンドル)の連携が容易になる。
以上の手順において、当該下位通信層バンドルを利用して通信可能なネットワーク上のエアコンに同報通信を実施したい場合は、前記識別情報D310に含まれるisMulticast(マルチキャストフラグ)D314をtrueにしておけばよい。これにより、ECHONET Liteバンドル1300は下位通信層における同報用アドレスを意識することなく、同報によるECHONET Lite電文の送信ができる。
また、下位通信バンドルがサポートするセキュリティ機能を有効にして通信を行いたい場合には、前記識別情報D317に含まれるsecureD317に“DTLS”または“IPSec”を設定すればよい。
図11は、ECHONET Liteバンドル1300の他機器操作・管理部1312におけるECHONET Liteデバイスサービス登録処理の一例を示すフローチャートである。
ECHONET Lite電文(イベント)を受信する(S1102)と、受信した電文の送信元を示す識別情報を含むフィルタを生成しOSGiフレームワーク1120に登録されたECHONET Liteデバイスサービスを検索し、当該機器が登録済みかどうかを確認する(S1103)。
S1103において検索の結果、該当するサービスが取得できずに未登録の機器であると判断した場合(S1103のNO)には、受信したECHONET Lite電文が応答であるか通知であるかを確認する(S1110)。確認には、受信した電文に含まれるESVを用いればよい。
イベントが応答でない場合(S1110のNO)には、機器種別を”不明”とするとともに、受信した識別情報からECHONET Lite機器の識別情報を構成する(S1111)。
イベントが応答である場合(S1110のYES)には、機器種別を”一般”とするとともに、受信した識別情報からECHONET Lite機器の識別情報を構成する(S1112)。ここで識別情報とは、前記図6のD400の識別情報のことである。
次に、前記S1111またはS1112の識別情報及び機器種別をサービスプロパティとして、ECHONET LiteデバイスサービスをOSGiフレームワーク1120に登録する(S1113)。また、ここでは、前記ECHONET Liteデバイスサービス管理テーブルT800のサービスプロパティT810で管理するほかの情報も併せてサービスプロパティとして登録してもよい。ここでは必ずしも全部の情報を登録する必要はなく、受信した電文に含まれる情報または電文から生成できる情報のみを登録すればよい。
次に、電文送信元機器に対して、同報ではなく個別送信でECHONET Liteにおける必須プロパティの送信要求を行い(S1114)、応答の有無を確認する(S1115)。
必須プロパティ取得要求に対して応答がある場合(S1115のYES)は、機器種別を”一般”に更新し、応答に含まれる必須プロパティを基に、前記ECHONET Liteデバイスサービスのサービスプロパティを更新する(S1116)。
必須プロパティ取得要求に対して応答がない場合(S1115のNO)は、以降何もしない。
ここでは、OSGiフレームワーク1120へのECHONET Liteデバイスサービス登録を必須プロパティの取得要求を行う前に登録したが、この手順を必須プロパティ取得要求の応答受信後に行ってもよい(S1116と同時)。これにより、アプリケーションは前記ECHONET Liteデバイスサービス取得時に確実に必須プロパティの情報を取得できる。また、前記ARPテーブルを利用してMACアドレスを取得する場合に必ず取得できる。
また、このとき、プロパティの情報を取得できない送信専用機器は登録せず、登録されたいECHONET Liteイベントリスナーに対してイベント送信のみを行う構成としてもよい。これにより、アプリケーションは機器種別を確認する前に、ECHONET Liteデバイスサービスとして登録されているかどうかだけで、当該機器が送信専用機器ではないことを判断できる。
また、ここでは必須プロパティの取得要求を行う例を示したが、必須プロパティではなくGetプロパティマップを取得し、取得可能なプロパティ情報すべてを取得してもよい。これにより、アプリケーションは、必須プロパティ以外のプロパティ情報も前記ECHONET Liteデバイスサービス取得時に取得することができる。
S1103において検索の結果、該当するサービスが取得できて登録済みの機器であると判断した場合(S1103のYES)には、次に登録されたサービスプロパティの機器種別が”不明”かどうかを確認する(S1120)。
機器種別が”不明”ではない場合(S1120のNO)には、以降何もしない。
機器種別が”不明”の場合(S1120のYES)の場合は、次に受信したECHONET Lite電文が応答であるか通知であるかを確認する(S1121)。
イベントが応答である場合(S1110のYES)には、機器種別を”一般”として前記ECHONET Liteデバイスサービスのサービスプロパティを更新し、次のステップに進む。
イベントが応答でない場合(S1110のNO)は、受信した電文に含まれる情報で必須プロパティに更新があるかどうかを確認し(S1123)、更新がある場合(S1123のYES)は、更新のある必須プロパティに関するサービスプロパティを更新し(S1124)、処理を終了する。
必須プロパティに更新がない場合(S1123のNO)には、以降何もしない。
以上の手順により受信したECHONET Lite電文を基に、ECHONET Lite機器の操作用インタフェースを機器の識別情報とECHONET Liteの必須プロパティを含むサービスプロパティとともにOSGiサービスとしてフレームワークに登録することで、機器制御バンドル1420などのアプリケーションは、容易に機器の接続を検出したり、接続されている機器操作するサービスを所望の条件で検索したりすることができる。
図12は、ECHONET Liteバンドル1300の他機器操作・管理部1312におけるECHONET Lite機器切断監視処理の一例を示すフローチャートである。
他機器操作・管理部1312は、最初にOSGiフレームワーク1120に登録された機器のノードオブジェクトに該当するECHONET Liteデバイスサービスのリストを取得し(S1202)、対象機器の有無を確認する(S1203)。
処理機器がない場合(S1203のNO)、処理を終了する。
処理機器がある場合(S1203のYES)、当該サービスのサービスプロパティのうち、機器種別が”送信専用”以外であることを確認する(S1204)。
機器種別が”送信専用”の場合(S1204のNO)は、以降の処理を中断し、リストの次のECHONET Liteデバイスサービスに対する処理を行うため、S1203に戻る。
機器種別が”送信専用”以外の場合(S1204のYES)は、下位通信層バンドルを介して、機器の動作状態プロパティの取得要求を行い(S1205)、応答有無を確認する(S1206)。
動作状態プロパティの取得要求に対する応答があった場合(S1206のYES)は、当該機器は現在もネットワークに接続されているものと判断して削除処理を中断し、リストの次のECHONET Liteデバイスサービスに対する処理を行うため、S1203に戻る。
動作状態プロパティの取得要求に対する応答がない場合(S1206のNO)は、当該機器がネットワークから離脱したと判断し、処理対象のECHONET LiteデバイスサービスをOSGiフレームワーク1120から削除する(S1207)。
次に、識別情報のうち、同じsubnetIdとidentiferを持つECHONET Liteデバイスサービスの取得を行い(S1208)、サービスの登録有無を確認する(S1209)。
サービスの登録がある場合(S1209のYES)は、当該サービスに対応する機器も同様にネットワークから離脱したと判断し、ECHONET LiteデバイスサービスをOSGiフレームワーク1120から削除する(S1210)。
サービスの登録が無い場合(S1209のNO)は、以降の処理を中断し、リストの次のECHONET Liteデバイスサービスに対する処理を行うため、S1203に戻る。
以上の処理を一定周期で繰り返して、ECHONET LiteデバイスサービスとしてOSGiフレームワーク1120に登録しているネットワーク上の機器がネットワークから離脱したかどうかを確認し、必要に応じてサービスを削除することにより機器制御バンドル1420などのアプリケーションは、容易にECHONET Lite機器のネットワークから離脱を知ることができる。
また、切断監視のために動作状態プロパティの取得要求を送信するにあたって、予め登録してある機器種別を基に送信専用機器かどうかを判断することで、不要な要求送信を防ぎ、効率的に監視を行うことができる。ここでは、ECHONET Liteデバイスサービス取得後に、サービスプロパティの機器種別を用いて送信専用機器かどうかを判断したが、S1202のECHONET Liteデバイスサービスのリストを取得処理において、例えば”(object.pid=*−0ef0*)&!(type=送信専用))”のような検索フィルタを用いて予め送信専用機器以外のリストを取得してもよい。
図13は、表示端末の画面の一例である。
ここで、画面の表示は表示端末200のブラウザで通信装置100やJava Script(登録商標)で生成されたHTML(Hyper Text Markup Language)を表示する形式とする。即ち、表示端末200側では特別な処理は行わず、通信装置100で生成された画面情報の内容を表示するのみとする。通信装置100において、画面情報の生成は、機器管理バンドル1410が行う。
G1300は、通信装置100がネットワーク上に新しいECHONET Lite機器を検出した際に、表示端末200を介してユーザに提示する画面の一例である。具体的には、機器管理バンドル1410がOSGiフレームワーク1120にECHONET Liteデバイスサービスが登録されたことを検出すると、それを表示端末で表示するHTMLに反映させる。本画面は、検出した機器に関する情報をユーザが追加または更新するために情報設定を行うかどうかを問い合わせるために表示する。
ここで、「はい」が選択された場合は、G1320の機器情報の登録画面を表示する。
また、「いいえ」が選択された場合は、何もせずに終了する。
以上のような表示を行うことで、ユーザは通信装置100がネットワークに接続された機器を検出したことを知ることができる。
G1310は、通信装置100がネットワーク上に新しいECHONET Lite機器を検出し、その機器種別が”不明”であった場合に表示端末200を介してユーザに提示する画面の一例である。具体的には、機器管理バンドル1410がOSGiフレームワーク1120にECHONET Liteデバイスサービスが登録されたことを検出すると、サービスプロパティの機器種別を確認し、それが”不明”である場合には、その旨を「送信専用機器の可能性がある」として表示端末で表示するHTMLに反映させる。
以上のような表示を行うことで、ユーザは通信装置100が新たに検出した機器が、応答しない送信専用機器の可能性があることを知ることができるとともに、ユーザの「はい」「いいえ」の情報をサービスプロパティに反映させることで、当該機器の機器種別を確定し、効率的に管理することができる。
G1320は、機器情報の登録画面であり、機器の名称を示す「名前」とその入力フィールドG1321、機器の識別情報とその入力フィールドG1322、機器の設置場所とその入力フィールドG1323、機器が送信専用機器であるかどうかを示す「送信専用」とその入力フィールドG1324から構成される。本画面で入力された情報は、機器管理バンドル1410が、ECHONET Liteデバイスサービスと対応付けて管理する。例えば、「設置場所」が別途ECHONET Lite電文で受信した内容と異なる場合には、ECHONET Liteバンドルを介して変更要求を行い、ユーザの設定内容を機器に反映させる。また、「送信専用」の入力フィールドG1324については、サービスプロパティの機器種別を確認し、機器種別が”送信専用”の場合には予めYESを入力しておく。その他の情報についても同様である。
以上のような表示を行うことで、ユーザは通信装置100が新たに検出した機器に関する情報を更新することができるとともに、予め電文等から取得してサービスプロパティに設定されている情報を入力フィールドに設定しておくことで、ユーザ入力を効率化することができる。
G1330は、機器情報一覧の表示画面であり、名前G1331、識別情報G1332、設置場所G1333、送信専用フラグG1334及び各機器のレコードから構成される。機器管理バンドル1410は、本表示を行うためにECHONET Liteデバイスサービスが登録、削除される毎にその状況を更新する独自のテーブルを管理する。これによって、一度ECHONET Liteデバイスサービスとして登録されたが、OSGiフレームワーク1120から削除された機器は、網掛けして表示するなどして、現在は接続されていないことがわかるようにできる。
以上のようにサービスの登録状態を表示に反映することで、ユーザは機器の接続状態を把握することができる。
実施例1では、有線LAN及び無線LANに接続されたECHONET Lite機器を検出・管理する方法について示した。本実施例では、前述に加えてUSBデバイス10経由でIEEE802.15.4無線ネットワーク上にZigbeeIPプロトコルでデータを送受信する宅内ネットワーク53に接続されたECHONET Lite機器も管理する場合について説明する。
図14は、USBデバイス10のハードウェア及びソフトウェア構成例である。
USBデバイス10は、制御部11、記憶部12、USB I/F13、無線I/F14から構成される。
制御部11は、ソフトウェアの実行を行い通信装置100内の他の構成要素を制御し、USBデバイス10を機能させる。
記憶部12は、揮発性メモリおよび不揮発性メモリで構成する。不揮発性メモリにはOSやアプリケーションなどのUSBデバイス10を動作させるためのソフトウェアや固定データを格納する。揮発性メモリにはソフトウェアの動作に必要なデータなどを一時的に格納する。
USB I/F13はUSBI/Fを備える別の機器(USB機器)を接続するインタフェースである。制御部11の指示によって、接続されたUSB機器との間でデータの送受信を行う。
無線I/F14は、制御部11の指示によって宅内ネットワーク53に接続された機器との間でデータの送受信を行う。
USBデバイス10のソフトウェアは、アプリケーションインタフェース15、TCP(UDP)/IP処理部16、6LoWPAN処理部17、802.15.4無線処理部18から構成される。
アプリケーションインタフェース15は、USB I/F13を操作してUSB I/F13で接続された機器へのデータ送受信を行う。すなわち、USB I/F13から受信したデータをTCP(UDP)/IP処理部16に送信し、TCP(UDP)/IP処理部16から受信したデータをUSB I/F13に送信する。USB I/F13を介しての通信装置100とのデータにあたっては、独自の送受信コマンドを利用してもよいし、UDP/IPのような標準化された通信規約を利用してもよい。
TCP(UDP)/IP処理部16は、TCP/IPまたはUDP/IPのパケットを解析・構成する機能を有し、6LoWPAN処理部17を介してネットワーク上の機器と前記パケットの送受信を行う。すなわち、アプリケーションインタフェース15から受信したデータに基づいてTCP/IPまたはUDP/IPパケットを構成し、6LoWPAN処理部17に送信し、6LoWPAN処理部17から受信したデータからTCP/IPまたはUDP/IPヘッダを取り除いたデータをアプリケーションインタフェース15に送信する。
6LoWPAN処理部17は、6LoWPANで規定されたフォーマットの電文を構成・解析する機能を有し、802.15.4無線処理部18を介してネットワーク上の機器と前記電文の送受信を行う。すなわち、TCP(UDP)/IP処理部16から受信したパケットに基づいてTCP(UDP)/IPヘッダの圧縮、データの分割を行って6LoWPANで規定された電文を構成し、802.15.4無線処理部18に送信し、802.15.4無線処理部18から受信したデータに基づいて、TCP(UDP)/IPヘッダの復元、データの結合を行ってTCP(UDP)/IP処理部16に送信する。
このようなUSBデバイス10を用いることによって、通信装置100は、802.15.4無線上の6LoWPANで構成されたネットワークに接続するためのハードウェアを備えていなくても、宅内ネットワーク53に接続された機器に接続できるようになる。
図15は、宅内ネットワーク53上を流れる電文の構成例である。
簡単のため、フッタ等は省略している。
電文D1500は、下位通信層ヘッダD400と、ECHONET LiteフレームD100aから構成される。下位通信層ヘッダD400は、IEEE802.15.4ヘッダD410及び6LoWPANヘッダ(圧縮されたUDP/IPヘッダ)D420から構成される。
IEEE802.15.4ヘッダD410はIEEE802.15.4無線における自機器の識別情報としてSRC MACD411と宛先の識別情報としてDST MACD412を含む。
6LoWPANヘッダD420は、IPヘッダD220及びUDPヘッダD230を所定の手続きにより圧縮することで構成される。
図16は、本実施例における通信装置100のソフトウェア構成例を示すブロック図である。
通信装置100のソフトウェア1000aは、前記ソフトウェア1000に加えて、電力メータ用の機器制御バンドル1430と、下位通信バンドル(UDP/ZigbeeIP)1220と、USB−ZigbeeIP Driver1700を有する。
電力メータ用の機器制御バンドル1430は、ユーザまたは他のアプリケーションの指示に従い、ECHONET Liteバンドル1300を介して、ネットワーク53に接続された電力メータの制御または状態取得を行う。
下位通信バンドル(UDP/ZigbeeIP)1220は、Java VM及びカーネル空間1500のUSB−ZigbeeIP Driver1700を介して、USB I/F104で接続されたUSBデバイス100を介して、IEEE802.15.4無線で構成された宅内ネットワーク53に接続された機器との間で、データ送受信を行う。すなわち、ECHONET Liteバンドル1300から受信したデータに基づいてUSB−ZigbeeIP Driver1700にデータを送信し、USB−ZigbeeIP Driver1700から受信したデータに基づいて、ECHONET Liteバンドル1300にデータを送信する。ECHONET Liteバンドルとのデータ送受信にあたっては、ECHONET Liteバンドル1300が規定する通信手段(通信規約)によって通信を行う。また、USB−ZigbeeIP Driver1700とのデータ送受信にあたっては、USB−ZigbeeIP Driver1700により規定された通信手段(通信規約)によって通信を行う。
USB−ZigbeeIP Driver1700は、下位通信バンドル(UDP/ZigbeeIP)1220からの指示に従い、USB I/F104を操作してUSBデバイス10へのデータ送受信を行う。USBデバイス10とのデータ送受信にあたっては、USBデバイス10により規定された通信手段(通信規約)によって通信を行う。また、ネットワークにデータを創出するためのサービスとして、下位通信層インタフェースサービスをOSGiフレームワーク1120に登録し、他のバンドルに提供する。
以上のような構成とすることで、ECHONET Liteバンドル1300を変更することなく、複数の宅内ネットワークに接続された機器との通信を行うことができる。また、下位通信層のデバイスに依存する部分を独立したOSGiバンドルとして構成することで、通信装置100を再起動などしてすべてのネットワークとの接続を切断する必要なく、他のネットワーク接続に影響を与えることなく、当該バンドルに関するネットワークのみを通信装置100から動的に着脱することができる。
図17は、新規ネットワーク追加処理の一例を示すシーケンス図である。
新規ネットワーク追加とは、例えば通信装置100のUSB I/F104に宅内ネットワーク53に接続する機能を持つUSBデバイス10を挿入することによって、通信装置100が新しく宅内ネットワーク53の機器と通信できるようになることをいう。
最初に機器管理バンドル1420は、USB I/F104にUSBデバイス10が接続されたことを検出する(S1701)。デバイス検出には、hotplugやudev、D−Bus(Desktop−Bus)を利用すればよい。
機器管理バンドル1420は、USBデバイス10が接続されたことを検出すると、通信装置100の記憶部102に、前記USBデバイス10を介して接続可能なネットワーク用の下位通信バンドル(UDP/ZigbeeIP)1220が保持されているかどうかを確認する(S1702)。
確認の結果、保持されている場合(S1702のYES)は、前記下位通信バンドル(UDP/ZigbeeIP)1220をOSGiフレームワーク1120に登録し(S1707)、OSGiフレームワーク1120を介して(S1707)下位通信バンドル(UDP/ZigbeeIP)1220に開始要求を行う(S1708)。
確認の結果、保持されていない場合(S1702のNO)は、機器管理バンドル1420は、サーバ4に下位通信バンドル(UDP/ZigbeeIP)1220の取得要求を行う(S1703)。
サーバは、前記取得要求を受信すると、取得応答を送信し(S1704)、機器管理バンドル1420は、サーバからの応答を確認し、下位通信バンドル(UDP/ZigbeeIP)1220含まれるかどうかを確認する(S1705)。
サーバからの応答に下位通信バンドル(UDP/ZigbeeIP)1220が含まれない場合(S1705のNO)は、処理を終了する。
サーバからの応答に下位通信バンドル(UDP/ZigbeeIP)1220が含まれない場合(S1705のYES)は、前記下位通信バンドル(UDP/ZigbeeIP)1220をOSGiフレームワーク1120に登録し(S1707)、OSGiフレームワーク1120を介して(S1707)下位通信バンドル(UDP/ZigbeeIP)1220に開始要求を行う(S1708)。
下位通信バンドル(UDP/ZigbeeIP)1220が開始すると、前記図8の初期化処理S800における、S807からS814と同様の初期化処理を行う(S1709)。
以上のような手順とすることで、新しく通信デバイスを追加した際に、通信装置100を再起動などしてすべてのネットワークとの接続を切断する必要なく、他のネットワーク接続に影響を与えることなく、当該バンドルに関するネットワークのみを通信装置100から動的に着脱することができる。
図18は、通信ネットワーク離脱処理の一例を示すシーケンス図である。
通信ネットワーク離脱とは、例えば通信装置100から接続されたUSBデバイス10を外すことで、宅内ネットワーク53から離脱することをいう。
最初に機器管理バンドル1420は、USB I/F104にUSBデバイス10がはずされたことを検出する(S1801)。デバイス検出には、hotplugやudev、D−Bus(Desktop−Bus)を利用すればよい。
機器管理バンドル1420は、USBデバイス10が接続されたことを検出すると、位通信バンドル(UDP/ZigbeeIP)1220がOSGiフレームワーク1120に登録され、開始済みかどうかを確認する(S1802)。
確認の結果、開始済みの位通信バンドル(UDP/ZigbeeIP)1220がない場合(S1802のNO)は、何もしない。
確認の結果、開始済みの下位通信バンドル(UDP/ZigbeeIP)1220がある場合(S1802のYES)は、下位通信バンドル(UDP/ZigbeeIP)1220に停止要求を行い、停止し(S1803)、下位通信バンドル(UDP/ZigbeeIP)1220はOSGiフレームワーク1120に登録済みの下位通信層インタフェースサービスの削除要求を行う(S1804)。
OSGIフレームワーク1120は、要求に従って下位通信層インタフェースサービスを削除し(S1805)、ECHONET Liteバンドル1300に下位通信層インタフェースサービスが削除されたことを通知する(S1806)。
ECHONET Liteバンドル1300は、削除通知を受信すると、宅内ネットワーク53に接続された機器に対応するECHONET LiteデバイスサービスをOSGiフレームワーク1120から削除する(S1807)。
ECHONET Liteデバイスサービスの削除(S1807)に当たっては、削除された下位通信層インタフェースサービスの識別情報であるsubnetIdを利用し、subnetIdが一致するECHONET Liteデバイスサービスを削除する。
なお、ここでは、下位通信インタフェースサービスを削除してから、関連するECHONET Liteデバイスサービスを削除したが、順番を逆にしてもよい。
以上のような手順でネットワークからの切断とともに、関連するECHONET Liteデバイスサービスを削除することで、例えば機器制御バンドルから、通信ができない機器に対する要求を受け付けないようにし、処理の効率化を図れる。また、OSGiフレームワーク1120を利用してECHONET Liteデバイスサービスの状態を追跡することで、機器制御バンドルは当該ネットワークに接続されている機器が操作できない状態になったことを知ることができる。
図19は、本実施例においてOSGiフレームワーク1120で管理するサービス情報の一構成例である。
下位通信層インタフェースサービス管理テーブルT700には、下位通信層インタフェースサービスとして、subnetIdが”udpip:br0”というレコードT721に加え、subnetIdが”zigbeeIP:usb”というサービスに対応するレコードT722が登録されている。
ECHONET Lite受信・解析サービス管理テーブルT710には、ECHONET Lite受信・解析サービスとして、subnetIdが”udpip:br0”というレコードT771に加え、subnetIdが”zigbeeIP:usb”というサービスに対応するレコードT772が登録されている。
ECHONET Liteデバイスサービス管理テーブルT800には、宅内ネットワーク53に接続された電力メータ400に相当するレコードT824が登録されている。
電力メータ400は、IEEE802.15.4無線上のZigbeeIPで接続しているため、object.idT811には、subnetIdとして” zigbeeIP:usb”、identiferとして電力メータ400のMACアドレス”00:00:00:00:00:02”、SEOJとして”028801”を組み合わせて生成した識別情報”zigbeeIP:usb−00:00:00:00:00:02−0028801”を設定する。
ClassCodeT813には、受信したECHONET Lite電文のSEOJに含まれるクラスコードを設定する。
メーカコードT814には、受信したECHONET Lite電文に含まれるメーカコード(EPC=0x8A)を設定する。
識別番号T815には、受信したECHONET Lite電文に含まれる識別番号(EPC=0x83)を設定する。
設置場所T816には、受信したECHONET Lite電文に含まれる設置場所(EPC=0x81)から、下位3ビットをマスクしたもの(60)を設定する。
自機器フラグT817には、他機器であることを示すNOを設定する。
機器種別T818には、通常のECHONET Liteノードであることを示す”一般”を設定する。
上記以外のテーブル構成は、図8と同様である。また、ここでは、各レコードの機器について、ECHONET Liteで規定されるノードプロファイルに関するレコードは省略しているが、同様に登録されているものとする。また、ここで例示されている機器以外の機器ついても、同様に登録される。
ECHONET Liteイベントリスナー管理テーブルT900については、図7と同様のため、記載を省略する。
以上のように、OSGiフレームワーク1120がサービスを管理することで、ECHONET Liteバンドル、下位通信層バンドル、機器制御バンドルの独立性を高めることができる。また、機器制御バンドルは下位通信層の構成に関わらず、同じ手順で異なるネットワークに接続する機器を操作することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることや各処理における処理の順番を入れ替えることも可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。