前回ノードレッドからkasaのスマートWi-Fiプラグを制御したので、今回はターミナルからpythonスクリプトを使って動かしてみたいと思います。
まず初めにコマンドプロンプトでpython-kasaライブラリをインストールします。※Pythonをインストールしている必要があります。
pip install python-kasa
ワイヤーシャークを使ってスマートプラグのIPアドレスを調べます。やり方は前回と同様に行います。https://blog.smartlight.co.jp/?p=6884
スクリプト作成
次にVScodeを使ってpythonスクリプトを作成します。1つ目にスマートプラグをONにするコードを作成しました。
from kasa import SmartPlug
import asyncio
async def main():
plug = SmartPlug("192.168.1.183") # ← プラグのIP
await plug.update()
await plug.turn_on()
print("プラグをONにしました")
asyncio.run(main())
Code language: PHP (php)
このスクリプトを自分の任意のファイルに保存し、コマンドプロンプトにて cd で保存した場所に移動してPython 保存した名前.pyでスクリプトを実行します。

これでONにすることが出来ました。
2つ目にスマートプラグの状態がONならOFFにOFFならONにするコードを作成しました。
from kasa import SmartPlug
import asyncio
async def main():
plug = SmartPlug("192.168.1.183")
await plug.update()
if plug.is_on:
await plug.turn_off()
print("OFFにしました")
else:
await plug.turn_on()
print("ONにしました")
asyncio.run(main())
Code language: JavaScript (javascript)
実行方法は上記と同様に行います。

このように実行されました。
最後に10秒間点灯したのちに消灯するコードを作成しました。
from kasa import SmartPlug
import asyncio
import time
async def main():
plug = SmartPlug("192.168.1.183")
await plug.update()
await plug.turn_on()
print("ONにしました。10秒後にOFFします")
await asyncio.sleep(10)
await plug.turn_off()
print("OFFにしました")
asyncio.run(main())
Code language: JavaScript (javascript)

これもうまく実行することが出来ました。
まとめ
今回はターミナルからpythonスクリプトを使ってスマートWi-FiプラグをON,OFFしてみました。どれも考えていた通りに動かすことが出来ました。今回は電源のON,OFFのみ行うものを作成しましたが、kasaの他のスマートプラグでは電力情報の取得ができるモデルもあるようです。