How to use "WeMo Insight Switch"
Last Update: 2016/09/25, Written by Hiroyuki Matsuo
Belkin WeMo Insight Switch を用いると,Android / iOS デバイスを用いて,家電製品の電源をどこからでも ON / OFF できます.
この他,以下のような機能があります:
- 電力使用量および料金の推移を監視
- 接続されたデバイスの状態変化および使用状況の通知
- ログデータを E-mail 経由で出力(CSV 形式)
- 接続されたデバイスの平均電力使用量および現在の使用量の概算
ただし,ログデータは 30 分刻みのものしか取得できないため,研究用途では使い物になりません.
解決方法を含めた詳細は後述します.
サポートサイト:PRODUCT SUPPORT (English)
システム要件
- インターネットに接続された Wi-Fi ルータ
- Android 4.0 (Ice Cream Sandwich) 以降
- iOS 6.0 以降
各部説明
※ micro USB ポートは,WeMo 本体に追加で接続するアクセサリやセンサのために使うようです.
13. What is the micro USB port at the top of the WEMO Insight for?
The micro USB port at the top of the WEMO Insight might eventually be used for sensors or accessories to be plugged into it.
セットアップ
以下の手順に従います:
WeMo アプリを Play Store / App Store からダウンロード・インストールします.
WeMo Insight Switch 本体をコンセントに装着します.
-
Android / iOS のネットワーク設定から,WeMo のアクセスポイントを選択します.
画像では SSID が "WeMo.Insight.2BD" となっています.
WeMo アプリを起動します.
「設定するデバイスは?」画面で,接続するデバイス(今回は "WeMo Switch/Insight")を選択します.
「Personalize」画面で,そのまま「次へ」を選択します.
「ホーム Wi-Fi ネットワークを選択...」画面で,WeMo を常時接続させる Wi-Fi ネットワークを選択します.
この時点で,すでに WeMo のコンセントに接続されたデバイスの電源をリモートコントロールできます.
電源を ON / OFF するには,画面右上の電源アイコン をタップします.
WeMo 本体上部の Power インジケータをタップすることで,直接電源を操作することもできます.
また,電源が ON の間の電力使用状況が,最大で 30 日間分自動的に蓄えられます.
参考:Setting up the WEMO Insight Switch, WEMO Switch and WEMO Switch + Motion
参考:WEMO Insight power monitoring and sensor input
WeMo から電力消費データを得る方法
wemo-util を使う
Node.js 上で動く WeMo 用のユーティリティツール wemo-util を作りました.
WeMo に直接リクエストを送ることで,最短で 1 秒刻みの電力消費データを得ることができます.
プライベートリポジトリになっているので,使いたい方は松尾まで GitHub のアカウントをお知らせください.
Collaborators に追加します.
自前のプログラムを書く
以下の記事が大変参考になります.
参考:遠隔コンセントタップ WeMo を SOAP で動かすハックやってみた
なお,上記の記事で紹介されている SSDP ライブラリは,現在 "node-ssdp" という名前に変わっています.
Node.js に導入するときは,node-ssdp の方を指定するようにしてください.
$ npm install node-ssdp
var Client = require('node-ssdp').Client,
client = new Client();
// 以下略
また,wemo-util でトラックしたデータの意味や単位については,有志によるオープンソースのツール ouimeaux のソースコード(ouimeaux/ouimeaux/device/insight.py)を参考にしています.
以下が参考にした部分です(ソースコード 9 〜 32 行目).
@property
def insight_params(self):
params = self.insight.GetInsightParams().get('InsightParams')
(
state, # 0 if off, 1 if on, 8 if on but load is off
lastchange,
onfor, # seconds
ontoday, # seconds
ontotal, # seconds
timeperiod, # The period over which averages are calculated
_x, # This one is always 19 for me; what is it?
currentmw,
todaymw,
totalmw,
powerthreshold
) = params.split('|')
return {'state': state,
'lastchange': datetime.fromtimestamp(int(lastchange)),
'onfor': int(onfor),
'ontoday': int(ontoday),
'ontotal': int(ontotal),
'todaymw': int(float(todaymw)),
'totalmw': int(float(totalmw)),
'currentpower': int(float(currentmw))}
また,Belkin のサポートサイトの記事も参考になると思います.
以下の記事では,アプリに表示されている各項目の意味が書かれています.
参考:Setting the usage summary on your WEMO Insight
(おまけ)WeMo に蓄えられた電力消費ログデータの取得方法
最大で 30 日間分の電力消費データが,WeMo 本体に自動的に蓄えられます.
ただし,30 分刻みのデータしか取得できないため,研究用途には向いていません.
蓄えたデータは,WeMo アプリから取得することができます:
"WeMo Insight" を選択します.
「デバイスを編集」画面で,「データエクスポート」を選択します.
「データエクスポート」画面で,ログデータを受信するメールアドレスを入力し,「今すぐ出力します。」をタップします.
これで,指定したメールアドレスに CSV 形式のログデータが送信されてきます.
データは以下のような形式になっています(抜粋).
Date & Time | Power Consumed for past 30 mins (kWh) |
---|---|
2016/9/16 18:35 | 0.04545 |
2016/9/16 18:05 | 0.04312 |
2016/9/16 17:35 | 0.04545 |
2016/9/16 17:05 | 0.04441 |
2016/9/16 16:35 | 0.05104 |