TP-LINK WiFiスマートプラグをLinux/Windowsから直接制御する

以前紹介したTP-LINK WiFiスマートプラグ制御をPC(Linux/Windows等)から実行できるプログラムを作ってみた。コマンドライン・オプションによりオン・オフしたりできる。

TP-LINK WiFiスマートプラグをESP32(Arduino)から制御する

紹介元サイトで公開されているPythonで書かれたtplink_smartplug.pyをC言語に移殖(というかほぼ全部書き換え)したもので、OrangePi/RaspberryPiなどのLinuxやWindows上で実行することができる。Linuxはgcc、WindowsはMSYS2 MinGW64にてwsock32とws2_32ライブラリのリンクが必要となる。

https://github.com/softScheck/tplink-smartplug

スマートプラグのアドレスを調べるために元プログラムにデバイス検出機能を追加してみたが、実際に使う場合にはルーター等のDHCPにて固定アドレスを割り当てしたほうが良いだろう。

しかし、Pythonに比べるとコードがバカデカイ。個人的にはあまり好きではないがPythonでの開発って凄く効率よさげだなと思ったりも...

【関連投稿】
TP-LINK WiFiスマートプラグをESP32(Arduino)から制御する
TP-LINK WiFiスマートプラグをLinux/Windowsから直接制御する
TP-LINK TAPO P100/P105をESP32から直接制御する
TP-LINK TAPO P100/P105をLinux/Windowsから直接制御する

“TP-LINK WiFiスマートプラグをLinux/Windowsから直接制御する” への2件の返信

  1. プログラムを利用させていただきました。
    やりたいことができ、非常に助かりました。
    ありがとうございます。

    1点だけ、私のwindows環境でビルドした場合、ssize_t の定義がないというエラーがでました。
    ちょっと調べた感じですが、windows環境では、BaseTsd.hをインクルードし、SSIZE_T型を使うのが正しいやり方っぽいです。

    非常に便利に利用させてもらってます。
    ありがとうございました。

  2. コメントありがとうございます。
    TP-LINK WIFIスマートプラグはIPv4専用ですので本来はもっとシンプルに作成できるのですがIPv6対応APIの練習がてら作成してしまったので少々複雑になってしまいました。(-_-;)
    また、ssize_tは符号付size_tです。ご利用の開発環境によっては定義がなくエラーになることがあるかもしれませんので環境に合わせたインクルードを使って頂ければ問題ありません。
    ちなみに「通りすがり」さんは、もしかして、この前もコメント頂いた方でしょうか?そのせつは貴重なご意見ありがとうございました。ご指摘の件、全く気づいてなくて大変参考になりました。ありがとうございました。<(_ _)>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください