RaspberryPiでHS105スマートプラグを制御

8/12/2020

HS105 RaspberryPi スマートプラグ

t f B! P L
スマートコンセントを買ってみました。
せっかくなので、これもRaspberryPiから直接制御してみたい。

TP-Link スマートプラグ HS105
https://www.tp-link.com/jp/home-networking/smart-plug/hs105/


HS105の初期設定

スマホアプリ「Kasa Smart」から設定を行うようです。 TP-Linkのサイトに設定方法が詳しく記載されていました。

アプリ「Kasa」でミニ スマートWi-Fiプラグの初期設定をするには
https://www.tp-link.com/jp/support/faq/946/

今回はローカルでしか使わないつもりなのでクラウドアカウントの作成はスキップしましたが、アカウントを作成すれば外からスマホアプリで制御できるようです。
また、IPアドレスは、DHCP割当しか対応していないようです。私は、固定IPを割り当てたかったので、ルータのDHCP設定で対応しました。

tplink-smarthome-apiのインストール

Node.jsで操作できるライブラリ「tplink-smarthome-api」を使います。
Node.jsのインストールの後、npmコマンドで「tplink-smarthome-api」をインストールします。
sudo apt-get install nodejs npm
sudo npm install -g tplink-smarthome-api 

インストールできたら、APIを使って、HS105を検索してみます。
$ tplink-smarthome-api search
Searching...
startDiscovery({ discoveryInterval: 2000,
  discoveryTimeout: 10000,
  breakoutChildren: true })
HS105(JP) plug IOT.SMARTPLUGSWITCH 192.168.1.100 9999 ABC123456789 A123456789B123456789C123456789D123456789 hs105
IPアドレス(192.168.1.100)とポート番号(9999)が表示されます。 このIPアドレスとポート番号を引数にして、「tplink-smarthome-api」を使って、電源のON・OFFができます。

tplink-smarthome-apiの使い方

電源ON
tplink-smarthome-api -D send 192.168.1.100:9999 '{"system":{"set_relay_state":{"state":1}}}'

電源OFF
tplink-smarthome-api -D send 192.168.1.100:9999 '{"system":{"set_relay_state":{"state":0}}}'

情報取得
tplink-smarthome-api getInfo 192.168.1.100:9999
結果は、json形式のようです。relay_stateの値が"1"なら電源ON、"0"なら電源OFFですね。
Sending getInfo command to 192.168.1.100:  via tcp...
response:
{ sysInfo:
   { sw_ver: '1.0.6 Build 200331 Rel.171350',
     hw_ver: '2.0',
     model: 'HS105(JP)',
       .
       .
     relay_state: 0,
       .
       .

スマートプラグの検索
$ tplink-smarthome-api search

他にもいろいろできそうですが、今回はここまで。

このブログを検索

注目の記事

謎のディスク容量不足はThunderbirdの設定をチェック

Thunderbirdのimap設定の罠 imap設定にしておけば、PCの容量あまり食わないと思うじゃ無いですか!! いつからなのか分からないけど、デフォルトが 「すべてのメッセージをローカルに同期する」 になっています。 原因不明の容量不足に悩んでいる人でThund...

人気記事

ブログ アーカイブ

QooQ