kadecot api の導入と電力データアクセス方法
TRANSCRIPT
![Page 1: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/1.jpg)
株式会社ソニーコンピュータサイエンス研究所
Kadecot API の導入と 電力データアクセス方法
大和田 茂 株式会社ソニーコンピュータサイエンス研究所
![Page 2: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/2.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
全員が持つようになるスマート家電
スマートメーター
電力会社が設置してくれるので何もする必要はない。 東京電力は2020年までに、全国でも2024年には設置が完了。 東芝製 第一号のスマートメーター
![Page 3: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/3.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
スマートメーターで何ができるのか?
• 電力会社が検針に来なくてよくなる
• 頻繁に電力を計測できるため、時間帯や地域電力のひっ迫度に応じた変動料金が可能になる
• 変動料金を生かした電力プランが増えることで、生活スタイルに合わせた契約ができる
• 家電と連携して、電気代が高い時間は消費を抑えるなどが可能に
• 遠隔の生活見守りができる
![Page 4: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/4.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
実際の電力データ
![Page 5: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/5.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
電力の「見える化」
• このように、宅内の電力の推移を表示することを「電力見える化」と呼ぶ
• 見える化することで、自分が無意識に使っていた電力の使用状況が把握でき、節電や家族の生活パターンの理解につなげることができる
![Page 6: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/6.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
![Page 7: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/7.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
ユーザー自身がサービスを作ろう!
http://lifedesign-app.org/
![Page 8: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/8.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
生活デザインアプリコンテストの特徴
• デザイナー・一般生活者が対象 –プログラミングチュートリアルを行う
• 一発ネタにならないよう、1週間実際に使ってみて審査
• 審査結果はENEX2016(1/27-29)にて発表
![Page 9: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/9.jpg)
株式会社ソニーコンピュータサイエンス研究所
スマートメーター情報への アクセス方法
![Page 10: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/10.jpg)
株式会社ソニーコンピュータサイエンス研究所
Webから家電にアクセスするための サーバーを用いる
ECHONET Lite家電機器やセンサー、ソニー製機器、Hue、IRKitなどをブラウザからJavaScriptで制御可能 Google PlayからダウンロードしAndroidで動作 オープンソースの無料ソフトウェア 標準提供以外のプロトコルも、プラグインとして外部から追加可能
基本機能
● 接続機器一覧取得 ● 機器へのコマンド送信 ● 機器の状態取得 ● 機器の変化通知
APIサーバーKadecot
(カデコ)
![Page 11: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/11.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
まずサンプル
http://kadecot.net/blog/3660/
![Page 12: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/12.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
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オブジェクト
接続切断時に呼ばれるコールバック
初期化用の関数
![Page 13: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/13.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
機器一覧の例 [ { "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で行う
![Page 14: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/14.jpg)
株式会社ソニーコンピュータサイエンス研究所
WAMPメッセージング概要
RPC パターン
• 機器に操作コマンドや情報リクエストを送るとサーバから返答が返ってくるというもの
• 普通の関数呼び出しに近い
PubSub パターン
• サーバが任意のタイミングで情報を出力
• あらかじめ購読登録しておいた機器に情報が伝達される
Webアプリ
Kadecot Server
呼び出し
返答
Webアプリ
Kadecot Server
購読 通知
(タイミングはサーバ側が決
める)
![Page 15: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/15.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
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 , プロシージャ , [] , パラメータ , コールバック ) ;
![Page 16: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/16.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
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() を用いる
![Page 17: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/17.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
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まで。
![Page 18: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/18.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
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
![Page 19: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/19.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
参考文献1
JSON/WAMP RPCで使用可能なプロシージャ+引数と、
WAMP PubSubで使用可能なECHONET Liteのトピックのデータベースです。
(現在PubSubが実装されているのはECHONET Lite のみです)
http://app.kadecot.net/docs/ProcTopic/
![Page 20: Kadecot api の導入と電力データアクセス方法](https://reader030.vdocuments.mx/reader030/viewer/2022013113/58ed333f1a28ab57438b45d1/html5/thumbnails/20.jpg)
株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所
参考文献2:エミュレータ
• MoekadenRoom (MITライセンス)
– PC用のECHONET Liteエミュレータ
– http://kadecot.net/blog/1479/