Wi-Fiで遠隔操作できるスマートコンセント、TP-Link Wi-Fi スマートプラグ HS105を買ってみました。
タイマー機能で自動オンオフできる
TP-Link Wi-Fi スマートプラグ HS105は、コンセントのオンオフをWi-Fi経由でコントロールできるようにするスマートコンセントです。
イメージとしては電源タップに付いているオンオフボタンの動きと同じで、「通電したら動き出す」タイプの家電向きです。通電した後ボタン操作が必要な扇風機や加湿機などには不向きです。
アプリからオンオフを切り替えたり、曜日毎にスケジュール設定したりできるため、「夜になったらLEDライトを点灯させたい」「バッテリーの負担を減らせるよう、○時間で充電を止めさせたい」といった時に便利です。しかもTP-Link HS105は「works with alexa」認定取得品で、Amazon Echoなどのalexaデバイスから音声操作することも可能です。
TP-Link HS105は高さ3.8センチほどとコンパクトで、コンセントに挿してアプリでWi-Fi設定するだけのシンプルな設計になっています。

縦方向はほとんど場所を取らないため、2つ口のコンセントに挿した場合でも、もう一方を邪魔しにくくなっています。
壁コンセントに挿すと結構出っ張るので、私の場合は延長ケーブルに挿して使っています。

安全のため極性付きプラグ (コンセントのアース側・ホット側で長さが少し違う) が採用されているため、一部の延長ケーブルなどでは使えない場合があります。(普段コンセントに挿す向きは気にしないと思いますが、実はコンセントの左側の穴がアース側、右側の穴がホット側と決まっています)

よくある中華製品と違い、ちゃんと技適マークとPSEマークがあります。

アナログ式のタイマーコンセントは昔からありましたが、ジーッというような音がしたり、ネット接続して時刻調整できないのですぐ時刻がずれたりするという欠点がありました。
TP-Link HS105ならオンオフ時にパチン、パチンという音がするぐらいで、他にノイズ音は発生しませんでした。
アプリでオンオフやタイマー設定
TP-Link HS105の設定は公式アプリ「Kasa Smart」(Android・iOS)を利用します。箱やガイドには「Kasa」「Kasa for Mobile」などと書かれていますが、今の名前は「Kasa Smart」です。
アプリ上でTP-Linkのアカウントを作成し、Wi-Fi接続の設定をするのですが、TP-Link HS105は2.4GHzにしか対応していないため、スマホで5GHzのアクセスポイントに接続している場合は一旦2.4GHzのアクセスポイントに切り替えた上で設定しないといけません。
あくまでTP-Link HS105をWi-Fi接続させるためのものなので、初期設定が終われば、同じネットワークなら5GHzのアクセスポイントに接続していてもTP-Link HS105と繋げられます。

設定すれば、オンオフはもちろん、○時間○分後にオンオフするタイマー機能、曜日毎にオンオフする時間を決められるスケジュール機能、外出する際に定期的にオンオフさせることで泥棒に留守だと悟らせないようにするお出かけ機能などを設定できます。

アプリからだけでなく、「もし○○なら○○する」という条件設定ができるIFTTT(イフト)にも公式対応しているため、例えば「メールを受信したらオンにする」「特定のツイートをつぶやいたらオフにする」「自宅を離れたらオフにする」といったことも自動化できます。
…ただ、残念ながらIFTTTでできることは単純なオン・オフぐらいで、細かなタイマー設定はできません。また、IFTTTを経由することになるので、タイムラグがあったり、条件設定のカスタマイズが限られていたりします。
そこで便利なのが、Pythonスクリプト「tplink_smartplug.py」でのコントロールです。
非公式ながらTP-Link製スマートコンセント (HS100、HS105、HS110) の操作をPythonで自由自在にできる優れもので、Python 2.xさえ動けばどんなプラットフォームでも利用できます。
例えば./tplink_smartplug.py -t 192.168.1.XXX -c off
でオフにしたり、./tplink_smartplug.py -t 192.168.1.XXX -j '{"count_down":{"add_rule":{"enable":1,"delay":10800,"act":0,"name":"turn off"}}}'
で3時間後にオフになるタイマーをセットしたりできます。
詳しい使い方はGitHub上にあります。(※Windowsなどでは、JSONの中の「”」を「\”」とエスケープしないといけない場合があります)
他にもTP-Linkのサーバーからアクセストークンを取得して操作できる方法もあるのですが、トークンに有効期限があって面倒なのでPythonスクリプトのほうが良さそうです。
Androidでも、TermuxとTermux:Task (要root) などを使うことでPythonスクリプトを動かし、Taskerと連携させられるようにできます。
TermuxとTermux:TaskはPlayストアとF-Droidで配布されていますが、インストールする際は両方F-Droidでダウンロードするなど、どちらか一方で統一してください。片方を違う場所からダウンロードすると、署名の問題でインストールができなくなります。
Pythonスクリプトを実行するには、Termuxを起動して
pkg install python2
mkdir -p ~/.termux/tasker/
と実行し、Solid Explorerなどでtplink_smartplug.pyを/data/data/com.termux/files/home/.termux/tasker/
にコピーしてください。
Termux:Taskで実行できるようにするため、
#! /data/data/com.termux/files/usr/bin/bash
python2 ~/.termux/tasker/tplink_smartplug.py -t 192.168.1.XXX -c on
python2 ~/.termux/tasker/tplink_smartplug.py -t 192.168.1.XXX -j '{"count_down":{"delete_all_rules":null}}'
python2 ~/.termux/tasker/tplink_smartplug.py -t 192.168.1.XXX -j '{"count_down":{"add_rule":{"enable":1,"delay":10800,"act":0,"name":"turn off"}}}'
などとコマンドを書いたテキストファイル (例:runme.sh) をUTF-8・LFで作成します。
作成したテキストファイルを/data/data/com.termux/files/home/.termux/tasker/
にコピーして、TaskerのTaskでPlugin→Termux:Taskを選んで、そのファイル名を指定してください。
これでショートカットを作ってワンタップでタイマー設定したり、NFCタグを読み取ったらオンにしたり、とより柔軟にできるようになります。
2,000円程度とお手頃価格なのにコンパクトで多機能ですし、いろいろな場面に柔軟に対応できるタイマーコンセントが欲しい方には、TP-Link HS105がおすすめです。