How to use "WeMo Insight Switch"

Last Update: 2016/09/25, Written by Hiroyuki Matsuo

WeMo Insight Switch

Belkin WeMo Insight Switch を用いると,Android / iOS デバイスを用いて,家電製品の電源をどこからでも ON / OFF できます.

この他,以下のような機能があります:

ただし,ログデータは 30 分刻みのものしか取得できないため,研究用途では使い物になりません.
解決方法を含めた詳細は後述します.

サポートサイト:PRODUCT SUPPORT (English)

システム要件

各部説明

Top View

※ 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 Insight Frequently Asked Questions

セットアップ

以下の手順に従います:

  1. WeMo アプリを Play Store / App Store からダウンロード・インストールします.

  2. WeMo Insight Switch 本体をコンセントに装着します.

  3. Android / iOS のネットワーク設定から,WeMo のアクセスポイントを選択します.

    画像では SSID が "WeMo.Insight.2BD" となっています.

  4. WeMo アプリを起動します.

  5. 「設定するデバイスは?」画面で,接続するデバイス(今回は "WeMo Switch/Insight")を選択します.

  6. 「Personalize」画面で,そのまま「次へ」を選択します.

  7. 「ホーム 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 アプリから取得することができます:

  1. 画面右上の編集アイコン スクリーンショット をタップします.

  2. "WeMo Insight" を選択します.

  3. 「デバイスを編集」画面で,「データエクスポート」を選択します.

  4. 「データエクスポート」画面で,ログデータを受信するメールアドレスを入力し,「今すぐ出力します。」をタップします.

スクリーンショット スクリーンショット スクリーンショット スクリーンショット

これで,指定したメールアドレスに 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