見出し画像

SwitchBotのスマートプラグをMatter対応にする [ESP32]

さてESP32記事の三弾目です。今回はSwitchBotのスマートプラグのファームウエアを入れ替えてMatter対応にしたいと思います。

なぜSwitchBotのスマートプラグ?と思った方もいらっしゃるかもしれませんが、このスマートプラグ(型番W2001401)、ESP32-C3が中に入っているのです。で、ファームウエアをオープンソースの物に入れ替えたり、自分でプログラムしたりすることができるわけです。

今回入れ替えるファームウエアは、前回に使ったESPHomeとは別の物でTasmota と言います。

TasmotaはESPHomeのようなローコード・ツールではなくて、多機能一体型のファームウエアです。簡単なテンプレートでGPIOなどの設定をすれば、それだけで各種の機能が動くようになります。多機能なだけあって、WEBサーバーから設定を変えたり、簡易言語を内蔵していたりします。今回活用するMatter対応もその機能の中の1つです。

ファームウエアの入れ替えに苦労する

で、ファームウエアを入れ替える方法ですが、大きく分けて2つの方法があります。1つはSwitchbOTA と言うソフトをPCで動かしてファームウエアのアップデートをだましてしまう方法。もう一つは分解してシリアルポートからアップデートする方法です。

一見、SwitchbOTAの方が簡単そうに聞こえますが、このホームページを見てみると、かなり設定がややこしくて、見ただけで怖気づいてしまいました。それにAmazonのレビューを見ていると中のコンデンサが熱?で飛んでしまう問題があったようで(古いヴァージョンだけかも?)、それもついでに付け直してしまおうと考えたわけです。

なので、当初、分解してみようとしたのですが、、、

硬い!プラスチックの分解ツールでは歯が立たず、マイナスドライバーで試しても硬かったです。(どうも超音波溶着と言う溶着方法らしい)いい加減壊しそうなので諦めました。

で、意を決して、switchbOTAでアップデートすることに方針変更です。

switchbOTAにも苦労する

ええと、基本的にはこのページにある解説通りで(一部をのぞき)いいのですが、色々あるので要点と、うまくいかなかった所だけ説明します。まず必要なものは

  • スマートプラグ本体

  • PC(node.jsが動く環境)

  • ルーター(ホスト名とIPアドレスの設定ができるもの)

  • スマホ

    • Bluetoothコマンドを送れるアプリ(nRF Connect for Mobile?PC上の物でも可)

    • SwitchBotアプリ

次に流れとしては

  • SwitchBotアプリでプラグを自分のWifiに参加させる

  • ルーター上で www.wohand.comwohand.com を自分のPCのIPアドレスに設定

  • PCでnode.jsを立ち上げる

  • スマホからBluetoothコマンドを送れるアプリで、プラグにファームウエアのアップデートをするようにコマンドを送る

  • するとPCからTasmotaの簡易版(古いヴァージョン?)がダウンロードされる

  • TasmotaをWifiに参加させ、最新ヴァージョンにアップデート

と言った感じです。要点だけならスッキリしているかもしれませんが、結構面倒でしたし、上手く行かない所もありました。

その上手く行かなかったところは、最後のTasmotaのアップデートの所でした。Tasmotaの最近のヴァージョンはサイズが大きくなりすぎて、ESP32-C3のフラッシュROMの標準レイアウトには入りきらないのです。そのため一度レイアウトを変更するツールをTasmotaにアップロードして実行するのですが、Tasmotaのヴァージョンが古すぎて実行できなかったのです。かと言って古いTasmotaのままではMatterの機能はないので、今回の目的には不十分。

色々switchbOTAのissueやら何やら検索しても解決方法が見つからなかったのですが、Tasmotaの方で以下のissueのを見つけました。

この中で、親切にも小さいファイルサイズの特別なTasmotaのバイナリを作ってくれている方がいて、そのバイナリを使ってレイアウト変更ツールを実行した所、無事に変更することができ、最終的にTasmotaの最新ヴァージョンへアップデートも上手くすることができたのでした。

Matterで使ってみる

Tasmotaが動き出したので、次はテンプレートを入れてGPIO等を設定します。下のページの設定をコピーして、TasmotaのWebサーバーから設定します。

そしてWebサーバーからMatterの設定をOnにしてリスタートすると、WebサーバーにMatterのQRコードが表示されます。

TasmotaのWebページ

おっと、QRコードが崩れていますが、、、まあペアリングのコードが表示されているので、それを使えます。今回はうちで稼働しているHome AssistantにMatterで登録してみました。(Tasmotaは直接Home Assistantに対応しているが、わざわざMatter経由で登録)

MatterでHomeAssistantに登録

無事表示されています。スイッチも無事動くようです。成功!

終わりに

いかがだったでしょうか?SwitchBotのスマート・プラグ以外にもTasmotaが動作するESP32の製品はここから探せるので、他の物に載せても面白いですね。


いいなと思ったら応援しよう!