Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
開発の手引き<br />
株式会社 日新システムズ
目次<br />
第一章 <strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
n 開発環境について<br />
n 開発環境のインストールと実行<br />
第二章 <strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n <strong>ECHONET</strong> <strong>Lite</strong> の通信について<br />
n <strong>ECHONET</strong>でよく使う名称<br />
n <strong>ECHONET</strong>機器の例<br />
第三章 サンプルプログラム<br />
n サンプルプログラムについて<br />
n 実行構成について<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong>
第一章<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong>
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
n 開発環境について<br />
開発環境は、以下の通りです。<br />
■ホスト環境<br />
-‐ ホストOS Windows XP or 7 推奨<br />
-‐ 開発Pla
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
n 開発のインストールと実行<br />
<br />
インストールと実行の手順は、以下の通りです。<br />
① VMware Player のインストール<br />
② 仮想マシンのコピー<br />
③ 仮想マシンの起動<br />
④ Eclipse の起動<br />
⑤ サンプルプログラムのビルド<br />
インストールの詳細は、<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong> ユーザーズマニュアル<br />
を参照してください。<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong>
第二章<br />
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong>
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n <strong>ECHONET</strong> <strong>Lite</strong> の通信について<br />
<br />
コントローラ<br />
要求<br />
ローカルネットワーク<br />
通知<br />
UDP/IP ポート 3610<br />
ユニキャスト<br />
マルチキャスト<br />
通知<br />
NISSIN SYSTEMS<br />
応答<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
<strong>ECHONET</strong> <strong>Lite</strong> のLAN通信は、UDP/IPのポート3610番<br />
を使用します。<br />
機器<br />
■ユニキャスト通信 指定した相手に送信する通信方式(特定機器へ要求や応答)<br />
■マルチキャスト通信 全員に送信する通信方式(機器検索、一斉通知)<br />
(マルチキャストアドレス IPv4: 224.0.23.0, IPv6:<br />
ff02::1)
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n <strong>ECHONET</strong>でよく使う名称<br />
<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
■機器オブジェクト (EOJ)<br />
機器の種別は、<strong>ECHONET</strong>オブジェクトとして番号が割り当てられて<br />
います。(電力センサーオブジェクト 0x22など)<br />
■インスタンス番号<br />
1つの機器に複数の機器オブジェクト存在する場合には、インスタ<br />
ンスという番号で管理されます。(0は全てのインスタンス対象)<br />
■<strong>ECHONET</strong>プロパティ (EPC)<br />
<strong>ECHONET</strong> オブジェクトが持つ属性(固有のデータ)が番号で割り当<br />
てられています。(動作状態 0x80 など)<br />
■<strong>ECHONET</strong> <strong>Lite</strong>サービス (ESV)<br />
<strong>ECHONET</strong> オブジェクトが持っている機能です。(Set, Get, Anno など)
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n <strong>ECHONET</strong>機器の例<br />
<br />
■ 電力量センサー付コンセントタップ(4口)の例<br />
インスタンス番号<br />
1<br />
2<br />
3<br />
4<br />
電力センサー付<br />
コンセントタップ<br />
■機器オブジェクト(EOJ)<br />
電力量センサクラス(0x22)<br />
■インスタンス番号<br />
1~4<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
■<strong>ECHONET</strong>プロパティ(EPC)<br />
動作状態、順次電力計測値、<br />
履歴情報など<br />
■<strong>ECHONET</strong>プロパティ(ESV)<br />
Set/Get/Anno
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n <strong>ECHONET</strong>機器の例<br />
<br />
■ <strong>ECHONET</strong>のクラス構成<br />
ノードプロファイルクラス<br />
EOJ=0x0EF0<br />
インスタンス番号=1<br />
機器オブジェクトクラス<br />
EOJ=0x0022<br />
インスタンス番号=1<br />
機器オブジェクトクラス<br />
EOJ=0x0022<br />
インスタンス番号=2<br />
機器オブジェクトクラス<br />
EOJ=0x0022<br />
インスタンス番号=3<br />
機器オブジェクトクラス<br />
EOJ=0x0022<br />
インスタンス番号=4<br />
ノードプロファイルスーパークラス<br />
ノードプロファイルクラス<br />
機器オブジェクトスーパークラス<br />
(機器オブジェクト共通形式)<br />
機器オブジェクトクラス<br />
(機器固有形式の情報)<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
異常発生状態 (EPC=0x88)<br />
メーカコード(EPC=0x8A)<br />
:<br />
動作状態 (EPC=0x80)<br />
Version 情報 (EPC=0x82)<br />
:<br />
動作状態 (EPC=0x80)<br />
設置場所 (EPC=0x81)<br />
:<br />
積算電力量計測値 (EPC=0xE0)<br />
瞬時電力量計測値 (EPC=0xE1)<br />
:<br />
<strong>ECHONET</strong>機器には、必ずノードプロファイルクラスが存在し、このノード<br />
プロファイルクラスのプロパティに問い合わせることによって搭載されている<br />
機器オブジェクトクラスやインスタンス数などの情報が取得できます。<br />
マルチキャスト通信を用いて、全機器のノードプロファイルに問い合わせる<br />
ことにより、ネットワーク上の<strong>ECHONET</strong>機器の検索が可能となります。
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n 機器オブジェクト番号(EOJ)<br />
0001 ガス漏れセンサ<br />
0002 防犯センサ<br />
0003 非常ボタン<br />
0004 救急用センサ<br />
0005 地震センサ<br />
0006 漏電センサ<br />
0007 人体検知センサ<br />
0008 来客センサ<br />
0009 呼び出しセンサ<br />
000A 結露センサ<br />
000B 空気汚染センサ<br />
000C 酸素センサ<br />
000D 照度センサ<br />
000E 音センサ<br />
000F 投函センサ<br />
0010 重荷センサ<br />
0011 温度センサ<br />
0012 湿度センサ<br />
0013 雨センサ<br />
0014 水位センサ<br />
0015 風呂水位センサ<br />
0016 風呂沸き上がりセンサ<br />
0017 水漏れセンサ<br />
0018 水あふれセンサ<br />
0019 火災センサ<br />
001A タバコ煙センサ<br />
001B CO2センサ<br />
001C ガスセンサ<br />
001D VOCセンサ<br />
001E 差圧センサ<br />
001F 風速センサ<br />
0020 臭いセンサ<br />
0021 炎センサ<br />
0022 電力量センサ<br />
0023 電流量センサ<br />
0024 昼光センサ<br />
0025 水流量センサ<br />
0026 微動センサ<br />
0029 開閉センサ<br />
002A 活動量センサ<br />
002B 人体位置センサ<br />
002C 雪センサ<br />
0130 家庭用エアコン<br />
0131 冷風機<br />
0132 扇風機<br />
0133 換気扇<br />
0134 空調換気扇<br />
0135 空気清浄器<br />
0136 冷風扇<br />
0137 サーキュレータ<br />
0138 除湿機<br />
0139 加湿器<br />
013A 天井扇<br />
013B 電気こたつ<br />
013C 電気あんか<br />
013D 電気毛布<br />
013E ストーブ<br />
013F パネルヒータ<br />
0140 電気カーペット<br />
0141 フロアヒータ<br />
0142 電気暖房器<br />
0143 ファンヒータ<br />
0144 充電器<br />
0145 業務用パッケージエアコン室内機<br />
0146 業務用パッケージエアコン室外機<br />
0147 業務用パッケージエアコン蓄熱ユニット<br />
0148 業務用ファンコイルユニット<br />
0149 業務用空調冷熱源(チラー)<br />
0150 業務用空調冷熱源(ボイラー)<br />
0151 業務用空調VAV<br />
0152 業務用空調エアハンドリングユニット<br />
0153 ユニットクーラー<br />
0154 業務用コンデンシングユニット<br />
0027 通過センサ<br />
0028 在床センサ<br />
0264 電動ガレージ<br />
0265 電動天窓<br />
0266 オーニング(日よけ)<br />
0267 散水器(庭用)<br />
0268 散水器(火災用)<br />
0269 噴水<br />
026A 瞬間湯沸器<br />
026B 電気温水器<br />
026C 太陽熱温水器<br />
026D 循環ポンプ<br />
026E 電気便座<br />
026F 電気錠<br />
0270 ガス元弁<br />
0271 ホームサウナ<br />
0272 瞬間式給湯器<br />
0273 浴室暖房乾燥機<br />
0274 ホームエレベータ<br />
0275 電動間仕切り<br />
0276 水平トランスファ<br />
0277 電動物干し<br />
0278 浄化槽<br />
0279 住宅用太陽光発電システム<br />
027A 冷温水熱源機<br />
027B 床暖房<br />
027C 燃料電池<br />
027D 蓄電池<br />
027E 電気自動車充放電システムクラス<br />
NISSIN SYSTEMS<br />
0280 電力量メータ<br />
0281 水流量メータ<br />
0282 ガスメータ<br />
0283 LPガスメータ<br />
0284 時計<br />
0285 自動ドア<br />
0260 電動ブラインド<br />
0261 電動シャッター<br />
0262 電動カーテン<br />
0263 電動雨戸<br />
0286 業務用エレベータ<br />
0287 分電盤メータリング<br />
0288 スマート電力量メータ<br />
0289 スマートガスメータ<br />
0290 一般照明<br />
0299 非常用照明 029D 設備照明<br />
02A0 ブザー<br />
03B0 コーヒーメーカ<br />
03B1 コーヒーミル<br />
03B2 電気ポット<br />
03B3 電気こんろ<br />
03B4 トースタ<br />
03B5 ジューサ・ミキサ<br />
03B6 フードプロセッサ<br />
03B7 冷凍冷蔵庫<br />
03B8 オーブンレンジ<br />
03B9 クッキングヒータ<br />
03BA オーブン<br />
03BB 炊飯器<br />
03BC 電子ジャー<br />
03BD 食器洗い機<br />
03BE 食器乾燥器<br />
03BF 電気もちつき機<br />
03C0 保湿機<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
03C1 精米機<br />
03C2 自動製パン機<br />
03C3 スロークッカ<br />
03C4 電気漬物機<br />
03C5 洗濯機<br />
03C6 衣類乾燥機<br />
03C7 電気アイロン<br />
03C8 ズボンプレッサ<br />
03C9 ふとん乾燥機<br />
03CA 小物・くつ乾燥機<br />
03CB 電気掃除機<br />
03CC ディスポーザ 03CD 電気蚊取り機<br />
03CE 業務用ショーケース<br />
03CF 業務用冷蔵庫<br />
03D0 業務用ホットケース<br />
03D1 業務用フライヤー<br />
03D2 業務用電子レンジ<br />
03D3 洗濯乾燥機<br />
0401 体重計<br />
0402 体温計 0403 血圧計<br />
0404 血糖値計<br />
0405 体脂肪計<br />
05FC セキュア通信用共有鍵設定ノード<br />
05FD スイッチ(JEMA/HA対応)<br />
05FE 携帯端末<br />
05FF コントローラ<br />
0601 ディスプレー<br />
0602 テレビ
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n 基本的な通信:機器の検索<br />
<br />
誰かいますか?<br />
コントローラ<br />
NISSIN SYSTEMS<br />
エアコンです<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
コントローラは一斉通知で機器を見つけることができま<br />
す。また機器は、起動時に自機器の情報を一斉通知しま<br />
すので、これによって見つけることも可能です。<br />
見つけた機器<br />
・照明<br />
・エアコン<br />
・テレビ<br />
:<br />
ESV Get<br />
EOJ 0x0EF0001<br />
EPC 0x88 …<br />
一般照明です<br />
ESV Get<br />
EOJ 0x0EF0001<br />
EPC 0x88 …<br />
機器(一般照明)<br />
ローカル<br />
ネットワーク<br />
ESV Get<br />
…<br />
ESV Get<br />
EOJ 0x0EF0001<br />
EPC 0x88 …<br />
機器(エアコン)<br />
テレビです<br />
機器(テレビ)
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n 基本的な通信:プロパティの取得<br />
動作状態は?<br />
コントローラ<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
コントローラは、特定の機器に対してサービスを発行し<br />
て、プロパティ(機器固有のデータ)を取得することが<br />
できます。<br />
見つけた機器<br />
・照明<br />
・エアコン<br />
・テレビ<br />
:<br />
ESV Get<br />
EOJ 0x060200<br />
EPC 0x80<br />
ローカル<br />
ネットワーク<br />
電源オフです<br />
ESV Get<br />
EPC 0x80 = 0x31<br />
機器(テレビ)
<strong>ECHONET</strong> <strong>Lite</strong> の基本<br />
n 基本的な通信:プロパティの設定<br />
動作状態をON!<br />
コントローラ<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
コントローラは、特定の機器に対してサービスを発行し<br />
て、プロパティ(機器固有のデータ)を設定することが<br />
できます。<br />
見つけた機器<br />
・照明<br />
・エアコン<br />
・テレビ<br />
:<br />
ESV Set<br />
EOJ 0x060200<br />
EPC 0x80 = 0x30<br />
ローカル<br />
ネットワーク<br />
ESV Set OK<br />
電源オン<br />
機器(テレビ)
第三章<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
サンプルプログラム
サンプルプログラム<br />
n サンプルプログラムについて<br />
<br />
サンプルプログラムは、以下の通りです。<br />
① sample_device 機器シミュレータ<br />
② sample_search 機器の検索<br />
③ sample_get プロパティの取得<br />
④ sample_set プロパティの設定<br />
あらかじめ Eclipse でビルドをしておく必要があります。<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong>
サンプルプログラム<br />
n 実行構成について<br />
<br />
サンプルプログラムの構成は、下記の通りです。<br />
①機器シミュレータ<br />
①機器シミュレータ<br />
(機器側)<br />
ローカルネットワーク<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
②機器の検索<br />
③プロパティの取得<br />
④プロパティの設定<br />
(コントローラ側)
サンプルプログラム<br />
n 機器シミュレータ (sample_device)<br />
<br />
■機能<br />
・機器のシミュレータとして動作します。<br />
・全ての機器オブジェクトを持っています。<br />
・コントローラからの要求に応答します。<br />
■起動例(コマンドラインでの起動)<br />
% ./workspace/sample_device/Debug/sample_device<br />
※機器オブジェクトを指定した機器のみに変更する場合<br />
ソースコード:~/workspace/sample_device/config.c<br />
20行目 #define USE_ALL_DEVOBJ をコメントアウトします。<br />
(この時点で3つのインスタンスをもったエアコン機器なります)<br />
24行目 DEVOBJ_AIR_CONDITIONER_NUM を指定する機器の名称に変更します。 <br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong>
サンプルプログラム<br />
n 機器の検索 (sample_search)<br />
<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
■機能<br />
・コントローラとして機器オブジェクトを検索します。<br />
・検索のためマルチキャストパケットを送信します。<br />
・検索した機器のIPアドレスと機器オブジェクトを表示<br />
します。<br />
■起動例 (コマンドラインでの起動)<br />
% ./workspace/sample_search/Debug/sample_search
サンプルプログラム<br />
n プロパティの取得 (sample_get)<br />
<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
■機能<br />
・コントローラとして機器からデータを取得します。<br />
・取得のためにユニキャストパケットを送信します。<br />
・機器から取得したプロパティデータを表示します。<br />
■起動例(コマンドラインでの起動)<br />
% ./ workspace/sample_get/Debug/sample_get -‐-‐addr=192.168.173.1<br />
-‐-‐eoj=0x0ef001 -‐r=0x80<br />
IPアドレス「192.168.173.1」 の機器から、機器オブジェクト「ノードプロファイル(0x0ef0)」、<br />
インスタンス番号「0x01」 、プロパティ「動作状態(0x80)」を取得します。<br />
※引数で指定するEOJ番号の下2桁がインスタンス番号になります。
サンプルプログラム<br />
n プロパティの設定 (sample_set)<br />
<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
■機能<br />
・コントローラとして機器のデータを設定します。<br />
・設定のためにユニキャストパケットを送信します。<br />
■起動例(コマンドラインでの起動)<br />
% ./ workspace/sample_set/Debug/sample_set -‐-‐addr=192.168.173.1<br />
-‐-‐eoj=0x0ef001 -‐w=0x80 0x30<br />
IPアドレス「192.168.173.1」 の機器に対し、機器オブジェクト「ノードプロファイル(0x0ef0)」、<br />
インスタンス番号「0x01」 、プロパティ「動作状態(0x80)」を「ON(0x30)」に設定します。<br />
※引数で指定するEOJ番号の下2桁がインスタンス番号になります。
サンプルプログラム<br />
n サンプルプログラムを使用した課題<br />
<br />
■課題<br />
機器の検索 (sample_search) を使用して、あらか<br />
じめ起動されている機器シミュレータを検索して<br />
みましょう。<br />
■手順<br />
・sample_search を起動します。<br />
・検索結果を確認します。<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
検索した結果より、機器のIPアドレスをメモします。(この後の課題で使用します)
サンプルプログラム<br />
n サンプルプログラムを使用した課題<br />
<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
■課題<br />
機器の取得 (sample_get) を使用して、先ほど検索<br />
した機器シミュレータからプロパティのデータを取<br />
得してみましょう。<br />
■手順<br />
・sample_get を引数を指定して起動します。<br />
(サンプルプログラム:プロパティの取得を参照)<br />
・取得したデータの値を確認します。
サンプルプログラム<br />
n サンプルプログラムを使用した課題<br />
<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
■課題<br />
機器の設定 (sample_set) を使用して、先ほど検索<br />
した機器シミュレータにプロパティのデータを設定<br />
してみましょう。<br />
■手順<br />
・sample_set を引数を指定して起動します。<br />
(サンプルプログラム:プロパティの設定を参照)<br />
・正常に終了(エラーメッセージ無し)を確認します。<br />
余裕があれば、sample_get を実行して、設定された値を確認してみましょう。<br />
ただし、多くの機器が一斉に設定を行った場合、最後に設定した値が有効になります。
サンプルプログラム<br />
n サンプルプログラムを使用した課題<br />
<br />
NISSIN SYSTEMS<br />
<strong>ECHONET</strong> <strong>Lite</strong> <strong>SDK</strong><br />
■課題<br />
2グループに分かれて、一方のグループは機器シミュ<br />
レータのソースコードを編集して複数起動し、もう<br />
一方のグループは複数の機器を検索してみましょう。<br />
■手順<br />
グループ1<br />
・sample_device をエアコンのみの機器に編集します。<br />
・sample_device を起動します。<br />
グループ2<br />
・sample_search を起動します。<br />
・複数のエアコンを検出できるか確認します。