匙を投げる

(薬の調合のための匙を投げ出す意)医師が治療の方法がないと診断する。また、物事に救済や改善の見込みがないと断念する。「広辞苑第六版より」

SwitchBotがAmazonAlexaやHomeBridgeと全然連携してくれなかった件(解決済み)

話の枕

配信者でも無いのにStreamDeckを購入したけど、やっぱり超便利なので、更に活用しようと、このボタンで済むことはなんでも集約を試み、いろいろ作業している日々。

先日は、スマートプラグのオンオフをIFTTTを経由して管理するようにした。
IFTTTは無料プランだとアクションが2つまでしか使えず、1つのプラグのオンとオフで終わりなので、自鯖を立ててHomeBridgeを動かして、そちらに連動するようにした。
HomeBridgeはWebUIがあってわかりやすいし、プラグインでいろいろなIoT機器の設定を追加できるので、あまり詳しくない俺でもなんとかなって大変ありがたい。

さて、本題の件だけど、以下の2つの赤外線リモコンを使用する機器をSwitchBotハブミニに登録し、HomeBridgeにハブミニを登録することで、StreamDeckのHomeBridgeプラグインを利用して管理したいという目論見から設定を始めるも、早々に頓挫し、紆余曲折があったことを以下に記す。

赤外線リモコンは、天井照明とHDMI切替器の2つ。天井照明はOHM(オーム電機)の照明リモコンスイッチOCR-CRS01Wを、天井の引っ掛けシーリングに噛ませる形で取り付けてある。

HDMI切替器は型番が無く、メーカーもIPPINKANというよくわからないところだが、4入力で4K60Hz出力可能で音声出力が分離できてあまり高くないのが、当時はこれくらいだったので1年半くらい前に購入したもの。切り替えが若干遅い以外はあまり不満はない。(amazonは現在在庫切れ。たぶんもっといいやつがあると思う。)

1.天井照明OHM OCR-CRS01Wの設定について

SwitchBotにリモコンを登録しようとする場合、完全手動か、登録されているものを選ぶスマートセッティングがあり、このリモコンも登録されていたので、それを選択し、設定は完了した。

まず、SwitchBotアプリからの操作では正常に動いた。

次に、HomeBridgeに登録し、当該機器自体は認識されたが、オンオフを押しても反応しなかった。

SwitchBotアプリの履歴を見ると、HomeBridgeからの操作命令自体は飛んでいるようで、「実行に成功しました」と表示はされている。SwitchBotやHomeBridge側の設定を変えながら色々試すも、動かないので、AmazonAlexaにもデバイスを追加し、そちらからの操作は動くのかを確認してみたが、同様に、履歴上は「実行に成功しました」となるが、照明自体はうんともすんとも言わなかった。

最初の自動登録くらいしか変更してないところがなかったので、試しに手動で登録(どうせオンオフの2つしかボタンが無いし)してみたところ、HomeBridgeでもAlexaでも普通に動いた。なんだったんだ。

2.HDMI切替器

そもそもハブミニへ登録するカテゴリ(ライトとかエアコンとかテレビとか)に無いので、「その他」に登録することになるが、「その他」へ登録するとAlexaとかスマートホームに連動できないと注意書きがあった。先に教えてくれ。

とはいえ、何らかの抜け道はありそうだと思ったので、とりあえずハブミニには登録し、SwitchBotアプリからは操作できるようになったが、HomeBridgeやAlexaには登録できなかった。

いろいろ調べたところ、どうもHomeBridgeに登録するのは難しそうで、諦めようかと思っていたところ、直接PCからSwitchBotのAPIを叩くスクリプトを作成するツールが配布されていた。

スマートホーム(HomeBridge)を使っているのはあくまでも手段であって、目的はStreamDeckで切り替えすることなので、そのスクリプトを起動するボタンを用意するという、StreamDeck上では簡単な方法で解決することにした。そもそも外からHDMIを切り替えする必要が皆無なので、スマートホームに連動する意味もなかった。

expy-style.net

3.SwitchBotをPCから操作するスクリプトを作成するExcelツール

Excelファイルに、一部最近の関数が使われてる(xlookupとか)ので、おれのように古いバージョンを使ってる人はMicrosoft365に加入するとか、vlookupに置き換えるとか調べてコピペするとかしてほしい。

SwichBotアプリでシーンを作って、それを読み込ませるのが一番楽かも。

4.StreamDeckにボタンを作成

天井照明、HomeBridgeに登録されたので、HomeBridgeプラグインから天井照明を選択して作成した。

HDMI切替器は、HDMIの入力先ごとにシーンを用意し、計4つのスクリプトを準備。標準である「開く」コマンドからスクリプトを選択して作成した。こちらは素直に動いたのでよかった。

ちなみに、天井照明については、試しにスクリプト作成して起動してみたが、HomeBridge経由のほうが若干早かった。どちらにしろAPIを叩いているので、むしろ遅くなりそうな気もするのだが、StreamDeckからスクリプトを起動すること自体に時間がかかっているのかもしれない。

あとがき

スマートホーム関係のHomeBridgeへの具体的な連携とかを書いているブログとかがあんまりなくて、結構難儀したが、なんとか我が家(自分の部屋だけ)のスマートホーム化?が少しずつ進んでいる。