TP-Link のスマートプラグ「Tapo P105」を購入しました.
初期設定さえ済ませておけば,これも HS105 と同様に,外部ネットワークのサービスを使わずにローカルネットワーク用の制御ツールで On/Off 制御できました.
ただ,制御ツールが実行時に外部ネットワークサービス用 TP-Link ID のアカウントとパスワードを必要としているので,もしかしたら,外部ネットワーク接続は完全には不要になっていないのかもしれません.このあたりは,私は調べていません.
初期設定を行うときに,HS105用の Kesa アプリと違い,Tapo P105用の Tapo アプリは TP-Link ID でのログインが必須でしたので,購入直後のまっさらな状態から外部ネットワーク接続をまったくせずに On/Off 制御するのは無理のように思いました.
おそらくは,セキュリティ対策の一環なのだろうと想像しています.
HS105 のときと違い,Tapo P105 をローカルネットワーク用の制御ツールで On/Off 制御できるようになるまで少し手こずったので,未来の自分のためにメモを書き置いておきます.
肝は,
o TP-Link ID のパスワードの長さを 8文字以内にしないと制御できない
o 本家の制御ツール PyP100 だと動作不安定なので,それを fork して改良された PyP100 を使う
です.これらさえ押さえておけば,ここから下の文章は読む必要はありません.ここから下の文章は,試行錯誤のメモ,事の経緯,です.
それと,PyP100 を利用した Tapo P105 の現在の On/Off 状態の取得は,
stat = p105.getDeviceInfo()
on_off = json.loads(stat)['result']['device_on']
とし,on_off が True なら On,False なら Off という方法で行えるようです.
これは PyP100 のドキュメントに書かれていないのですが,たぶん間違っていないでしょう.
実際に実行して確認した範囲では,正しく取得できました.
「Error code 1501: Passwords must not exceed 8 characters · Issue #4 · fishbigger/TapoP100」
https://github.com/fishbigger/TapoP100/issues/4
本家の制御ツール PyP100:
「fishbigger/TapoP100: A module for controlling the TP-Link Tapo P100 Plugs」
https://github.com/fishbigger/TapoP100
fork して改良された PyP100:
「2729-gumi/TapoP100: A module for controlling the TP-Link Tapo P100 Plugs」
https://github.com/2729-gumi/TapoP100
—
0.
自分のところで動作実績のある HS105 を購入しようと思っていたのですが,この製品はもう「生産完了」状態なので購入できません.なんてこったー.
TP-Link の Webサイトを見ると Tapo P105 しか載っていないので,以前は購入を避けたこれを買うしかありません.なんてこったー.
探せばまだ HS105 を販売しているところはありますが,生産完了品を探し求めて使うよりは,現行製品を試行錯誤して使えるようになったほうがよさそうです.
なお,負荷耐圧は,
HS105 は 14A
https://www.tp-link.com/jp/home-networking/smart-plug/hs105/#specifications
Tapo P105 は 10A
https://www.tp-link.com/jp/home-networking/smart-plug/tapo-p105/#specifications
でした.4A も小さくなっているけれど,大丈夫かなぁ… .まぁ,大丈夫でしょう.
1.
TP-Link が提供している HS105 用のアプリ「Kesa」では Tapo P105 は認識されませんでした.
アプリからデバイスを探しに行っても,「何も見つからない」という結果でした.
2.
初期設定をしないと何もできないので,TP-Link が提供している Tapo P105 用のアプリ「Tapo」を使って初期設定をします.私は Android 用のアプリを使いました.
Kesa と違って,TP-Link ID によるログイン(または TP-Link ID 作成)はスキップできず,必須でした.
TP-Link ID 作成のとき,パスワードとして 8文字を超える長さのパスワードを設定することもできますが,それをしてしまうと,後述する制御ツールからはなぜか制御できなくなるので,8文字以内に抑える必要があります.
ID 作成時に 8文字を超える長さに設定してしまったときは,あとから 8文字以下に変更しても大丈夫です.パスワードの変更は Tapoアプリ経由でできます.
「Error code 1501: Passwords must not exceed 8 characters · Issue #4 · fishbigger/TapoP100」
https://github.com/fishbigger/TapoP100/issues/4
なお,Tapo アプリから On/Off 制御するときは,8文字を超える長さのパスワードに設定していても問題なく制御できました.
3.
HS105 を制御できたツールでは,Tapo P105 は制御できませんでした.
エラーコードが返ってくるだけです.
4.
Tapo P105 を制御するツールとしては,PyP100 が有名で定番のようですので,これを使います.
PyP100 を使うときは,TP-Link ID のパスワードの長さを 8文字以内にする必要があります.
8文字を超える長さのパスワードを設定してあると,login() にほぼ間違いなく失敗します.
TP-Link ID 作成時に 8文字を超える長さに設定してしまったときは,あとから 8文字以下に変更しても大丈夫です.パスワードの変更は Tapoアプリ経由でできます.
この制限が何に起因する制限なのかは,私には読み取れませんでした.
「fishbigger/TapoP100: A module for controlling the TP-Link Tapo P100 Plugs」
https://github.com/fishbigger/TapoP100
「Error code 1501: Passwords must not exceed 8 characters · Issue #4 · fishbigger/TapoP100」
https://github.com/fishbigger/TapoP100/issues/4
5.
本家の制御ツール PyP100 だと,制御できるときもあるのですが,大部分は Exception が発生してしまって制御できないまま終了してしまいます.かなり動作不安定です.
Exception を catch してリトライすることも考えましたが,それよりも,本家 PyP100 を fork して Tapo P105 用に改良された PyP100 を使うほうがよさそうです.
実際に試してみると,こちらのほうは安定的に制御できました.
本家と fork との違いは,login() に成功したあとに
p105.getMacAddress() # Get MacAddress and Set terminalUUID
getMacAddress() を実行していることですね.
ソースコードを見ると, PyP100.P100() で作成したオブジェクトの terminalUUID 属性に,取得した MACアドレスを設定しています.コメントに書かれているとおりです.
この情報が,turnOn(), turnOff() を安定的に実行するために必要な情報のようです.
余談.
PyP100 を利用した Tapo P105 の現在の On/Off 状態の取得は,
stat = p105.getDeviceInfo()
on_off = json.loads(stat)['result']['device_on']
とし,on_off が True なら On,False なら Off という方法で行えるようです.
これは PyP100 のドキュメントに書かれていないのですが,たぶん間違っていないでしょう.
実際に実行して確認した範囲では,正しく取得できました.
ということで,Tapo P105 もローカルネットワーク用の制御ツールで On/Off 制御できました.
動作レスポンスも,割とよいです.HS105 と比べても遜色ありません.
Wi-Fi 電波の受信感度も,ルーター再起動後の自動再接続も良好です.
On/Off 制御できるようになったので,ASUS ROG Zephyrus の ACアダプタ On/Off 制御に使うんだー.
この ACアダプタは 240W も消費電力があるので,普段は消費電力の小さい Thunderbolt 給電にして ACアダプタは切っておきたい.
当面は手動で制御ツールを動かして On/Off するけれど,バッテリーの充電容量を監視して自動的に On/Off できるようにしたいなぁ.
==
2021年1月21日
リレーシールドの端子台を焦げ溶かしてしまったので,その代わりに TP-Link HS105 を使うことにしました.いまのところ,焦げ溶けるような気配はありません.問題なく稼働していて,しかも快適です!
https://noike.info/wp/knoike/2021/01/21/83729/
2020年12月15日
セラミックヒーターの電源も,ネットワーク越しに On/Off 制御できるようにしました.こたつ,扇風機,セラミックヒーターの電源を数分おきに On/Off し続けていますが,いまのところ,問題なく稼働しています.
https://noike.info/wp/knoike/2020/12/15/83551/
2020年4月5日
XPort を利用した「家電の電源のネットワーク越し操作環境」をうっかり壊してしまったので,IoT Express MkII とリレーシールドを使って作り直しました.1週間くらい稼働させていますが,とりあえず,問題なく動いています.
https://noike.info/wp/knoike/2020/04/05/82727/
2019年4月24日
「家電の電源のネットワーク越し操作環境」を復活させるときに,ネットワークの有線ポートが足りなかったので 1000BASE-T のスイッチングハブを購入した.いまの時代は,5ポートなら 1500円~2000円くらいで買えてしまうのですね.
https://noike.info/wp/knoike/2019/04/24/81549/
2019年4月23日
XPort を利用した「家電の電源のネットワーク越し操作環境」を復活させた.いま操作できるのは,「扇風機」と「こたつ」.
https://noike.info/wp/knoike/2019/04/23/81531/
2009年11月10日
ごもっともです.
http://knoike.seesaa.net/article/152841511.html
2008年08月11日
家電の電源をネットワーク越しに操作できるようにした(主なソース・コード)
http://knoike.seesaa.net/article/152835041.html
2008年08月11日
ColdFire で,これをやるとしたら
http://knoike.seesaa.net/article/152835043.html
2008年08月11日
家電の電源をネットワーク越しに操作できるようにした
http://knoike.seesaa.net/article/152835044.html
Similar Posts:
- TP-Link の Tapo P105 に Zephyrus の 250W ACアダプタをつないで,Zephyrus のバッテリー残量を監視して自動的に充電開始/終了するスクリプトを書いた.タスクトレイに常駐する C#アプリを作るつもりでいたのだけど,もうこれでいいか… .
- 「家電の電源のネットワーク越し操作環境」を復活させるときに,ネットワークの有線ポートが足りなかったので 1000BASE-T のスイッチングハブを購入した.いまの時代は,5ポートなら 1500円~2000円くらいで買えてしまうのですね.
- セラミックヒーターの電源も,ネットワーク越しに On/Off 制御できるようにしました.こたつ,扇風機,セラミックヒーターの電源を数分おきに On/Off し続けていますが,いまのところ,問題なく稼働しています.
- リレーシールドの端子台を焦げ溶かしてしまったので,その代わりに TP-Link HS105 を使うことにしました.いまのところ,焦げ溶けるような気配はありません.問題なく稼働していて,しかも快適です!
- XPort を利用した「家電の電源のネットワーク越し操作環境」を復活させた.いま操作できるのは,「扇風機」と「こたつ」.
One Reply to “TP-Link のスマートプラグ「Tapo P105」も,初期設定さえ済ませておけば,外部ネットワークのサービスを使わずにローカルネットワーク用の制御ツールで On/Off 制御できました.”