最も簡単な利用方法は、インターネットブラウザのアドレスバーに住宅APIのコマンドを入力してリターンを押してみることです。例えば、IPアドレスが192.168.1.234のホームサーバーに接続したECHONET Lite対応の1番目のエアコンを、
【ONしたい場合】
http://192.168.1.234/smart/rest/request?deviceid=lite.aircon_1_1&type=set&key=operationStatus&value=ON
【OFFしたい場合】
http://192.168.1.234/smart/rest/request?deviceid=lite.aircon_1_1&type=set&key=operationStatus&value=OFF
となります。一見難しい呪文のようにも見えますが、內容としては「○番のエアコンの、○○機能を、○○する」ということをひたすら記述しているだけです。命令の體系はECHONET機器オブジェクト詳細規定に準拠しており、ECHONETについて深い知識がなくても簡単にECHONET対応機器を操作できるよう、WebAPI形式にしたものです。慣れてくれば、operationStatus が「運転狀況」なので、設定溫度を変更する場合は「temperature」に変えればいいだろうという想像もつくかと思います。
これを「古き良きCGIみたいで野暮ったい」と指摘された方もおられましたが、まさにその世界を目指して開発したものです。もともとの発想は1998年頃で、FilemakerのCGI機能を使って、発売間もなかったimodeを使って住宅の照明や電気錠の遠隔制御するシステムを構築していました。
當時はホームページもテキストエディタでタグも文章もべた書きしてましたが、凝ったレイアウトはそもそもできなかったので可読性も高くシンプルでした。そうした當時のWebの世界を懐かしく思う気持ちもありましたが、単に頭の中身が當時から進化していないということかもしれません。
話がそれましたが、住宅APIのコマンドを投げると、以下のようなXMLが返ってきます。XMLについての説明は省略しますが、< >で囲まれた部分がデータのインデックスになっていますので、その情報を元に欲しいデータをパース(ピックアップ)し利用することができます。< > < /> が結果の部分だと推測がつくと思いますが、これがもしHTMLであれば、どこが欲しい情報なのかさっぱりわかりません。
(例)エアコンの溫度設定を取得する場合
?コマンド
http://192.168.0.234/smart/rest/request?deviceid=lite.aircon_1_1&type=get&key=temperature
?応答XML(答えは27℃)
<resultset type="map">
<result type="value">true</result>
<data type="value">27</data>
</resultset>
ということで、インターネットブラウザが使える人であれば住宅APIは使えるということから「誰にでも簡単に」と表現しているのですが、もちろんこのままではアプリケーションとは言えません。適當な畫面を作成し、その中に住宅APIの命令を埋め込み、返ってきたXMLの中から結果を抜き出して表示する必要があります。そのあたりの話は第二回のブログで紹介したいと思います。
by 管理者 H.Y