Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kadecot api の導入と電力データアクセス方法

Kadecot APIの使い方の解説と、スマートメーター情報の取得方法がまとまっています。
実機で動かすには、Google PlayからのKadecotインストールが必要なことに加え、一部野良アプリである「Kadecot Support Plugin」を入れる必要がある部分があります。

  • Login to see the comments

Kadecot api の導入と電力データアクセス方法

  1. 1. 株式会社ソニーコンピュータサイエンス研究所 Kadecot API の導入と 電力データアクセス方法 大和田 茂 株式会社ソニーコンピュータサイエンス研究所
  2. 2. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 全員が持つようになるスマート家電 スマートメーター 電力会社が設置してくれるので何も する必要はない。 東京電力は2020年までに、全国でも 2024年には設置が完了。東芝製 第一号のスマートメーター
  3. 3. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 スマートメーターで何ができるのか? • 電力会社が検針に来なくてよくなる • 頻繁に電力を計測できるため、時間帯や地域電力の ひっ迫度に応じた変動料金が可能になる • 変動料金を生かした電力プランが増えることで、生活 スタイルに合わせた契約ができる • 家電と連携して、電気代が高い時間は消費を抑える などが可能に • 遠隔の生活見守りができる
  4. 4. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 実際の電力データ
  5. 5. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 電力の「見える化」 • このように、宅内の電力の推移を表示するこ とを「電力見える化」と呼ぶ • 見える化することで、自分が無意識に使って いた電力の使用状況が把握でき、節電や家 族の生活パターンの理解につなげることがで きる
  6. 6. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
  7. 7. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 ユーザー自身がサービスを作ろう! http://lifedesign-app.org/
  8. 8. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 生活デザインアプリコンテストの 特徴 • デザイナー・一般生活者が対象 – プログラミングチュートリアルを行う • 一発ネタにならないよう、1週間実際に使って みて審査 • 審査結果はENEX2016(1/27-29)にて発表
  9. 9. 株式会社ソニーコンピュータサイエンス研究所 スマートメーター情報への アクセス方法
  10. 10. 株式会社ソニーコンピュータサイエンス研究所 Webから家電にアクセスするための サーバーを用いる ECHONET Lite家電機器やセンサー、ソニー製機器、 Hue、IRKitなどをブラウザからJavaScriptで制御可能 Google PlayからダウンロードしAndroidで動作 オープンソースの無料ソフトウェア 標準提供以外のプロトコルも、プラグインとして外部から 追加可能 基本機能 ● 接続機器一覧取得 ● 機器へのコマンド送信 ● 機器の状態取得 ● 機器の変化通知 APIサーバー Kadecot (カデコ)
  11. 11. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 まずサンプル http://kadecot.net/blog/3660/
  12. 12. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 WebSocket APIの使い方 [初期化] <script src="http://g.lifedesign-app.org/js/kadecot.js"></script> <script> kadecot_init( "com.sonycsl.kadecot" , function( devs , wamp ){ // [ここに必要な処理を実装する] } , function(){ alert("Disconnected") ; } ) ; </script> このWebページのURL引数として k=[Kadecot IP address]とすると、Kadecotや μKadecotに直接接続を試みる。 URL引数kがない場合は、エミュレータが立ち上がる。 スコープという文字列。いつも同じです 接続成功時に呼ばれるコールバック デバイスの一覧 今後のメッセージ送受信に用いるwampオブジェクト 接続切断時に呼ばれるコールバック 初期化用の関数
  13. 13. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 機器一覧の例 [ { "deviceId": 1, "protocol": "echonetlite", "deviceType": "GeneralLighting", "status": true, "nickname": "GeneralLighting", "description": "GeneralLighting", "ip_addr": "192.168.10.209" }, { "deviceId": 6, "protocol": "echonetlite", "deviceType": "HomeAirConditioner", "status": true, "nickname": "HomeAirConditioner", "description": "HomeAirConditioner", "ip_addr": "192.168.10.205" } ] デバイスID ( Kadecotサーバーがつける番号 プロトコル ( ≒プラグインID 説明文 (何が来るかわからない) ニックネーム (Kadecotサーバ上で任意につけた名前 機器の種類名 (プロトコル内 認識されているかどうか プロトコル固有の情報 ・機器の特定は、deviceIdで行う。 ・機器の種類の特定は、protocolとdeviceTypeで行う
  14. 14. 株式会社ソニーコンピュータサイエンス研究所 WAMPメッセージング概要 RPC パターン • 機器に操作コマンドや情報 リクエストを送るとサーバか ら返答が返ってくるというも の • 普通の関数呼び出しに近い PubSub パターン • サーバが任意のタイミングで 情報を出力 • あらかじめ購読登録しておい た機器に情報が伝達される Webアプリ Kadecot Server 呼び出し 返答 Webアプリ Kadecot Server 購読 通知 (タイミングは サーバ側が決 める)
  15. 15. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 WebSocket APIの使い方 [RPC] // hueを点灯させるコード例 wamp.sendCall( {"deviceId":1} ,"com.sonycsl.kadecot.hue.procedure.lights.state.set" ,[] , {"on":true,"sat":255,"bri":0,"hue":46920} ,function(){} ); wamp.sendCall()という関数呼び出しを使う ↑ 「プロシージャ」と呼ばれる文字列。関数名に相当 (コールバック関数。この例では使用しない) ←操作対象デバイスID ←パラメータ wamp.sendCall( デバイスID , プロシージャ , [] , パラメータ , コールバック ) ;
  16. 16. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 WebSocket APIの使い方[PubSub] • 関心がある対象(トピックと呼ぶ)を指定し、コールバック関数を設定するだけでOK • PubSub非対応機器もある(トピックが存在しない) • トピックは機器ごとに設定されているわけではなく、同じ種類の機器全てからコール バックを受け取ってしまうので、自分が興味のある機器からのメッセージかを判別す る必要がある wamp.sendSubscribe( {} ,"com.sonycsl.kadecot.echonetlite.topic.HomeAirConditioner.OperationStatus" ,function(r){ console.log('Value changed :’+JSON.stringify(r)); if( r[4].deviceId != 1 ) return ; } ,function(){ console.log('Subscribed : '+JSON.stringify(arguments)); } ); // ↓「トピック」 // コールバック1:機器が値をPublishしたときに呼ばれる(都度 // コールバック2:sendSubscribeが成功したとき一度だけ呼ばれる // 興味がない機器を除外 wamp.sendSubscribe() を用いる
  17. 17. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 support.main機器Procedure com.sonycsl.kadecot.support.procedure.setLux com.sonycsl.kadecot.support.procedure.setHue com.sonycsl.kadecot.support.procedure.setSaturation com.sonycsl.kadecot.support.procedure.setTemperature ※set系は、新しい値をvalueにセットする。 com.sonycsl.kadecot.support.procedure.getLux com.sonycsl.kadecot.support.procedure.getHue com.sonycsl.kadecot.support.procedure.getSaturation com.sonycsl.kadecot.support.procedure.getTemperature com.sonycsl.kadecot.support.procedure.getPower com.sonycsl.kadecot.support.procedure.getPowerHistory ※引数としてdayを与えてもよい。-1から-99まで。
  18. 18. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 support.main機器Topics com.sonycsl.kadecot.support.topic.power com.sonycsl.kadecot.support.topic.powerHistory com.sonycsl.kadecot.support.topic.lux com.sonycsl.kadecot.support.topic.hue com.sonycsl.kadecot.support.topic.saturation com.sonycsl.kadecot.support.topic.temperature
  19. 19. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 参考文献1 JSON/WAMP RPCで使用可能なプロシージャ+引数と、 WAMP PubSubで使用可能なECHONET Liteのトピックの データベースです。 (現在PubSubが実装されているのはECHONET Lite のみです) http://app.kadecot.net/docs/ProcTopic/
  20. 20. 株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所 参考文献2:エミュレータ • MoekadenRoom (MITライセンス) – PC用のECHONET Liteエミュレータ – http://kadecot.net/blog/1479/
  21. 21. 株式会社ソニーコンピュータサイエンス研究所 Thank you http://kadecot.net/ @kadecot_dev

×