Sympapaのスマートホーム日記

スマートなんとかはスマートじゃない方法でつくられている

Home Assistant: "Edison Smart ミニシーリングライト"との連携に"Tuya Local"を使う

Sympapaです。

新しく建てる家の洗面所とウォークインクローゼットに採用しようと考えている"Edison Smart ミニシーリングライト"、照明自体はとても気に入っているのですがHome Assistantとの連携がうまくいかずに四苦八苦しています。

"Edison Smart ミニシーリングライト"はTuya系OEM品のようで"Smart Life"アプリに登録できます。
前回、ローカルで"Tuya"のデバイスを制御してくれる"Local Tuya"カスタムインテグレーションを使ってHome Assistantと"Edison Smart ミニシーリングライト"を連携できるようになったのですが、暫く使ったところ、時々"Home Assistant"上で「利用不可」となる問題があることが判りました。
「利用不可」になって数秒で復活する時もあれば数十秒しないと復活しない時もあるようです。
スマートホーム化はレスポンスと安定性、そして違和感の無い挙動が大切ですのでこれでは使えません。
しかし"Local Tuya"で連携している他の電球は全く問題ないので、"Edison Smart ミニシーリングライト"特有の問題なんだと思います。困った(><)


「利用不可」になった時、Home Assistantのログには”Failed to connect to 192.168.11.xx”などのエラーが残されています。
ググると同様の症状で困っている人もいるようです。
そして、こちらのページに辿り着きました。
そこには「Tuyaデバイスはデバイスによっては立て続けにコマンドを処理できないので、ポートを閉じたり再起動したりする」と書かれています。
"Local Tuya"から操作した時に、別の電球だと連続で操作してもスムーズに反映されるのに対し、"Edison Smart ミニシーリングライト"を連続で操作すると明らかにレスポンスが遅いので、コレが起きてる臭いかなぁ。"Local Tuya"が何かコマンドを送り続けているのかもしれません。
github.com


ってかこのページ、"Local Tuya"とは別の"Tuya-Local"というカスタムインテグレーションのGithubでした(汗
そんなワケで名前が似ているのでややこしいですが、"Tuya-Local"を使えば問題が解消するのかを試していきます。

■Tuya-Local

"Local Tuya"は以前から開発されているようですが、"Tuya-Local"は2022年秋頃(?)に最初のリリースがされたようで、現在も発展途上中ですが開発が旺盛に行われているカスタムインテグレーションです。
インストールはHACSから"Tuya-Local"を検索すれば簡単に出来ます。
どちらのカスタムインテグレーションもデバイスの追加にはデバイスの個体毎に割り振られる"Device ID"と"Local Key"が必要となりますが、"Local Tuya"には"Tuya IoT Platform"経由で"Device ID"と"Local Key"を自動取得してくれる機能があるのに対し、"Tuya-Local"の方は何らかの方法で"Device ID"と"Local Key"を知る必要があります。事前に"Local Tuya"でデバイス登録して"Device ID"と"Local Key"をメモっとけば問題ありませんが、ちと面倒です。
一方、"Local Tuya"はData Pointを半自動ながらマニュアル設定する必要がありちょっと面倒だったのに対し、"Tuya-Local"は自動で設定してくれます。
総じて"Local Tuya"よりカンタンに使えますが、"Tuya-Local"の方はマニュアルでできる設定項目が少ないというか下のスクショの項目しか設定が無いので、臨機応変に新しいデバイスに対応するのが難しいかもしれません。


"Local Key"の取得方法は、"Local Tuya"にデバイスを登録してから"Local Tuya"の[設定]>[Edit Device]と進むと確認できるのでそれが手っ取り早そうですが、Androidエミュレータかrootedのアンドロイド端末を使う方法など色々あるので、調べてみてやりやすそうな方法を選ぶのが良いと思います。

■動作確認とまとめ

"Tuya-Local"で"Edison Smart ミニシーリングライト"を連携して数日が経ちましたが安定して稼働しています。
これでようやく"Edison Smart ミニシーリングライト"と”Home Assistant"の連携については一件落着かな?
ただ、"Tuya-Local"を使っても連続で操作した場合"Edison Smart ミニシーリングライト"に反映されるレスポンスは遅いです。
Home Assistantは色々なインテグレーションがあって色々なデバイスと連携できますが、公式にAPIが公開されていなかったりするとデバイスによってはインテグレーションが対応出来ていなかったりするので色々と試行錯誤は必要ですね。
Matterが早く色々なデバイスに普及するといいし、できれば発売済みのデバイスでもアップデートでMatterに対応させてほしいですね。


それでは。