Intern

ターミナルからpythonスクリプトを使ってスマートWi-Fiプラグを制御する

前回ノードレッドから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の他のスマートプラグでは電力情報の取得ができるモデルもあるようです。