Sympapaのスマートホーム日記

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

Home Assistant: +Styleのフィラメントスマート電球をLocal Tuyaで接続する

Sympapaです。


家を建てる計画も大詰め段階に来ており現在、照明の検討中です。
何箇所かに一般電球式のペンダントライトを採用したいと思っているのですが雰囲気的にフィラメントタイプの電球を使いたいと思っていて、かつ時間帯によって自動的に調光できるようにしたいと思っています。
そんなワケでHome Asssitantに接続できるフィラメントタイプのスマート電球を探索中です。

Zigbee接続であればあれこれ悩まずHome Asssitantに接続できるはずですが、日本で正規に買えるZigbee接続のモノとなるとIKEAのモノしか見つからず、しかしソレは明るさが250lmしかありません。
Aliexpressで探しても電圧100Vに対応しているものが見つからないし、米AmazonでPhilipsのを買えば明るさも550lmで電圧110V-130Vに対応しているのでおそらく動きそうですが、送料込みだと2個同時に買っても1個6,000円くらいになってしまいます。


Zigbee接続を諦めてWi-Fi接続のものにする場合、Home AsssistantにはTuyaのクラウドAPIを経由して接続するTuyaインテグレーションや、Localでデバイスの操作を処理してくれる(らしい)"Local Tuya"というカスタムインテグレーションがあるのでTuyaのプラットフォームに対応したものあれば接続できそうな気がしていました。しかし調べていたところ、diysmarthomeさんの記事でTuyaのクラウドAPIは2022年に有償化し試用期間1ヶ月が終了すると高額課金をしなければ使用できなくなることを知りました。すなわちクラウドAPIを使用するTuyaインテグレーションは使用できないことになります。
しかし"Local Tuya"の方も何やら面倒な方法でデバイス毎の"device ID"と”local key"なるものを取得しなければならないようで、とてもうまくいく気がしません(笑)
まぁ最悪それらが使えなくてもAlexaやGoogle Homeに対応していればHome Assistantから操作できないわけではありません。まぁサーバーをいくつか経由することになるのでレスポンスは期待できないと思いますけど。。。


まぁあれこれ考えていても触ってみないと先には進まないということで、Tuyaのシステムに対応しているフィラメントタイプのスマート電球を買ってみることにしました。
まずはAliexpressで探してみましたが100V対応品が見つかりません。仕方なく、日本で売っているTuya系OEM製品だという「噂」のモノを検討してみました。


+Styleとか。
plusstyle.jp


VENTOTA Smart HEREとか。
www.ventota.co.jp


Edison smartとか。
shop.edison-led.co.jp


見た目的にはEdison smartが根元の樹脂パーツがないので雰囲気が良いですが、Amazonのレビューを見ていると短寿命だったというレビューが多そうです。+StyleとVENTOTA Smart HEREの2択となりましたが、今回はTuya系であることがより確実そうな+Styleのフィラメントタイプスマート電球を買ってみました。

■+styleのフィラメントタイプスマート電球PS-LIB-W06


+Styleは日本でスマート家電を販売する企業としてはメジャーどころではないかと思います。
今回購入したのは、フィラメントタイプのスマート電球PS-LIB-W06になります。
最大810lm、色温度2700~6500Kで明るさと色温度を調整できます。
フィラメントタイプのスマート電球としては珍しい最大810lmの明るさですが、4本のフィラメント風LEDの内2本が暖色用、2本が寒色用になっていて、色温度を最低の2700Kにした場合と最高の6500Kにした場合はフィラメント風LEDが2本しか点灯しないので、推定400lm(?)くらいの明るさになってしまいます。中間の4400K(?)で明るさ810lmになるってことでしょうか。
まぁしかし雰囲気重視の時は暖色に寄せて暗くすることが多いでしょうし、最も暖色寄りの2700Kにした時も最大輝度にすれば思っていたよりは明るかったし問題なさそうです。
根元のゴールドの樹脂部分も思っていたほど気になりませんでした。いや、実際にペンダントライトに付けてみないとわからんけど。
そして電球の頭にダサいロゴがプリントされています。実際は目立たないってか、実際に灯具に付けた状態で気づく人はほとんどいないと思います。気づかないんだったら結局ロゴをプリントする意味ないだろって思いますけど(笑)
PSEマークも一緒にプリントされているので少しだけ安心感が増しますね(汗)

plusstyle.jp

■とりあえずSmart Lfeアプリに登録できるか試す

Home Assistantで使えるかどうか以前に、ほんとにTuyaアプリやSmart Lifeアプリに登録できるのか疑惑があります。
TuyaアプリとSmart Lifeアプリの違いがさっぱりわかっていませんが、今回はSmart LifeアプリをAndroidスマホにインストールしアカウントを作成して接続を試みました。
たぶん、スマホを2.4GHzのWi-Fiに繋いでおいてセッティングを開始すると、その後、アプリがスマホを勝手に電球側のWi-FI APに接続して電球を家のWi-Fiへ接続する設定をしてくれる仕組みだと思うのですが、なかなかうまくいきませんでした。
ググったところ「電球側のWi-FI APのSSIDがTuya純正とTuya系OEM品では違うので手動で接続しろ」的な情報をみつけましたが、それをみつけた直後に何故か接続されてしまいました(汗)
まだ接続できる手順がちゃんとわかってはいませんが、とりあえず+Styleの電球はSmart Lifeアプリに接続できるようです。

■サーバー経由だとレスポンスはどうなのか?

まずSmart Lifeアプリから操作した場合ですが「本当にサーバを経由してるの?」ってくらい爆速です。
「同じネットワーク内にある場合は実はローカルで操作してるんじゃね?」と思ってスマホの通信をWi-Fiからモバイル通信に切り替えて試してみてもやっぱり爆速です。
そしてAlexaとSmart Lifeを連携させてAlexaアプリから操作してみましたがそれでも爆速です。
「こりゃ、Local Tuyaとか使わんでも、Home Assistant → Alexa →Smart Lifeって流れで操作してもいけるんじゃね?」

■しかし

AlexaとHome AssistantはAlexaのHome Assistantスキルを使って連携できます。
しかしHome Assistant上の(仮想)スイッチはAlexaがスイッチとして認識してくれないので、Home AssistantからAlexaに指示を出すのには一工夫必要なんですよね。
"Alexa switch"とその界隈で呼ばれている方法を使えば、Home Assistant →Samsung Smart Things → Alexaとリレーできるので試してみましたが、Samsung Smart Things とAlexaの間のやりとりが遅く”Alexa switch"をON/OFFしても電球がON/OFFするまでに2秒弱くらいかかります。これじゃ使えんな。。。

■結局Local Tuyaを試す

仕方がないのでおとなしく(?)"Local Tuya"にトライするすることにしました。
始める前に電球のIPアドレスを固定しておきました。

1. Device KeyとLocal Keyを取得する

”Local Tuya"を使うには電球の"Device ID"と"Local Key"が必要になります。
”Local Tuya"には自動的にクラウドAPIから"Device ID"と"Local Key"を取得してくれる機能が実装されているとのことなんですが、"Local Key"を取得してくれないので早々にくじけそうになりました(汗)
以前はTuyaのクラウドAPIのページで"Local Key"が確認できたらしいのですが、それも今は出来ないようです。
先が長いのでここらへんの詳細は割愛します(汗


※後日追記
設定が間違っていたのか、後日あらためて試したところ”Local Tuya"がクラウドAPIから"Device ID"と"Local Key"を取得してくれました。
こちらの記事に設定方法を書いています。
sympapa.hatenablog.com


最終的にはこちらの動画の方法で取得することが出来ました。
Windows上のAndroidエミュレータ上でSmart Lifeアプリを実行して、Smart Lifeアプリの設定ファイルからぶっこ抜く方法のようです。いくつかつまづく点もありましたが、個人的にはGoogleAmazonクラウドAPIとHome Assistantをリンクさせる作業が超絶苦痛だったこともあり、今回もTuyaのクラウドAPIのページを開いた瞬間にものすごいストレスを感じたので、この方法の方が断然ラクチンでした。
まぁ英語の動画をみながら進めるのもなかなか苦痛ではありますが(汗)
再生速度を0.5倍~0.75倍にするといい感じです(笑)
手順は動画で丁寧に説明されていて、必要なソフトのダウンロードも動画の解説にリンクが貼られているのでポイントだけ書いておきます。


1) Blue stacks 4のインストール
Window用のAndroidエミュレータです。動画の概要欄に書かれたリンクからBlueStacks 4をダウンロードしてインストールします。現在、BlueStacks 5とBlueStacks 4がダウンロードできますがBlueStacks 4をダウンロードします。BlueStacks 5は後述するBlueStacks Tweaker 6とうまくリンクできませんでした。


2) Smart Lifeアプリのインストール
BlueStacks 4を起動します。Androidエミュレータが起動するのでその中でChromeを起動し、動画の解説欄に書かれたリンクからSmart Lifeアプリをダウンロードしてインストールします。Google Playから最新のSmart Lifeアプリをインストールしてもうまくいかないそうです。


3) Smart Lifeアプリの設定
BlueStacks 4上にインストールしたSmart Lifeアプリを起動し、Smart Lifeアカウントを使ってログインします。無事に登録しているデバイスが表示されたらアプリを閉じます。


4) BlueStacks Tweaker 6のダウンロード
動画の解説欄に書かれたリンクからBlueStacks Tweaker 6をダウンロードし解凍します。


5) Smart Lifeアプリの設定ファイルを抜く
5-1) BlueStacks 4が起動した状態でBlueStacksTweaker.exeを起動します。
5-2) 起動したら下の方にある[File Manager]をクリックします。

5-3) File Managerが別ウインドウで起動します。左側がWindows、右側がAndroidエミュレータのファイラです。

5-4) 右側の上にある[/data]を押し、data/data/com.tuya.smartlife/の中にある"preference_global_xxxxxx.xml"ってファイルを探します。そのファイルをドラッグして左側のWindowsのファイラへ持ってくるとコピーされます。


6) 抜いたファイルから必要な情報を確認する
抜いた.xmlファイル内に必要な情報は書かれていますが探すのが大変です。動画の作者さんが作ったツールを使えば必要な情報だけを取り出せます。
6-1) 動画の概要欄に書かれたリンクからTuyaKeyExtractorをダウンロードし起動します。
6-2) メニューが表示されるので[1]→[ENTER]と入力して、さっきWindows上にコピーした.xmlファイルのパスを入力し[ENTER]を押します。"Path has been set"と表示されたらOKです。Please enter to continueと表示されるので[ENTER]を押して続行します。
6-3) Enter a menu optionと表示されたら[2]→[ENTER]と入力します。するとDevice Name is: xxx Local Key is: xxxxxxxxxxxx Device ID is: xxxxxxxxxxxxx って 具合に表示されます。

2. Home AssistantにLocal Tuyaをインストールする

詳細は割愛しますが、Home AssistantにHACSをインストールしてあればHACSから”Local Tuya”を検索して簡単にインストールできます。

3.Local Tuyaを設定する

"Local Tuya"の設定をします。ここまで来れば楽勝と思ってましたが、8)のステップでハマりました(汗)

1) Home Assistantで[設定]>[統合]と進んで、[統合を追加]を押します。


2) "Local Tuya"を検索し "Local Tuya integration"をクリックします。


3) クラウドAPIのIDなどを入力する画面が出ます。何も入力せずに一番下にある"Do not configure a Cloud API account"にチェックを入れて[送信]を押します。成功!なんちゃらかんちゃらと表示されます。


4) 統合の一覧の画面で"Local Tuya integration"の[設定]ボタンを押すとLocalTuya Configurationウインドウが表示されるので、[Add a new device]にチェックを入れて[送信]を押します。


5)Discovered Devicesからデバイスを選択し[送信]を押します。


6)Configure Tuya deviceウインドウが表示されるので、[デバイス名][Local key][Host (デバイスIPアドレス)][Device ID]を入力して[送信]を押します。


7)Entity type selectionウインドウが表示されるので、デバイスのタイプを選んで[送信]を押します。(今回の場合"light"を選択)


8)Configure entityが表示されます。デバイスに合わせたValueを設定しないとうまく動かないようで、最初は電球のON/OFFしかできず。。。ググっても良くわからず苦労しました。
今回はググって出てきた情報の見よう見まねで下図のとおりに設定したら調光調色もうまくいくようになりました。
このあたりはまた判ってきたらブログに書こうかと思います。


9)なぜか再びEntity type selectionウインドウが表示されますが、デバイスのタイプを選んで[送信]を押します。(今回の場合"light"を選択)


以上で、電球のON/OFF、調光、調色が出来るようになりました。

■まとめ

これでTuya系デバイスをHome Assistantから操作できるようになりました(^^)
しかし今回使ったLocal keyを取得する方法もいつか塞がれてしまうかもしれないので、早いとこ必要分のフィラメント電球を買ってHome Assistantに接続したいと思います。
まぁMatterが普及して更に日本のメーカーさんも採用してくれれば、こんな苦労しなくて済むんですけどね。


あとはこのシーリング照明も使いたいので、”Local Tuya”で使えるか試してみたいと思います。


それでは。